diff options
author | ville <ville@localhost> | 2009-11-08 20:28:30 +0000 |
---|---|---|
committer | ville <ville@localhost> | 2009-11-08 20:28:30 +0000 |
commit | 5d2379ba6740083570ac82b94beea8617d995464 (patch) | |
tree | e06421430f5d0973c7d30fcffa0a78d0dcb64511 /htdocs/sgml-lib/Specification | |
parent | 8f04988c52edea41a4bf6377daa8e6fb26b978cd (diff) | |
download | markup-validator-5d2379ba6740083570ac82b94beea8617d995464.zip markup-validator-5d2379ba6740083570ac82b94beea8617d995464.tar.gz markup-validator-5d2379ba6740083570ac82b94beea8617d995464.tar.bz2 |
Use local copy of Spec 2.0 DTD, add Spec 2.1 and 2.10.
Diffstat (limited to 'htdocs/sgml-lib/Specification')
-rw-r--r-- | htdocs/sgml-lib/Specification/xmlspec-v20.dtd | 1553 | ||||
-rw-r--r-- | htdocs/sgml-lib/Specification/xmlspec-v21.dtd | 1734 | ||||
-rw-r--r-- | htdocs/sgml-lib/Specification/xmlspec.dtd | 2778 |
3 files changed, 6065 insertions, 0 deletions
diff --git a/htdocs/sgml-lib/Specification/xmlspec-v20.dtd b/htdocs/sgml-lib/Specification/xmlspec-v20.dtd new file mode 100644 index 0000000..06da7e6 --- /dev/null +++ b/htdocs/sgml-lib/Specification/xmlspec-v20.dtd @@ -0,0 +1,1553 @@ +<!-- ............................................................... --> +<!-- XML specification DTD ......................................... --> +<!-- ............................................................... --> + +<!-- +TYPICAL INVOCATION: +# <!DOCTYPE spec PUBLIC +# "-//W3C//DTD Specification V2.0//EN" +# "http://www.w3.org/XML/1998/06/xmlspec-v20.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/NOTE-xmlspec-v20.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 529 1012 + fax: +1 781 529 1099 +--> + +<!-- ............................................................... --> +<!-- 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. +#1998-12-03: maler: Escaped the leading ampersands. +--> + +<!ENTITY lt "&#60;"> +<!ENTITY gt ">"> +<!ENTITY amp "&#38;"> +<!ENTITY apos "'"> +<!ENTITY quot """> +<!ENTITY nbsp " "> +<!ENTITY mdash "&#x2014;"> +<!ENTITY ldquo "&#x201C;"> +<!ENTITY rdquo "&#x201D;"> + +<!-- ............................................................... --> +<!-- Entities for classes of standalone elements ................... --> +<!-- ............................................................... --> + +<!-- +#1997-10-16: maler: Added table to %illus.class;. +#1997-11-28: maler: Added htable to %illus.class;. +#1997-12-29: maler: IGNOREd table. +#1998-03-10: maler: Removed SGML Open-specific %illus.class;. +# Added "local" entities for customization. +#1998-05-14: maler: Added issue to %note.class;. +# Removed %[local.]statusp.class;. +#1998-05-21: maler: Added constraintnote to %note.class;. +#1998-08-22: maler: Changed htable to table in %illus.class;. +# Added definitions to %illus.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|table|definitions + %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;. +#1999-07-02: maler: Added %loc.class; to %head.pcd.mix;, +# %label.pcd.mix;, %eg.pcd.mix;, %termdef.pcd.mix;, +# %tech.pcd.mix; (net: all PCD mixes have it). +# Removed unused %loc.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; + |%loc.class;|%ednote.class;"> +<!ENTITY % label.pcd.mix + "#PCDATA|%annot.class;|%termdef.class;|%emph.class; + |%tech.class;|%loc.class;|%ednote.class;"> +<!ENTITY % eg.pcd.mix + "#PCDATA|%annot.class;|%emph.class;|%loc.class; + |%ednote.class;|constraint"> +<!ENTITY % termdef.pcd.mix + "#PCDATA|term|%emph.class;|%ref.class;|%tech.class; + |%loc.class;|%ednote.class;"> +<!ENTITY % bibl.pcd.mix + "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;"> +<!ENTITY % tech.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. +#1999-07-02: maler: Made version optional; added copyright element. +--> + +<!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, copyright?, 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. +#1998-08-22: maler: Used new xlink:form and #IMPLIED features. +#1999-07-02: maler: Reorganized XLink-related entities completely; +# added xmlns:xlink attribute to the mix. +--> + +<!-- xmlns:xlink and xlink:form attributes: + xmlns:xlink declares the association of the xlink prefix + with the namespace created by the XLink specification. + xlink:form potentially identifies an element as an XLink + "simple" linking element. When a value for href is supplied, + xlink:form should be understood to have the value "simple". + When a value for href is not supplied, xlink:form should be + understood to have the value "none". --> +<!ENTITY % simple-xlink.att + 'xmlns:xlink CDATA #FIXED + "http://www.w3.org/TR/WD-xlink" + xlink:form CDATA #IMPLIED '> + +<!-- href attributes: + The href attribute is required to have a value when xlink:form + has the (implicit or explicit) value "simple". Some elements + are links only if the authors chooses to make them so. --> +<!ENTITY % href.att + 'href CDATA #IMPLIED '> +<!ENTITY % href-req.att + 'href CDATA #REQUIRED '> + +<!-- show and actuate attributes: + These attributes offer hints to the display engine about how to + handle traversal to a link end indicated by an href locator. The + auto-embed combination should have the effect of an HTML IMG SRC=. + The user-replace combination should have the effect of an HTML + A HREF=. The user-new combination should have the effect of an + HTML A HREF= TARGET=NEW. + --> +<!ENTITY % auto-embed.att + 'show CDATA #FIXED "embed" + actuate CDATA #FIXED "auto" '> +<!ENTITY % user-replace.att + 'show CDATA #FIXED "replace" + actuate CDATA #FIXED "user" '> +<!ENTITY % user-new.att + 'show CDATA #FIXED "new" + actuate CDATA #FIXED "user" '> + +<!-- 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. +#1999-07-02: maler: Added doctype atts and status att. +--> + +<!ELEMENT spec (%spec.mdl;)> +<!-- doctype attributes: + Indicates the type of document, so that the appropriate + stylesheet or workflow routing can be applied. Should + *not* generate any text (such as the "REC-" or "NOTE-" + prefix on the W3C designation content). No default. If + w3c-doctype is "other", other-doctype should be filled in. + status attribute: + Indicates the stage of review of the document. May affect + the stylesheet's treatment of ednotes (e.g., whether to + output them). No default. --> + +<!ATTLIST spec + %common.att; + w3c-doctype (rec + |pr + |wd + |note + |other) #IMPLIED + other-doctype CDATA #IMPLIED + status (int-review + |ext-review + |final) #IMPLIED +> + +<!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;> + +<!-- +#1999-07-02: maler: Declared copyright element. +--> + +<!ELEMENT copyright (%hdr.mix;)+> +<!ATTLIST copyright %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;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + + +<!ELEMENT email (#PCDATA)> +<!-- href attribute: + email functions as a hypertext reference through this + required attribute. Typically the reference would use + the mailto: scheme. E.g.: + +<email href="mailto:elm@arbortext.com">elm@arbortext.com</email> + --> + +<!ATTLIST email + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.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;> + +<!-- ............................................................... --> +<!-- Paragraph ..................................................... --> +<!-- ............................................................... --> + +<!-- +#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;> + +<!-- ............................................................... --> +<!-- Regular lists ................................................. --> +<!-- ............................................................... --> + +<!-- ulist: Unordered list, typically bulleted. --> +<!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> + +<!-- olist: Ordered list, typically numbered. --> +<!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;> + +<!-- slist: Simple list, typically with no mark. --> +<!ELEMENT slist (sitem+)> +<!ATTLIST slist %common.att;> + +<!ELEMENT sitem (%p.pcd.mix;)*> +<!ATTLIST sitem %common.att;> + +<!-- glist: Glossary list, typically two-column. --> +<!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 ................................................. --> +<!-- ............................................................... --> + +<!-- blist: Bibliography list. --> +<!ELEMENT blist (bibl+)> +<!ATTLIST blist %common.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!ELEMENT bibl (%bibl.pcd.mix;)*> +<!-- href attribute: + bibl optionally functions as a hypertext reference to the + referred-to resource through this attribute. E.g.: + + <bibl href="http://www.my.com/doc.htm">My Document</bibl> + --> +<!ATTLIST bibl + %common.att; + %simple-xlink.att; + %href.att; + %user-replace.att; + %key.att;> + +<!-- orglist: Organization member list. --> +<!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;> + +<!-- wfcnote: Well-formedness constraint note. --> +<!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;> + +<!-- vcnote: Validity constraint note. --> +<!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. +--> + +<!-- constraintnote: Generic constraint note. --> +<!ELEMENT constraintnote (head, (%obj.mix;)+)> +<!-- ID attribute: + constraintnote must have an ID so that it can be + pointed to from a constraint element in a production. --> +<!-- type attribute: + constraintnote must have a type value keyword so that + it can be correctly characterized in the specification. --> +<!ATTLIST constraintnote + %common-idreq.att; + type NMTOKEN #REQUIRED> + +<!-- ............................................................... --> +<!-- Basic display elements ........................................ --> +<!-- ............................................................... --> + +<!-- +#1998-03-23: maler: Added xml:space attribute. +--> + +<!-- eg: Example element, with whitespace respected. --> +<!ELEMENT eg (%eg.pcd.mix;)*> +<!ATTLIST eg + %common.att; + %xmlspace.att;> + +<!-- graphic: Displayed graphic. Graphic data should be + displayed at the point where it is referenced. --> +<!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; + %simple-xlink.att; + xml:attributes NMTOKENS #FIXED "href source" + source CDATA #REQUIRED + %auto-embed.att; + alt CDATA #IMPLIED> + +<!-- ............................................................... --> +<!-- EBNF .......................................................... --> +<!-- ............................................................... --> + +<!-- +#1997-11-28: maler: Added prodgroup to scrap and defined it. +#1998-05-21: maler: Added constraint to prod. +#1999-07-02: maler: Added prodrecap to scrap; broadened scrap model. +# Added headstyle attribute to scrap. +--> + +<!-- scrap: Collection of EBNF language productions. --> +<!ELEMENT scrap (head, (prodgroup | prod | bnf | prodrecap)+)> +<!-- lang attribute: + The scrap can link to a description of the language used, + found in a language element in the header. + headstyle attribute: + Allows a scrap title to be suppressed from output. To be + used only when a scrap title directly next to a section + title is distracting or repetetive. --> +<!ATTLIST scrap + %common.att; + lang IDREF #IMPLIED + headstyle (show|suppress) "show" +> + +<!-- prodgroup: Sub-collection of productions, needed for + formatting reasons. --> +<!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 +> + +<!-- prod: EBNF language production. --> +<!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;> + +<!-- lhs: Left-hand side of production. --> +<!ELEMENT lhs (#PCDATA)> +<!ATTLIST lhs %common.att;> + +<!-- rhs: Right-hand side of production; may have many + "right-hand sides," one to a line. --> +<!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. +--> + +<!-- com: Production comment. --> +<!ELEMENT com (#PCDATA|loc|bibref)*> +<!ATTLIST com %common.att;> + +<!-- wfc: Reference to a well-formedness constraint; 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: Reference to a validity constraint; 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: Reference to a generic 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 EBNF production, with whitespace + respected. --> +<!ELEMENT bnf (%eg.pcd.mix;)*> +<!ATTLIST bnf + %common.att; + %xmlspace.att;> + +<!-- +#1999-07-02: maler: Declared prodrecap. +--> + +<!-- prodrecap: Reference to production or bnf that appears + in its "normative" form elsewhere in the spec; should + generate a copy of the original production, without + a production number next to it. --> +<!ELEMENT prodrecap EMPTY> +<!ATTLIST prodrecap + %common.att; + %ref-req.att;> + +<!-- ............................................................... --> +<!-- Table ......................................................... --> +<!-- ............................................................... --> + +<!-- +#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"'> + +<!-- table: HTML-based geometric table model. --> +<!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;> + +<!-- ............................................................... --> +<!-- IDL structures for DOM specifications ......................... --> +<!-- ............................................................... --> + +<!-- ............................................................... --> +<!-- Specialized entities for classes .............................. --> + +<!ENTITY % idl-desc.class + "p|note"> + +<!ENTITY % idl-tdef.class + "typedef|constant|exception|reference|group"> + +<!ENTITY % idl-mod.class + "module|interface"> + +<!ENTITY % idl-struct.class + "struct|enum|sequence|union|typename"> + +<!ENTITY % idl-meth.class + "method|attribute"> + +<!-- ............................................................... --> +<!-- Specialized entities for mixtures ............................. --> + +<!-- Quick reference to content model mixtures: + + desc tdef mod struct meth +group x x x x x +definitions, module x x x +interface x x x +typedef, case, component x +--> + +<!ENTITY % idl-grp.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class; + |%idl-struct.class;|%idl-meth.class;"> + +<!ENTITY % idl-defn.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;"> + +<!ENTITY % idl-intfc.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-meth.class;"> + +<!ENTITY % idl-type.mix + "%idl-struct.class;"> + +<!-- ............................................................... --> +<!-- Specialized entities for common attributes .................... --> + +<!-- name attribute: + Provides a name. Required. --> +<!ENTITY % idl-name.att + 'name CDATA #REQUIRED'> + +<!-- type attribute: + Provides a type. Required. --> +<!ENTITY % idl-type.att + 'type CDATA #REQUIRED'> + +<!-- ............................................................... --> +<!-- Common IDL element ............................................ --> + +<!ELEMENT descr ((%obj.mix;)*)> +<!ATTLIST descr %common.att;> + +<!-- ............................................................... --> +<!-- IDL definition elements ....................................... --> + +<!-- definitions: Top-level element for definitions. --> +<!ELEMENT definitions (%idl-defn.mix;)+> +<!ATTLIST definitions %common.att;> + +<!-- group: Element used to group a set of definitions. --> + +<!ELEMENT group (descr, (%idl-grp.mix;)*)> +<!ATTLIST group + %common.att; + %idl-name.att;> + +<!-- interface: Definition of an interface. --> +<!ELEMENT interface (descr, (%idl-intfc.mix;)*)> +<!ATTLIST interface + %common.att; + %idl-name.att; + inherits CDATA #IMPLIED> + +<!-- module: Definition of a module. --> +<!ELEMENT module (descr, (%idl-defn.mix;)*)> +<!ATTLIST module + %common.att; + %idl-name.att;> + +<!-- reference: Reference to some other declaration. --> +<!ELEMENT reference EMPTY> +<!ATTLIST reference + %common.att; + declaration IDREF #REQUIRED> + +<!-- typedef: Definition of a named type. --> +<!ELEMENT typedef (descr, (%idl-type.mix;))> +<!ATTLIST typedef + %common.att; + %idl-name.att; + array.size NMTOKEN #IMPLIED> + +<!-- struct: Declaration of a struct type. --> +<!ELEMENT struct (descr, component+)> +<!ATTLIST struct + %common.att; + %idl-name.att;> + +<!-- component: Declaration of a structural member. --> +<!ELEMENT component (%idl-type.mix;)> +<!ATTLIST component + %common.att; + %idl-name.att;> + +<!-- union: Declaration of a union type. --> +<!ELEMENT union (descr, case+)> +<!ATTLIST union + %common.att; + %idl-name.att; + switch.type CDATA #REQUIRED> + +<!ELEMENT case (descr, (%idl-type.mix;))> +<!ATTLIST case + %common.att; + labels CDATA #REQUIRED> + +<!-- enum: Declaration of an enum type. --> +<!ELEMENT enum (descr, enumerator+)> +<!ATTLIST enum + %common.att; + %idl-name.att;> + +<!ELEMENT enumerator (descr)> +<!ATTLIST enumerator + %common.att; + %idl-name.att;> + +<!-- sequence: Declaration of a sequence type (not named). --> +<!ELEMENT sequence (sequence*)> +<!ATTLIST sequence + %common.att; + %idl-type.att; + size NMTOKEN #IMPLIED> + +<!-- constant: Declaration of a named constant. --> +<!ELEMENT constant (descr)> +<!ATTLIST constant + %common.att; + %idl-name.att; + %idl-type.att; + value CDATA #REQUIRED> + +<!-- exception: Declaration of an exception. --> +<!ELEMENT exception (descr, component*)> +<!ATTLIST exception + %common.att; + %idl-name.att;> +<!-- component (defined under struct, above)--> + +<!-- attribute: Declaration of an attribute (data member). --> +<!ELEMENT attribute (descr)> +<!ATTLIST attribute + %common.att; + %idl-name.att; + %idl-type.att; + readonly (yes + |no) "no"> + +<!-- method: Declaration of a method. --> +<!ELEMENT method (descr, parameters, returns, raises)> +<!ATTLIST method + %common.att; + %idl-name.att;> + +<!ELEMENT parameters (param*)> +<!ATTLIST parameters %common.att;> + +<!ELEMENT param (descr)> +<!ATTLIST param + %common.att; + %idl-name.att; + %idl-type.att; + attr (in + |out + |inout) "inout"> + +<!ELEMENT returns (descr)> +<!ATTLIST returns + %common.att; + %idl-type.att;> + +<!ELEMENT raises (exception*)> +<!-- exception (defined under constant, above)--> + +<!ELEMENT typename (#PCDATA)> +<!ATTLIST typename %common.att;> + +<!-- ............................................................... --> +<!-- Phrase-level elements ......................................... --> +<!-- ............................................................... --> + +<!-- bibref: Reference to a bibliography list entry; 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. +#1999-07-02: maler: Changed edtext content from #PCDATA to %p.pcd.mix;. +--> + +<!-- ednote: Editorial note for communication among editors. --> +<!ELEMENT ednote (name?, date?, edtext)> +<!ATTLIST ednote %common.att;> + +<!ELEMENT date (#PCDATA)> +<!ATTLIST date %common.att;> + +<!ELEMENT edtext (%p.pcd.mix;)*> +<!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;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- loc: Generic link to a Web resource, similar to HTML's A. --> +<!ELEMENT loc (#PCDATA)> +<!-- href attribute: + The purpose of a loc element is to function as a A-like + 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.) E.g.: + +<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc> + --> +<!ATTLIST loc + %common.att; + %simple-xlink.att; + %href-req.att; + %user-replace.att;> + +<!-- nt: Mention of a nonterminal in text, along with a link to + the production in the current document that defines it. --> +<!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: Reference to a div, olist item, prod, or issue + in the current document; 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;> + +<!-- term: The term in text that is being defined in text. --> +<!ELEMENT term (#PCDATA)> +<!ATTLIST term %common.att;> + +<!-- termdef: Definition of a term in text. --> +<!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> + +<!-- termref: Mention of a term, along with a link to the + definition in the current document. --> +<!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;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- titleref: Citation of another document, which can also + link to that document if it is a Web resource. --> +<!ELEMENT titleref (#PCDATA)> +<!-- href attribute: + A title reference can optionally function as a hypertext + link to the resource with this title. E.g.: + +<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc> + --> + +<!ATTLIST titleref + %common.att; + %simple-xlink.att; + %href.att; + %user-new.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- nt: Mention of a nonterminal in text, along with a link to + the production in another document that defines it. --> +<!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). E.g.: + +<xnt href="http://www.w3.org/TR/spec.htm#prod3">Name</xnt> + --> + +<!ATTLIST xnt + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> + +<!-- +#1997-12-29: maler: Declared xspecref. +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- specref: Reference to a div, olist item, prod, or issue + in a related specification document; should generate + no special text. --> +<!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). E.g.: + +<xspecref href="http://www.w3.org/TR/spec.htm#sec2"> +the section on constraints</xspecref> + --> + +<!ATTLIST xspecref + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- termref: Mention of a term, along with a link to the + definition in a related document. --> +<!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). E.g.: + +<xtermref href="http://www.w3.org/TR/spec.htm#term5"> +entity +</xtermref> + --> + +<!ATTLIST xtermref + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.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. +#1998-11-30: maler: Added para, listitem, itemizedlist, and orderedlist. +--> + +<!-- The following elements are purposely declared but never + referenced. Declaring them allows them to be pasted from + an HTML document, an earlier version of an XMLspec document, + or a DocBook 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;)*> + +<!ELEMENT itemizedlist (listitem*)> +<!ELEMENT orderedlist (listitem*)> +<!ELEMENT listitem (para*)> +<!ELEMENT para (#PCDATA)> + +<!-- ............................................................... --> +<!-- Change history ................................................ --> +<!-- ............................................................... --> + +<!-- +#1997-08-18: maler +#- Did a major revision. +#1997-09-10: maler +#- Updated FPI. +#- Removed namekey element and put key attribute on name element. +#- Made statusp element and supporting entities. +#- Added slist element with sitem+ content. +#- Required head on scrap and added new bnf subelement. +#- Added an xnt element and allowed it and nt in regular text and rhs. +#- Removed the ntref element. +#- Added back the com element to the content of rhs. +#- Added a key attribute to bibl. +#- Removed the ident element. +#- Added a term element to be used inside termdef. +#- Added an xtermref element parallel to termref. +#- Beefed up DTD comments. +#1997-09-12: maler +#- Allowed term element in general text. +#- Changed bibref to EMPTY. +#- Added ref.class to termdef.pcd.mix. +#1997-09-14: maler +#- Changed main attribute of xtermref from def to href. +#- Added termdef.class to label contents. +#1997-09-30: maler +#- Added character entity module and added new entities. +#- Removed p from appearing directly in self; created %p.mix;. +#- Added inform-div (non-normative division) element. +#- Fixed xtermref comment to mention href, not ref. +#- Extended orglist model to allow optional affiliation. +#- Modified author to make affiliation optional. +#- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;. +#- Added %note.class; and %illus.class; to %termdef.pcd.mix;. +#- Added unused HTML elements. +#- Put empty system ID next to public ID in entity declarations. +#1997-10-14: maler +#- Fixed "unused" div content model to move nested div to mixture. +#1997-10-16: maler +#- Added SGML Open Exchange tables. +#1997-11-28: maler +#- Added support for prodgroup and its attributes. +#- Added support for HTML tables. +#- Added loc and bibref to content of com. +#- Added loc to general p content models. +#- Allowed p as alternative to statusp in status. +#- Added non-null system IDs to external parameter entity declarations. +#- (Modified the SGML Open table module to make it XML-compliant.) +#- (Modified the character entity module.) +#1997-12-29: maler +#- Moved #PCDATA occurrences to come before GIs in content models. +#- Removed use of the SGML Open table module. +#- Added xspecref element. +#- Ensured that all FPIs contain 4-digit year. +#- (Modified the character entity module.) +#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. +#1998-08-22: maler +#- Fixed %illus.class; to mention table instead of htable. +#- Added definitions to %illus.class; for DOM model. +#- Added DOM definitions element and its substructure. +#- Updated XLink usage in %href.att; to use xlink:form and #IMPLIED. +#- Added clarifying comments to href-using elements. +#1998-11-30: maler +#- Added new unused elements to support DocBook translation. +#- Updated maler phone numbers. +#1998-12-3: maler +#- Fixed character entities with respect to escaping of ampersands. +#- Added many more explanatory comments. +#1999-07-02: maler +#- Added %loc.class; to all PCD mixes that didn't already have it. +#- Removed unused %loc.pcd.mix;. +#- Made version in spec header optional. +#- Added three new attributes to spec. +#- Broadened content of edtext. +#- Added optional copyright element to header. +#- Reorganized XLink-related parameter entities; added xmlns:xlink. +#- Changed edtext content from #PCDATA to %p.pcd.mix;. +#- Added show/actuate atts and default values to all href elements. +#- Changed versioning scheme from 8-digit dates to version numbers. +#- Added w3c-doctype, other-doctype, status atts to spec element. +#- Added prodrecap element inside scrap. +#- Added headstyle attribute to scrap. +--> + +<!-- ............................................................... --> +<!-- End of XML specification DTD .................................. --> +<!-- ............................................................... --> diff --git a/htdocs/sgml-lib/Specification/xmlspec-v21.dtd b/htdocs/sgml-lib/Specification/xmlspec-v21.dtd new file mode 100644 index 0000000..b70fd69 --- /dev/null +++ b/htdocs/sgml-lib/Specification/xmlspec-v21.dtd @@ -0,0 +1,1734 @@ +<!-- ............................................................... --> +<!-- XML specification DTD ......................................... --> +<!-- ............................................................... --> + +<!-- +TYPICAL INVOCATION: +# <!DOCTYPE spec PUBLIC +# "-//W3C//DTD Specification V2.1//EN" +# "http://www.w3.org/XML/1998/06/xmlspec-v21.dtd"> + +PURPOSE: + This XML DTD is for W3C specifications and other technical reports. + It is 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-v21.htm> + + Search this file for "#" in the first column to see change history + comments. To find changes made this time, search for "2000-03-07". + +MAINTAINER: + Eve Maler + Sun Microsystems, Inc. + elm@east.sun.com + voice: +1 781 442 3190 + fax: +1 781 442 1437 +--> + +<!-- ............................................................... --> +<!-- 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. +#1998-12-03: maler: Escaped the leading ampersands. +--> + +<!ENTITY lt "&#60;"> +<!ENTITY gt ">"> +<!ENTITY amp "&#38;"> +<!ENTITY apos "'"> +<!ENTITY quot """> +<!ENTITY nbsp " "> +<!ENTITY mdash "&#x2014;"> +<!ENTITY ldquo "&#x201C;"> +<!ENTITY rdquo "&#x201D;"> + +<!-- ............................................................... --> +<!-- Entities for classes of standalone elements ................... --> +<!-- ............................................................... --> + +<!-- +#1997-10-16: maler: Added table to %illus.class;. +#1997-11-28: maler: Added htable to %illus.class;. +#1997-12-29: maler: IGNOREd table. +#1998-03-10: maler: Removed SGML Open-specific %illus.class;. +# Added "local" entities for customization. +#1998-05-14: maler: Added issue to %note.class;. +# Removed %[local.]statusp.class;. +#1998-05-21: maler: Added constraintnote to %note.class;. +#1998-08-22: maler: Changed htable to table in %illus.class;. +# Added definitions to %illus.class;. +#2000-03-07: maler: Added proto and example to %illus.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|table|definitions + |proto|example + %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. +#2000-03-07: maler: Added function, var, el, att, and attval to +# %tech.class;. +# Added sub, sup, and phrase to %emph.class;. +--> + +<!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|phrase|quote|sub|sup + %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|function|var + |el|att|attval + %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;. +#1999-07-02: maler: Added %loc.class; to %head.pcd.mix;, +# %label.pcd.mix;, %eg.pcd.mix;, %termdef.pcd.mix;, +# %tech.pcd.mix; (net: all PCD mixes have it). +# Removed unused %loc.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; + |%loc.class;|%ednote.class;"> +<!ENTITY % label.pcd.mix + "#PCDATA|%annot.class;|%termdef.class;|%emph.class; + |%tech.class;|%loc.class;|%ednote.class;"> +<!ENTITY % eg.pcd.mix + "#PCDATA|%annot.class;|%emph.class;|%loc.class; + |%ednote.class;|constraint"> +<!ENTITY % termdef.pcd.mix + "#PCDATA|term|%emph.class;|%ref.class;|%tech.class; + |%loc.class;|%ednote.class;"> +<!ENTITY % bibl.pcd.mix + "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;"> +<!ENTITY % tech.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. +#1999-07-02: maler: Made version optional; added copyright element. +#2000-03-07: maler: Allowed status and abstract in opposite 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, copyright?, + ((status, abstract) | (abstract, status)), pubstmt?, + sourcedesc?, langusage, revisiondesc"> + +<!ENTITY % pubdate.mdl + "day?, month, year"> + +<!-- ............................................................... --> +<!-- Entities for common attributes ................................ --> +<!-- ............................................................... --> + +<!-- +#2000-03-07: maler: Added %argtypes;. +--> + +<!-- argtypes: + Values for function prototype argument datatypes. --> +<!ENTITY % argtypes + '(boolean + |expression + |location-set + |node-set + |number + |object + |point + |range + |string)'> + +<!-- 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. +#1998-08-22: maler: Used new xlink:form and #IMPLIED features. +#1999-07-02: maler: Reorganized XLink-related entities completely; +# added xmlns:xlink attribute to the mix. +#2000-03-07: maler: Updated XLink usage to February 2000 draft, +# except that href still has no namespace prefix. +--> + +<!-- xmlns:xlink and xlink:type attributes: + xmlns:xlink declares the association of the xlink prefix + with the namespace created by the XLink specification. + xlink:type identifies an element as an XLink "simple" linking + element. --> +<!ENTITY % simple-xlink.att + 'xmlns:xlink CDATA #FIXED + "http://www.w3.org/1999/xlink" + xlink:type CDATA #FIXED "simple" '> + +<!-- href attributes: + The href attribute locates the remote-resource half of a + simple link; the element on which the href appears is the + local-resource half. Some elements are usable links only if + the author chooses to supply a functional href. The attribute + name should really be xlink:href, but is kept without the + prefix for now in order to be backwards-compatible. --> + +<!ENTITY % href.att + 'href CDATA #IMPLIED '> +<!ENTITY % href-req.att + 'href CDATA #REQUIRED '> + +<!-- xlink:show and xlink:actuate attributes: + These attributes offer instructions to the display engine + about how to handle traversal to resource indicated by an + href locator. --> +<!ENTITY % auto-embed.att + 'xlink:show CDATA #FIXED "embed" + xlink:actuate CDATA #FIXED "onLoad" '> +<!ENTITY % user-replace.att + 'xlink:show CDATA #FIXED "replace" + xlink:actuate CDATA #FIXED "onRequest" '> +<!ENTITY % user-new.att + 'xlink:show CDATA #FIXED "new" + xlink:actuate CDATA #FIXED "onRequest" '> + +<!-- xml:space attribute: + Indicates that the element contains whitespace that the + formatter or other application should retain, as appropriate + to its function. --> +<!ENTITY % xmlspace.att + 'xml:space (default + |preserve) #FIXED "preserve" '> + +<!-- +#2000-03-07: maler: Added common diff attribute. Made %role.att;. +--> + +<!-- diff attribute: + Indicates in what way the element has changed. When a value + is not provided, that subelement should inherit a value from + its parent. If the root element has no value supplied, + assume "off". --> +<!ENTITY % diff.att + 'diff (chg + |add + |del + |off) #IMPLIED'> + +<!-- role attribute: + Extends the useful life of the DTD by allowing authors to + make a subtype of any element. No default. --> +<!ENTITY % role.att + 'role NMTOKEN #IMPLIED'> + +<!-- Common attributes: + Every element has an ID attribute for links, a role + attribute, and a diff attribute. %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.att; + %diff.att;'> +<!ENTITY % common-idreq.att + 'id ID #REQUIRED + %role.att; + %diff.att;'> + +<!-- ............................................................... --> +<!-- 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. +#1999-07-02: maler: Added doctype atts and status att. +#2000-03-07: maler: Added cr, issues, and dispcmts to w3c-doctype. +--> + +<!ELEMENT spec (%spec.mdl;)> +<!-- w3c-doctype attributes: + Indicates the type of document, so that the appropriate + stylesheet or workflow routing can be applied. Should + *not* generate any text (such as the "REC-" or "NOTE-" + prefix on the W3C designation content). No default. If + w3c-doctype is "other", other-doctype should be filled in. + + status attribute: + Indicates the stage of review of the document. May affect + the stylesheet's treatment of ednotes (e.g., whether to + output them). No default. --> + +<!ATTLIST spec + %common.att; + w3c-doctype (cr + |dispcmts + |issues + |note + |other + |pr + |rec + |wd) #IMPLIED + other-doctype CDATA #IMPLIED + status (int-review + |ext-review + |final) #IMPLIED +> + +<!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. +#2000-03-07: maler: Added div5 level. +--> + +<!-- 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;)*, div5*)> +<!ATTLIST div4 %common.att;> + +<!ELEMENT div5 (head, (%div.mix;)*)> +<!ATTLIST div5 %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: "W3C 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;> + +<!-- +#1999-07-02: maler: Declared copyright element. +--> + +<!ELEMENT copyright (%hdr.mix;)+> +<!ATTLIST copyright %common.att;> + +<!-- Example of notice: "This draft is for public comment..." --> +<!ELEMENT notice (%hdr.mix;)+> +<!ATTLIST notice %common.att;> + +<!-- +#2000-03-07: maler: Broadened models of *loc to %p.pcd.mix;. +--> + +<!ELEMENT publoc (%p.pcd.mix;)*> +<!ATTLIST publoc %common.att;> + +<!ELEMENT prevlocs (%p.pcd.mix;)*> +<!ATTLIST prevlocs %common.att;> + +<!ELEMENT latestloc (%p.pcd.mix;)*> +<!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;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + + +<!ELEMENT email (#PCDATA)> +<!-- href attribute: + email functions as a hypertext reference through this + required attribute. Typically the reference would use + the mailto: scheme. E.g.: + +<email href="mailto:elm@arbortext.com">elm@arbortext.com</email> + --> + +<!ATTLIST email + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.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;> + +<!-- ............................................................... --> +<!-- Paragraph ..................................................... --> +<!-- ............................................................... --> + +<!-- +#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;> + +<!-- ............................................................... --> +<!-- Regular lists ................................................. --> +<!-- ............................................................... --> + +<!-- ulist: Unordered list, typically bulleted. --> +<!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> + +<!-- olist: Ordered list, typically numbered. --> +<!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;> + +<!-- slist: Simple list, typically with no mark. --> +<!ELEMENT slist (sitem+)> +<!ATTLIST slist %common.att;> + +<!ELEMENT sitem (%p.pcd.mix;)*> +<!ATTLIST sitem %common.att;> + +<!-- glist: Glossary list, typically two-column. --> +<!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 ................................................. --> +<!-- ............................................................... --> + +<!-- blist: Bibliography list. --> +<!ELEMENT blist (bibl+)> +<!ATTLIST blist %common.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!ELEMENT bibl (%bibl.pcd.mix;)*> +<!-- href attribute: + bibl optionally functions as a hypertext reference to the + referred-to resource through this attribute. E.g.: + + <bibl href="http://www.my.com/doc.htm">My Document</bibl> + --> +<!ATTLIST bibl + %common.att; + %simple-xlink.att; + %href.att; + %user-replace.att; + %key.att;> + +<!-- orglist: Organization member list. --> +<!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. +#2000-03-07: maler: Added head, source, resolution, and status. +--> + +<!ELEMENT issue (head?, source*, (%obj.mix;)+, resolution?)> +<!-- status attribute: + Indicates whether the issue is open or closed. Note that + the lack of a resolution element does not necessarily mean + that the issue is still open. --> +<!ATTLIST issue + id ID #REQUIRED + %role.att; + %diff.att; + status (open + |closed) "open" +> + +<!ELEMENT source (%p.pcd.mix;)*> +<!ATTLIST source + %common.att;> + +<!ELEMENT resolution (%obj.mix;)+> +<!ATTLIST resolution %common.att;> + +<!-- wfcnote: Well-formedness constraint note. --> +<!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;> + +<!-- vcnote: Validity constraint note. --> +<!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. +--> + +<!-- constraintnote: Generic constraint note. --> +<!ELEMENT constraintnote (head, (%obj.mix;)+)> +<!-- ID attribute: + constraintnote must have an ID so that it can be + pointed to from a constraint element in a production. --> +<!-- type attribute: + constraintnote must have a type value keyword so that + it can be correctly characterized in the specification. --> +<!ATTLIST constraintnote + %common-idreq.att; + type NMTOKEN #REQUIRED> + +<!-- ............................................................... --> +<!-- Basic display elements ........................................ --> +<!-- ............................................................... --> + +<!-- +#1998-03-23: maler: Added xml:space attribute. +--> + +<!-- eg: Example element, with whitespace respected. --> +<!ELEMENT eg (%eg.pcd.mix;)*> +<!ATTLIST eg + %common.att; + %xmlspace.att;> + +<!-- +#2000-03-07: maler: Removed the xml:attributes attribute. +# Added %local.graphic.att;. +--> + +<!-- graphic: Displayed graphic. Graphic data should be + displayed at the point where it is referenced. Not + actually conforming to XLink right now. --> +<!ELEMENT graphic EMPTY> +<!-- source attribute: + The graphic data must reside at the location pointed to. --> +<!ENTITY % local.graphic.att ""> +<!ATTLIST graphic + %common.att; + %simple-xlink.att; + source CDATA #REQUIRED + %auto-embed.att; + alt CDATA #IMPLIED + %local.graphic.att;> + +<!-- +#2000-03-07: maler: Added proto element structure. +--> + +<!-- proto: Function prototype, in the XPath/XPointer style. --> +<!ELEMENT proto (arg*)> +<!ATTLIST proto + %common.att; + name NMTOKEN #REQUIRED + return-type %argtypes; #REQUIRED +> + +<!ELEMENT arg EMPTY> +<!ATTLIST arg + %common.att; + type %argtypes; #REQUIRED + occur (opt|req) #IMPLIED +> + +<!-- +#2000-03-07: maler: Added example element. +--> + +<!ELEMENT example (head?, (%obj.mix;)+)> +<!ATTLIST example %common.att;> + +<!-- ............................................................... --> +<!-- EBNF .......................................................... --> +<!-- ............................................................... --> + +<!-- +#1997-11-28: maler: Added prodgroup to scrap and defined it. +#1998-05-21: maler: Added constraint to prod. +#1999-07-02: maler: Added prodrecap to scrap; broadened scrap model. +# Added headstyle attribute to scrap. +--> + +<!-- scrap: Collection of EBNF language productions. --> +<!ELEMENT scrap (head, (prodgroup | prod | bnf | prodrecap)+)> +<!-- lang attribute: + The scrap can link to a description of the language used, + found in a language element in the header. + headstyle attribute: + Allows a scrap title to be suppressed from output. To be + used only when a scrap title directly next to a section + title is distracting or repetetive. --> +<!ATTLIST scrap + %common.att; + lang IDREF #IMPLIED + headstyle (show|suppress) "show" +> + +<!-- prodgroup: Sub-collection of productions, needed for + formatting reasons. --> +<!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 +> + +<!-- prod: EBNF language production. --> +<!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;> + +<!-- lhs: Left-hand side of production. --> +<!ELEMENT lhs (#PCDATA)> +<!ATTLIST lhs %common.att;> + +<!-- rhs: Right-hand side of production; may have many + "right-hand sides," one to a line. --> +<!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. +--> + +<!-- com: Production comment. --> +<!ELEMENT com (#PCDATA|loc|bibref)*> +<!ATTLIST com %common.att;> + +<!-- wfc: Reference to a well-formedness constraint; 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: Reference to a validity constraint; 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: Reference to a generic 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 EBNF production, with whitespace + respected. --> +<!ELEMENT bnf (%eg.pcd.mix;)*> +<!ATTLIST bnf + %common.att; + %xmlspace.att;> + +<!-- +#1999-07-02: maler: Declared prodrecap. +--> + +<!-- prodrecap: Reference to production or bnf that appears + in its "normative" form elsewhere in the spec; should + generate a copy of the original production, without + a production number next to it. --> +<!ELEMENT prodrecap EMPTY> +<!ATTLIST prodrecap + %common.att; + %ref-req.att;> + +<!-- ............................................................... --> +<!-- Table ......................................................... --> +<!-- ............................................................... --> + +<!-- +#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"'> + +<!-- table: HTML-based geometric table model. --> +<!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;> + +<!-- ............................................................... --> +<!-- IDL structures for DOM specifications ......................... --> +<!-- ............................................................... --> + +<!-- ............................................................... --> +<!-- Specialized entities for classes .............................. --> + +<!ENTITY % idl-desc.class + "p|note"> + +<!ENTITY % idl-tdef.class + "typedef|constant|exception|reference|group"> + +<!ENTITY % idl-mod.class + "module|interface"> + +<!ENTITY % idl-struct.class + "struct|enum|sequence|union|typename"> + +<!ENTITY % idl-meth.class + "method|attribute"> + +<!-- ............................................................... --> +<!-- Specialized entities for mixtures ............................. --> + +<!-- Quick reference to content model mixtures: + + desc tdef mod struct meth +group x x x x x +definitions, module x x x +interface x x x +typedef, case, component x +--> + +<!ENTITY % idl-grp.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class; + |%idl-struct.class;|%idl-meth.class;"> + +<!ENTITY % idl-defn.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;"> + +<!ENTITY % idl-intfc.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-meth.class;"> + +<!ENTITY % idl-type.mix + "%idl-struct.class;"> + +<!-- ............................................................... --> +<!-- Specialized entities for common attributes .................... --> + +<!-- name attribute: + Provides a name. Required. --> +<!ENTITY % idl-name.att + 'name CDATA #REQUIRED'> + +<!-- type attribute: + Provides a type. Required. --> +<!ENTITY % idl-type.att + 'type CDATA #REQUIRED'> + +<!-- ............................................................... --> +<!-- Common IDL element ............................................ --> + +<!ELEMENT descr ((%obj.mix;)*)> +<!ATTLIST descr %common.att;> + +<!-- ............................................................... --> +<!-- IDL definition elements ....................................... --> + +<!-- definitions: Top-level element for definitions. --> +<!ELEMENT definitions (%idl-defn.mix;)+> +<!ATTLIST definitions %common.att;> + +<!-- group: Element used to group a set of definitions. --> + +<!ELEMENT group (descr, (%idl-grp.mix;)*)> +<!ATTLIST group + %common.att; + %idl-name.att;> + +<!-- interface: Definition of an interface. --> +<!ELEMENT interface (descr, (%idl-intfc.mix;)*)> +<!ATTLIST interface + %common.att; + %idl-name.att; + inherits CDATA #IMPLIED> + +<!-- module: Definition of a module. --> +<!ELEMENT module (descr, (%idl-defn.mix;)*)> +<!ATTLIST module + %common.att; + %idl-name.att;> + +<!-- reference: Reference to some other declaration. --> +<!ELEMENT reference EMPTY> +<!ATTLIST reference + %common.att; + declaration IDREF #REQUIRED> + +<!-- typedef: Definition of a named type. --> +<!ELEMENT typedef (descr, (%idl-type.mix;))> +<!ATTLIST typedef + %common.att; + %idl-name.att; + array.size NMTOKEN #IMPLIED> + +<!-- struct: Declaration of a struct type. --> +<!ELEMENT struct (descr, component+)> +<!ATTLIST struct + %common.att; + %idl-name.att;> + +<!-- component: Declaration of a structural member. --> +<!ELEMENT component (%idl-type.mix;)> +<!ATTLIST component + %common.att; + %idl-name.att;> + +<!-- union: Declaration of a union type. --> +<!ELEMENT union (descr, case+)> +<!ATTLIST union + %common.att; + %idl-name.att; + switch.type CDATA #REQUIRED> + +<!ELEMENT case (descr, (%idl-type.mix;))> +<!ATTLIST case + %common.att; + labels CDATA #REQUIRED> + +<!-- enum: Declaration of an enum type. --> +<!ELEMENT enum (descr, enumerator+)> +<!ATTLIST enum + %common.att; + %idl-name.att;> + +<!ELEMENT enumerator (descr)> +<!ATTLIST enumerator + %common.att; + %idl-name.att;> + +<!-- sequence: Declaration of a sequence type (not named). --> +<!ELEMENT sequence (sequence*)> +<!ATTLIST sequence + %common.att; + %idl-type.att; + size NMTOKEN #IMPLIED> + +<!-- constant: Declaration of a named constant. --> +<!ELEMENT constant (descr)> +<!ATTLIST constant + %common.att; + %idl-name.att; + %idl-type.att; + value CDATA #REQUIRED> + +<!-- exception: Declaration of an exception. --> +<!ELEMENT exception (descr, component*)> +<!ATTLIST exception + %common.att; + %idl-name.att;> +<!-- component (defined under struct, above)--> + +<!-- attribute: Declaration of an attribute (data member). --> +<!ELEMENT attribute (descr)> +<!ATTLIST attribute + %common.att; + %idl-name.att; + %idl-type.att; + readonly (yes + |no) "no"> + +<!-- method: Declaration of a method. --> +<!ELEMENT method (descr, parameters, returns, raises)> +<!ATTLIST method + %common.att; + %idl-name.att;> + +<!ELEMENT parameters (param*)> +<!ATTLIST parameters %common.att;> + +<!ELEMENT param (descr)> +<!ATTLIST param + %common.att; + %idl-name.att; + %idl-type.att; + attr (in + |out + |inout) "inout"> + +<!ELEMENT returns (descr)> +<!ATTLIST returns + %common.att; + %idl-type.att;> + +<!ELEMENT raises (exception*)> +<!-- exception (defined under constant, above)--> + +<!ELEMENT typename (#PCDATA)> +<!ATTLIST typename %common.att;> + +<!-- ............................................................... --> +<!-- Phrase-level elements ......................................... --> +<!-- ............................................................... --> + +<!-- +#2000-03-07: maler: Added att and attval elements. +--> + +<!-- att: Attribute name. --> +<!ELEMENT att (%tech.pcd.mix;)*> +<!ATTLIST att %common.att;> + +<!-- attval: Attribute value. --> +<!ELEMENT attval (%tech.pcd.mix;)*> +<!ATTLIST attval %common.att;> + +<!-- bibref: Reference to a bibliography list entry; 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. +#1999-07-02: maler: Changed edtext content from #PCDATA to %p.pcd.mix;. +--> + +<!-- ednote: Editorial note for communication among editors. --> +<!ELEMENT ednote (name?, date?, edtext)> +<!ATTLIST ednote %common.att;> + +<!ELEMENT date (#PCDATA)> +<!ATTLIST date %common.att;> + +<!ELEMENT edtext (%p.pcd.mix;)*> +<!ATTLIST edtext %common.att;> + +<!-- +#2000-03-07: maler: Added el element. +--> + +<!-- el: Element type name (GI). --> +<!ELEMENT el (%tech.pcd.mix;)*> +<!ATTLIST el %common.att;> + +<!-- +#2000-03-07: maler: Expanded emph to %p.pcd.mix;. +--> + +<!ELEMENT emph (%p.pcd.mix;)*> +<!ATTLIST emph %common.att;> + +<!-- footnote: Both footnote content and call to footnote. --> +<!ELEMENT footnote (%obj.mix;)+> +<!ATTLIST footnote %common.att;> + +<!-- +#2000-03-07: maler: Added function and gave it content of +# %tech.pcd.mix; instead of XPath's #PCDATA. +--> + +<!ELEMENT function (%tech.pcd.mix;)*> +<!ATTLIST function %common.att;> + +<!ELEMENT kw (%tech.pcd.mix;)*> +<!ATTLIST kw %common.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- loc: Generic link to a Web resource, similar to HTML's A. --> +<!ELEMENT loc (#PCDATA)> +<!-- href attribute: + The purpose of a loc element is to function as a A-like + 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.) E.g.: + +<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc> + --> +<!ATTLIST loc + %common.att; + %simple-xlink.att; + %href-req.att; + %user-replace.att;> + +<!-- nt: Mention of a nonterminal in text, along with a link to + the production in the current document that defines it. --> +<!ELEMENT nt (#PCDATA)> +<!-- def attribute: + The nonterminal must link to the production that defines + it. --> +<!ATTLIST nt + %common.att; + %def-req.att;> + +<!-- +#2000-03-07: maler: Declared phrase. +--> + +<!-- phrase: "Attribute hanger" for small bits of (e.g.) differenced + text in a paragraph or similar, when another element isn't handy. + Beware that its content model may allow more nested elements than + would normally be allowed in some contexts. --> +<!ELEMENT phrase (%p.pcd.mix;)*> +<!ATTLIST phrase %common.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: Reference to a div, olist item, prod, or issue + in the current document; should generate italic "[n.n], + Section Title" for div, "n" for numbered item, "[n]" for + production, or "Issue id" 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;> + +<!-- +#2000-03-07: maler: Added sub and sup. +--> + +<!-- sub: Subscript. --> +<!ELEMENT sub (#PCDATA)> +<!ATTLIST sub %common.att;> + +<!-- sup: Superscript. --> +<!ELEMENT sup (#PCDATA)> +<!ATTLIST sup %common.att;> + +<!-- term: The term in text that is being defined in text. --> +<!ELEMENT term (#PCDATA)> +<!ATTLIST term %common.att;> + +<!-- termdef: Definition of a term in text. --> +<!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> + +<!-- termref: Mention of a term, along with a link to the + definition in the current document. --> +<!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;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- titleref: Citation of another document, which can also + link to that document if it is a Web resource. --> +<!ELEMENT titleref (#PCDATA)> +<!-- href attribute: + A title reference can optionally function as a hypertext + link to the resource with this title. E.g.: + +<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc> + --> + +<!ATTLIST titleref + %common.att; + %simple-xlink.att; + %href.att; + %user-new.att;> + +<!-- +#2000-03-07: maler: Added var. +--> + +<!-- var: String standing for a variable value that the user + or system will supply. For example: "For each node + <var>x</var> in this node-set..." --> +<!ELEMENT var (%tech.pcd.mix;)*> +<!ATTLIST var %common.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- xnt: Mention of a nonterminal in text, along with a link to + the production in another document that defines it. --> +<!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). E.g.: + +<xnt href="http://www.w3.org/TR/spec.htm#prod3">Name</xnt> + --> + +<!ATTLIST xnt + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> + +<!-- +#1997-12-29: maler: Declared xspecref. +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- xspecref: Reference to a div, olist item, prod, or issue + in a related specification document; should generate + no special text. --> +<!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). E.g.: + +<xspecref href="http://www.w3.org/TR/spec.htm#sec2"> +the section on constraints</xspecref> + --> + +<!ATTLIST xspecref + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- termref: Mention of a term, along with a link to the + definition in a related document. --> +<!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). E.g.: + +<xtermref href="http://www.w3.org/TR/spec.htm#term5"> +entity +</xtermref> + --> + +<!ATTLIST xtermref + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.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. +#1998-11-30: maler: Added para, listitem, itemizedlist, and orderedlist. +--> + +<!-- The following elements are purposely declared but never + referenced. Declaring them allows them to be pasted from + an HTML document, an earlier version of an XMLspec document, + or a DocBook 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;)*> + +<!ELEMENT itemizedlist (listitem*)> +<!ELEMENT orderedlist (listitem*)> +<!ELEMENT listitem (para*)> +<!ELEMENT para (#PCDATA)> + +<!-- ............................................................... --> +<!-- Change history ................................................ --> +<!-- ............................................................... --> + +<!-- +#1997-08-18: maler +#- Did a major revision. +#1997-09-10: maler +#- Updated FPI. +#- Removed namekey element and put key attribute on name element. +#- Made statusp element and supporting entities. +#- Added slist element with sitem+ content. +#- Required head on scrap and added new bnf subelement. +#- Added an xnt element and allowed it and nt in regular text and rhs. +#- Removed the ntref element. +#- Added back the com element to the content of rhs. +#- Added a key attribute to bibl. +#- Removed the ident element. +#- Added a term element to be used inside termdef. +#- Added an xtermref element parallel to termref. +#- Beefed up DTD comments. +#1997-09-12: maler +#- Allowed term element in general text. +#- Changed bibref to EMPTY. +#- Added ref.class to termdef.pcd.mix. +#1997-09-14: maler +#- Changed main attribute of xtermref from def to href. +#- Added termdef.class to label contents. +#1997-09-30: maler +#- Added character entity module and added new entities. +#- Removed p from appearing directly in self; created %p.mix;. +#- Added inform-div (non-normative division) element. +#- Fixed xtermref comment to mention href, not ref. +#- Extended orglist model to allow optional affiliation. +#- Modified author to make affiliation optional. +#- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;. +#- Added %note.class; and %illus.class; to %termdef.pcd.mix;. +#- Added unused HTML elements. +#- Put empty system ID next to public ID in entity declarations. +#1997-10-14: maler +#- Fixed "unused" div content model to move nested div to mixture. +#1997-10-16: maler +#- Added SGML Open Exchange tables. +#1997-11-28: maler +#- Added support for prodgroup and its attributes. +#- Added support for HTML tables. +#- Added loc and bibref to content of com. +#- Added loc to general p content models. +#- Allowed p as alternative to statusp in status. +#- Added non-null system IDs to external parameter entity declarations. +#- (Modified the SGML Open table module to make it XML-compliant.) +#- (Modified the character entity module.) +#1997-12-29: maler +#- Moved #PCDATA occurrences to come before GIs in content models. +#- Removed use of the SGML Open table module. +#- Added xspecref element. +#- Ensured that all FPIs contain 4-digit year. +#- (Modified the character entity module.) +#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. +#1998-08-22: maler +#- Fixed %illus.class; to mention table instead of htable. +#- Added definitions to %illus.class; for DOM model. +#- Added DOM definitions element and its substructure. +#- Updated XLink usage in %href.att; to use xlink:form and #IMPLIED. +#- Added clarifying comments to href-using elements. +#1998-11-30: maler +#- Added new unused elements to support DocBook translation. +#- Updated maler phone numbers. +#1998-12-3: maler +#- Fixed character entities with respect to escaping of ampersands. +#- Added many more explanatory comments. +#1999-07-02: maler +#- Added %loc.class; to all PCD mixes that didn't already have it. +#- Removed unused %loc.pcd.mix;. +#- Made version in spec header optional. +#- Added three new attributes to spec. +#- Broadened content of edtext. +#- Added optional copyright element to header. +#- Reorganized XLink-related parameter entities; added xmlns:xlink. +#- Changed edtext content from #PCDATA to %p.pcd.mix;. +#- Added show/actuate atts and default values to all href elements. +#- Changed versioning scheme from 8-digit dates to version numbers. +#- Added w3c-doctype, other-doctype, status atts to spec element. +#- Added prodrecap element inside scrap. +#- Added headstyle attribute to scrap. +#2000-03-07: maler +#- Added proto element, its arg subelement, and the %argtypes; entity. +#- Added function, var, sub, sup, phrase, el, att, attval elements. +#- Expanded emph to %p.pcd.mix;. +#- Allowed status and abstract to appear in the opposite order. +#- Updated XLink usage to the latest WD, except for href and source. +#- Removed the xml:attributes attribute from graphic. +#- Added %local.graphic.att; to graphic. +#- Added common diff attribute. +#- Added div5 element. +#- Broadened content models of publoc, prevlocs, and latestloc. +#- Added head, source, resolution, and status attribute to issue. +#- Added cr, issues, and dispcmts to w3c-doctype attribute on spec. +#- Added example element. +--> + +<!-- ............................................................... --> +<!-- End of XML specification DTD .................................. --> +<!-- ............................................................... --> diff --git a/htdocs/sgml-lib/Specification/xmlspec.dtd b/htdocs/sgml-lib/Specification/xmlspec.dtd new file mode 100644 index 0000000..f720913 --- /dev/null +++ b/htdocs/sgml-lib/Specification/xmlspec.dtd @@ -0,0 +1,2778 @@ +<!-- ............................................................... --> +<!-- XML specification DTD ......................................... --> +<!-- ............................................................... --> + +<!-- $Id: xmlspec.dtd,v 1.20 2005/10/13 15:30:39 NormanWalsh Exp $ --> + +<!-- +TYPICAL INVOCATION: +# <!DOCTYPE spec PUBLIC +# "-//W3C//DTD Specification V2.10//EN" +# "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> + +PURPOSE: + This XML DTD is for W3C specifications and other technical reports. + It is based in part on the TEI Lite and Sweb DTDs. + +COPYRIGHT: + + Copyright (C) 2000, 2001, 2002, 2003 Sun Microsystems, Inc. All Rights Reserved. + This document is governed by the W3C Software License[3] as + described in the FAQ[4]. + + [1] http://www.w3.org/TR/xslt + [2] http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm + [3] http://www.w3.org/Consortium/Legal/copyright-software-19980720 + [4] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD + +DEPENDENCIES: + None. + +CHANGE HISTORY: + The list of historical changes is at the end of the DTD. For recent changes, + see the CVS log. + + For all details, see the design report at: + + <http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm> + + This report is now out-of-date, but no more recent report has been prepared. + +#2003-06-25: nwalsh: Added translationloc, preverrataloc, rfc2119 + +#2003-05-28: nwalsh: Added errataloc, fixed IE bug. Added @num to prod. + + Published V2.4 + +#2003-03-12: nwalsh: Added local.* PEs to a number of additional + places to make customization layers easier. + + Published V2.3 + +#2002-09-04: nwalsh: Added 'phrase' to title, subtitle, version, + w3c-designation, w3c-doctype, day, month, year, name, + affiliation, email, language, role, lhs, rhs, com, + typename, date, loc, nt, sub, sup, term, termref, + titleref, xnt, xspecref, xtermref + + This is *solely* to support automated diffing. Users + are explicitly forbidden from using this as an escape + hatch to get extra markup in these contexts. + +#2001-10-08: nwalsh: Added local.arg.att and local.proto.att + +#2002-08-14: nwalsh: Published V2.2 + + Added marked sections around element and attlist declarations and + added the altlocs element + +MAINTAINERS: + Norman Walsh + Sun Microsystems, Inc. + Norman.Walsh@Sun.COM + voice: +1 413 256 6985 + fax: +1 413 256 6985 + + Eve Maler + Sun Microsystems, Inc. + elm@east.sun.com + voice: +1 781 442 3190 + fax: +1 781 442 1437 +--> + +<!-- ............................................................... --> +<!-- 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. +#1998-12-03: maler: Escaped the leading ampersands. +--> + +<!ENTITY lt "&#60;"> +<!ENTITY gt ">"> +<!ENTITY amp "&#38;"> +<!ENTITY apos "'"> +<!ENTITY quot """> +<!ENTITY nbsp " "> +<!ENTITY mdash "&#x2014;"> +<!ENTITY ldquo "&#x201C;"> +<!ENTITY rdquo "&#x201D;"> + +<!-- ............................................................... --> +<!-- Entities for classes of standalone elements ................... --> +<!-- ............................................................... --> + +<!-- +#1997-10-16: maler: Added table to %illus.class;. +#1997-11-28: maler: Added htable to %illus.class;. +#1997-12-29: maler: IGNOREd table. +#1998-03-10: maler: Removed SGML Open-specific %illus.class;. +# Added "local" entities for customization. +#1998-05-14: maler: Added issue to %note.class;. +# Removed %[local.]statusp.class;. +#1998-05-21: maler: Added constraintnote to %note.class;. +#1998-08-22: maler: Changed htable to table in %illus.class;. +# Added definitions to %illus.class;. +#2000-03-07: maler: Added proto and example to %illus.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|table|definitions + |proto|example + %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. +#2000-03-07: maler: Added function, var, el, att, and attval to +# %tech.class;. +# Added sub, sup, and phrase to %emph.class;. +--> + +<!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|phrase|rfc2119|quote|sub|sup + %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|function|var + |el|att|attval + %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 % local.div.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % div.mix + "%p.class;|%list.class;|%speclist.class;|%note.class; + |%illus.class;|%ednote.class;%local.div.mix;"> + +<!ENTITY % local.obj.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % obj.mix + "%p.class;|%list.class;|%speclist.class;|%note.class; + |%illus.class;|%ednote.class;%local.obj.mix;"> + +<!ENTITY % local.p.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % p.mix + "%list.class;|%speclist.class;|%note.class;|%illus.class;%local.p.mix;"> + +<!ENTITY % local.entry.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % entry.mix + "%list.class;|note|eg|graphic|%ednote.class;%local.entry.mix;"> + +<!ENTITY % local.hdr.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % hdr.mix + "%p.class;|%list.class;|%ednote.class;%local.hdr.mix;"> + +<!ENTITY % local.termdef.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % termdef.mix + "%note.class;|%illus.class;%local.termdef.mix;"> + +<!-- ............................................................... --> +<!-- 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;. +#1999-07-02: maler: Added %loc.class; to %head.pcd.mix;, +# %label.pcd.mix;, %eg.pcd.mix;, %termdef.pcd.mix;, +# %tech.pcd.mix; (net: all PCD mixes have it). +# Removed unused %loc.pcd.mix;. +--> + +<!ENTITY % local.p.pcd.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % p.pcd.mix + "#PCDATA|%annot.class;|%termdef.class;|%emph.class; + |%ref.class;|%tech.class;|%loc.class;|%ednote.class;%local.p.pcd.mix;"> + +<!ENTITY % local.head.pcd.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % head.pcd.mix + "#PCDATA|%annot.class;|%emph.class;|%tech.class; + |%loc.class;|%ednote.class;%local.head.pcd.mix;"> + +<!ENTITY % local.label.pcd.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % label.pcd.mix + "#PCDATA|%annot.class;|%termdef.class;|%emph.class; + |%tech.class;|%loc.class;|%ednote.class;%local.label.pcd.mix;"> + +<!ENTITY % local.eg.pcd.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % eg.pcd.mix + "#PCDATA|%annot.class;|%emph.class;|%loc.class; + |%ednote.class;|constraint %local.eg.pcd.mix;"> + +<!ENTITY % local.termdef.pcd.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % termdef.pcd.mix + "#PCDATA|term|%emph.class;|%ref.class;|%tech.class; + |%loc.class;|%ednote.class;%local.termdef.pcd.mix;"> + +<!ENTITY % local.bibl.pcd.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % bibl.pcd.mix + "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;%local.bibl.pcd.mix;"> + +<!ENTITY % local.tech.pcd.mix " "> <!-- compensate for IE bug; suggested by ht --> +<!ENTITY % tech.pcd.mix + "#PCDATA|%loc.class;|%ednote.class;|phrase|rfc2119 %local.tech.pcd.mix;"> + +<!-- ............................................................... --> +<!-- Entities for customizable content models ...................... --> +<!-- ............................................................... --> + +<!-- +#1998-03-10: maler: Added customization entities. +#1998-05-14: maler: Allowed prevlocs and latestloc in either order. +#1999-07-02: maler: Made version optional; added copyright element. +#2000-03-07: maler: Allowed status and abstract in opposite order. +--> + +<!ENTITY % spec.mdl + "header, front?, body, back?"> + +<!ENTITY % header.mdl + "title, subtitle?, version?, w3c-designation, w3c-doctype, + pubdate, notice*, publoc, altlocs?, ((prevlocs, latestloc?) | + (latestloc, prevlocs?))?, authlist, errataloc?, preverrataloc?, + translationloc?, copyright?, + ((status, abstract) | (abstract, status)), pubstmt?, + sourcedesc?, langusage, revisiondesc"> + +<!ENTITY % pubdate.mdl + "day?, month, year"> + +<!-- ............................................................... --> +<!-- Entities for common attributes ................................ --> +<!-- ............................................................... --> + +<!-- +#2000-03-07: maler: Added %argtypes;. +--> + +<!-- argtypes: + Values for function prototype argument datatypes. --> +<!ENTITY % argtypes + '(boolean + |expression + |location-set + |node-set + |number + |object + |point + |range + |string)'> + +<!-- 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. +#1998-08-22: maler: Used new xlink:form and #IMPLIED features. +#1999-07-02: maler: Reorganized XLink-related entities completely; +# added xmlns:xlink attribute to the mix. +#2000-03-07: maler: Updated XLink usage to February 2000 draft, +# except that href still has no namespace prefix. +--> + +<!-- xmlns:xlink and xlink:type attributes: + xmlns:xlink declares the association of the xlink prefix + with the namespace created by the XLink specification. + xlink:type identifies an element as an XLink "simple" linking + element. --> +<!ENTITY % simple-xlink.att + 'xmlns:xlink CDATA #FIXED + "http://www.w3.org/1999/xlink" + xlink:type CDATA #FIXED "simple" '> + +<!-- href attributes: + The href attribute locates the remote-resource half of a + simple link; the element on which the href appears is the + local-resource half. Some elements are usable links only if + the author chooses to supply a functional href. The attribute + name should really be xlink:href, but is kept without the + prefix for now in order to be backwards-compatible. --> + +<!ENTITY % href.att + 'href CDATA #IMPLIED '> +<!ENTITY % href-req.att + 'href CDATA #REQUIRED '> + +<!-- xlink:show and xlink:actuate attributes: + These attributes offer instructions to the display engine + about how to handle traversal to resource indicated by an + href locator. --> +<!ENTITY % auto-embed.att + 'xlink:show CDATA #FIXED "embed" + xlink:actuate CDATA #FIXED "onLoad" '> +<!ENTITY % user-replace.att + 'xlink:show CDATA #FIXED "replace" + xlink:actuate CDATA #FIXED "onRequest" '> +<!ENTITY % user-new.att + 'xlink:show CDATA #FIXED "new" + xlink:actuate CDATA #FIXED "onRequest" '> + +<!-- xml:space attribute: + Indicates that the element contains whitespace that the + formatter or other application should retain, as appropriate + to its function. --> +<!ENTITY % xmlspace.att + 'xml:space (default + |preserve) #FIXED "preserve" '> + +<!-- +#2000-03-07: maler: Added common diff attribute. Made %role.att;. +--> + +<!-- diff attribute: + Indicates in what way the element has changed. When a value + is not provided, that subelement should inherit a value from + its parent. If the root element has no value supplied, + assume "off". --> +<!ENTITY % diff.att + 'diff (chg + |add + |del + |off) #IMPLIED'> + +<!-- role attribute: + Extends the useful life of the DTD by allowing authors to + make a subtype of any element. No default. --> +<!ENTITY % role.att + 'role NMTOKEN #IMPLIED'> + +<!-- Common attributes: + Every element has an ID attribute for links, a role + attribute, and a diff attribute. %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 % local.common.att " "> +<!ENTITY % common.att + 'id ID #IMPLIED + %role.att; + %diff.att; + %local.common.att;'> + +<!ENTITY % local.common-idreq.att " "> +<!ENTITY % common-idreq.att + 'id ID #REQUIRED + %role.att; + %diff.att; + %local.common-idreq.att;'> + +<!-- ............................................................... --> +<!-- Common elements ............................................... --> +<!-- ............................................................... --> + +<!-- head: Title on divisions, productions, and the like --> +<!ENTITY % head.element "INCLUDE"> +<![%head.element;[ +<!ELEMENT head (%head.pcd.mix;)*> +]]> +<!ENTITY % head.attlist "INCLUDE"> +<![%head.attlist;[ +<!ATTLIST head %common.att;> +]]> + +<!-- ............................................................... --> +<!-- Major specification structure ................................. --> +<!-- ............................................................... --> + +<!-- +#1998-03-10: maler: Made spec content model easily customizable. +#1999-07-02: maler: Added doctype atts and status att. +#2000-03-07: maler: Added cr, issues, and dispcmts to w3c-doctype. +--> + +<!ENTITY % spec.element "INCLUDE"> +<![%spec.element;[ +<!ELEMENT spec (%spec.mdl;)> +]]> +<!-- w3c-doctype attributes: + Indicates the type of document, so that the appropriate + stylesheet or workflow routing can be applied. Should + *not* generate any text (such as the "REC-" or "NOTE-" + prefix on the W3C designation content). No default. If + w3c-doctype is "other", other-doctype should be filled in. + + status attribute: + Indicates the stage of review of the document. May affect + the stylesheet's treatment of ednotes (e.g., whether to + output them). No default. --> + +<!ENTITY % local.spec.att " "> +<!ENTITY % spec.attlist "INCLUDE"> +<![%spec.attlist;[ +<!ATTLIST spec + %common.att; + %local.spec.att; + w3c-doctype (cr + |dispcmts + |issues + |wgnote + |memsub + |teamsub + |note + |other + |pr + |per + |rec + |wd + |review) #IMPLIED + other-doctype CDATA #IMPLIED + status (int-review + |ext-review + |final) #IMPLIED +> +]]> + +<!ENTITY % front.element "INCLUDE"> +<![%front.element;[ +<!ELEMENT front (div1+)> +]]> +<!ENTITY % front.attlist "INCLUDE"> +<![%front.attlist;[ +<!ATTLIST front %common.att;> +]]> + +<!ENTITY % body.element "INCLUDE"> +<![%body.element;[ +<!ELEMENT body (div1+)> +]]> +<!ENTITY % body.attlist "INCLUDE"> +<![%body.attlist;[ +<!ATTLIST body %common.att;> +]]> + +<!-- +#1997-09-30: maler: Added inform-div1 to back content. +--> + +<!ENTITY % back.element "INCLUDE"> +<![%back.element;[ +<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)> +]]> +<!ENTITY % back.attlist "INCLUDE"> +<![%back.attlist;[ +<!ATTLIST back %common.att;> +]]> + +<!ENTITY % div1.element "INCLUDE"> +<![%div1.element;[ +<!ELEMENT div1 (head, (%div.mix;)*, div2*)> +]]> +<!ENTITY % div1.attlist "INCLUDE"> +<![%div1.attlist;[ +<!ATTLIST div1 %common.att;> +]]> + +<!-- +#1997-09-30: maler: Added inform-div1 declarations. +#2000-03-07: maler: Added div5 level. +--> + +<!-- inform-div1: Non-normative division in back matter --> +<!ENTITY % inform-div1.element "INCLUDE"> +<![%inform-div1.element;[ +<!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)> +]]> +<!ENTITY % inform-div1.attlist "INCLUDE"> +<![%inform-div1.attlist;[ +<!ATTLIST inform-div1 %common.att;> +]]> + +<!ENTITY % div2.element "INCLUDE"> +<![%div2.element;[ +<!ELEMENT div2 (head, (%div.mix;)*, div3*)> +]]> +<!ENTITY % div2.attlist "INCLUDE"> +<![%div2.attlist;[ +<!ATTLIST div2 %common.att;> +]]> + +<!ENTITY % div3.element "INCLUDE"> +<![%div3.element;[ +<!ELEMENT div3 (head, (%div.mix;)*, div4*)> +]]> +<!ENTITY % div3.attlist "INCLUDE"> +<![%div3.attlist;[ +<!ATTLIST div3 %common.att;> +]]> + +<!ENTITY % div4.element "INCLUDE"> +<![%div4.element;[ +<!ELEMENT div4 (head, (%div.mix;)*, div5*)> +]]> +<!ENTITY % div4.attlist "INCLUDE"> +<![%div4.attlist;[ +<!ATTLIST div4 %common.att;> +]]> + +<!ENTITY % div5.element "INCLUDE"> +<![%div5.element;[ +<!ELEMENT div5 (head, (%div.mix;)*)> +]]> +<!ENTITY % div5.attlist "INCLUDE"> +<![%div5.attlist;[ +<!ATTLIST div5 %common.att;> +]]> + +<!-- ............................................................... --> +<!-- Specification header .......................................... --> +<!-- ............................................................... --> + +<!-- +#1998-03-10: maler: Made header content model easily customizable. +--> + +<!ENTITY % header.element "INCLUDE"> +<![%header.element;[ +<!ELEMENT header (%header.mdl;)> +]]> +<!ENTITY % header.attlist "INCLUDE"> +<![%header.attlist;[ +<!ATTLIST header %common.att;> +]]> + +<!-- Example of title: "Extensible Cheese Language (XCL)" --> +<!ENTITY % title.element "INCLUDE"> +<![%title.element;[ +<!ELEMENT title (#PCDATA|phrase)*> +]]> +<!ENTITY % title.attlist "INCLUDE"> +<![%title.attlist;[ +<!ATTLIST title %common.att;> +]]> + +<!-- Example of subtitle: "A Cheesy Specification" --> +<!ENTITY % subtitle.element "INCLUDE"> +<![%subtitle.element;[ +<!ELEMENT subtitle (#PCDATA|phrase)*> +]]> +<!ENTITY % subtitle.attlist "INCLUDE"> +<![%subtitle.attlist;[ +<!ATTLIST subtitle %common.att;> +]]> + +<!-- Example of version: "Version 666.0" --> +<!ENTITY % version.element "INCLUDE"> +<![%version.element;[ +<!ELEMENT version (#PCDATA|phrase)*> +]]> +<!ENTITY % version.attlist "INCLUDE"> +<![%version.attlist;[ +<!ATTLIST version %common.att;> +]]> + +<!-- Example of w3c-designation: "WD-xcl-19991231" --> +<!ENTITY % w3c-designation.element "INCLUDE"> +<![%w3c-designation.element;[ +<!ELEMENT w3c-designation (#PCDATA|phrase)*> +]]> +<!ENTITY % w3c-designation.attlist "INCLUDE"> +<![%w3c-designation.attlist;[ +<!ATTLIST w3c-designation %common.att;> +]]> + +<!-- Example of w3c-doctype: "W3C Working Draft" --> +<!ENTITY % w3c-doctype.element "INCLUDE"> +<![%w3c-doctype.element;[ +<!ELEMENT w3c-doctype (#PCDATA|phrase)*> +]]> +<!ENTITY % w3c-doctype.attlist "INCLUDE"> +<![%w3c-doctype.attlist;[ +<!ATTLIST w3c-doctype %common.att;> +]]> + +<!-- +#1998-03-10: maler: Made pubdate content model easily customizable. +--> + +<!ENTITY % pubdate.element "INCLUDE"> +<![%pubdate.element;[ +<!ELEMENT pubdate (%pubdate.mdl;)> +]]> +<!ENTITY % pubdate.attlist "INCLUDE"> +<![%pubdate.attlist;[ +<!ATTLIST pubdate %common.att;> +]]> + +<!ENTITY % day.element "INCLUDE"> +<![%day.element;[ +<!ELEMENT day (#PCDATA|phrase)*> +]]> +<!ENTITY % day.attlist "INCLUDE"> +<![%day.attlist;[ +<!ATTLIST day %common.att;> +]]> + +<!ENTITY % month.element "INCLUDE"> +<![%month.element;[ +<!ELEMENT month (#PCDATA|phrase)*> +]]> +<!ENTITY % month.attlist "INCLUDE"> +<![%month.attlist;[ +<!ATTLIST month %common.att;> +]]> + +<!ENTITY % year.element "INCLUDE"> +<![%year.element;[ +<!ELEMENT year (#PCDATA|phrase)*> +]]> +<!ENTITY % year.attlist "INCLUDE"> +<![%year.attlist;[ +<!ATTLIST year %common.att;> +]]> + +<!-- +#1999-07-02: maler: Declared copyright element. +--> + +<!ENTITY % copyright.element "INCLUDE"> +<![%copyright.element;[ +<!ELEMENT copyright (%hdr.mix;)+> +]]> +<!ENTITY % copyright.attlist "INCLUDE"> +<![%copyright.attlist;[ +<!ATTLIST copyright %common.att;> +]]> + +<!-- Example of notice: "This draft is for public comment..." --> +<!ENTITY % notice.element "INCLUDE"> +<![%notice.element;[ +<!ELEMENT notice (%hdr.mix;)+> +]]> +<!ENTITY % notice.attlist "INCLUDE"> +<![%notice.attlist;[ +<!ATTLIST notice %common.att;> +]]> + +<!-- +#2000-03-07: maler: Broadened models of *loc to %p.pcd.mix;. +--> + +<!ENTITY % publoc.element "INCLUDE"> +<![%publoc.element;[ +<!ELEMENT publoc (%p.pcd.mix;)*> +]]> +<!ENTITY % publoc.attlist "INCLUDE"> +<![%publoc.attlist;[ +<!ATTLIST publoc %common.att;> +]]> + +<!-- +#2002-08-15: nwalsh: Added altlocs element. + The semantics of the altlocs are equivalent to the Dublin Core relation element + with type="hasVersion". Each of the loc elements inside altlocs should identify + an alternate version of the resource described by the document, for example + HTML, XML, and PDF forms. +--> +<!ENTITY % altlocs.element "INCLUDE"> +<![%altlocs.element;[ +<!ELEMENT altlocs (loc+)> +]]> +<!ENTITY % altlocs.attlist "INCLUDE"> +<![%altlocs.attlist;[ +<!ATTLIST altlocs %common.att;> +]]> + +<!ENTITY % prevlocs.element "INCLUDE"> +<![%prevlocs.element;[ +<!ELEMENT prevlocs (%p.pcd.mix;)*> +]]> +<!ENTITY % prevlocs.attlist "INCLUDE"> +<![%prevlocs.attlist;[ +<!ATTLIST prevlocs %common.att;> +]]> + +<!-- +#2005-10-13: nwalsh: restrict latestloc content model. + New pubrules allows for multiple latestlocs. For some reason, this element + used to allow PCDATA. Now it allows only loc elements. If this causes + trouble, tell Norm. +--> +<!ENTITY % latestloc.element "INCLUDE"> +<![%latestloc.element;[ +<!ELEMENT latestloc (loc+)> +]]> +<!ENTITY % latestloc.attlist "INCLUDE"> +<![%latestloc.attlist;[ +<!ATTLIST latestloc %common.att;> +]]> + +<!ENTITY % errataloc.element "INCLUDE"> +<![%errataloc.element;[ +<!ELEMENT errataloc EMPTY> +]]> +<!ENTITY % errataloc.attlist "INCLUDE"> +<![%errataloc.attlist;[ +<!ATTLIST errataloc + %common.att; + %simple-xlink.att; + %href-req.att; +> +]]> + +<!ENTITY % preverrataloc.element "INCLUDE"> +<![%preverrataloc.element;[ +<!ELEMENT preverrataloc EMPTY> +]]> +<!ENTITY % preverrataloc.attlist "INCLUDE"> +<![%preverrataloc.attlist;[ +<!ATTLIST preverrataloc + %common.att; + %simple-xlink.att; + %href-req.att; +> +]]> + +<!ENTITY % translationloc.element "INCLUDE"> +<![%translationloc.element;[ +<!ELEMENT translationloc EMPTY> +]]> +<!ENTITY % translationloc.attlist "INCLUDE"> +<![%translationloc.attlist;[ +<!ATTLIST translationloc + %common.att; + %simple-xlink.att; + %href-req.att; +> +]]> + +<!-- loc (defined in "Phrase-level elements" below) --> + +<!ENTITY % authlist.element "INCLUDE"> +<![%authlist.element;[ +<!ELEMENT authlist (author+)> +]]> +<!ENTITY % authlist.attlist "INCLUDE"> +<![%authlist.attlist;[ +<!ATTLIST authlist %common.att;> +]]> + +<!-- +#1997-09-30: maler: Made affiliation optional. +#1998-03-10: maler: Made email optional. +--> + +<!ENTITY % author.element "INCLUDE"> +<![%author.element;[ +<!ELEMENT author (name, affiliation?, email?)> +]]> +<!ENTITY % author.attlist "INCLUDE"> +<![%author.attlist;[ +<!ATTLIST author %common.att;> +]]> + +<!ENTITY % name.element "INCLUDE"> +<![%name.element;[ +<!ELEMENT name (#PCDATA|phrase)*> +]]> +<!ENTITY % name.attlist "INCLUDE"> +<![%name.attlist;[ +<!ATTLIST name + %common.att; + %key.att;> +]]> + +<!ENTITY % affiliation.element "INCLUDE"> +<![%affiliation.element;[ +<!ELEMENT affiliation (#PCDATA|phrase)*> +]]> +<!ENTITY % affiliation.attlist "INCLUDE"> +<![%affiliation.attlist;[ +<!ATTLIST affiliation %common.att;> +]]> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + + +<!ENTITY % email.element "INCLUDE"> +<![%email.element;[ +<!ELEMENT email (#PCDATA|phrase)*> +]]> +<!-- href attribute: + email functions as a hypertext reference through this + required attribute. Typically the reference would use + the mailto: scheme. E.g.: + +<email href="mailto:elm@arbortext.com">elm@arbortext.com</email> + --> + +<!ENTITY % email.attlist "INCLUDE"> +<![%email.attlist;[ +<!ATTLIST email + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> +]]> + +<!-- +#1998-05-15: maler: Changed status content from %statusobj.mix; +# to plain %obj.mix;. statusp is obsolete. +--> + +<!ENTITY % status.element "INCLUDE"> +<![%status.element;[ +<!ELEMENT status (%obj.mix;)+> +]]> +<!ENTITY % status.attlist "INCLUDE"> +<![%status.attlist;[ +<!ATTLIST status %common.att;> +]]> + +<!ENTITY % abstract.element "INCLUDE"> +<![%abstract.element;[ +<!ELEMENT abstract (%hdr.mix;)*> +]]> +<!ENTITY % abstract.attlist "INCLUDE"> +<![%abstract.attlist;[ +<!ATTLIST abstract %common.att;> +]]> + +<!ENTITY % pubstmt.element "INCLUDE"> +<![%pubstmt.element;[ +<!ELEMENT pubstmt (%hdr.mix;)+> +]]> +<!ENTITY % pubstmt.attlist "INCLUDE"> +<![%pubstmt.attlist;[ +<!ATTLIST pubstmt %common.att;> +]]> + +<!ENTITY % sourcedesc.element "INCLUDE"> +<![%sourcedesc.element;[ +<!ELEMENT sourcedesc (%hdr.mix;)+> +]]> +<!ENTITY % sourcedesc.attlist "INCLUDE"> +<![%sourcedesc.attlist;[ +<!ATTLIST sourcedesc %common.att;> +]]> + +<!ENTITY % langusage.element "INCLUDE"> +<![%langusage.element;[ +<!ELEMENT langusage (language+)> +]]> +<!ENTITY % langusage.attlist "INCLUDE"> +<![%langusage.attlist;[ +<!ATTLIST langusage %common.att;> +]]> + +<!ENTITY % language.element "INCLUDE"> +<![%language.element;[ +<!ELEMENT language (#PCDATA|phrase)*> +]]> +<!ENTITY % language.attlist "INCLUDE"> +<![%language.attlist;[ +<!ATTLIST language %common.att;> +]]> + +<!ENTITY % revisiondesc.element "INCLUDE"> +<![%revisiondesc.element;[ +<!ELEMENT revisiondesc (%hdr.mix;)+> +]]> +<!ENTITY % revisiondesc.attlist "INCLUDE"> +<![%revisiondesc.attlist;[ +<!ATTLIST revisiondesc %common.att;> +]]> + +<!-- ............................................................... --> +<!-- Paragraph ..................................................... --> +<!-- ............................................................... --> + +<!-- +#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. +--> + +<!ENTITY % p.element "INCLUDE"> +<![%p.element;[ +<!ELEMENT p (%p.pcd.mix;|%p.mix;)*> +]]> +<!ENTITY % p.attlist "INCLUDE"> +<![%p.attlist;[ +<!ATTLIST p %common.att;> +]]> + +<!-- ............................................................... --> +<!-- Regular lists ................................................. --> +<!-- ............................................................... --> + +<!-- ulist: Unordered list, typically bulleted. --> +<!ENTITY % ulist.element "INCLUDE"> +<![%ulist.element;[ +<!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. --> +<!ENTITY % ulist.attlist "INCLUDE"> +<![%ulist.attlist;[ +<!ATTLIST ulist + %common.att; + spacing (normal|compact) #IMPLIED> +]]> + +<!-- olist: Ordered list, typically numbered. --> +<!ENTITY % olist.element "INCLUDE"> +<![%olist.element;[ +<!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. --> +<!ENTITY % olist.attlist "INCLUDE"> +<![%olist.attlist;[ +<!ATTLIST olist + %common.att; + spacing (normal|compact) #IMPLIED> +]]> + +<!ENTITY % item.element "INCLUDE"> +<![%item.element;[ +<!ELEMENT item (%obj.mix;)+> +]]> +<!ENTITY % item.attlist "INCLUDE"> +<![%item.attlist;[ +<!ATTLIST item %common.att;> +]]> + +<!-- slist: Simple list, typically with no mark. --> +<!ENTITY % slist.element "INCLUDE"> +<![%slist.element;[ +<!ELEMENT slist (sitem+)> +]]> +<!ENTITY % slist.attlist "INCLUDE"> +<![%slist.attlist;[ +<!ATTLIST slist %common.att;> +]]> + +<!ENTITY % sitem.element "INCLUDE"> +<![%sitem.element;[ +<!ELEMENT sitem (%p.pcd.mix;)*> +]]> +<!ENTITY % sitem.attlist "INCLUDE"> +<![%sitem.attlist;[ +<!ATTLIST sitem %common.att;> +]]> + +<!-- glist: Glossary list, typically two-column. --> +<!ENTITY % glist.element "INCLUDE"> +<![%glist.element;[ +<!ELEMENT glist (gitem+)> +]]> +<!ENTITY % glist.attlist "INCLUDE"> +<![%glist.attlist;[ +<!ATTLIST glist %common.att;> +]]> + +<!ENTITY % gitem.element "INCLUDE"> +<![%gitem.element;[ +<!ELEMENT gitem (label, def)> +]]> +<!ENTITY % gitem.attlist "INCLUDE"> +<![%gitem.attlist;[ +<!ATTLIST gitem %common.att;> +]]> + +<!ENTITY % label.element "INCLUDE"> +<![%label.element;[ +<!ELEMENT label (%label.pcd.mix;)*> +]]> +<!ENTITY % label.attlist "INCLUDE"> +<![%label.attlist;[ +<!ATTLIST label %common.att;> +]]> + +<!ENTITY % def.element "INCLUDE"> +<![%def.element;[ +<!ELEMENT def (%obj.mix;)*> +]]> +<!ENTITY % def.attlist "INCLUDE"> +<![%def.attlist;[ +<!ATTLIST def %common.att;> +]]> + +<!-- ............................................................... --> +<!-- Special lists ................................................. --> +<!-- ............................................................... --> + +<!-- blist: Bibliography list. --> +<!ENTITY % blist.element "INCLUDE"> +<![%blist.element;[ +<!ELEMENT blist (bibl+)> +]]> +<!ENTITY % blist.attlist "INCLUDE"> +<![%blist.attlist;[ +<!ATTLIST blist %common.att;> +]]> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!ENTITY % bibl.element "INCLUDE"> +<![%bibl.element;[ +<!ELEMENT bibl (%bibl.pcd.mix;)*> +]]> +<!-- href attribute: + bibl optionally functions as a hypertext reference to the + referred-to resource through this attribute. E.g.: + + <bibl href="http://www.my.com/doc.htm">My Document</bibl> + --> +<!ENTITY % bibl.attlist "INCLUDE"> +<![%bibl.attlist;[ +<!ATTLIST bibl + %common.att; + %simple-xlink.att; + %href.att; + %user-replace.att; + %key.att;> +]]> + +<!-- orglist: Organization member list. --> +<!ENTITY % orglist.element "INCLUDE"> +<![%orglist.element;[ +<!ELEMENT orglist (member+)> +]]> +<!ENTITY % orglist.attlist "INCLUDE"> +<![%orglist.attlist;[ +<!ATTLIST orglist %common.att;> +]]> + +<!-- +#1997-09-30: maler: Added optional affiliation. +--> + +<!ENTITY % member.element "INCLUDE"> +<![%member.element;[ +<!ELEMENT member (name, affiliation?, role?)> +]]> +<!ENTITY % member.attlist "INCLUDE"> +<![%member.attlist;[ +<!ATTLIST member %common.att;> +]]> + +<!-- name (defined in "Specification header" above) --> +<!-- affiliation (defined in "Specification header" above) --> + +<!ENTITY % role.element "INCLUDE"> +<![%role.element;[ +<!ELEMENT role (#PCDATA|phrase)*> +]]> +<!ENTITY % role.attlist "INCLUDE"> +<![%role.attlist;[ +<!ATTLIST role %common.att;> +]]> + +<!-- ............................................................... --> +<!-- Notes ......................................................... --> +<!-- ............................................................... --> + +<!ENTITY % note.element "INCLUDE"> +<![%note.element;[ +<!ELEMENT note (%obj.mix;)+> +]]> +<!ENTITY % note.attlist "INCLUDE"> +<![%note.attlist;[ +<!ATTLIST note %common.att;> +]]> + +<!-- +#1998-05-14: maler: Declared issue element. +#2000-03-07: maler: Added head, source, resolution, and status. +--> + +<!ENTITY % issue.element "INCLUDE"> +<![%issue.element;[ +<!ELEMENT issue (head?, source*, (%obj.mix;)+, resolution?)> +]]> +<!-- status attribute: + Indicates whether the issue is open or closed. Note that + the lack of a resolution element does not necessarily mean + that the issue is still open. --> +<!ENTITY % issue.attlist "INCLUDE"> +<![%issue.attlist;[ +<!ATTLIST issue + id ID #REQUIRED + %role.att; + %diff.att; + status (open + |closed) "open" +> +]]> + +<!ENTITY % source.element "INCLUDE"> +<![%source.element;[ +<!ELEMENT source (%p.pcd.mix;)*> +]]> +<!ENTITY % source.attlist "INCLUDE"> +<![%source.attlist;[ +<!ATTLIST source + %common.att;> +]]> + +<!ENTITY % resolution.element "INCLUDE"> +<![%resolution.element;[ +<!ELEMENT resolution (%obj.mix;)+> +]]> +<!ENTITY % resolution.attlist "INCLUDE"> +<![%resolution.attlist;[ +<!ATTLIST resolution %common.att;> +]]> + +<!-- wfcnote: Well-formedness constraint note. --> +<!ENTITY % wfcnote.element "INCLUDE"> +<![%wfcnote.element;[ +<!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. --> +<!ENTITY % wfcnote.attlist "INCLUDE"> +<![%wfcnote.attlist;[ +<!ATTLIST wfcnote + %common-idreq.att;> +]]> + +<!-- vcnote: Validity constraint note. --> +<!ENTITY % vcnote.element "INCLUDE"> +<![%vcnote.element;[ +<!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. --> +<!ENTITY % vcnote.attlist "INCLUDE"> +<![%vcnote.attlist;[ +<!ATTLIST vcnote + %common-idreq.att;> +]]> + +<!-- +#1998-05-21: maler: Declared generic constraintnote element. +--> + +<!-- constraintnote: Generic constraint note. --> +<!ENTITY % constraintnote.element "INCLUDE"> +<![%constraintnote.element;[ +<!ELEMENT constraintnote (head, (%obj.mix;)+)> +]]> +<!-- ID attribute: + constraintnote must have an ID so that it can be + pointed to from a constraint element in a production. --> +<!-- type attribute: + constraintnote must have a type value keyword so that + it can be correctly characterized in the specification. --> +<!ENTITY % constraintnote.attlist "INCLUDE"> +<![%constraintnote.attlist;[ +<!ATTLIST constraintnote + %common-idreq.att; + type NMTOKEN #REQUIRED> +]]> + +<!-- ............................................................... --> +<!-- Basic display elements ........................................ --> +<!-- ............................................................... --> + +<!-- +#1998-03-23: maler: Added xml:space attribute. +--> + +<!-- eg: Example element, with whitespace respected. --> +<!ENTITY % eg.element "INCLUDE"> +<![%eg.element;[ +<!ELEMENT eg (%eg.pcd.mix;)*> +]]> +<!ENTITY % eg.attlist "INCLUDE"> +<![%eg.attlist;[ +<!ATTLIST eg + %common.att; + %xmlspace.att;> +]]> + +<!-- +#2000-03-07: maler: Removed the xml:attributes attribute. +# Added %local.graphic.att;. +--> + +<!-- graphic: Displayed graphic. Graphic data should be + displayed at the point where it is referenced. Not + actually conforming to XLink right now. --> +<!ENTITY % graphic.element "INCLUDE"> +<![%graphic.element;[ +<!ELEMENT graphic EMPTY> +]]> +<!-- source attribute: + The graphic data must reside at the location pointed to. --> +<!ENTITY % local.graphic.att " "> +<!ENTITY % graphic.attlist "INCLUDE"> +<![%graphic.attlist;[ +<!ATTLIST graphic + %common.att; + %simple-xlink.att; + source CDATA #REQUIRED + %auto-embed.att; + alt CDATA #IMPLIED + %local.graphic.att;> +]]> + +<!-- +#2000-03-07: maler: Added proto element structure. +--> + +<!-- proto: Function prototype, in the XPath/XPointer style. --> +<!ENTITY % proto.element "INCLUDE"> +<![%proto.element;[ +<!ELEMENT proto (arg*)> +]]> + +<!ENTITY % local.proto.att " "> +<!ENTITY % proto.attlist "INCLUDE"> +<![%proto.attlist;[ +<!ATTLIST proto + %common.att; + %local.proto.att; + name NMTOKEN #REQUIRED + return-type %argtypes; #REQUIRED +> +]]> + +<!ENTITY % local.arg.att " "> +<!ENTITY % arg.element "INCLUDE"> +<![%arg.element;[ +<!ELEMENT arg EMPTY> +]]> +<!ENTITY % arg.attlist "INCLUDE"> +<![%arg.attlist;[ +<!ATTLIST arg + %common.att; + %local.arg.att; + type %argtypes; #REQUIRED + occur (opt|req) #IMPLIED +> +]]> + +<!-- +#2000-03-07: maler: Added example element. +--> + +<!ENTITY % example.element "INCLUDE"> +<![%example.element;[ +<!ELEMENT example (head?, (%obj.mix;)+)> +]]> +<!ENTITY % example.attlist "INCLUDE"> +<![%example.attlist;[ +<!ATTLIST example %common.att;> +]]> + +<!-- ............................................................... --> +<!-- EBNF .......................................................... --> +<!-- ............................................................... --> + +<!-- +#1997-11-28: maler: Added prodgroup to scrap and defined it. +#1998-05-21: maler: Added constraint to prod. +#1999-07-02: maler: Added prodrecap to scrap; broadened scrap model. +# Added headstyle attribute to scrap. +--> + +<!-- scrap: Collection of EBNF language productions. --> +<!ENTITY % scrap.element "INCLUDE"> +<![%scrap.element;[ +<!ELEMENT scrap (head, (prodgroup | prod | bnf | prodrecap)+)> +]]> +<!-- lang attribute: + The scrap can link to a description of the language used, + found in a language element in the header. + headstyle attribute: + Allows a scrap title to be suppressed from output. To be + used only when a scrap title directly next to a section + title is distracting or repetetive. --> +<!ENTITY % scrap.attlist "INCLUDE"> +<![%scrap.attlist;[ +<!ATTLIST scrap + %common.att; + lang IDREF #IMPLIED + headstyle (show|suppress) "show" +> +]]> + +<!-- prodgroup: Sub-collection of productions, needed for + formatting reasons. --> +<!ENTITY % prodgroup.element "INCLUDE"> +<![%prodgroup.element;[ +<!ELEMENT prodgroup (prod+)> +]]> +<!-- pcw<n> attributes: + Presentational attributes to control the width + of the "pseudo-table" columns used to output + groups of productions. --> +<!ENTITY % prodgroup.attlist "INCLUDE"> +<![%prodgroup.attlist;[ +<!ATTLIST prodgroup + %common.att; + pcw1 CDATA #IMPLIED + pcw2 CDATA #IMPLIED + pcw3 CDATA #IMPLIED + pcw4 CDATA #IMPLIED + pcw5 CDATA #IMPLIED +> +]]> + +<!-- prod: EBNF language production. --> +<!ENTITY % prod.element "INCLUDE"> +<![%prod.element;[ +<!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. --> +<!ENTITY % prod.attlist "INCLUDE"> +<![%prod.attlist;[ +<!ATTLIST prod + %common-idreq.att; + num CDATA #IMPLIED> +]]> + +<!-- lhs: Left-hand side of production. --> +<!ENTITY % lhs.element "INCLUDE"> +<![%lhs.element;[ +<!ELEMENT lhs (#PCDATA|phrase)*> +]]> +<!ENTITY % lhs.attlist "INCLUDE"> +<![%lhs.attlist;[ +<!ATTLIST lhs %common.att;> +]]> + +<!-- rhs: Right-hand side of production; may have many + "right-hand sides," one to a line. --> +<!ENTITY % rhs.element "INCLUDE"> +<![%rhs.element;[ +<!ELEMENT rhs (#PCDATA|phrase|nt|xnt|com)*> +]]> +<!ENTITY % rhs.attlist "INCLUDE"> +<![%rhs.attlist;[ +<!ATTLIST rhs %common.att;> +]]> + +<!-- nt and xnt (defined in "Phrase-level elements" below) --> + +<!-- +#1997-11-28: maler: Added loc and bibref to com content. +--> + +<!-- com: Production comment. --> +<!ENTITY % com.element "INCLUDE"> +<![%com.element;[ +<!ELEMENT com (#PCDATA|phrase|loc|bibref)*> +]]> +<!ENTITY % com.attlist "INCLUDE"> +<![%com.attlist;[ +<!ATTLIST com %common.att;> +]]> + +<!-- wfc: Reference to a well-formedness constraint; should + generate the head of the wfcnote pointed to. --> +<!ENTITY % wfc.element "INCLUDE"> +<![%wfc.element;[ +<!ELEMENT wfc EMPTY> +]]> +<!-- def attribute: + Each well formedness tagline in a production must link to the + wfcnote that defines it. --> +<!ENTITY % wfc.attlist "INCLUDE"> +<![%wfc.attlist;[ +<!ATTLIST wfc + %def-req.att; + %common.att;> +]]> + +<!-- vc: Reference to a validity constraint; should generate + the head of the vcnote pointed to. --> +<!ENTITY % vc.element "INCLUDE"> +<![%vc.element;[ +<!ELEMENT vc EMPTY> +]]> +<!-- def attribute: + Each validity tagline in a production must link to the vcnote + that defines it. --> +<!ENTITY % vc.attlist "INCLUDE"> +<![%vc.attlist;[ +<!ATTLIST vc + %def-req.att; + %common.att;> +]]> + +<!-- +#1998-05-21: maler: Declared generic constraint element. +--> + +<!-- constraint: Reference to a generic constraint; should + generate the head of the constraintnote pointed to. --> +<!ENTITY % constraint.element "INCLUDE"> +<![%constraint.element;[ +<!ELEMENT constraint EMPTY> +]]> +<!-- def attribute: + Each constraint tagline in a production must link to the + constraint note that defines it. --> +<!ENTITY % constraint.attlist "INCLUDE"> +<![%constraint.attlist;[ +<!ATTLIST constraint + %def-req.att; + %common.att;> +]]> + +<!-- +#1998-03-23: maler: Added xml:space attribute. +--> + +<!-- bnf: Un-marked-up EBNF production, with whitespace + respected. --> +<!ENTITY % bnf.element "INCLUDE"> +<![%bnf.element;[ +<!ELEMENT bnf (%eg.pcd.mix;)*> +]]> +<!ENTITY % bnf.attlist "INCLUDE"> +<![%bnf.attlist;[ +<!ATTLIST bnf + %common.att; + %xmlspace.att;> +]]> + +<!-- +#1999-07-02: maler: Declared prodrecap. +--> + +<!-- prodrecap: Reference to production or bnf that appears + in its "normative" form elsewhere in the spec; should + generate a copy of the original production, without + a production number next to it. --> +<!ENTITY % prodrecap.element "INCLUDE"> +<![%prodrecap.element;[ +<!ELEMENT prodrecap EMPTY> +]]> +<!ENTITY % prodrecap.attlist "INCLUDE"> +<![%prodrecap.attlist;[ +<!ATTLIST prodrecap + %common.att; + %ref-req.att;> +]]> + +<!-- ............................................................... --> +<!-- Table ......................................................... --> +<!-- ............................................................... --> + +<!-- +#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"'> + +<!-- table: HTML-based geometric table model. --> +<!ENTITY % table.element "INCLUDE"> +<![%table.element;[ +<!ELEMENT table + (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)> +]]> +<!ENTITY % table.attlist "INCLUDE"> +<![%table.attlist;[ +<!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> +]]> + +<!ENTITY % caption.element "INCLUDE"> +<![%caption.element;[ +<!ELEMENT caption (%p.pcd.mix;)*> +]]> +<!ENTITY % caption.attlist "INCLUDE"> +<![%caption.attlist;[ +<!ATTLIST caption %common.att;> +]]> + +<!ENTITY % col.element "INCLUDE"> +<![%col.element;[ +<!ELEMENT col EMPTY> +]]> +<!ENTITY % col.attlist "INCLUDE"> +<![%col.attlist;[ +<!ATTLIST col + %common.att; + %span.att; + %width.att; + %cellhalign.att; + %cellvalign.att;> +]]> + +<!ENTITY % colgroup.element "INCLUDE"> +<![%colgroup.element;[ +<!ELEMENT colgroup (col)*> +]]> +<!ENTITY % colgroup.attlist "INCLUDE"> +<![%colgroup.attlist;[ +<!ATTLIST colgroup + %common.att; + %span.att; + %width.att; + %cellhalign.att; + %cellvalign.att;> +]]> + +<!ENTITY % thead.element "INCLUDE"> +<![%thead.element;[ +<!ELEMENT thead (tr)+> +]]> +<!ENTITY % thead.attlist "INCLUDE"> +<![%thead.attlist;[ +<!ATTLIST thead + %common.att; + %cellhalign.att; + %cellvalign.att;> +]]> + +<!ENTITY % tfoot.element "INCLUDE"> +<![%tfoot.element;[ +<!ELEMENT tfoot (tr)+> +]]> +<!ENTITY % tfoot.attlist "INCLUDE"> +<![%tfoot.attlist;[ +<!ATTLIST tfoot + %common.att; + %cellhalign.att; + %cellvalign.att;> +]]> + +<!ENTITY % tbody.element "INCLUDE"> +<![%tbody.element;[ +<!ELEMENT tbody (tr)+> +]]> +<!ENTITY % tbody.attlist "INCLUDE"> +<![%tbody.attlist;[ +<!ATTLIST tbody + %common.att; + %cellhalign.att; + %cellvalign.att;> +]]> + +<!ENTITY % tr.element "INCLUDE"> +<![%tr.element;[ +<!ELEMENT tr (th|td)+> +]]> +<!ENTITY % tr.attlist "INCLUDE"> +<![%tr.attlist;[ +<!ATTLIST tr + %common.att; + %cellhalign.att; + %cellvalign.att;> +]]> + +<!ENTITY % th.element "INCLUDE"> +<![%th.element;[ +<!ELEMENT th (%p.pcd.mix;|%p.mix;)*> +]]> +<!ENTITY % th.attlist "INCLUDE"> +<![%th.attlist;[ +<!ATTLIST th + %common.att; + %thtd.att; + %cellhalign.att; + %cellvalign.att;> +]]> + +<!ENTITY % td.element "INCLUDE"> +<![%td.element;[ +<!ELEMENT td (%p.pcd.mix;|%p.mix;)*> +]]> +<!ENTITY % td.attlist "INCLUDE"> +<![%td.attlist;[ +<!ATTLIST td + %common.att; + %thtd.att; + %cellhalign.att; + %cellvalign.att;> +]]> + +<!-- ............................................................... --> +<!-- IDL structures for DOM specifications ......................... --> +<!-- ............................................................... --> + +<!-- ............................................................... --> +<!-- Specialized entities for classes .............................. --> + +<!ENTITY % idl-desc.class + "p|note"> + +<!ENTITY % idl-tdef.class + "typedef|constant|exception|reference|group"> + +<!ENTITY % idl-mod.class + "module|interface"> + +<!ENTITY % idl-struct.class + "struct|enum|sequence|union|typename"> + +<!ENTITY % idl-meth.class + "method|attribute"> + +<!-- ............................................................... --> +<!-- Specialized entities for mixtures ............................. --> + +<!-- Quick reference to content model mixtures: + + desc tdef mod struct meth +group x x x x x +definitions, module x x x +interface x x x +typedef, case, component x +--> + +<!ENTITY % idl-grp.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class; + |%idl-struct.class;|%idl-meth.class;"> + +<!ENTITY % idl-defn.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;"> + +<!ENTITY % idl-intfc.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-meth.class;"> + +<!ENTITY % idl-type.mix + "%idl-struct.class;"> + +<!-- ............................................................... --> +<!-- Specialized entities for common attributes .................... --> + +<!-- name attribute: + Provides a name. Required. --> +<!ENTITY % idl-name.att + 'name CDATA #REQUIRED'> + +<!-- type attribute: + Provides a type. Required. --> +<!ENTITY % idl-type.att + 'type CDATA #REQUIRED'> + +<!-- ............................................................... --> +<!-- Common IDL element ............................................ --> + +<!ENTITY % descr.element "INCLUDE"> +<![%descr.element;[ +<!ELEMENT descr ((%obj.mix;)*)> +]]> +<!ENTITY % descr.attlist "INCLUDE"> +<![%descr.attlist;[ +<!ATTLIST descr %common.att;> +]]> + +<!-- ............................................................... --> +<!-- IDL definition elements ....................................... --> + +<!-- definitions: Top-level element for definitions. --> +<!ENTITY % definitions.element "INCLUDE"> +<![%definitions.element;[ +<!ELEMENT definitions (%idl-defn.mix;)+> +]]> +<!ENTITY % definitions.attlist "INCLUDE"> +<![%definitions.attlist;[ +<!ATTLIST definitions %common.att;> +]]> + +<!-- group: Element used to group a set of definitions. --> + +<!ENTITY % group.element "INCLUDE"> +<![%group.element;[ +<!ELEMENT group (descr, (%idl-grp.mix;)*)> +]]> +<!ENTITY % group.attlist "INCLUDE"> +<![%group.attlist;[ +<!ATTLIST group + %common.att; + %idl-name.att;> +]]> + +<!-- interface: Definition of an interface. --> +<!ENTITY % interface.element "INCLUDE"> +<![%interface.element;[ +<!ELEMENT interface (descr, (%idl-intfc.mix;)*)> +]]> +<!ENTITY % interface.attlist "INCLUDE"> +<![%interface.attlist;[ +<!ATTLIST interface + %common.att; + %idl-name.att; + inherits CDATA #IMPLIED> +]]> + +<!-- module: Definition of a module. --> +<!ENTITY % module.element "INCLUDE"> +<![%module.element;[ +<!ELEMENT module (descr, (%idl-defn.mix;)*)> +]]> +<!ENTITY % module.attlist "INCLUDE"> +<![%module.attlist;[ +<!ATTLIST module + %common.att; + %idl-name.att;> +]]> + +<!-- reference: Reference to some other declaration. --> +<!ENTITY % reference.element "INCLUDE"> +<![%reference.element;[ +<!ELEMENT reference EMPTY> +]]> +<!ENTITY % reference.attlist "INCLUDE"> +<![%reference.attlist;[ +<!ATTLIST reference + %common.att; + declaration IDREF #REQUIRED> +]]> + +<!-- typedef: Definition of a named type. --> +<!ENTITY % typedef.element "INCLUDE"> +<![%typedef.element;[ +<!ELEMENT typedef (descr, (%idl-type.mix;))> +]]> +<!ENTITY % typedef.attlist "INCLUDE"> +<![%typedef.attlist;[ +<!ATTLIST typedef + %common.att; + %idl-name.att; + array.size NMTOKEN #IMPLIED> +]]> + +<!-- struct: Declaration of a struct type. --> +<!ENTITY % struct.element "INCLUDE"> +<![%struct.element;[ +<!ELEMENT struct (descr, component+)> +]]> +<!ENTITY % struct.attlist "INCLUDE"> +<![%struct.attlist;[ +<!ATTLIST struct + %common.att; + %idl-name.att;> +]]> + +<!-- component: Declaration of a structural member. --> +<!ENTITY % component.element "INCLUDE"> +<![%component.element;[ +<!ELEMENT component (%idl-type.mix;)> +]]> +<!ENTITY % component.attlist "INCLUDE"> +<![%component.attlist;[ +<!ATTLIST component + %common.att; + %idl-name.att;> +]]> + +<!-- union: Declaration of a union type. --> +<!ENTITY % union.element "INCLUDE"> +<![%union.element;[ +<!ELEMENT union (descr, case+)> +]]> +<!ENTITY % union.attlist "INCLUDE"> +<![%union.attlist;[ +<!ATTLIST union + %common.att; + %idl-name.att; + switch.type CDATA #REQUIRED> +]]> + +<!ENTITY % case.element "INCLUDE"> +<![%case.element;[ +<!ELEMENT case (descr, (%idl-type.mix;))> +]]> +<!ENTITY % case.attlist "INCLUDE"> +<![%case.attlist;[ +<!ATTLIST case + %common.att; + labels CDATA #REQUIRED> +]]> + +<!-- enum: Declaration of an enum type. --> +<!ENTITY % enum.element "INCLUDE"> +<![%enum.element;[ +<!ELEMENT enum (descr, enumerator+)> +]]> +<!ENTITY % enum.attlist "INCLUDE"> +<![%enum.attlist;[ +<!ATTLIST enum + %common.att; + %idl-name.att;> +]]> + +<!ENTITY % enumerator.element "INCLUDE"> +<![%enumerator.element;[ +<!ELEMENT enumerator (descr)> +]]> +<!ENTITY % enumerator.attlist "INCLUDE"> +<![%enumerator.attlist;[ +<!ATTLIST enumerator + %common.att; + %idl-name.att;> +]]> + +<!-- sequence: Declaration of a sequence type (not named). --> +<!ENTITY % sequence.element "INCLUDE"> +<![%sequence.element;[ +<!ELEMENT sequence (sequence*)> +]]> +<!ENTITY % sequence.attlist "INCLUDE"> +<![%sequence.attlist;[ +<!ATTLIST sequence + %common.att; + %idl-type.att; + size NMTOKEN #IMPLIED> +]]> + +<!-- constant: Declaration of a named constant. --> +<!ENTITY % constant.element "INCLUDE"> +<![%constant.element;[ +<!ELEMENT constant (descr)> +]]> +<!ENTITY % constant.attlist "INCLUDE"> +<![%constant.attlist;[ +<!ATTLIST constant + %common.att; + %idl-name.att; + %idl-type.att; + value CDATA #REQUIRED> +]]> + +<!-- exception: Declaration of an exception. --> +<!ENTITY % exception.element "INCLUDE"> +<![%exception.element;[ +<!ELEMENT exception (descr, component*)> +]]> +<!ENTITY % exception.attlist "INCLUDE"> +<![%exception.attlist;[ +<!ATTLIST exception + %common.att; + %idl-name.att;> +]]> +<!-- component (defined under struct, above)--> + +<!-- attribute: Declaration of an attribute (data member). --> +<!ENTITY % attribute.element "INCLUDE"> +<![%attribute.element;[ +<!ELEMENT attribute (descr)> +]]> +<!ENTITY % attribute.attlist "INCLUDE"> +<![%attribute.attlist;[ +<!ATTLIST attribute + %common.att; + %idl-name.att; + %idl-type.att; + readonly (yes + |no) "no"> +]]> + +<!-- method: Declaration of a method. --> +<!ENTITY % method.element "INCLUDE"> +<![%method.element;[ +<!ELEMENT method (descr, parameters, returns, raises)> +]]> +<!ENTITY % method.attlist "INCLUDE"> +<![%method.attlist;[ +<!ATTLIST method + %common.att; + %idl-name.att;> +]]> + +<!ENTITY % parameters.element "INCLUDE"> +<![%parameters.element;[ +<!ELEMENT parameters (param*)> +]]> +<!ENTITY % parameters.attlist "INCLUDE"> +<![%parameters.attlist;[ +<!ATTLIST parameters %common.att;> +]]> + +<!ENTITY % param.element "INCLUDE"> +<![%param.element;[ +<!ELEMENT param (descr)> +]]> +<!ENTITY % param.attlist "INCLUDE"> +<![%param.attlist;[ +<!ATTLIST param + %common.att; + %idl-name.att; + %idl-type.att; + attr (in + |out + |inout) "inout"> +]]> + +<!ENTITY % returns.element "INCLUDE"> +<![%returns.element;[ +<!ELEMENT returns (descr)> +]]> +<!ENTITY % returns.attlist "INCLUDE"> +<![%returns.attlist;[ +<!ATTLIST returns + %common.att; + %idl-type.att;> +]]> + +<!ENTITY % raises.element "INCLUDE"> +<![%raises.element;[ +<!ELEMENT raises (exception*)> +]]> +<!-- exception (defined under constant, above)--> + +<!ENTITY % typename.element "INCLUDE"> +<![%typename.element;[ +<!ELEMENT typename (#PCDATA|phrase)*> +]]> +<!ENTITY % typename.attlist "INCLUDE"> +<![%typename.attlist;[ +<!ATTLIST typename %common.att;> +]]> + +<!-- ............................................................... --> +<!-- Phrase-level elements ......................................... --> +<!-- ............................................................... --> + +<!-- +#2000-03-07: maler: Added att and attval elements. +--> + +<!-- att: Attribute name. --> +<!ENTITY % att.element "INCLUDE"> +<![%att.element;[ +<!ELEMENT att (%tech.pcd.mix;)*> +]]> +<!ENTITY % att.attlist "INCLUDE"> +<![%att.attlist;[ +<!ATTLIST att %common.att;> +]]> + +<!-- attval: Attribute value. --> +<!ENTITY % attval.element "INCLUDE"> +<![%attval.element;[ +<!ELEMENT attval (%tech.pcd.mix;)*> +]]> +<!ENTITY % attval.attlist "INCLUDE"> +<![%attval.attlist;[ +<!ATTLIST attval %common.att;> +]]> + +<!-- bibref: Reference to a bibliography list entry; should + generate, in square brackets, "key" on bibl. --> +<!ENTITY % bibref.element "INCLUDE"> +<![%bibref.element;[ +<!ELEMENT bibref EMPTY> +]]> +<!-- ref attribute: + A bibliography reference must link to the bibl element that + describes the resource. --> +<!ENTITY % bibref.attlist "INCLUDE"> +<![%bibref.attlist;[ +<!ATTLIST bibref + %common.att; + %ref-req.att;> +]]> + +<!ENTITY % code.element "INCLUDE"> +<![%code.element;[ +<!ELEMENT code (%tech.pcd.mix;)*> +]]> +<!ENTITY % code.attlist "INCLUDE"> +<![%code.attlist;[ +<!ATTLIST code %common.att;> +]]> + +<!-- +#1998-03-10: maler: Declared ednote and related elements. +#1999-07-02: maler: Changed edtext content from #PCDATA to %p.pcd.mix;. +--> + +<!-- ednote: Editorial note for communication among editors. --> +<!ENTITY % ednote.element "INCLUDE"> +<![%ednote.element;[ +<!ELEMENT ednote (name?, date?, edtext)> +]]> +<!ENTITY % ednote.attlist "INCLUDE"> +<![%ednote.attlist;[ +<!ATTLIST ednote %common.att;> +]]> + +<!ENTITY % date.element "INCLUDE"> +<![%date.element;[ +<!ELEMENT date (#PCDATA|phrase)*> +]]> +<!ENTITY % date.attlist "INCLUDE"> +<![%date.attlist;[ +<!ATTLIST date %common.att;> +]]> + +<!ENTITY % edtext.element "INCLUDE"> +<![%edtext.element;[ +<!ELEMENT edtext (%p.pcd.mix;)*> +]]> +<!ENTITY % edtext.attlist "INCLUDE"> +<![%edtext.attlist;[ +<!ATTLIST edtext %common.att;> +]]> + +<!-- +#2000-03-07: maler: Added el element. +--> + +<!-- el: Element type name (GI). --> +<!ENTITY % el.element "INCLUDE"> +<![%el.element;[ +<!ELEMENT el (%tech.pcd.mix;)*> +]]> +<!ENTITY % el.attlist "INCLUDE"> +<![%el.attlist;[ +<!ATTLIST el %common.att;> +]]> + +<!-- +#2000-03-07: maler: Expanded emph to %p.pcd.mix;. +--> + +<!ENTITY % emph.element "INCLUDE"> +<![%emph.element;[ +<!ELEMENT emph (%p.pcd.mix;)*> +]]> +<!ENTITY % emph.attlist "INCLUDE"> +<![%emph.attlist;[ +<!ATTLIST emph %common.att;> +]]> + +<!-- footnote: Both footnote content and call to footnote. --> +<!ENTITY % footnote.element "INCLUDE"> +<![%footnote.element;[ +<!ELEMENT footnote (%obj.mix;)+> +]]> +<!ENTITY % footnote.attlist "INCLUDE"> +<![%footnote.attlist;[ +<!ATTLIST footnote %common.att;> +]]> + +<!-- +#2000-03-07: maler: Added function and gave it content of +# %tech.pcd.mix; instead of XPath's #PCDATA. +--> + +<!ENTITY % function.element "INCLUDE"> +<![%function.element;[ +<!ELEMENT function (%tech.pcd.mix;)*> +]]> +<!ENTITY % function.attlist "INCLUDE"> +<![%function.attlist;[ +<!ATTLIST function %common.att;> +]]> + +<!ENTITY % kw.element "INCLUDE"> +<![%kw.element;[ +<!ELEMENT kw (%tech.pcd.mix;)*> +]]> +<!ENTITY % kw.attlist "INCLUDE"> +<![%kw.attlist;[ +<!ATTLIST kw %common.att;> +]]> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- loc: Generic link to a Web resource, similar to HTML's A. --> +<!ENTITY % loc.element "INCLUDE"> +<![%loc.element;[ +<!ELEMENT loc (#PCDATA|phrase)*> +]]> +<!-- href attribute: + The purpose of a loc element is to function as a A-like + 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.) E.g.: + +<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc> + --> +<!ENTITY % loc.attlist "INCLUDE"> +<![%loc.attlist;[ +<!ATTLIST loc + %common.att; + %simple-xlink.att; + %href-req.att; + %user-replace.att;> +]]> + +<!-- nt: Mention of a nonterminal in text, along with a link to + the production in the current document that defines it. --> +<!ENTITY % nt.element "INCLUDE"> +<![%nt.element;[ +<!ELEMENT nt (#PCDATA|phrase)*> +]]> +<!-- def attribute: + The nonterminal must link to the production that defines + it. --> +<!ENTITY % nt.attlist "INCLUDE"> +<![%nt.attlist;[ +<!ATTLIST nt + %common.att; + %def-req.att;> +]]> + +<!-- +#2000-03-07: maler: Declared phrase. +--> + +<!-- phrase: "Attribute hanger" for small bits of (e.g.) differenced + text in a paragraph or similar, when another element isn't handy. + Beware that its content model may allow more nested elements than + would normally be allowed in some contexts. --> +<!ENTITY % phrase.element "INCLUDE"> +<![%phrase.element;[ +<!ELEMENT phrase (%p.pcd.mix;)*> +]]> +<!ENTITY % phrase.attlist "INCLUDE"> +<![%phrase.attlist;[ +<!ATTLIST phrase %common.att;> +]]> + +<!-- +#2003-06-25: nwalsh: RFC2119 elements +--> + +<!ENTITY % rfc2119.element "INCLUDE"> +<![%rfc2119.element;[ +<!ELEMENT rfc2119 (#PCDATA|phrase)*> +]]> +<!ENTITY % rfc2119.attlist "INCLUDE"> +<![%rfc2119.attlist;[ +<!ATTLIST rfc2119 %common.att;> +]]> + +<!-- +#1998-03-10: maler: Declared quote. +--> + +<!-- quote: Scare quotes and other purely presentational quotes. --> +<!ENTITY % quote.element "INCLUDE"> +<![%quote.element;[ +<!ELEMENT quote (%p.pcd.mix;)*> +]]> +<!ENTITY % quote.attlist "INCLUDE"> +<![%quote.attlist;[ +<!ATTLIST quote %common.att;> +]]> + +<!-- specref: Reference to a div, olist item, prod, or issue + in the current document; should generate italic "[n.n], + Section Title" for div, "n" for numbered item, "[n]" for + production, or "Issue id" for issue. --> +<!ENTITY % specref.element "INCLUDE"> +<![%specref.element;[ +<!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. --> +<!ENTITY % specref.attlist "INCLUDE"> +<![%specref.attlist;[ +<!ATTLIST specref + %common.att; + %ref-req.att;> +]]> + +<!-- +#2000-03-07: maler: Added sub and sup. +--> + +<!-- sub: Subscript. --> +<!ENTITY % sub.element "INCLUDE"> +<![%sub.element;[ +<!ELEMENT sub (#PCDATA|phrase)*> +]]> +<!ENTITY % sub.attlist "INCLUDE"> +<![%sub.attlist;[ +<!ATTLIST sub %common.att;> +]]> + +<!-- sup: Superscript. --> +<!ENTITY % sup.element "INCLUDE"> +<![%sup.element;[ +<!ELEMENT sup (#PCDATA|phrase)*> +]]> +<!ENTITY % sup.attlist "INCLUDE"> +<![%sup.attlist;[ +<!ATTLIST sup %common.att;> +]]> + +<!-- term: The term in text that is being defined in text. --> +<!ENTITY % term.element "INCLUDE"> +<![%term.element;[ +<!ELEMENT term (#PCDATA|phrase)*> +]]> +<!ENTITY % term.attlist "INCLUDE"> +<![%term.attlist;[ +<!ATTLIST term %common.att;> +]]> + +<!-- termdef: Definition of a term in text. --> +<!ENTITY % termdef.element "INCLUDE"> +<![%termdef.element;[ +<!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). --> +<!ENTITY % termdef.attlist "INCLUDE"> +<![%termdef.attlist;[ +<!ATTLIST termdef + %common-idreq.att; + term CDATA #REQUIRED> +]]> + +<!-- termref: Mention of a term, along with a link to the + definition in the current document. --> +<!ENTITY % termref.element "INCLUDE"> +<![%termref.element;[ +<!ELEMENT termref (#PCDATA|phrase)*> +]]> +<!-- ref attribute: + A term reference must link to the termdef element that + defines the term. --> +<!ENTITY % termref.attlist "INCLUDE"> +<![%termref.attlist;[ +<!ATTLIST termref + %common.att; + %def-req.att;> +]]> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- titleref: Citation of another document, which can also + link to that document if it is a Web resource. --> +<!ENTITY % titleref.element "INCLUDE"> +<![%titleref.element;[ +<!ELEMENT titleref (#PCDATA|phrase)*> +]]> +<!-- href attribute: + A title reference can optionally function as a hypertext + link to the resource with this title. E.g.: + +<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc> + --> + +<!ENTITY % titleref.attlist "INCLUDE"> +<![%titleref.attlist;[ +<!ATTLIST titleref + %common.att; + %simple-xlink.att; + %href.att; + %user-new.att;> +]]> + +<!-- +#2000-03-07: maler: Added var. +--> + +<!-- var: String standing for a variable value that the user + or system will supply. For example: "For each node + <var>x</var> in this node-set..." --> +<!ENTITY % var.element "INCLUDE"> +<![%var.element;[ +<!ELEMENT var (%tech.pcd.mix;)*> +]]> +<!ENTITY % var.attlist "INCLUDE"> +<![%var.attlist;[ +<!ATTLIST var %common.att;> +]]> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- xnt: Mention of a nonterminal in text, along with a link to + the production in another document that defines it. --> +<!ENTITY % xnt.element "INCLUDE"> +<![%xnt.element;[ +<!ELEMENT xnt (#PCDATA|phrase)*> +]]> +<!-- href attribute: + The nonterminal must hyperlink to a resource that serves + to define it (e.g., a production in a related XML + specification). E.g.: + +<xnt href="http://www.w3.org/TR/spec.htm#prod3">Name</xnt> + --> + +<!ENTITY % xnt.attlist "INCLUDE"> +<![%xnt.attlist;[ +<!ATTLIST xnt + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> +]]> + +<!-- +#1997-12-29: maler: Declared xspecref. +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- xspecref: Reference to a div, olist item, prod, or issue + in a related specification document; should generate + no special text. --> +<!ENTITY % xspecref.element "INCLUDE"> +<![%xspecref.element;[ +<!ELEMENT xspecref (#PCDATA|phrase)*> +]]> +<!-- href attribute: + The spec reference must hyperlink to the resource to + cross-refer to (e.g., a section in a related XML + specification). E.g.: + +<xspecref href="http://www.w3.org/TR/spec.htm#sec2"> +the section on constraints</xspecref> + --> + +<!ENTITY % xspecref.attlist "INCLUDE"> +<![%xspecref.attlist;[ +<!ATTLIST xspecref + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> +]]> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- termref: Mention of a term, along with a link to the + definition in a related document. --> +<!ENTITY % xtermref.element "INCLUDE"> +<![%xtermref.element;[ +<!ELEMENT xtermref (#PCDATA|phrase)*> +]]> +<!-- 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). E.g.: + +<xtermref href="http://www.w3.org/TR/spec.htm#term5"> +entity +</xtermref> + --> + +<!ENTITY % xtermref.attlist "INCLUDE"> +<![%xtermref.attlist;[ +<!ATTLIST xtermref + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.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. +#1998-11-30: maler: Added para, listitem, itemizedlist, and orderedlist. +--> + +<!-- The following elements are purposely declared but never + referenced. Declaring them allows them to be pasted from + an HTML document, an earlier version of an XMLspec document, + or a DocBook 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. --> + +<!ENTITY % div.element "INCLUDE"> +<![%div.element;[ +<!ELEMENT div + (head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)> +]]> +<!ENTITY % h1.element "INCLUDE"> +<![%h1.element;[ +<!ELEMENT h1 (%head.pcd.mix;|em|a)*> +]]> +<!ENTITY % h2.element "INCLUDE"> +<![%h2.element;[ +<!ELEMENT h2 (%head.pcd.mix;|em|a)*> +]]> +<!ENTITY % h3.element "INCLUDE"> +<![%h3.element;[ +<!ELEMENT h3 (%head.pcd.mix;|em|a)*> +]]> +<!ENTITY % h4.element "INCLUDE"> +<![%h4.element;[ +<!ELEMENT h4 (%head.pcd.mix;|em|a)*> +]]> +<!ENTITY % h5.element "INCLUDE"> +<![%h5.element;[ +<!ELEMENT h5 (%head.pcd.mix;|em|a)*> +]]> +<!ENTITY % h6.element "INCLUDE"> +<![%h6.element;[ +<!ELEMENT h6 (%head.pcd.mix;|em|a)*> +]]> +<!ENTITY % pre.element "INCLUDE"> +<![%pre.element;[ +<!ELEMENT pre (%eg.pcd.mix;|em)*> +]]> +<!ENTITY % ul.element "INCLUDE"> +<![%ul.element;[ +<!ELEMENT ul (item|li)*> +]]> +<!ENTITY % ol.element "INCLUDE"> +<![%ol.element;[ +<!ELEMENT ol (item|li)*> +]]> +<!ENTITY % li.element "INCLUDE"> +<![%li.element;[ +<!ELEMENT li (#PCDATA|%obj.mix;)*> +]]> +<!ENTITY % em.element "INCLUDE"> +<![%em.element;[ +<!ELEMENT em (#PCDATA)*> +]]> +<!ENTITY % a.element "INCLUDE"> +<![%a.element;[ +<!ELEMENT a (#PCDATA)*> +]]> + +<!ENTITY % key-term.element "INCLUDE"> +<![%key-term.element;[ +<!ELEMENT key-term (#PCDATA)*> +]]> +<!ENTITY % htable.element "INCLUDE"> +<![%htable.element;[ +<!ELEMENT htable + (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)> +]]> +<!ENTITY % htbody.element "INCLUDE"> +<![%htbody.element;[ +<!ELEMENT htbody (tr)+> +]]> +<!ENTITY % statusp.element "INCLUDE"> +<![%statusp.element;[ +<!ELEMENT statusp (%p.pcd.mix;|%p.mix;)*> +]]> + +<!ENTITY % itemizedlist.element "INCLUDE"> +<![%itemizedlist.element;[ +<!ELEMENT itemizedlist (listitem*)> +]]> +<!ENTITY % orderedlist.element "INCLUDE"> +<![%orderedlist.element;[ +<!ELEMENT orderedlist (listitem*)> +]]> +<!ENTITY % listitem.element "INCLUDE"> +<![%listitem.element;[ +<!ELEMENT listitem (para*)> +]]> +<!ENTITY % para.element "INCLUDE"> +<![%para.element;[ +<!ELEMENT para (#PCDATA)*> +]]> + +<!-- ............................................................... --> +<!-- Change history ................................................ --> +<!-- ............................................................... --> + +<!-- +#This revision history is no longer being maintained. See the CVS log +#for detailed revisions 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. +#1998-08-22: maler +#- Fixed %illus.class; to mention table instead of htable. +#- Added definitions to %illus.class; for DOM model. +#- Added DOM definitions element and its substructure. +#- Updated XLink usage in %href.att; to use xlink:form and #IMPLIED. +#- Added clarifying comments to href-using elements. +#1998-11-30: maler +#- Added new unused elements to support DocBook translation. +#- Updated maler phone numbers. +#1998-12-3: maler +#- Fixed character entities with respect to escaping of ampersands. +#- Added many more explanatory comments. +#1999-07-02: maler +#- Added %loc.class; to all PCD mixes that didn't already have it. +#- Removed unused %loc.pcd.mix;. +#- Made version in spec header optional. +#- Added three new attributes to spec. +#- Broadened content of edtext. +#- Added optional copyright element to header. +#- Reorganized XLink-related parameter entities; added xmlns:xlink. +#- Changed edtext content from #PCDATA to %p.pcd.mix;. +#- Added show/actuate atts and default values to all href elements. +#- Changed versioning scheme from 8-digit dates to version numbers. +#- Added w3c-doctype, other-doctype, status atts to spec element. +#- Added prodrecap element inside scrap. +#- Added headstyle attribute to scrap. +#2000-03-07: maler +#- Added proto element, its arg subelement, and the %argtypes; entity. +#- Added function, var, sub, sup, phrase, el, att, attval elements. +#- Expanded emph to %p.pcd.mix;. +#- Allowed status and abstract to appear in the opposite order. +#- Updated XLink usage to the latest WD, except for href and source. +#- Removed the xml:attributes attribute from graphic. +#- Added %local.graphic.att; to graphic. +#- Added common diff attribute. +#- Added div5 element. +#- Broadened content models of publoc, prevlocs, and latestloc. +#- Added head, source, resolution, and status attribute to issue. +#- Added cr, issues, and dispcmts to w3c-doctype attribute on spec. +#- Added example element. +--> + +<!-- ............................................................... --> +<!-- End of XML specification DTD .................................. --> +<!-- ............................................................... --> |