| <!-- ............................................................... --> |
| <!-- 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 .................................. --> |
| <!-- ............................................................... --> |