--- a/tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/spec.dtd Mon Mar 15 12:43:09 2010 +0200
+++ b/tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/spec.dtd Thu Apr 08 14:19:33 2010 +0300
@@ -1,975 +1,975 @@
-<!-- ............................................................... -->
-<!-- XML specification DTD ......................................... -->
-<!-- ............................................................... -->
-
-<!--
-TYPICAL INVOCATION:
-# <!DOCTYPE spec PUBLIC
-# "-//W3C//DTD Specification::19980323//EN"
-# "http://www.w3.org/XML/Group/DTD/xmlspec.dtd">
-
-PURPOSE:
- This DTD was developed for use with the XML family of W3C
- specifications. It is an XML-compliant DTD based in part on
- the TEI Lite and Sweb DTDs.
-
-DEPENDENCIES:
- None.
-
-CHANGE HISTORY:
- The list of changes is at the end of the DTD.
-
- For all details, see the design report at:
-
- <http://www.w3.org/XML/Group/DTD/xmlspec-report.htm>
-
- The "typical invocation" FPI always gets updated to reflect the
- date of the most recent changes.
-
- Search this file for "#" in the first column to see change history
- comments.
-
-MAINTAINER:
- Eve Maler
- ArborText Inc.
- elm@arbortext.com
- voice: +1 781 270 5750
- fax: +1 781 273 3760
--->
-
-<!-- ............................................................... -->
-<!-- Entities for characters and symbols ........................... -->
-
-<!--
-#1998-03-10: maler: Added “ and ”.
-# Used 8879:1986-compatible decimal character
-# references.
-# Merged charent.mod file back into main file.
--->
-
-<!ENTITY lt "&#60;">
-<!ENTITY gt ">">
-<!ENTITY amp "&#38;">
-<!ENTITY apos "'">
-<!ENTITY quot """>
-<!ENTITY mdash "--">
-<!ENTITY nbsp " ">
-<!ENTITY ldquo "#x201C;">
-<!ENTITY rdquo "#x201D;">
-
-<!-- ............................................................... -->
-<!-- Entities for classes of standalone elements ................... -->
-
-<!--
-#1997-10-16: maler: Added table to %illus.class;.
-#1997-11-28: maler: Added htable to %illus.class;.
-#1997-12-29: maler: IGNOREd table.
-#1998-03-10: maler: Removed SGML Open-specific %illus.class;.
-# Added "local" entities for customization.
--->
-
-<!ENTITY % local.p.class "">
-<!ENTITY % p.class "p
- %local.p.class;">
-
-<!ENTITY % local.statusp.class "">
-<!ENTITY % statusp.class "statusp
- %local.statusp.class;">
-
-<!ENTITY % local.list.class "">
-<!ENTITY % list.class "ulist|olist|slist|glist
- %local.list.class;">
-
-<!ENTITY % local.speclist.class "">
-<!ENTITY % speclist.class "orglist|blist
- %local.speclist.class;">
-
-<!ENTITY % local.note.class "">
-<!ENTITY % note.class "note|wfcnote|vcnote
- %local.note.class;">
-
-<!ENTITY % local.illus.class "">
-<!ENTITY % illus.class "eg|graphic|scrap|htable
- %local.illus.class;">
-
-<!-- ............................................................... -->
-<!-- Entities for classes of phrase-level elements ................. -->
-
-<!--
-#1997-12-29: maler: Added xspecref to %ref.class;.
-#1998-03-10: maler: Added %ednote.class;.
-# Added "local" entities for customization.
--->
-
-<!ENTITY % local.annot.class "">
-<!ENTITY % annot.class "footnote
- %local.annot.class;">
-
-<!ENTITY % local.termdef.class "">
-<!ENTITY % termdef.class "termdef|term
- %local.termdef.class;">
-
-<!ENTITY % local.emph.class "">
-<!ENTITY % emph.class "emph|quote
- %local.emph.class;">
-
-<!ENTITY % local.ref.class "">
-<!ENTITY % ref.class "bibref|specref|termref|titleref
- |xspecref|xtermref
- %local.ref.class;">
-
-<!ENTITY % local.loc.class "">
-<!ENTITY % loc.class "loc
- %local.loc.class;">
-
-<!ENTITY % local.tech.class "">
-<!ENTITY % tech.class "kw|nt|xnt|code
- %local.tech.class;">
-
-<!ENTITY % local.ednote.class "">
-<!ENTITY % ednote.class "ednote
- %local.ednote.class;">
-
-<!-- ............................................................... -->
-<!-- Entities for mixtures of standalone elements .................. -->
-
-<!--
-#1997-09-30: maler: Created %p.mix; to eliminate p from self.
-#1997-09-30: maler: Added %speclist.class; to %obj.mix; and %p.mix;.
-#1997-09-30: maler: Added %note.class; to %obj.mix; and %p.mix;.
-#1997-10-16: maler: Created %entry.mix;. Note that some elements
-# left out here are still allowed in termdef,
-# which entry can contain through %p.pcd.mix;.
-#1997-11-28: maler: Added %p.class; to %statusobj.mix;.
-#1998-03-10: maler: Added %ednote.class; to all mixtures, except
-# %p.mix; and %statusobj.mix;, because paragraphs
-# and status paragraphs will contain ednote
-# through %p.pcd.mix;.
-#1998-03-123: maler: Added %termdef.mix; (broken out from
-# %termdef.pcd.mix;).
--->
-
-<!ENTITY % div.mix
- "%p.class;|%list.class;|%speclist.class;|%note.class;
- |%illus.class;|%ednote.class;">
-<!ENTITY % obj.mix
- "%p.class;|%list.class;|%speclist.class;|%note.class;
- |%illus.class;|%ednote.class;">
-<!ENTITY % p.mix
- "%list.class;|%speclist.class;|%note.class;|%illus.class;">
-<!ENTITY % entry.mix
- "%list.class;|note|eg|graphic|%ednote.class;">
-<!ENTITY % statusobj.mix
- "%p.class;|%statusp.class;|%list.class;">
-<!ENTITY % hdr.mix
- "%p.class;|%list.class;|%ednote.class;">
-<!ENTITY % termdef.mix
- "%note.class;|%illus.class;">
-
-<!-- ............................................................... -->
-<!-- Entities for mixtures of #PCDATA and phrase-level elements .... -->
-
-<!-- Note that %termdef.pcd.mix contains %note.class;
- and %illus.class;, considered standalone elements. -->
-
-<!--
-#1997-09-30: maler: Added scrap and %note.class; to %termdef.pcd.mix;.
-#1997-11-28: maler: Added %loc.class; to %p.pcd.mix;.
-#1998-03-10: maler: Added %ednote.class; to all mixtures.
-#1998-03-23: maler: Moved some %termdef.pcd.mix; stuff out to
-# %termdef.mix;.
--->
-
-<!ENTITY % p.pcd.mix
- "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
- |%ref.class;|%tech.class;|%loc.class;|%ednote.class;">
-<!ENTITY % statusp.pcd.mix
- "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
- |%ref.class;|%tech.class;|%loc.class;|%ednote.class;">
-<!ENTITY % head.pcd.mix
- "#PCDATA|%annot.class;|%emph.class;|%tech.class;|%ednote.class;">
-<!ENTITY % label.pcd.mix
- "#PCDATA|%annot.class;|%termdef.class;|%emph.class;|%tech.class;
- |%ednote.class;">
-<!ENTITY % eg.pcd.mix
- "#PCDATA|%annot.class;|%emph.class;|%ednote.class;">
-<!ENTITY % termdef.pcd.mix
- "#PCDATA|term|%emph.class;|%ref.class;|%tech.class;
- |%ednote.class;">
-<!ENTITY % bibl.pcd.mix
- "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;">
-<!ENTITY % tech.pcd.mix
- "#PCDATA|%ednote.class;">
-<!ENTITY % loc.pcd.mix
- "#PCDATA|%loc.class;|%ednote.class;">
-
-<!-- ............................................................... -->
-<!-- Entities for customizable content models ...................... -->
-
-<!--
-#1998-03-10: maler: Added customization entities.
--->
-
-<!ENTITY % spec.mdl
- "header, front?, body, back?">
-
-<!ENTITY % header.mdl
- "title, subtitle?, version, w3c-designation, w3c-doctype,
- pubdate, notice*, publoc, prevlocs?, latestloc?, authlist,
- status, abstract, pubstmt?, sourcedesc?, langusage,
- revisiondesc">
-
-<!ENTITY % pubdate.mdl
- "day?, month, year">
-
-<!-- ............................................................... -->
-<!-- Entities for common attributes ................................ -->
-
-<!-- key attribute:
- Optionally provides a sorting or indexing key, for cases when
- the element content is inappropriate for this purpose. -->
-<!ENTITY % key.att
- 'key CDATA #IMPLIED'>
-
-<!-- def attribute:
- Points to the element where the relevant definition can be
- found, using the IDREF mechanism. %def.att; is for optional
- def attributes, and %def-req.att; is for required def
- attributes. -->
-<!ENTITY % def.att
- 'def IDREF #IMPLIED'>
-<!ENTITY % def-req.att
- 'def IDREF #REQUIRED'>
-
-<!-- ref attribute:
- Points to the element where more information can be found,
- using the IDREF mechanism. %ref.att; is for optional
- ref attributes, and %ref-req.att; is for required ref
- attributes. -->
-<!ENTITY % ref.att
- 'ref IDREF #IMPLIED'>
-<!ENTITY % ref-req.att
- 'ref IDREF #REQUIRED'>
-
-<!--
-#1998-03-23: maler: Added show and actuate attributes to href.
-# Added semi-common xml:space attribute.
--->
-
-<!-- HREF and source attributes:
- Points to the element where more information or source data
- can be found, using the URL (XLL simple link) mechanism.
- For some purposes, is associated with additional XLL
- attributes. %href.att; is for optional HREF attributes,
- and %href-req.att; is for required HREF attributes.
- %source-req.att; is for the source attribute, which
- is always required. -->
-<!--
-#1998-5-23: brownell: Turned "xml:link" into "xml-link" to
-# match usage in the XML spec, so that
-# validation errors aren't reported.
--->
-<!ENTITY % href.att
- 'xml-link CDATA #FIXED "simple"
- href CDATA #IMPLIED
- show CDATA #FIXED "embed"
- actuate CDATA #FIXED "auto"'>
-
-<!ENTITY % href-req.att
- 'xml-link CDATA #FIXED "simple"
- href CDATA #REQUIRED
- show CDATA #FIXED "embed"
- actuate CDATA #FIXED "auto"'>
-
-<!ENTITY % source-req.att
- 'xml-link CDATA #FIXED "simple"
- xml:attributes NMTOKENS #FIXED "href source"
- source CDATA #REQUIRED
- show CDATA #FIXED "embed"
- actuate CDATA #FIXED "auto"'>
-
-<!-- xml:space attribute:
- Indicates that the element contains white space
- that the formatter or other application should retain,
- as appropriate to its function. -->
-<!ENTITY % xmlspace.att
- 'xml:space (default
- |preserve) #FIXED "preserve"'>
-
-<!-- Common attributes:
- Every element has an ID attribute (sometimes required,
- but usually optional) for links, and a Role attribute
- for extending the useful life of the DTD by allowing
- authors to make subclasses for any element. %common.att;
- is for common attributes where the ID is optional, and
- %common-idreq.att; is for common attributes where the
- ID is required. -->
-<!ENTITY % common.att
- 'id ID #IMPLIED
- role NMTOKEN #IMPLIED'>
-<!ENTITY % common-idreq.att
- 'id ID #REQUIRED
- role NMTOKEN #IMPLIED'>
-
-<!-- ............................................................... -->
-<!-- Common elements ............................................... -->
-
-<!-- head: Title on divisions, productions, and the like -->
-<!ELEMENT head (%head.pcd.mix;)*>
-<!ATTLIST head %common.att;>
-
-<!-- ............................................................... -->
-<!-- Major specification structure ................................. -->
-
-<!--
-#1998-03-10: maler: Made spec content model easily customizable.
--->
-
-<!ELEMENT spec (%spec.mdl;)>
-<!ATTLIST spec %common.att;>
-
-<!ELEMENT front (div1+)>
-<!ATTLIST front %common.att;>
-
-<!ELEMENT body (div1+)>
-<!ATTLIST body %common.att;>
-
-<!--
-#1997-09-30: maler: Added inform-div1 to back content.
--->
-
-<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)>
-<!ATTLIST back %common.att;>
-
-<!ELEMENT div1 (head, (%div.mix;)*, div2*)>
-<!ATTLIST div1 %common.att;>
-
-<!--
-#1997-09-30: maler: Added inform-div1 declarations.
--->
-
-<!-- inform-div1: Non-normative division in back matter -->
-<!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)>
-<!ATTLIST inform-div1 %common.att;>
-
-<!ELEMENT div2 (head, (%div.mix;)*, div3*)>
-<!ATTLIST div2 %common.att;>
-
-<!ELEMENT div3 (head, (%div.mix;)*, div4*)>
-<!ATTLIST div3 %common.att;>
-
-<!ELEMENT div4 (head, (%div.mix;)*)>
-<!ATTLIST div4 %common.att;>
-
-<!-- Specification header .......... -->
-
-<!--
-#1998-03-10: maler: Made header content model easily customizable.
--->
-
-<!ELEMENT header (%header.mdl;)>
-<!ATTLIST header %common.att;>
-
-<!-- Example of title: "Extensible Cheese Language (XCL)" -->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title %common.att;>
-
-<!-- Example of subtitle: "A Cheesy Specification" -->
-<!ELEMENT subtitle (#PCDATA)>
-<!ATTLIST subtitle %common.att;>
-
-<!-- Example of version: "Version 666.0" -->
-<!ELEMENT version (#PCDATA)>
-<!ATTLIST version %common.att;>
-
-<!-- Example of w3c-designation: "WD-xcl-19991231" -->
-<!ELEMENT w3c-designation (#PCDATA)>
-<!ATTLIST w3c-designation %common.att;>
-
-<!-- Example of w3c-doctype: "World Wide Web Consortium Working
- Draft" -->
-<!ELEMENT w3c-doctype (#PCDATA)>
-<!ATTLIST w3c-doctype %common.att;>
-
-<!--
-#1998-03-10: maler: Made pubdate content model easily customizable.
--->
-
-<!ELEMENT pubdate (%pubdate.mdl;)>
-<!ATTLIST pubdate %common.att;>
-
-<!ELEMENT day (#PCDATA)>
-<!ATTLIST day %common.att;>
-
-<!ELEMENT month (#PCDATA)>
-<!ATTLIST month %common.att;>
-
-<!ELEMENT year (#PCDATA)>
-<!ATTLIST year %common.att;>
-
-<!-- Example of notice: "This draft is for public comment..." -->
-<!ELEMENT notice (%hdr.mix;)+>
-<!ATTLIST notice %common.att;>
-
-<!ELEMENT publoc (loc+)>
-<!ATTLIST publoc %common.att;>
-
-<!ELEMENT prevlocs (loc+)>
-<!ATTLIST prevlocs %common.att;>
-
-<!ELEMENT latestloc (loc+)>
-<!ATTLIST latestloc %common.att;>
-
-<!-- loc (defined in "Phrase-level elements" below) -->
-
-<!ELEMENT authlist (author+)>
-<!ATTLIST authlist %common.att;>
-
-<!--
-#1997-09-30: maler: Made affiliation optional.
-#1998-03-10: maler: Made email optional.
--->
-
-<!ELEMENT author (name, affiliation?, email?)>
-<!ATTLIST author %common.att;>
-
-<!ELEMENT name (#PCDATA)>
-<!ATTLIST name
- %common.att;
- %key.att;>
-
-<!ELEMENT affiliation (#PCDATA)>
-<!ATTLIST affiliation %common.att;>
-
-<!ELEMENT email (#PCDATA)>
-<!-- HREF attribute:
- email functions as a hypertext reference through this
- required attribute. Typically the reference would use
- the mailto: scheme. -->
-<!ATTLIST email
- %common.att;
- %href-req.att;>
-
-<!-- The status element now contains both statusp and p, and
- the latter now allows loc. Use p; statusp will be removed
- eventually. -->
-<!ELEMENT status (%statusobj.mix;)+>
-<!ATTLIST status %common.att;>
-
-<!ELEMENT abstract (%hdr.mix;)*>
-<!ATTLIST abstract %common.att;>
-
-<!ELEMENT pubstmt (%hdr.mix;)+>
-<!ATTLIST pubstmt %common.att;>
-
-<!ELEMENT sourcedesc (%hdr.mix;)+>
-<!ATTLIST sourcedesc %common.att;>
-
-<!ELEMENT langusage (language+)>
-<!ATTLIST langusage %common.att;>
-
-<!ELEMENT language (#PCDATA)>
-<!ATTLIST language %common.att;>
-
-<!ELEMENT revisiondesc (%hdr.mix;)+>
-<!ATTLIST revisiondesc %common.att;>
-
-<!-- ............................................................... -->
-<!-- Standalone elements ........................................... -->
-
-<!-- Paragraphs .................... -->
-
-<!--
-#1997-09-30: maler: Changed from %obj.mix; to %p.mix;.
-#1997-12-29: maler: Changed order of %p.mix; and %p.pcd.mix; references.
-#1997-12-29: maler: Changed order of %statusobj.mix; and %statusp.pcd.mix;
-# references.
--->
-
-<!ELEMENT p (%p.pcd.mix;|%p.mix;)*>
-<!ATTLIST p %common.att;>
-
-<!-- statusp: Special paragraph that allows loc inside it (note that
- p now also allows loc) -->
-<!ELEMENT statusp (%statusp.pcd.mix;|%statusobj.mix;)*>
-<!ATTLIST statusp %common.att;>
-
-<!-- Lists ......................... -->
-
-<!ELEMENT ulist (item+)>
-<!-- spacing attribute:
- Use "normal" to get normal vertical spacing for items;
- use "compact" to get less spacing. The default is dependent
- on the stylesheet. -->
-<!ATTLIST ulist
- %common.att;
- spacing (normal|compact) #IMPLIED>
-
-<!ELEMENT olist (item+)>
-<!-- spacing attribute:
- Use "normal" to get normal vertical spacing for items;
- use "compact" to get less spacing. The default is dependent
- on the stylesheet. -->
-<!ATTLIST olist
- %common.att;
- spacing (normal|compact) #IMPLIED>
-
-<!ELEMENT item (%obj.mix;)+>
-<!ATTLIST item %common.att;>
-
-<!ELEMENT slist (sitem+)>
-<!ATTLIST slist %common.att;>
-
-<!ELEMENT sitem (%p.pcd.mix;)*>
-<!ATTLIST sitem %common.att;>
-
-<!ELEMENT glist (gitem+)>
-<!ATTLIST glist %common.att;>
-
-<!ELEMENT gitem (label, def)>
-<!ATTLIST gitem %common.att;>
-
-<!ELEMENT label (%label.pcd.mix;)*>
-<!ATTLIST label %common.att;>
-
-<!ELEMENT def (%obj.mix;)*>
-<!ATTLIST def %common.att;>
-
-<!-- Special lists ................. -->
-
-<!ELEMENT blist (bibl+)>
-<!ATTLIST blist %common.att;>
-
-<!ELEMENT bibl (%bibl.pcd.mix;)*>
-<!-- HREF attribute:
- bibl optionally functions as a hypertext reference to the
- referred-to resource through this attribute. -->
-<!ATTLIST bibl
- %common.att;
- %href.att;
- %key.att;>
-
-<!ELEMENT orglist (member+)>
-<!ATTLIST orglist %common.att;>
-
-<!--
-#1997-09-30: maler: Added optional affiliation.
--->
-
-<!ELEMENT member (name, affiliation?, role?)>
-<!ATTLIST member %common.att;>
-
-<!-- name (defined in "Specification header" above) -->
-<!-- affiliation (defined in "Specification header" above) -->
-
-<!ELEMENT role (#PCDATA)>
-<!ATTLIST role %common.att;>
-
-<!-- Notes ......................... -->
-
-<!ELEMENT note (%obj.mix;)+>
-<!ATTLIST note %common.att;>
-
-<!ELEMENT wfcnote (head, (%obj.mix;)+)>
-<!-- ID attribute:
- wfcnote must have an ID so that it can be pointed to
- from a wfc element in a production. -->
-<!ATTLIST wfcnote
- %common-idreq.att;>
-
-<!ELEMENT vcnote (head, (%obj.mix;)+)>
-<!-- ID attribute:
- vcnote must have an ID so that it can be pointed to
- from a vc element in a production. -->
-<!ATTLIST vcnote
- %common-idreq.att;>
-
-<!-- Illustrations ................. -->
-
-<!--
-#1998-03-23: maler: Added xml:space attribute.
--->
-
-<!ELEMENT eg (%eg.pcd.mix;)*>
-<!ATTLIST eg
- %common.att;
- %xmlspace.att;>
-
-<!ELEMENT graphic EMPTY>
-<!-- source attribute:
- The graphic data must reside at the location pointed to.
- This is a hypertext reference, but for practical purposes,
- for now it should just be a pathname. -->
-<!ATTLIST graphic
- %common.att;
- %source-req.att;
- alt CDATA #IMPLIED>
-
-<!--
-#1997-11-28: maler: Added prodgroup to scrap and defined it.
--->
-
-<!ELEMENT scrap (head, (prodgroup+ | prod+ | bnf))>
-<!-- lang attribute:
- The scrap can link to a description of the language used,
- found in a language element in the header. -->
-<!ATTLIST scrap
- %common.att;
- lang IDREF #IMPLIED>
-
-<!ELEMENT prodgroup (prod+)>
-<!-- pcw<n> attributes:
- Presentational attributes to control the width
- of the "pseudo-table" columns used to output
- groups of productions. -->
-<!ATTLIST prodgroup
- %common.att;
- pcw1 CDATA #IMPLIED
- pcw2 CDATA #IMPLIED
- pcw3 CDATA #IMPLIED
- pcw4 CDATA #IMPLIED
- pcw5 CDATA #IMPLIED
->
-
-<!ELEMENT prod (lhs, (rhs, (com|wfc|vc)*)+)>
-<!-- ID attribute:
- The production must have an ID so that cross-references
- (specref) and mentions of nonterminals (nt) can link to
- it. -->
-<!ATTLIST prod
- %common-idreq.att;>
-
-<!ELEMENT lhs (#PCDATA)>
-<!ATTLIST lhs %common.att;>
-
-<!ELEMENT rhs (#PCDATA|nt|xnt|com)*>
-<!ATTLIST rhs %common.att;>
-
-<!-- nt and xnt (defined in "Phrase-level elements" below) -->
-
-<!--
-#1997-11-28: maler: Added loc and bibref to com content.
--->
-
-<!ELEMENT com (#PCDATA|loc|bibref)*>
-<!ATTLIST com %common.att;>
-
-<!-- wfc: Should generate the head of the wfcnote pointed to -->
-<!ELEMENT wfc EMPTY>
-<!-- def attribute:
- Each well formedness tagline in a production must link to the
- wfcnote that defines it. -->
-<!ATTLIST wfc
- %def-req.att;
- %common.att;>
-
-<!-- vc: Should generate the head of the vcnote pointed to -->
-<!ELEMENT vc EMPTY>
-<!-- def attribute:
- Each validity tagline in a production must link to the vcnote
- that defines it. -->
-<!ATTLIST vc
- %def-req.att;
- %common.att;>
-
-<!--
-#1998-03-23: maler: Added xml:space attribute.
--->
-
-<!-- bnf: Un-marked-up production -->
-<!ELEMENT bnf (%eg.pcd.mix;)*>
-<!ATTLIST bnf
- %common.att;
- %xmlspace.att;>
-
-<!--
-#1997-10-16: maler: Added table mechanism.
-#1997-11-28: maler: Added non-null system ID to entity declaration.
-# Added HTML table module.
-#1997-12-29: maler: IGNOREd SGML Open table model.
-#1998-03-10: maler: Removed SGML Open table model.
-# Merged html-tbl.mod file into main file.
-# Added %common.att; to all HTML table elements.
--->
-
-<!-- TR and TD attributes:
- Alignment attributes. No default. -->
-<!ENTITY % trtd.att
- "align (left
- |center
- |right) #IMPLIED
- valign (top
- |middle
- |bottom) #IMPLIED">
-
-<!ELEMENT htable (htbody+)>
-<!ATTLIST htable
- border CDATA "0"
- cellpadding CDATA "0"
- align (left
- |center
- |right) "left">
-
-<!ELEMENT htbody (tr+)>
-<!ATTLIST htbody %common.att;>
-
-<!ELEMENT tr (td+)>
-<!ATTLIST tr
- %common.att;
- %trtd.att;>
-
-<!ELEMENT td (%p.pcd.mix;)*>
-<!ATTLIST td
- %common.att;
- %trtd.att;
- bgcolor CDATA #IMPLIED
- rowspan CDATA "1"
- colspan CDATA "1">
-
-<!-- ............................................................... -->
-<!-- Phrase-level elements ......................................... -->
-
-<!-- bibref: Should generate, in square brackets, "key" on bibl -->
-<!ELEMENT bibref EMPTY>
-<!-- ref attribute:
- A bibliography reference must link to the bibl element that
- describes the resource. -->
-<!ATTLIST bibref
- %common.att;
- %ref-req.att;>
-
-<!ELEMENT code (%tech.pcd.mix;)*>
-<!ATTLIST code %common.att;>
-
-<!--
-#1998-03-10: maler: Declared ednote and related elements.
--->
-
-<!ELEMENT ednote (name?, date?, edtext)>
-<!ATTLIST ednote %common.att;>
-
-<!ELEMENT date (#PCDATA)>
-<!ATTLIST date %common.att;>
-
-<!ELEMENT edtext (#PCDATA)>
-<!ATTLIST edtext %common.att;>
-
-<!ELEMENT emph (#PCDATA)>
-<!ATTLIST emph %common.att;>
-
-<!-- footnote: Both footnote content and call to footnote -->
-<!ELEMENT footnote (%obj.mix;)+>
-<!ATTLIST footnote %common.att;>
-
-<!ELEMENT kw (%tech.pcd.mix;)*>
-<!ATTLIST kw %common.att;>
-
-<!ELEMENT loc (#PCDATA)>
-<!-- HREF attribute:
- The purpose of a loc element is to function as a hypertext
- link to a resource. (Ideally, the content of loc will also
- mention the URI of the resource, so that readers of the
- printed version will be able to locate the resource.) -->
-<!ATTLIST loc
- %common.att;
- %href-req.att;>
-
-<!ELEMENT nt (#PCDATA)>
-<!-- def attribute:
- The nonterminal must link to the production that defines
- it. -->
-<!ATTLIST nt
- %common.att;
- %def-req.att;>
-
-<!--
-#1998-03-10: maler: Declared quote.
--->
-
-<!-- quote: Scare quotes and other purely presentational quotes -->
-<!ELEMENT quote (%p.pcd.mix;)*>
-<!ATTLIST quote %common.att;>
-
-<!-- specref: Should generate italic "[n.n], Section Title" for
- div, "n" for numbered item, or "[n]" for production -->
-<!ELEMENT specref EMPTY>
-<!-- ref attribute:
- The purpose of a specref element is to link to a div, item
- in an olist, or production in the current spec. -->
-<!ATTLIST specref
- %common.att;
- %ref-req.att;>
-
-<!ELEMENT term (#PCDATA)>
-<!ATTLIST term %common.att;>
-
-<!ELEMENT termdef (%termdef.pcd.mix;|%termdef.mix;)*>
-<!-- ID attribute:
- A term definition must have an ID so that it can be linked
- to from termref elements. -->
-<!-- term attribute:
- The canonical form of the term or phrase being defined must
- appear in this attribute, even if the term or phrase also
- appears in the element content in identical form (e.g., in
- the term element). -->
-<!ATTLIST termdef
- %common-idreq.att;
- term CDATA #REQUIRED>
-
-<!ELEMENT termref (#PCDATA)>
-<!-- ref attribute:
- A term reference must link to the termdef element that
- defines the term. -->
-<!ATTLIST termref
- %common.att;
- %def-req.att;>
-
-<!ELEMENT titleref (#PCDATA)>
-<!-- HREF attribute:
- A title reference can optionally function as a hypertext
- link to the resource with this title. -->
-<!ATTLIST titleref
- %common.att;
- %href.att;>
-
-<!ELEMENT xnt (#PCDATA)>
-<!-- HREF attribute:
- The nonterminal must hyperlink to a resource that serves
- to define it (e.g., a production in a related XML
- specification). -->
-<!ATTLIST xnt
- %common.att;
- %href-req.att;>
-
-<!--
-#1997-12-29: maler: Declared xspecref.
--->
-
-<!ELEMENT xspecref (#PCDATA)>
-<!-- HREF attribute:
- The spec reference must hyperlink to the resource to
- cross-refer to (e.g., a section in a related XML
- specification). -->
-<!ATTLIST xspecref
- %common.att;
- %href-req.att;>
-
-<!ELEMENT xtermref (#PCDATA)>
-<!-- HREF attribute:
- The term reference must hyperlink to the resource that
- serves to define the term (e.g., a term definition in
- a related XML specification). -->
-<!ATTLIST xtermref
- %common.att;
- %href-req.att;>
-
-<!-- ............................................................... -->
-<!-- Unused elements for ADEPT ..................................... -->
-
-<!--
-#1997-09-30: maler: Added unusued elements.
-#1997-10-14: maler: Fixed div to move nested div to the mixture.
--->
-
-<!-- The following elements are purposely declared but never
- referenced. Declaring them allows them to be pasted from
- an HTML document into a document using this DTD in ADEPT.
- The ATD Context Transformation mechanism will try to convert
- them to the appropriate element for this DTD. While this
- conversion will not work for all fragments, it does allow
- many cases to work reasonably well. -->
-
-<!ELEMENT div
- (head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)>
-<!ELEMENT h1 (%head.pcd.mix;|em|a)*>
-<!ELEMENT h2 (%head.pcd.mix;|em|a)*>
-<!ELEMENT h3 (%head.pcd.mix;|em|a)*>
-<!ELEMENT h4 (%head.pcd.mix;|em|a)*>
-<!ELEMENT h5 (%head.pcd.mix;|em|a)*>
-<!ELEMENT h6 (%head.pcd.mix;|em|a)*>
-<!ELEMENT pre (%eg.pcd.mix;|em)*>
-<!ELEMENT ul (item|li)*>
-<!ELEMENT ol (item|li)*>
-<!ELEMENT li (#PCDATA|%obj.mix;)*>
-<!ELEMENT em (#PCDATA)>
-<!ELEMENT a (#PCDATA)>
-
-<!-- ............................................................... -->
-<!-- Change history ................................................ -->
-
-<!--
-#1997-08-18: maler
-#- Did a major revision.
-#1997-09-10: maler
-#- Updated FPI.
-#- Removed namekey element and put key attribute on name element.
-#- Made statusp element and supporting entities.
-#- Added slist element with sitem+ content.
-#- Required head on scrap and added new bnf subelement.
-#- Added an xnt element and allowed it and nt in regular text and rhs.
-#- Removed the ntref element.
-#- Added back the com element to the content of rhs.
-#- Added a key attribute to bibl.
-#- Removed the ident element.
-#- Added a term element to be used inside termdef.
-#- Added an xtermref element parallel to termref.
-#- Beefed up DTD comments.
-#1997-09-12: maler
-#- Allowed term element in general text.
-#- Changed bibref to EMPTY.
-#- Added ref.class to termdef.pcd.mix.
-#1997-09-14: maler
-#- Changed main attribute of xtermref from def to href.
-#- Added termdef.class to label contents.
-#1997-09-30: maler
-#- Added character entity module and added new entities.
-#- Removed p from appearing directly in self; created %p.mix;.
-#- Added inform-div (non-normative division) element.
-#- Fixed xtermref comment to mention HREF, not ref.
-#- Extended orglist model to allow optional affiliation.
-#- Modified author to make affiliation optional.
-#- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;.
-#- Added %note.class; and %illus.class; to %termdef.pcd.mix;.
-#- Added unused HTML elements.
-#- Put empty system ID next to public ID in entity declarations.
-#1997-10-14: maler
-#- Fixed "unused" div content model to move nested div to mixture.
-#1997-10-16: maler
-#- Added SGML Open Exchange tables.
-#1997-11-28: maler
-#- Added support for prodgroup and its attributes.
-#- Added support for HTML tables.
-#- Added loc and bibref to content of com.
-#- Added loc to general p content models.
-#- Allowed p as alternative to statusp in status.
-#- Added non-null system IDs to external parameter entity declarations.
-#- (Modified the SGML Open table module to make it XML-compliant.)
-#- (Modified the character entity module.)
-#1997-12-29: maler
-#- Moved #PCDATA occurrences to come before GIs in content models.
-#- Removed use of the SGML Open table module.
-#- Added xspecref element.
-#- Ensured that all FPIs contain 4-digit year.
-#- (Modified the character entity module.)
-#1997-03-10: maler
-#- Merged the character entity and table modules into the main file.
-#- Added ldquo and rdquo entities.
-#- Added common attributes to prodgroup.
-#- Made the email element in header optional.
-#- Removed reference to the SGML Open table model.
-#- Added ednote element.
-#- Added quote element.
-#- Updated XLink usage to reflect 3 March 1998 WD.
-#- Added "local" entities to the class entities for customization.
-#- Parameterized several content models to allow for customization.
-#1997-03-23: maler
-#- Cleaned up some comments and removed some others.
-#- Added xml:space semi-common attribute to eg and bnf elements.
-#- Added show and embed attributes on all the uses of href.
-#- Added %common.att; to all HTML table elements.
-#- Added a real URI to the "typical invocation" comment.
--->
-
-<!-- ............................................................... -->
-<!-- End of XML specification DTD .................................. -->
-<!-- ............................................................... -->
+<!-- ............................................................... -->
+<!-- XML specification DTD ......................................... -->
+<!-- ............................................................... -->
+
+<!--
+TYPICAL INVOCATION:
+# <!DOCTYPE spec PUBLIC
+# "-//W3C//DTD Specification::19980323//EN"
+# "http://www.w3.org/XML/Group/DTD/xmlspec.dtd">
+
+PURPOSE:
+ This DTD was developed for use with the XML family of W3C
+ specifications. It is an XML-compliant DTD based in part on
+ the TEI Lite and Sweb DTDs.
+
+DEPENDENCIES:
+ None.
+
+CHANGE HISTORY:
+ The list of changes is at the end of the DTD.
+
+ For all details, see the design report at:
+
+ <http://www.w3.org/XML/Group/DTD/xmlspec-report.htm>
+
+ The "typical invocation" FPI always gets updated to reflect the
+ date of the most recent changes.
+
+ Search this file for "#" in the first column to see change history
+ comments.
+
+MAINTAINER:
+ Eve Maler
+ ArborText Inc.
+ elm@arbortext.com
+ voice: +1 781 270 5750
+ fax: +1 781 273 3760
+-->
+
+<!-- ............................................................... -->
+<!-- Entities for characters and symbols ........................... -->
+
+<!--
+#1998-03-10: maler: Added “ and ”.
+# Used 8879:1986-compatible decimal character
+# references.
+# Merged charent.mod file back into main file.
+-->
+
+<!ENTITY lt "&#60;">
+<!ENTITY gt ">">
+<!ENTITY amp "&#38;">
+<!ENTITY apos "'">
+<!ENTITY quot """>
+<!ENTITY mdash "--">
+<!ENTITY nbsp " ">
+<!ENTITY ldquo "#x201C;">
+<!ENTITY rdquo "#x201D;">
+
+<!-- ............................................................... -->
+<!-- Entities for classes of standalone elements ................... -->
+
+<!--
+#1997-10-16: maler: Added table to %illus.class;.
+#1997-11-28: maler: Added htable to %illus.class;.
+#1997-12-29: maler: IGNOREd table.
+#1998-03-10: maler: Removed SGML Open-specific %illus.class;.
+# Added "local" entities for customization.
+-->
+
+<!ENTITY % local.p.class "">
+<!ENTITY % p.class "p
+ %local.p.class;">
+
+<!ENTITY % local.statusp.class "">
+<!ENTITY % statusp.class "statusp
+ %local.statusp.class;">
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class "ulist|olist|slist|glist
+ %local.list.class;">
+
+<!ENTITY % local.speclist.class "">
+<!ENTITY % speclist.class "orglist|blist
+ %local.speclist.class;">
+
+<!ENTITY % local.note.class "">
+<!ENTITY % note.class "note|wfcnote|vcnote
+ %local.note.class;">
+
+<!ENTITY % local.illus.class "">
+<!ENTITY % illus.class "eg|graphic|scrap|htable
+ %local.illus.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for classes of phrase-level elements ................. -->
+
+<!--
+#1997-12-29: maler: Added xspecref to %ref.class;.
+#1998-03-10: maler: Added %ednote.class;.
+# Added "local" entities for customization.
+-->
+
+<!ENTITY % local.annot.class "">
+<!ENTITY % annot.class "footnote
+ %local.annot.class;">
+
+<!ENTITY % local.termdef.class "">
+<!ENTITY % termdef.class "termdef|term
+ %local.termdef.class;">
+
+<!ENTITY % local.emph.class "">
+<!ENTITY % emph.class "emph|quote
+ %local.emph.class;">
+
+<!ENTITY % local.ref.class "">
+<!ENTITY % ref.class "bibref|specref|termref|titleref
+ |xspecref|xtermref
+ %local.ref.class;">
+
+<!ENTITY % local.loc.class "">
+<!ENTITY % loc.class "loc
+ %local.loc.class;">
+
+<!ENTITY % local.tech.class "">
+<!ENTITY % tech.class "kw|nt|xnt|code
+ %local.tech.class;">
+
+<!ENTITY % local.ednote.class "">
+<!ENTITY % ednote.class "ednote
+ %local.ednote.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for mixtures of standalone elements .................. -->
+
+<!--
+#1997-09-30: maler: Created %p.mix; to eliminate p from self.
+#1997-09-30: maler: Added %speclist.class; to %obj.mix; and %p.mix;.
+#1997-09-30: maler: Added %note.class; to %obj.mix; and %p.mix;.
+#1997-10-16: maler: Created %entry.mix;. Note that some elements
+# left out here are still allowed in termdef,
+# which entry can contain through %p.pcd.mix;.
+#1997-11-28: maler: Added %p.class; to %statusobj.mix;.
+#1998-03-10: maler: Added %ednote.class; to all mixtures, except
+# %p.mix; and %statusobj.mix;, because paragraphs
+# and status paragraphs will contain ednote
+# through %p.pcd.mix;.
+#1998-03-123: maler: Added %termdef.mix; (broken out from
+# %termdef.pcd.mix;).
+-->
+
+<!ENTITY % div.mix
+ "%p.class;|%list.class;|%speclist.class;|%note.class;
+ |%illus.class;|%ednote.class;">
+<!ENTITY % obj.mix
+ "%p.class;|%list.class;|%speclist.class;|%note.class;
+ |%illus.class;|%ednote.class;">
+<!ENTITY % p.mix
+ "%list.class;|%speclist.class;|%note.class;|%illus.class;">
+<!ENTITY % entry.mix
+ "%list.class;|note|eg|graphic|%ednote.class;">
+<!ENTITY % statusobj.mix
+ "%p.class;|%statusp.class;|%list.class;">
+<!ENTITY % hdr.mix
+ "%p.class;|%list.class;|%ednote.class;">
+<!ENTITY % termdef.mix
+ "%note.class;|%illus.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for mixtures of #PCDATA and phrase-level elements .... -->
+
+<!-- Note that %termdef.pcd.mix contains %note.class;
+ and %illus.class;, considered standalone elements. -->
+
+<!--
+#1997-09-30: maler: Added scrap and %note.class; to %termdef.pcd.mix;.
+#1997-11-28: maler: Added %loc.class; to %p.pcd.mix;.
+#1998-03-10: maler: Added %ednote.class; to all mixtures.
+#1998-03-23: maler: Moved some %termdef.pcd.mix; stuff out to
+# %termdef.mix;.
+-->
+
+<!ENTITY % p.pcd.mix
+ "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
+ |%ref.class;|%tech.class;|%loc.class;|%ednote.class;">
+<!ENTITY % statusp.pcd.mix
+ "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
+ |%ref.class;|%tech.class;|%loc.class;|%ednote.class;">
+<!ENTITY % head.pcd.mix
+ "#PCDATA|%annot.class;|%emph.class;|%tech.class;|%ednote.class;">
+<!ENTITY % label.pcd.mix
+ "#PCDATA|%annot.class;|%termdef.class;|%emph.class;|%tech.class;
+ |%ednote.class;">
+<!ENTITY % eg.pcd.mix
+ "#PCDATA|%annot.class;|%emph.class;|%ednote.class;">
+<!ENTITY % termdef.pcd.mix
+ "#PCDATA|term|%emph.class;|%ref.class;|%tech.class;
+ |%ednote.class;">
+<!ENTITY % bibl.pcd.mix
+ "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;">
+<!ENTITY % tech.pcd.mix
+ "#PCDATA|%ednote.class;">
+<!ENTITY % loc.pcd.mix
+ "#PCDATA|%loc.class;|%ednote.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for customizable content models ...................... -->
+
+<!--
+#1998-03-10: maler: Added customization entities.
+-->
+
+<!ENTITY % spec.mdl
+ "header, front?, body, back?">
+
+<!ENTITY % header.mdl
+ "title, subtitle?, version, w3c-designation, w3c-doctype,
+ pubdate, notice*, publoc, prevlocs?, latestloc?, authlist,
+ status, abstract, pubstmt?, sourcedesc?, langusage,
+ revisiondesc">
+
+<!ENTITY % pubdate.mdl
+ "day?, month, year">
+
+<!-- ............................................................... -->
+<!-- Entities for common attributes ................................ -->
+
+<!-- key attribute:
+ Optionally provides a sorting or indexing key, for cases when
+ the element content is inappropriate for this purpose. -->
+<!ENTITY % key.att
+ 'key CDATA #IMPLIED'>
+
+<!-- def attribute:
+ Points to the element where the relevant definition can be
+ found, using the IDREF mechanism. %def.att; is for optional
+ def attributes, and %def-req.att; is for required def
+ attributes. -->
+<!ENTITY % def.att
+ 'def IDREF #IMPLIED'>
+<!ENTITY % def-req.att
+ 'def IDREF #REQUIRED'>
+
+<!-- ref attribute:
+ Points to the element where more information can be found,
+ using the IDREF mechanism. %ref.att; is for optional
+ ref attributes, and %ref-req.att; is for required ref
+ attributes. -->
+<!ENTITY % ref.att
+ 'ref IDREF #IMPLIED'>
+<!ENTITY % ref-req.att
+ 'ref IDREF #REQUIRED'>
+
+<!--
+#1998-03-23: maler: Added show and actuate attributes to href.
+# Added semi-common xml:space attribute.
+-->
+
+<!-- HREF and source attributes:
+ Points to the element where more information or source data
+ can be found, using the URL (XLL simple link) mechanism.
+ For some purposes, is associated with additional XLL
+ attributes. %href.att; is for optional HREF attributes,
+ and %href-req.att; is for required HREF attributes.
+ %source-req.att; is for the source attribute, which
+ is always required. -->
+<!--
+#1998-5-23: brownell: Turned "xml:link" into "xml-link" to
+# match usage in the XML spec, so that
+# validation errors aren't reported.
+-->
+<!ENTITY % href.att
+ 'xml-link CDATA #FIXED "simple"
+ href CDATA #IMPLIED
+ show CDATA #FIXED "embed"
+ actuate CDATA #FIXED "auto"'>
+
+<!ENTITY % href-req.att
+ 'xml-link CDATA #FIXED "simple"
+ href CDATA #REQUIRED
+ show CDATA #FIXED "embed"
+ actuate CDATA #FIXED "auto"'>
+
+<!ENTITY % source-req.att
+ 'xml-link CDATA #FIXED "simple"
+ xml:attributes NMTOKENS #FIXED "href source"
+ source CDATA #REQUIRED
+ show CDATA #FIXED "embed"
+ actuate CDATA #FIXED "auto"'>
+
+<!-- xml:space attribute:
+ Indicates that the element contains white space
+ that the formatter or other application should retain,
+ as appropriate to its function. -->
+<!ENTITY % xmlspace.att
+ 'xml:space (default
+ |preserve) #FIXED "preserve"'>
+
+<!-- Common attributes:
+ Every element has an ID attribute (sometimes required,
+ but usually optional) for links, and a Role attribute
+ for extending the useful life of the DTD by allowing
+ authors to make subclasses for any element. %common.att;
+ is for common attributes where the ID is optional, and
+ %common-idreq.att; is for common attributes where the
+ ID is required. -->
+<!ENTITY % common.att
+ 'id ID #IMPLIED
+ role NMTOKEN #IMPLIED'>
+<!ENTITY % common-idreq.att
+ 'id ID #REQUIRED
+ role NMTOKEN #IMPLIED'>
+
+<!-- ............................................................... -->
+<!-- Common elements ............................................... -->
+
+<!-- head: Title on divisions, productions, and the like -->
+<!ELEMENT head (%head.pcd.mix;)*>
+<!ATTLIST head %common.att;>
+
+<!-- ............................................................... -->
+<!-- Major specification structure ................................. -->
+
+<!--
+#1998-03-10: maler: Made spec content model easily customizable.
+-->
+
+<!ELEMENT spec (%spec.mdl;)>
+<!ATTLIST spec %common.att;>
+
+<!ELEMENT front (div1+)>
+<!ATTLIST front %common.att;>
+
+<!ELEMENT body (div1+)>
+<!ATTLIST body %common.att;>
+
+<!--
+#1997-09-30: maler: Added inform-div1 to back content.
+-->
+
+<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)>
+<!ATTLIST back %common.att;>
+
+<!ELEMENT div1 (head, (%div.mix;)*, div2*)>
+<!ATTLIST div1 %common.att;>
+
+<!--
+#1997-09-30: maler: Added inform-div1 declarations.
+-->
+
+<!-- inform-div1: Non-normative division in back matter -->
+<!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)>
+<!ATTLIST inform-div1 %common.att;>
+
+<!ELEMENT div2 (head, (%div.mix;)*, div3*)>
+<!ATTLIST div2 %common.att;>
+
+<!ELEMENT div3 (head, (%div.mix;)*, div4*)>
+<!ATTLIST div3 %common.att;>
+
+<!ELEMENT div4 (head, (%div.mix;)*)>
+<!ATTLIST div4 %common.att;>
+
+<!-- Specification header .......... -->
+
+<!--
+#1998-03-10: maler: Made header content model easily customizable.
+-->
+
+<!ELEMENT header (%header.mdl;)>
+<!ATTLIST header %common.att;>
+
+<!-- Example of title: "Extensible Cheese Language (XCL)" -->
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title %common.att;>
+
+<!-- Example of subtitle: "A Cheesy Specification" -->
+<!ELEMENT subtitle (#PCDATA)>
+<!ATTLIST subtitle %common.att;>
+
+<!-- Example of version: "Version 666.0" -->
+<!ELEMENT version (#PCDATA)>
+<!ATTLIST version %common.att;>
+
+<!-- Example of w3c-designation: "WD-xcl-19991231" -->
+<!ELEMENT w3c-designation (#PCDATA)>
+<!ATTLIST w3c-designation %common.att;>
+
+<!-- Example of w3c-doctype: "World Wide Web Consortium Working
+ Draft" -->
+<!ELEMENT w3c-doctype (#PCDATA)>
+<!ATTLIST w3c-doctype %common.att;>
+
+<!--
+#1998-03-10: maler: Made pubdate content model easily customizable.
+-->
+
+<!ELEMENT pubdate (%pubdate.mdl;)>
+<!ATTLIST pubdate %common.att;>
+
+<!ELEMENT day (#PCDATA)>
+<!ATTLIST day %common.att;>
+
+<!ELEMENT month (#PCDATA)>
+<!ATTLIST month %common.att;>
+
+<!ELEMENT year (#PCDATA)>
+<!ATTLIST year %common.att;>
+
+<!-- Example of notice: "This draft is for public comment..." -->
+<!ELEMENT notice (%hdr.mix;)+>
+<!ATTLIST notice %common.att;>
+
+<!ELEMENT publoc (loc+)>
+<!ATTLIST publoc %common.att;>
+
+<!ELEMENT prevlocs (loc+)>
+<!ATTLIST prevlocs %common.att;>
+
+<!ELEMENT latestloc (loc+)>
+<!ATTLIST latestloc %common.att;>
+
+<!-- loc (defined in "Phrase-level elements" below) -->
+
+<!ELEMENT authlist (author+)>
+<!ATTLIST authlist %common.att;>
+
+<!--
+#1997-09-30: maler: Made affiliation optional.
+#1998-03-10: maler: Made email optional.
+-->
+
+<!ELEMENT author (name, affiliation?, email?)>
+<!ATTLIST author %common.att;>
+
+<!ELEMENT name (#PCDATA)>
+<!ATTLIST name
+ %common.att;
+ %key.att;>
+
+<!ELEMENT affiliation (#PCDATA)>
+<!ATTLIST affiliation %common.att;>
+
+<!ELEMENT email (#PCDATA)>
+<!-- HREF attribute:
+ email functions as a hypertext reference through this
+ required attribute. Typically the reference would use
+ the mailto: scheme. -->
+<!ATTLIST email
+ %common.att;
+ %href-req.att;>
+
+<!-- The status element now contains both statusp and p, and
+ the latter now allows loc. Use p; statusp will be removed
+ eventually. -->
+<!ELEMENT status (%statusobj.mix;)+>
+<!ATTLIST status %common.att;>
+
+<!ELEMENT abstract (%hdr.mix;)*>
+<!ATTLIST abstract %common.att;>
+
+<!ELEMENT pubstmt (%hdr.mix;)+>
+<!ATTLIST pubstmt %common.att;>
+
+<!ELEMENT sourcedesc (%hdr.mix;)+>
+<!ATTLIST sourcedesc %common.att;>
+
+<!ELEMENT langusage (language+)>
+<!ATTLIST langusage %common.att;>
+
+<!ELEMENT language (#PCDATA)>
+<!ATTLIST language %common.att;>
+
+<!ELEMENT revisiondesc (%hdr.mix;)+>
+<!ATTLIST revisiondesc %common.att;>
+
+<!-- ............................................................... -->
+<!-- Standalone elements ........................................... -->
+
+<!-- Paragraphs .................... -->
+
+<!--
+#1997-09-30: maler: Changed from %obj.mix; to %p.mix;.
+#1997-12-29: maler: Changed order of %p.mix; and %p.pcd.mix; references.
+#1997-12-29: maler: Changed order of %statusobj.mix; and %statusp.pcd.mix;
+# references.
+-->
+
+<!ELEMENT p (%p.pcd.mix;|%p.mix;)*>
+<!ATTLIST p %common.att;>
+
+<!-- statusp: Special paragraph that allows loc inside it (note that
+ p now also allows loc) -->
+<!ELEMENT statusp (%statusp.pcd.mix;|%statusobj.mix;)*>
+<!ATTLIST statusp %common.att;>
+
+<!-- Lists ......................... -->
+
+<!ELEMENT ulist (item+)>
+<!-- spacing attribute:
+ Use "normal" to get normal vertical spacing for items;
+ use "compact" to get less spacing. The default is dependent
+ on the stylesheet. -->
+<!ATTLIST ulist
+ %common.att;
+ spacing (normal|compact) #IMPLIED>
+
+<!ELEMENT olist (item+)>
+<!-- spacing attribute:
+ Use "normal" to get normal vertical spacing for items;
+ use "compact" to get less spacing. The default is dependent
+ on the stylesheet. -->
+<!ATTLIST olist
+ %common.att;
+ spacing (normal|compact) #IMPLIED>
+
+<!ELEMENT item (%obj.mix;)+>
+<!ATTLIST item %common.att;>
+
+<!ELEMENT slist (sitem+)>
+<!ATTLIST slist %common.att;>
+
+<!ELEMENT sitem (%p.pcd.mix;)*>
+<!ATTLIST sitem %common.att;>
+
+<!ELEMENT glist (gitem+)>
+<!ATTLIST glist %common.att;>
+
+<!ELEMENT gitem (label, def)>
+<!ATTLIST gitem %common.att;>
+
+<!ELEMENT label (%label.pcd.mix;)*>
+<!ATTLIST label %common.att;>
+
+<!ELEMENT def (%obj.mix;)*>
+<!ATTLIST def %common.att;>
+
+<!-- Special lists ................. -->
+
+<!ELEMENT blist (bibl+)>
+<!ATTLIST blist %common.att;>
+
+<!ELEMENT bibl (%bibl.pcd.mix;)*>
+<!-- HREF attribute:
+ bibl optionally functions as a hypertext reference to the
+ referred-to resource through this attribute. -->
+<!ATTLIST bibl
+ %common.att;
+ %href.att;
+ %key.att;>
+
+<!ELEMENT orglist (member+)>
+<!ATTLIST orglist %common.att;>
+
+<!--
+#1997-09-30: maler: Added optional affiliation.
+-->
+
+<!ELEMENT member (name, affiliation?, role?)>
+<!ATTLIST member %common.att;>
+
+<!-- name (defined in "Specification header" above) -->
+<!-- affiliation (defined in "Specification header" above) -->
+
+<!ELEMENT role (#PCDATA)>
+<!ATTLIST role %common.att;>
+
+<!-- Notes ......................... -->
+
+<!ELEMENT note (%obj.mix;)+>
+<!ATTLIST note %common.att;>
+
+<!ELEMENT wfcnote (head, (%obj.mix;)+)>
+<!-- ID attribute:
+ wfcnote must have an ID so that it can be pointed to
+ from a wfc element in a production. -->
+<!ATTLIST wfcnote
+ %common-idreq.att;>
+
+<!ELEMENT vcnote (head, (%obj.mix;)+)>
+<!-- ID attribute:
+ vcnote must have an ID so that it can be pointed to
+ from a vc element in a production. -->
+<!ATTLIST vcnote
+ %common-idreq.att;>
+
+<!-- Illustrations ................. -->
+
+<!--
+#1998-03-23: maler: Added xml:space attribute.
+-->
+
+<!ELEMENT eg (%eg.pcd.mix;)*>
+<!ATTLIST eg
+ %common.att;
+ %xmlspace.att;>
+
+<!ELEMENT graphic EMPTY>
+<!-- source attribute:
+ The graphic data must reside at the location pointed to.
+ This is a hypertext reference, but for practical purposes,
+ for now it should just be a pathname. -->
+<!ATTLIST graphic
+ %common.att;
+ %source-req.att;
+ alt CDATA #IMPLIED>
+
+<!--
+#1997-11-28: maler: Added prodgroup to scrap and defined it.
+-->
+
+<!ELEMENT scrap (head, (prodgroup+ | prod+ | bnf))>
+<!-- lang attribute:
+ The scrap can link to a description of the language used,
+ found in a language element in the header. -->
+<!ATTLIST scrap
+ %common.att;
+ lang IDREF #IMPLIED>
+
+<!ELEMENT prodgroup (prod+)>
+<!-- pcw<n> attributes:
+ Presentational attributes to control the width
+ of the "pseudo-table" columns used to output
+ groups of productions. -->
+<!ATTLIST prodgroup
+ %common.att;
+ pcw1 CDATA #IMPLIED
+ pcw2 CDATA #IMPLIED
+ pcw3 CDATA #IMPLIED
+ pcw4 CDATA #IMPLIED
+ pcw5 CDATA #IMPLIED
+>
+
+<!ELEMENT prod (lhs, (rhs, (com|wfc|vc)*)+)>
+<!-- ID attribute:
+ The production must have an ID so that cross-references
+ (specref) and mentions of nonterminals (nt) can link to
+ it. -->
+<!ATTLIST prod
+ %common-idreq.att;>
+
+<!ELEMENT lhs (#PCDATA)>
+<!ATTLIST lhs %common.att;>
+
+<!ELEMENT rhs (#PCDATA|nt|xnt|com)*>
+<!ATTLIST rhs %common.att;>
+
+<!-- nt and xnt (defined in "Phrase-level elements" below) -->
+
+<!--
+#1997-11-28: maler: Added loc and bibref to com content.
+-->
+
+<!ELEMENT com (#PCDATA|loc|bibref)*>
+<!ATTLIST com %common.att;>
+
+<!-- wfc: Should generate the head of the wfcnote pointed to -->
+<!ELEMENT wfc EMPTY>
+<!-- def attribute:
+ Each well formedness tagline in a production must link to the
+ wfcnote that defines it. -->
+<!ATTLIST wfc
+ %def-req.att;
+ %common.att;>
+
+<!-- vc: Should generate the head of the vcnote pointed to -->
+<!ELEMENT vc EMPTY>
+<!-- def attribute:
+ Each validity tagline in a production must link to the vcnote
+ that defines it. -->
+<!ATTLIST vc
+ %def-req.att;
+ %common.att;>
+
+<!--
+#1998-03-23: maler: Added xml:space attribute.
+-->
+
+<!-- bnf: Un-marked-up production -->
+<!ELEMENT bnf (%eg.pcd.mix;)*>
+<!ATTLIST bnf
+ %common.att;
+ %xmlspace.att;>
+
+<!--
+#1997-10-16: maler: Added table mechanism.
+#1997-11-28: maler: Added non-null system ID to entity declaration.
+# Added HTML table module.
+#1997-12-29: maler: IGNOREd SGML Open table model.
+#1998-03-10: maler: Removed SGML Open table model.
+# Merged html-tbl.mod file into main file.
+# Added %common.att; to all HTML table elements.
+-->
+
+<!-- TR and TD attributes:
+ Alignment attributes. No default. -->
+<!ENTITY % trtd.att
+ "align (left
+ |center
+ |right) #IMPLIED
+ valign (top
+ |middle
+ |bottom) #IMPLIED">
+
+<!ELEMENT htable (htbody+)>
+<!ATTLIST htable
+ border CDATA "0"
+ cellpadding CDATA "0"
+ align (left
+ |center
+ |right) "left">
+
+<!ELEMENT htbody (tr+)>
+<!ATTLIST htbody %common.att;>
+
+<!ELEMENT tr (td+)>
+<!ATTLIST tr
+ %common.att;
+ %trtd.att;>
+
+<!ELEMENT td (%p.pcd.mix;)*>
+<!ATTLIST td
+ %common.att;
+ %trtd.att;
+ bgcolor CDATA #IMPLIED
+ rowspan CDATA "1"
+ colspan CDATA "1">
+
+<!-- ............................................................... -->
+<!-- Phrase-level elements ......................................... -->
+
+<!-- bibref: Should generate, in square brackets, "key" on bibl -->
+<!ELEMENT bibref EMPTY>
+<!-- ref attribute:
+ A bibliography reference must link to the bibl element that
+ describes the resource. -->
+<!ATTLIST bibref
+ %common.att;
+ %ref-req.att;>
+
+<!ELEMENT code (%tech.pcd.mix;)*>
+<!ATTLIST code %common.att;>
+
+<!--
+#1998-03-10: maler: Declared ednote and related elements.
+-->
+
+<!ELEMENT ednote (name?, date?, edtext)>
+<!ATTLIST ednote %common.att;>
+
+<!ELEMENT date (#PCDATA)>
+<!ATTLIST date %common.att;>
+
+<!ELEMENT edtext (#PCDATA)>
+<!ATTLIST edtext %common.att;>
+
+<!ELEMENT emph (#PCDATA)>
+<!ATTLIST emph %common.att;>
+
+<!-- footnote: Both footnote content and call to footnote -->
+<!ELEMENT footnote (%obj.mix;)+>
+<!ATTLIST footnote %common.att;>
+
+<!ELEMENT kw (%tech.pcd.mix;)*>
+<!ATTLIST kw %common.att;>
+
+<!ELEMENT loc (#PCDATA)>
+<!-- HREF attribute:
+ The purpose of a loc element is to function as a hypertext
+ link to a resource. (Ideally, the content of loc will also
+ mention the URI of the resource, so that readers of the
+ printed version will be able to locate the resource.) -->
+<!ATTLIST loc
+ %common.att;
+ %href-req.att;>
+
+<!ELEMENT nt (#PCDATA)>
+<!-- def attribute:
+ The nonterminal must link to the production that defines
+ it. -->
+<!ATTLIST nt
+ %common.att;
+ %def-req.att;>
+
+<!--
+#1998-03-10: maler: Declared quote.
+-->
+
+<!-- quote: Scare quotes and other purely presentational quotes -->
+<!ELEMENT quote (%p.pcd.mix;)*>
+<!ATTLIST quote %common.att;>
+
+<!-- specref: Should generate italic "[n.n], Section Title" for
+ div, "n" for numbered item, or "[n]" for production -->
+<!ELEMENT specref EMPTY>
+<!-- ref attribute:
+ The purpose of a specref element is to link to a div, item
+ in an olist, or production in the current spec. -->
+<!ATTLIST specref
+ %common.att;
+ %ref-req.att;>
+
+<!ELEMENT term (#PCDATA)>
+<!ATTLIST term %common.att;>
+
+<!ELEMENT termdef (%termdef.pcd.mix;|%termdef.mix;)*>
+<!-- ID attribute:
+ A term definition must have an ID so that it can be linked
+ to from termref elements. -->
+<!-- term attribute:
+ The canonical form of the term or phrase being defined must
+ appear in this attribute, even if the term or phrase also
+ appears in the element content in identical form (e.g., in
+ the term element). -->
+<!ATTLIST termdef
+ %common-idreq.att;
+ term CDATA #REQUIRED>
+
+<!ELEMENT termref (#PCDATA)>
+<!-- ref attribute:
+ A term reference must link to the termdef element that
+ defines the term. -->
+<!ATTLIST termref
+ %common.att;
+ %def-req.att;>
+
+<!ELEMENT titleref (#PCDATA)>
+<!-- HREF attribute:
+ A title reference can optionally function as a hypertext
+ link to the resource with this title. -->
+<!ATTLIST titleref
+ %common.att;
+ %href.att;>
+
+<!ELEMENT xnt (#PCDATA)>
+<!-- HREF attribute:
+ The nonterminal must hyperlink to a resource that serves
+ to define it (e.g., a production in a related XML
+ specification). -->
+<!ATTLIST xnt
+ %common.att;
+ %href-req.att;>
+
+<!--
+#1997-12-29: maler: Declared xspecref.
+-->
+
+<!ELEMENT xspecref (#PCDATA)>
+<!-- HREF attribute:
+ The spec reference must hyperlink to the resource to
+ cross-refer to (e.g., a section in a related XML
+ specification). -->
+<!ATTLIST xspecref
+ %common.att;
+ %href-req.att;>
+
+<!ELEMENT xtermref (#PCDATA)>
+<!-- HREF attribute:
+ The term reference must hyperlink to the resource that
+ serves to define the term (e.g., a term definition in
+ a related XML specification). -->
+<!ATTLIST xtermref
+ %common.att;
+ %href-req.att;>
+
+<!-- ............................................................... -->
+<!-- Unused elements for ADEPT ..................................... -->
+
+<!--
+#1997-09-30: maler: Added unusued elements.
+#1997-10-14: maler: Fixed div to move nested div to the mixture.
+-->
+
+<!-- The following elements are purposely declared but never
+ referenced. Declaring them allows them to be pasted from
+ an HTML document into a document using this DTD in ADEPT.
+ The ATD Context Transformation mechanism will try to convert
+ them to the appropriate element for this DTD. While this
+ conversion will not work for all fragments, it does allow
+ many cases to work reasonably well. -->
+
+<!ELEMENT div
+ (head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)>
+<!ELEMENT h1 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h2 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h3 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h4 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h5 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h6 (%head.pcd.mix;|em|a)*>
+<!ELEMENT pre (%eg.pcd.mix;|em)*>
+<!ELEMENT ul (item|li)*>
+<!ELEMENT ol (item|li)*>
+<!ELEMENT li (#PCDATA|%obj.mix;)*>
+<!ELEMENT em (#PCDATA)>
+<!ELEMENT a (#PCDATA)>
+
+<!-- ............................................................... -->
+<!-- Change history ................................................ -->
+
+<!--
+#1997-08-18: maler
+#- Did a major revision.
+#1997-09-10: maler
+#- Updated FPI.
+#- Removed namekey element and put key attribute on name element.
+#- Made statusp element and supporting entities.
+#- Added slist element with sitem+ content.
+#- Required head on scrap and added new bnf subelement.
+#- Added an xnt element and allowed it and nt in regular text and rhs.
+#- Removed the ntref element.
+#- Added back the com element to the content of rhs.
+#- Added a key attribute to bibl.
+#- Removed the ident element.
+#- Added a term element to be used inside termdef.
+#- Added an xtermref element parallel to termref.
+#- Beefed up DTD comments.
+#1997-09-12: maler
+#- Allowed term element in general text.
+#- Changed bibref to EMPTY.
+#- Added ref.class to termdef.pcd.mix.
+#1997-09-14: maler
+#- Changed main attribute of xtermref from def to href.
+#- Added termdef.class to label contents.
+#1997-09-30: maler
+#- Added character entity module and added new entities.
+#- Removed p from appearing directly in self; created %p.mix;.
+#- Added inform-div (non-normative division) element.
+#- Fixed xtermref comment to mention HREF, not ref.
+#- Extended orglist model to allow optional affiliation.
+#- Modified author to make affiliation optional.
+#- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;.
+#- Added %note.class; and %illus.class; to %termdef.pcd.mix;.
+#- Added unused HTML elements.
+#- Put empty system ID next to public ID in entity declarations.
+#1997-10-14: maler
+#- Fixed "unused" div content model to move nested div to mixture.
+#1997-10-16: maler
+#- Added SGML Open Exchange tables.
+#1997-11-28: maler
+#- Added support for prodgroup and its attributes.
+#- Added support for HTML tables.
+#- Added loc and bibref to content of com.
+#- Added loc to general p content models.
+#- Allowed p as alternative to statusp in status.
+#- Added non-null system IDs to external parameter entity declarations.
+#- (Modified the SGML Open table module to make it XML-compliant.)
+#- (Modified the character entity module.)
+#1997-12-29: maler
+#- Moved #PCDATA occurrences to come before GIs in content models.
+#- Removed use of the SGML Open table module.
+#- Added xspecref element.
+#- Ensured that all FPIs contain 4-digit year.
+#- (Modified the character entity module.)
+#1997-03-10: maler
+#- Merged the character entity and table modules into the main file.
+#- Added ldquo and rdquo entities.
+#- Added common attributes to prodgroup.
+#- Made the email element in header optional.
+#- Removed reference to the SGML Open table model.
+#- Added ednote element.
+#- Added quote element.
+#- Updated XLink usage to reflect 3 March 1998 WD.
+#- Added "local" entities to the class entities for customization.
+#- Parameterized several content models to allow for customization.
+#1997-03-23: maler
+#- Cleaned up some comments and removed some others.
+#- Added xml:space semi-common attribute to eg and bnf elements.
+#- Added show and embed attributes on all the uses of href.
+#- Added %common.att; to all HTML table elements.
+#- Added a real URI to the "typical invocation" comment.
+-->
+
+<!-- ............................................................... -->
+<!-- End of XML specification DTD .................................. -->
+<!-- ............................................................... -->