diff options
Diffstat (limited to 'libxml2/test/valid/dtds/xmlspec.dtd')
-rw-r--r-- | libxml2/test/valid/dtds/xmlspec.dtd | 1102 |
1 files changed, 1102 insertions, 0 deletions
diff --git a/libxml2/test/valid/dtds/xmlspec.dtd b/libxml2/test/valid/dtds/xmlspec.dtd new file mode 100644 index 0000000..55cfba6 --- /dev/null +++ b/libxml2/test/valid/dtds/xmlspec.dtd @@ -0,0 +1,1102 @@ +<!-- ............................................................... --> +<!-- XML specification DTD ......................................... --> +<!-- ............................................................... --> + +<!-- +TYPICAL INVOCATION: +# <!DOCTYPE spec PUBLIC +# "-//W3C//DTD Specification::19980521//EN" +# "http://www.w3.org/XML/1998/06/xmlspec-19980521.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/1998/06/xmlspec-report-19980521.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. +#1998-05-14: maler: Fixed ldquo and rdquo. Gave mdash a real number. +--> + +<!ENTITY lt "&#60;"> +<!ENTITY gt ">"> +<!ENTITY amp "&#38;"> +<!ENTITY apos "'"> +<!ENTITY quot """> +<!ENTITY nbsp " "> +<!-- +<!ENTITY mdash "—"> +<!ENTITY ldquo "“"> +<!ENTITY rdquo "”"> +--> + +<!-- ............................................................... --> +<!-- 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. +#1998-05-14: maler: Added issue to %note.class;. +# Removed %[local.]statusp.class;. +#1998-05-21: maler: Added constraintnote to %note.class;. +--> + +<!ENTITY % local.p.class ""> +<!ENTITY % p.class "p + %local.p.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|issue|wfcnote|vcnote + |constraintnote %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-23: maler: Added %termdef.mix; (broken out from +# %termdef.pcd.mix;). +#1998-05-14: maler: Removed %statusobj.mix; and all mentions of +# %statusp.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 % 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;. +#1998-05-14: maler: Removed %statusp.pcd.mix;. +#1998-05-21: maler: Added constraint element to %eg.pcd.mix;. +--> + +<!ENTITY % p.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;|constraint"> +<!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. +#1998-05-14: maler: Allowed prevlocs and latestloc in either order. +--> + +<!ENTITY % spec.mdl + "header, front?, body, back?"> + +<!ENTITY % header.mdl + "title, subtitle?, version, w3c-designation, w3c-doctype, + pubdate, notice*, publoc, ((prevlocs, latestloc?) | + (latestloc, prevlocs?))?, 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. --> +<!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;> + +<!-- +#1998-05-15: maler: Changed status content from %statusobj.mix; +# to plain %obj.mix;. statusp is obsolete. +--> + +<!ELEMENT status (%obj.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. +#1998-05-14: maler: Removed statusp declarations. +--> + +<!ELEMENT p (%p.pcd.mix;|%p.mix;)*> +<!ATTLIST p %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;> + +<!-- +#1998-05-14: maler: Declared issue element. +--> + +<!ELEMENT issue (%obj.mix;)+> +<!ATTLIST issue %common-idreq.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;> + +<!-- +#1998-05-21: maler: Declared generic constraintnote element. +--> + +<!ELEMENT constraintnote (head, (%obj.mix;)+)> +<!-- ID attribute: + cnote must have an ID so that it can be pointed to + from a constraint element in a production. --> +<!-- type attribute: + cnote must have a type value keyword so that it can be + correctly characterized in the specification. --> +<!ATTLIST constraintnote + %common-idreq.att; + type NMTOKEN #REQUIRED> + +<!-- 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. +#1998-05-21: maler: Added constraint to prod. +--> + +<!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|constraint)*)+)> +<!-- 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-05-21: maler: Declared generic constraint element. +--> + +<!-- constraint: Should generate the head of the constraintnote + pointed to --> +<!ELEMENT constraint EMPTY> +<!-- def attribute: + Each constraint tagline in a production must link to the + constraint note that defines it. --> +<!ATTLIST constraint + %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. +#1998-05-14: maler: Replaced table model with full HTML 4.0 model. +# Removed htable in favor of table. +# Removed htbody in favor of tbody. +--> + +<!ENTITY % cellhalign.att + 'align (left|center + |right|justify + |char) #IMPLIED + char CDATA #IMPLIED + charoff CDATA #IMPLIED'> + +<!ENTITY % cellvalign.att + 'valign (top|middle + |bottom + |baseline) #IMPLIED'> + +<!ENTITY % thtd.att + 'abbr CDATA #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope (row + |col + |rowgroup + |colgroup) #IMPLIED + rowspan NMTOKEN "1" + colspan NMTOKEN "1"'> + +<!ENTITY % width.att + 'width CDATA #IMPLIED'> + +<!ENTITY % span.att + 'span NMTOKEN "1"'> + +<!ELEMENT table + (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)> +<!ATTLIST table + %common.att; + %width.att; + summary CDATA #IMPLIED + border CDATA #IMPLIED + frame (void|above + |below|hsides + |lhs|rhs + |vsides|box + |border) #IMPLIED + rules (none|groups + |rows|cols + |all) #IMPLIED + cellspacing CDATA #IMPLIED + cellpadding CDATA #IMPLIED> + +<!ELEMENT caption (%p.pcd.mix;)*> +<!ATTLIST caption %common.att;> + +<!ELEMENT col EMPTY> +<!ATTLIST col + %common.att; + %span.att; + %width.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT colgroup (col)*> +<!ATTLIST colgroup + %common.att; + %span.att; + %width.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT thead (tr)+> +<!ATTLIST thead + %common.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT tfoot (tr)+> +<!ATTLIST tfoot + %common.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT tbody (tr)+> +<!ATTLIST tbody + %common.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT tr (th|td)+> +<!ATTLIST tr + %common.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT th (%p.pcd.mix;|%p.mix;)*> +<!ATTLIST th + %common.att; + %thtd.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT td (%p.pcd.mix;|%p.mix;)*> +<!ATTLIST td + %common.att; + %thtd.att; + %cellhalign.att; + %cellvalign.att;> + +<!-- ............................................................... --> +<!-- 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, "[n]" for production, or + "Issue n" for issue --> +<!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. +#1998-05-14: maler: Added key-term, htable, and htbody. +--> + +<!-- The following elements are purposely declared but never + referenced. Declaring them allows them to be pasted from + an HTML document or an earlier version of an XML spec 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)> + +<!ELEMENT key-term (#PCDATA)> +<!ELEMENT htable + (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)> +<!ELEMENT htbody (tr)+> +<!ELEMENT statusp (%p.pcd.mix;|%p.mix;)*> + +<!-- ............................................................... --> +<!-- 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.) +#1998-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. +#1998-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. +#1998-05-14: maler +#- Fixed mdash, ldquo, and rdquo character entities. +#- Switched to the full HTML 4.0 table model. +#- Removed htable/htbody elements and replaced them with table/tbody. +#- Added issue element to %note.class; and declared it. +#- Allowed prevlocs and latestloc in either order. +#- Added key-term, htable, htbody, and statusp as unused elements. +#- Removed real statusp element in favor of plain p. +#1998-05-21: maler +#- Declared generic constraint and constraintnote elements. +#- Added constraintnote to %note.class;. +#- Added constraint to %eg.pcd.mix; and prod content model. +--> + +<!-- ............................................................... --> +<!-- End of XML specification DTD .................................. --> +<!-- ............................................................... -->
\ No newline at end of file |