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