diff -r dee5afe5301f -r 3f74d0d4af4c tests/auto/qxmlstream/XML-Test-Suite/xmlconf/japanese/spec.dtd --- 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 .................................. --> +<!-- ............................................................... -->