You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
973 lines
31 KiB
973 lines
31 KiB
<!-- ............................................................... -->
|
|
<!-- XML specification DTD ......................................... -->
|
|
<!-- ............................................................... -->
|
|
|
|
<!--
|
|
TYPICAL INVOCATION:
|
|
# <!DOCTYPE spec PUBLIC
|
|
# "-//W3C//DTD Specification::19980323//EN"
|
|
# "http://www.w3.org/XML/Group/DTD/xmlspec.dtd">
|
|
|
|
PURPOSE:
|
|
This DTD was developed for use with the XML family of W3C
|
|
specifications. It is an XML-compliant DTD based in part on
|
|
the TEI Lite and Sweb DTDs.
|
|
|
|
DEPENDENCIES:
|
|
None.
|
|
|
|
CHANGE HISTORY:
|
|
The list of changes is at the end of the DTD.
|
|
|
|
For all details, see the design report at:
|
|
|
|
<http://www.w3.org/XML/Group/DTD/xmlspec-report.htm>
|
|
|
|
The "typical invocation" FPI always gets updated to reflect the
|
|
date of the most recent changes.
|
|
|
|
Search this file for "#" in the first column to see change history
|
|
comments.
|
|
|
|
MAINTAINER:
|
|
Eve Maler
|
|
ArborText Inc.
|
|
elm@arbortext.com
|
|
voice: +1 781 270 5750
|
|
fax: +1 781 273 3760
|
|
-->
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Entities for characters and symbols ........................... -->
|
|
|
|
<!--
|
|
#1998-03-10: maler: Added “ and ”.
|
|
# Used 8879:1986-compatible decimal character
|
|
# references.
|
|
# Merged charent.mod file back into main file.
|
|
-->
|
|
|
|
<!ENTITY lt "&#60;">
|
|
<!ENTITY gt ">">
|
|
<!ENTITY amp "&#38;">
|
|
<!ENTITY apos "'">
|
|
<!ENTITY quot """>
|
|
<!ENTITY mdash "--">
|
|
<!ENTITY nbsp " ">
|
|
<!ENTITY ldquo "#x201C;">
|
|
<!ENTITY rdquo "#x201D;">
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Entities for classes of standalone elements ................... -->
|
|
|
|
<!--
|
|
#1997-10-16: maler: Added table to %illus.class;.
|
|
#1997-11-28: maler: Added htable to %illus.class;.
|
|
#1997-12-29: maler: IGNOREd table.
|
|
#1998-03-10: maler: Removed SGML Open-specific %illus.class;.
|
|
# Added "local" entities for customization.
|
|
-->
|
|
|
|
<!ENTITY % local.p.class "">
|
|
<!ENTITY % p.class "p
|
|
%local.p.class;">
|
|
|
|
<!ENTITY % local.statusp.class "">
|
|
<!ENTITY % statusp.class "statusp
|
|
%local.statusp.class;">
|
|
|
|
<!ENTITY % local.list.class "">
|
|
<!ENTITY % list.class "ulist|olist|slist|glist
|
|
%local.list.class;">
|
|
|
|
<!ENTITY % local.speclist.class "">
|
|
<!ENTITY % speclist.class "orglist|blist
|
|
%local.speclist.class;">
|
|
|
|
<!ENTITY % local.note.class "">
|
|
<!ENTITY % note.class "note|wfcnote|vcnote
|
|
%local.note.class;">
|
|
|
|
<!ENTITY % local.illus.class "">
|
|
<!ENTITY % illus.class "eg|graphic|scrap|htable
|
|
%local.illus.class;">
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Entities for classes of phrase-level elements ................. -->
|
|
|
|
<!--
|
|
#1997-12-29: maler: Added xspecref to %ref.class;.
|
|
#1998-03-10: maler: Added %ednote.class;.
|
|
# Added "local" entities for customization.
|
|
-->
|
|
|
|
<!ENTITY % local.annot.class "">
|
|
<!ENTITY % annot.class "footnote
|
|
%local.annot.class;">
|
|
|
|
<!ENTITY % local.termdef.class "">
|
|
<!ENTITY % termdef.class "termdef|term
|
|
%local.termdef.class;">
|
|
|
|
<!ENTITY % local.emph.class "">
|
|
<!ENTITY % emph.class "emph|quote
|
|
%local.emph.class;">
|
|
|
|
<!ENTITY % local.ref.class "">
|
|
<!ENTITY % ref.class "bibref|specref|termref|titleref
|
|
|xspecref|xtermref
|
|
%local.ref.class;">
|
|
|
|
<!ENTITY % local.loc.class "">
|
|
<!ENTITY % loc.class "loc
|
|
%local.loc.class;">
|
|
|
|
<!ENTITY % local.tech.class "">
|
|
<!ENTITY % tech.class "kw|nt|xnt|code
|
|
%local.tech.class;">
|
|
|
|
<!ENTITY % local.ednote.class "">
|
|
<!ENTITY % ednote.class "ednote
|
|
%local.ednote.class;">
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Entities for mixtures of standalone elements .................. -->
|
|
|
|
<!--
|
|
#1997-09-30: maler: Created %p.mix; to eliminate p from self.
|
|
#1997-09-30: maler: Added %speclist.class; to %obj.mix; and %p.mix;.
|
|
#1997-09-30: maler: Added %note.class; to %obj.mix; and %p.mix;.
|
|
#1997-10-16: maler: Created %entry.mix;. Note that some elements
|
|
# left out here are still allowed in termdef,
|
|
# which entry can contain through %p.pcd.mix;.
|
|
#1997-11-28: maler: Added %p.class; to %statusobj.mix;.
|
|
#1998-03-10: maler: Added %ednote.class; to all mixtures, except
|
|
# %p.mix; and %statusobj.mix;, because paragraphs
|
|
# and status paragraphs will contain ednote
|
|
# through %p.pcd.mix;.
|
|
#1998-03-123: maler: Added %termdef.mix; (broken out from
|
|
# %termdef.pcd.mix;).
|
|
-->
|
|
|
|
<!ENTITY % div.mix
|
|
"%p.class;|%list.class;|%speclist.class;|%note.class;
|
|
|%illus.class;|%ednote.class;">
|
|
<!ENTITY % obj.mix
|
|
"%p.class;|%list.class;|%speclist.class;|%note.class;
|
|
|%illus.class;|%ednote.class;">
|
|
<!ENTITY % p.mix
|
|
"%list.class;|%speclist.class;|%note.class;|%illus.class;">
|
|
<!ENTITY % entry.mix
|
|
"%list.class;|note|eg|graphic|%ednote.class;">
|
|
<!ENTITY % statusobj.mix
|
|
"%p.class;|%statusp.class;|%list.class;">
|
|
<!ENTITY % hdr.mix
|
|
"%p.class;|%list.class;|%ednote.class;">
|
|
<!ENTITY % termdef.mix
|
|
"%note.class;|%illus.class;">
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Entities for mixtures of #PCDATA and phrase-level elements .... -->
|
|
|
|
<!-- Note that %termdef.pcd.mix contains %note.class;
|
|
and %illus.class;, considered standalone elements. -->
|
|
|
|
<!--
|
|
#1997-09-30: maler: Added scrap and %note.class; to %termdef.pcd.mix;.
|
|
#1997-11-28: maler: Added %loc.class; to %p.pcd.mix;.
|
|
#1998-03-10: maler: Added %ednote.class; to all mixtures.
|
|
#1998-03-23: maler: Moved some %termdef.pcd.mix; stuff out to
|
|
# %termdef.mix;.
|
|
-->
|
|
|
|
<!ENTITY % p.pcd.mix
|
|
"#PCDATA|%annot.class;|%termdef.class;|%emph.class;
|
|
|%ref.class;|%tech.class;|%loc.class;|%ednote.class;">
|
|
<!ENTITY % statusp.pcd.mix
|
|
"#PCDATA|%annot.class;|%termdef.class;|%emph.class;
|
|
|%ref.class;|%tech.class;|%loc.class;|%ednote.class;">
|
|
<!ENTITY % head.pcd.mix
|
|
"#PCDATA|%annot.class;|%emph.class;|%tech.class;|%ednote.class;">
|
|
<!ENTITY % label.pcd.mix
|
|
"#PCDATA|%annot.class;|%termdef.class;|%emph.class;|%tech.class;
|
|
|%ednote.class;">
|
|
<!ENTITY % eg.pcd.mix
|
|
"#PCDATA|%annot.class;|%emph.class;|%ednote.class;">
|
|
<!ENTITY % termdef.pcd.mix
|
|
"#PCDATA|term|%emph.class;|%ref.class;|%tech.class;
|
|
|%ednote.class;">
|
|
<!ENTITY % bibl.pcd.mix
|
|
"#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;">
|
|
<!ENTITY % tech.pcd.mix
|
|
"#PCDATA|%ednote.class;">
|
|
<!ENTITY % loc.pcd.mix
|
|
"#PCDATA|%loc.class;|%ednote.class;">
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Entities for customizable content models ...................... -->
|
|
|
|
<!--
|
|
#1998-03-10: maler: Added customization entities.
|
|
-->
|
|
|
|
<!ENTITY % spec.mdl
|
|
"header, front?, body, back?">
|
|
|
|
<!ENTITY % header.mdl
|
|
"title, subtitle?, version, w3c-designation, w3c-doctype,
|
|
pubdate, notice*, publoc, latestloc?, prevlocs?, authlist,
|
|
abstract, status, pubstmt?, sourcedesc?, langusage,
|
|
revisiondesc">
|
|
|
|
<!ENTITY % pubdate.mdl
|
|
"day?, month, year">
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Entities for common attributes ................................ -->
|
|
|
|
<!-- key attribute:
|
|
Optionally provides a sorting or indexing key, for cases when
|
|
the element content is inappropriate for this purpose. -->
|
|
<!ENTITY % key.att
|
|
'key CDATA #IMPLIED'>
|
|
|
|
<!-- def attribute:
|
|
Points to the element where the relevant definition can be
|
|
found, using the IDREF mechanism. %def.att; is for optional
|
|
def attributes, and %def-req.att; is for required def
|
|
attributes. -->
|
|
<!ENTITY % def.att
|
|
'def IDREF #IMPLIED'>
|
|
<!ENTITY % def-req.att
|
|
'def IDREF #REQUIRED'>
|
|
|
|
<!-- ref attribute:
|
|
Points to the element where more information can be found,
|
|
using the IDREF mechanism. %ref.att; is for optional
|
|
ref attributes, and %ref-req.att; is for required ref
|
|
attributes. -->
|
|
<!ENTITY % ref.att
|
|
'ref IDREF #IMPLIED'>
|
|
<!ENTITY % ref-req.att
|
|
'ref IDREF #REQUIRED'>
|
|
|
|
<!--
|
|
#1998-03-23: maler: Added show and actuate attributes to href.
|
|
# Added semi-common xml:space attribute.
|
|
-->
|
|
|
|
<!-- HREF and source attributes:
|
|
Points to the element where more information or source data
|
|
can be found, using the URL (XLL simple link) mechanism.
|
|
For some purposes, is associated with additional XLL
|
|
attributes. %href.att; is for optional HREF attributes,
|
|
and %href-req.att; is for required HREF attributes.
|
|
%source-req.att; is for the source attribute, which
|
|
is always required. -->
|
|
<!ENTITY % href.att
|
|
'xml-link CDATA #FIXED "simple"
|
|
href CDATA #IMPLIED
|
|
show CDATA #FIXED "embed"
|
|
actuate CDATA #FIXED "auto"'>
|
|
|
|
<!ENTITY % href-req.att
|
|
'xml-link CDATA #FIXED "simple"
|
|
href CDATA #REQUIRED
|
|
show CDATA #FIXED "embed"
|
|
actuate CDATA #FIXED "auto"'>
|
|
|
|
<!ENTITY % source-req.att
|
|
'xml-link CDATA #FIXED "simple"
|
|
xml:attributes NMTOKENS #FIXED "href source"
|
|
source CDATA #REQUIRED
|
|
show CDATA #FIXED "embed"
|
|
actuate CDATA #FIXED "auto"'>
|
|
|
|
<!-- xml:space attribute:
|
|
Indicates that the element contains white space
|
|
that the formatter or other application should retain,
|
|
as appropriate to its function. -->
|
|
<!ENTITY % xmlspace.att
|
|
'xml:space (default
|
|
|preserve) #FIXED "preserve"'>
|
|
|
|
<!-- Common attributes:
|
|
Every element has an ID attribute (sometimes required,
|
|
but usually optional) for links, and a Role attribute
|
|
for extending the useful life of the DTD by allowing
|
|
authors to make subclasses for any element. %common.att;
|
|
is for common attributes where the ID is optional, and
|
|
%common-idreq.att; is for common attributes where the
|
|
ID is required. -->
|
|
<!ENTITY % common.att
|
|
'id ID #IMPLIED
|
|
role NMTOKEN #IMPLIED'>
|
|
<!ENTITY % common-idreq.att
|
|
'id ID #REQUIRED
|
|
role NMTOKEN #IMPLIED'>
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Common elements ............................................... -->
|
|
|
|
<!-- head: Title on divisions, productions, and the like -->
|
|
<!ELEMENT head (%head.pcd.mix;)*>
|
|
<!ATTLIST head %common.att;>
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Major specification structure ................................. -->
|
|
|
|
<!--
|
|
#1998-03-10: maler: Made spec content model easily customizable.
|
|
-->
|
|
|
|
<!ELEMENT spec (%spec.mdl;)>
|
|
<!ATTLIST spec %common.att;>
|
|
|
|
<!ELEMENT front (div1+)>
|
|
<!ATTLIST front %common.att;>
|
|
|
|
<!ELEMENT body (div1+)>
|
|
<!ATTLIST body %common.att;>
|
|
|
|
<!--
|
|
#1997-09-30: maler: Added inform-div1 to back content.
|
|
-->
|
|
|
|
<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)>
|
|
<!ATTLIST back %common.att;>
|
|
|
|
<!ELEMENT div1 (head, (%div.mix;)*, div2*)>
|
|
<!ATTLIST div1 %common.att;>
|
|
|
|
<!--
|
|
#1997-09-30: maler: Added inform-div1 declarations.
|
|
-->
|
|
|
|
<!-- inform-div1: Non-normative division in back matter -->
|
|
<!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)>
|
|
<!ATTLIST inform-div1 %common.att;>
|
|
|
|
<!ELEMENT div2 (head, (%div.mix;)*, div3*)>
|
|
<!ATTLIST div2 %common.att;>
|
|
|
|
<!ELEMENT div3 (head, (%div.mix;)*, div4*)>
|
|
<!ATTLIST div3 %common.att;>
|
|
|
|
<!ELEMENT div4 (head, (%div.mix;)*)>
|
|
<!ATTLIST div4 %common.att;>
|
|
|
|
<!-- Specification header .......... -->
|
|
|
|
<!--
|
|
#1998-03-10: maler: Made header content model easily customizable.
|
|
-->
|
|
|
|
<!ELEMENT header (%header.mdl;)>
|
|
<!ATTLIST header %common.att;>
|
|
|
|
<!-- Example of title: "Extensible Cheese Language (XCL)" -->
|
|
<!ELEMENT title (#PCDATA)>
|
|
<!ATTLIST title %common.att;>
|
|
|
|
<!-- Example of subtitle: "A Cheesy Specification" -->
|
|
<!ELEMENT subtitle (#PCDATA)>
|
|
<!ATTLIST subtitle %common.att;>
|
|
|
|
<!-- Example of version: "Version 666.0" -->
|
|
<!ELEMENT version (#PCDATA)>
|
|
<!ATTLIST version %common.att;>
|
|
|
|
<!-- Example of w3c-designation: "WD-xcl-19991231" -->
|
|
<!ELEMENT w3c-designation (#PCDATA)>
|
|
<!ATTLIST w3c-designation %common.att;>
|
|
|
|
<!-- Example of w3c-doctype: "World Wide Web Consortium Working
|
|
Draft" -->
|
|
<!ELEMENT w3c-doctype (#PCDATA)>
|
|
<!ATTLIST w3c-doctype %common.att;>
|
|
|
|
<!--
|
|
#1998-03-10: maler: Made pubdate content model easily customizable.
|
|
-->
|
|
|
|
<!ELEMENT pubdate (%pubdate.mdl;)>
|
|
<!ATTLIST pubdate %common.att;>
|
|
|
|
<!ELEMENT day (#PCDATA)>
|
|
<!ATTLIST day %common.att;>
|
|
|
|
<!ELEMENT month (#PCDATA)>
|
|
<!ATTLIST month %common.att;>
|
|
|
|
<!ELEMENT year (#PCDATA)>
|
|
<!ATTLIST year %common.att;>
|
|
|
|
<!-- Example of notice: "This draft is for public comment..." -->
|
|
<!ELEMENT notice (%hdr.mix;)+>
|
|
<!ATTLIST notice %common.att;>
|
|
|
|
<!ELEMENT publoc (loc+)>
|
|
<!ATTLIST publoc %common.att;>
|
|
|
|
<!ELEMENT prevlocs (loc+)>
|
|
<!ATTLIST prevlocs %common.att;>
|
|
|
|
<!ELEMENT latestloc (loc+)>
|
|
<!ATTLIST latestloc %common.att;>
|
|
|
|
<!-- loc (defined in "Phrase-level elements" below) -->
|
|
|
|
<!ELEMENT authlist (author+)>
|
|
<!ATTLIST authlist %common.att;>
|
|
|
|
<!--
|
|
#1997-09-30: maler: Made affiliation optional.
|
|
#1998-03-10: maler: Made email optional.
|
|
-->
|
|
|
|
<!ELEMENT author (name, affiliation?, email?)>
|
|
<!ATTLIST author %common.att;>
|
|
|
|
<!ELEMENT name (#PCDATA)>
|
|
<!ATTLIST name
|
|
%common.att;
|
|
%key.att;>
|
|
|
|
<!ELEMENT affiliation (#PCDATA)>
|
|
<!ATTLIST affiliation %common.att;>
|
|
|
|
<!ELEMENT email (#PCDATA)>
|
|
<!-- HREF attribute:
|
|
email functions as a hypertext reference through this
|
|
required attribute. Typically the reference would use
|
|
the mailto: scheme. -->
|
|
<!ATTLIST email
|
|
%common.att;
|
|
%href-req.att;>
|
|
|
|
<!-- The status element now contains both statusp and p, and
|
|
the latter now allows loc. Use p; statusp will be removed
|
|
eventually. -->
|
|
<!ELEMENT status (%statusobj.mix;)+>
|
|
<!ATTLIST status %common.att;>
|
|
|
|
<!ELEMENT abstract (%hdr.mix;)*>
|
|
<!ATTLIST abstract %common.att;>
|
|
|
|
<!ELEMENT pubstmt (%hdr.mix;)+>
|
|
<!ATTLIST pubstmt %common.att;>
|
|
|
|
<!ELEMENT sourcedesc (%hdr.mix;)+>
|
|
<!ATTLIST sourcedesc %common.att;>
|
|
|
|
<!ELEMENT langusage (language+)>
|
|
<!ATTLIST langusage %common.att;>
|
|
|
|
<!ELEMENT language (#PCDATA)>
|
|
<!ATTLIST language %common.att;>
|
|
|
|
<!ELEMENT revisiondesc (%hdr.mix;)+>
|
|
<!ATTLIST revisiondesc %common.att;>
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Standalone elements ........................................... -->
|
|
|
|
<!-- Paragraphs .................... -->
|
|
|
|
<!--
|
|
#1997-09-30: maler: Changed from %obj.mix; to %p.mix;.
|
|
#1997-12-29: maler: Changed order of %p.mix; and %p.pcd.mix; references.
|
|
#1997-12-29: maler: Changed order of %statusobj.mix; and %statusp.pcd.mix;
|
|
# references.
|
|
-->
|
|
|
|
<!ELEMENT p (%p.pcd.mix;|%p.mix;)*>
|
|
<!ATTLIST p %common.att;>
|
|
|
|
<!-- statusp: Special paragraph that allows loc inside it (note that
|
|
p now also allows loc) -->
|
|
<!ELEMENT statusp (%statusp.pcd.mix;|%statusobj.mix;)*>
|
|
<!ATTLIST statusp %common.att;>
|
|
|
|
<!-- Lists ......................... -->
|
|
|
|
<!ELEMENT ulist (item+)>
|
|
<!-- spacing attribute:
|
|
Use "normal" to get normal vertical spacing for items;
|
|
use "compact" to get less spacing. The default is dependent
|
|
on the stylesheet. -->
|
|
<!ATTLIST ulist
|
|
%common.att;
|
|
spacing (normal|compact) #IMPLIED>
|
|
|
|
<!ELEMENT olist (item+)>
|
|
<!-- spacing attribute:
|
|
Use "normal" to get normal vertical spacing for items;
|
|
use "compact" to get less spacing. The default is dependent
|
|
on the stylesheet. -->
|
|
<!ATTLIST olist
|
|
%common.att;
|
|
spacing (normal|compact) #IMPLIED>
|
|
|
|
<!ELEMENT item (%obj.mix;)+>
|
|
<!ATTLIST item %common.att;>
|
|
|
|
<!ELEMENT slist (sitem+)>
|
|
<!ATTLIST slist %common.att;>
|
|
|
|
<!ELEMENT sitem (%p.pcd.mix;)*>
|
|
<!ATTLIST sitem %common.att;>
|
|
|
|
<!ELEMENT glist (gitem+)>
|
|
<!ATTLIST glist %common.att;>
|
|
|
|
<!ELEMENT gitem (label, def)>
|
|
<!ATTLIST gitem %common.att;>
|
|
|
|
<!ELEMENT label (%label.pcd.mix;)*>
|
|
<!ATTLIST label %common.att;>
|
|
|
|
<!ELEMENT def (%obj.mix;)*>
|
|
<!ATTLIST def %common.att;>
|
|
|
|
<!-- Special lists ................. -->
|
|
|
|
<!ELEMENT blist (bibl+)>
|
|
<!ATTLIST blist %common.att;>
|
|
|
|
<!ELEMENT bibl (%bibl.pcd.mix;)*>
|
|
|
|
<!-- HREF attribute:
|
|
bibl optionally functions as a hypertext reference to the
|
|
referred-to resource through this attribute. -->
|
|
|
|
<!ATTLIST bibl
|
|
%common.att;
|
|
%href.att;
|
|
%key.att;>
|
|
|
|
<!ELEMENT orglist (member+)>
|
|
<!ATTLIST orglist %common.att;>
|
|
|
|
<!--
|
|
#1997-09-30: maler: Added optional affiliation.
|
|
-->
|
|
|
|
<!ELEMENT member (name, affiliation?, role?)>
|
|
<!ATTLIST member %common.att;>
|
|
|
|
<!-- name (defined in "Specification header" above) -->
|
|
<!-- affiliation (defined in "Specification header" above) -->
|
|
|
|
<!ELEMENT role (#PCDATA)>
|
|
<!ATTLIST role %common.att;>
|
|
|
|
<!-- Notes ......................... -->
|
|
|
|
<!ELEMENT note (%obj.mix;)+>
|
|
<!ATTLIST note %common.att;>
|
|
|
|
<!ELEMENT wfcnote (head, (%obj.mix;)+)>
|
|
<!-- ID attribute:
|
|
wfcnote must have an ID so that it can be pointed to
|
|
from a wfc element in a production. -->
|
|
<!ATTLIST wfcnote
|
|
%common-idreq.att;>
|
|
|
|
<!ELEMENT vcnote (head, (%obj.mix;)+)>
|
|
<!-- ID attribute:
|
|
vcnote must have an ID so that it can be pointed to
|
|
from a vc element in a production. -->
|
|
<!ATTLIST vcnote
|
|
%common-idreq.att;>
|
|
|
|
<!-- Illustrations ................. -->
|
|
|
|
<!--
|
|
#1998-03-23: maler: Added xml:space attribute.
|
|
-->
|
|
|
|
<!ELEMENT eg (%eg.pcd.mix;)*>
|
|
<!ATTLIST eg
|
|
%common.att;
|
|
%xmlspace.att;>
|
|
|
|
<!ELEMENT graphic EMPTY>
|
|
<!-- source attribute:
|
|
The graphic data must reside at the location pointed to.
|
|
This is a hypertext reference, but for practical purposes,
|
|
for now it should just be a pathname. -->
|
|
<!ATTLIST graphic
|
|
%common.att;
|
|
%source-req.att;
|
|
alt CDATA #IMPLIED>
|
|
|
|
<!--
|
|
#1997-11-28: maler: Added prodgroup to scrap and defined it.
|
|
-->
|
|
|
|
<!ELEMENT scrap (head, (prodgroup+ | prod+ | bnf))>
|
|
<!-- lang attribute:
|
|
The scrap can link to a description of the language used,
|
|
found in a language element in the header. -->
|
|
<!ATTLIST scrap
|
|
%common.att;
|
|
lang IDREF #IMPLIED>
|
|
|
|
<!ELEMENT prodgroup (prod+)>
|
|
<!-- pcw<n> attributes:
|
|
Presentational attributes to control the width
|
|
of the "pseudo-table" columns used to output
|
|
groups of productions. -->
|
|
<!ATTLIST prodgroup
|
|
%common.att;
|
|
pcw1 CDATA #IMPLIED
|
|
pcw2 CDATA #IMPLIED
|
|
pcw3 CDATA #IMPLIED
|
|
pcw4 CDATA #IMPLIED
|
|
pcw5 CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT prod (lhs, (rhs, (com|wfc|vc)*)+)>
|
|
<!-- ID attribute:
|
|
The production must have an ID so that cross-references
|
|
(specref) and mentions of nonterminals (nt) can link to
|
|
it. -->
|
|
<!ATTLIST prod
|
|
%common-idreq.att;>
|
|
|
|
<!ELEMENT lhs (#PCDATA)>
|
|
<!ATTLIST lhs %common.att;>
|
|
|
|
<!ELEMENT rhs (#PCDATA|nt|xnt|com)*>
|
|
<!ATTLIST rhs %common.att;>
|
|
|
|
<!-- nt and xnt (defined in "Phrase-level elements" below) -->
|
|
|
|
<!--
|
|
#1997-11-28: maler: Added loc and bibref to com content.
|
|
-->
|
|
|
|
<!ELEMENT com (#PCDATA|loc|bibref)*>
|
|
<!ATTLIST com %common.att;>
|
|
|
|
<!-- wfc: Should generate the head of the wfcnote pointed to -->
|
|
<!ELEMENT wfc EMPTY>
|
|
<!-- def attribute:
|
|
Each well formedness tagline in a production must link to the
|
|
wfcnote that defines it. -->
|
|
<!ATTLIST wfc
|
|
%def-req.att;
|
|
%common.att;>
|
|
|
|
<!-- vc: Should generate the head of the vcnote pointed to -->
|
|
<!ELEMENT vc EMPTY>
|
|
<!-- def attribute:
|
|
Each validity tagline in a production must link to the vcnote
|
|
that defines it. -->
|
|
<!ATTLIST vc
|
|
%def-req.att;
|
|
%common.att;>
|
|
|
|
<!--
|
|
#1998-03-23: maler: Added xml:space attribute.
|
|
-->
|
|
|
|
<!-- bnf: Un-marked-up production -->
|
|
<!ELEMENT bnf (%eg.pcd.mix;)*>
|
|
<!ATTLIST bnf
|
|
%common.att;
|
|
%xmlspace.att;>
|
|
|
|
<!--
|
|
#1997-10-16: maler: Added table mechanism.
|
|
#1997-11-28: maler: Added non-null system ID to entity declaration.
|
|
# Added HTML table module.
|
|
#1997-12-29: maler: IGNOREd SGML Open table model.
|
|
#1998-03-10: maler: Removed SGML Open table model.
|
|
# Merged html-tbl.mod file into main file.
|
|
# Added %common.att; to all HTML table elements.
|
|
-->
|
|
|
|
<!-- TR and TD attributes:
|
|
Alignment attributes. No default. -->
|
|
<!ENTITY % trtd.att
|
|
"align (left
|
|
|center
|
|
|right) #IMPLIED
|
|
valign (top
|
|
|middle
|
|
|bottom) #IMPLIED">
|
|
|
|
<!ELEMENT htable (htbody+)>
|
|
<!ATTLIST htable
|
|
border CDATA "0"
|
|
cellpadding CDATA "0"
|
|
align (left
|
|
|center
|
|
|right) "left">
|
|
|
|
<!ELEMENT htbody (tr+)>
|
|
<!ATTLIST htbody %common.att;>
|
|
|
|
<!ELEMENT tr (td+)>
|
|
<!ATTLIST tr
|
|
%common.att;
|
|
%trtd.att;>
|
|
|
|
<!ELEMENT td (%p.pcd.mix;)*>
|
|
<!ATTLIST td
|
|
%common.att;
|
|
%trtd.att;
|
|
bgcolor CDATA #IMPLIED
|
|
rowspan CDATA "1"
|
|
colspan CDATA "1">
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Phrase-level elements ......................................... -->
|
|
|
|
<!-- bibref: Should generate, in square brackets, "key" on bibl -->
|
|
<!ELEMENT bibref EMPTY>
|
|
<!-- ref attribute:
|
|
A bibliography reference must link to the bibl element that
|
|
describes the resource. -->
|
|
<!ATTLIST bibref
|
|
%common.att;
|
|
%ref-req.att;>
|
|
|
|
<!ELEMENT code (%tech.pcd.mix;)*>
|
|
<!ATTLIST code %common.att;>
|
|
|
|
<!--
|
|
#1998-03-10: maler: Declared ednote and related elements.
|
|
-->
|
|
|
|
<!ELEMENT ednote (name?, date?, edtext)>
|
|
<!ATTLIST ednote %common.att;>
|
|
|
|
<!ELEMENT date (#PCDATA)>
|
|
<!ATTLIST date %common.att;>
|
|
|
|
<!ELEMENT edtext (#PCDATA)>
|
|
<!ATTLIST edtext %common.att;>
|
|
|
|
<!ELEMENT emph (#PCDATA)>
|
|
<!ATTLIST emph %common.att;>
|
|
|
|
<!-- footnote: Both footnote content and call to footnote -->
|
|
<!ELEMENT footnote (%obj.mix;)+>
|
|
<!ATTLIST footnote %common.att;>
|
|
|
|
<!ELEMENT kw (%tech.pcd.mix;)*>
|
|
<!ATTLIST kw %common.att;>
|
|
|
|
<!ELEMENT loc (#PCDATA)>
|
|
<!-- HREF attribute:
|
|
The purpose of a loc element is to function as a hypertext
|
|
link to a resource. (Ideally, the content of loc will also
|
|
mention the URI of the resource, so that readers of the
|
|
printed version will be able to locate the resource.) -->
|
|
<!ATTLIST loc
|
|
%common.att;
|
|
%href-req.att;>
|
|
|
|
<!ELEMENT nt (#PCDATA)>
|
|
<!-- def attribute:
|
|
The nonterminal must link to the production that defines
|
|
it. -->
|
|
<!ATTLIST nt
|
|
%common.att;
|
|
%def-req.att;>
|
|
|
|
<!--
|
|
#1998-03-10: maler: Declared quote.
|
|
-->
|
|
|
|
<!-- quote: Scare quotes and other purely presentational quotes -->
|
|
<!ELEMENT quote (%p.pcd.mix;)*>
|
|
<!ATTLIST quote %common.att;>
|
|
|
|
<!-- specref: Should generate italic "[n.n], Section Title" for
|
|
div, "n" for numbered item, or "[n]" for production -->
|
|
<!ELEMENT specref EMPTY>
|
|
<!-- ref attribute:
|
|
The purpose of a specref element is to link to a div, item
|
|
in an olist, or production in the current spec. -->
|
|
<!ATTLIST specref
|
|
%common.att;
|
|
%ref-req.att;>
|
|
|
|
<!ELEMENT term (#PCDATA)>
|
|
<!ATTLIST term %common.att;>
|
|
|
|
<!ELEMENT termdef (%termdef.pcd.mix;|%termdef.mix;)*>
|
|
<!-- ID attribute:
|
|
A term definition must have an ID so that it can be linked
|
|
to from termref elements. -->
|
|
<!-- term attribute:
|
|
The canonical form of the term or phrase being defined must
|
|
appear in this attribute, even if the term or phrase also
|
|
appears in the element content in identical form (e.g., in
|
|
the term element). -->
|
|
<!ATTLIST termdef
|
|
%common-idreq.att;
|
|
term CDATA #REQUIRED>
|
|
|
|
<!ELEMENT termref (#PCDATA)>
|
|
<!-- ref attribute:
|
|
A term reference must link to the termdef element that
|
|
defines the term. -->
|
|
<!ATTLIST termref
|
|
%common.att;
|
|
%def-req.att;>
|
|
|
|
<!ELEMENT titleref (#PCDATA)>
|
|
<!-- HREF attribute:
|
|
A title reference can optionally function as a hypertext
|
|
link to the resource with this title. -->
|
|
<!ATTLIST titleref
|
|
%common.att;
|
|
%href.att;>
|
|
|
|
<!ELEMENT xnt (#PCDATA)>
|
|
<!-- HREF attribute:
|
|
The nonterminal must hyperlink to a resource that serves
|
|
to define it (e.g., a production in a related XML
|
|
specification). -->
|
|
<!ATTLIST xnt
|
|
%common.att;
|
|
%href-req.att;>
|
|
|
|
<!--
|
|
#1997-12-29: maler: Declared xspecref.
|
|
-->
|
|
|
|
<!ELEMENT xspecref (#PCDATA)>
|
|
<!-- HREF attribute:
|
|
The spec reference must hyperlink to the resource to
|
|
cross-refer to (e.g., a section in a related XML
|
|
specification). -->
|
|
<!ATTLIST xspecref
|
|
%common.att;
|
|
%href-req.att;>
|
|
|
|
<!ELEMENT xtermref (#PCDATA)>
|
|
<!-- HREF attribute:
|
|
The term reference must hyperlink to the resource that
|
|
serves to define the term (e.g., a term definition in
|
|
a related XML specification). -->
|
|
<!ATTLIST xtermref
|
|
%common.att;
|
|
%href-req.att;>
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Unused elements for ADEPT ..................................... -->
|
|
|
|
<!--
|
|
#1997-09-30: maler: Added unusued elements.
|
|
#1997-10-14: maler: Fixed div to move nested div to the mixture.
|
|
-->
|
|
|
|
<!-- The following elements are purposely declared but never
|
|
referenced. Declaring them allows them to be pasted from
|
|
an HTML document into a document using this DTD in ADEPT.
|
|
The ATD Context Transformation mechanism will try to convert
|
|
them to the appropriate element for this DTD. While this
|
|
conversion will not work for all fragments, it does allow
|
|
many cases to work reasonably well. -->
|
|
|
|
<!ELEMENT div
|
|
(head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)>
|
|
<!ELEMENT h1 (%head.pcd.mix;|em|a)*>
|
|
<!ELEMENT h2 (%head.pcd.mix;|em|a)*>
|
|
<!ELEMENT h3 (%head.pcd.mix;|em|a)*>
|
|
<!ELEMENT h4 (%head.pcd.mix;|em|a)*>
|
|
<!ELEMENT h5 (%head.pcd.mix;|em|a)*>
|
|
<!ELEMENT h6 (%head.pcd.mix;|em|a)*>
|
|
<!ELEMENT pre (%eg.pcd.mix;|em)*>
|
|
<!ELEMENT ul (item|li)*>
|
|
<!ELEMENT ol (item|li)*>
|
|
<!ELEMENT li (#PCDATA|%obj.mix;)*>
|
|
<!ELEMENT em (#PCDATA)>
|
|
<!ELEMENT a (#PCDATA)>
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- Change history ................................................ -->
|
|
|
|
<!--
|
|
#1997-08-18: maler
|
|
#- Did a major revision.
|
|
#1997-09-10: maler
|
|
#- Updated FPI.
|
|
#- Removed namekey element and put key attribute on name element.
|
|
#- Made statusp element and supporting entities.
|
|
#- Added slist element with sitem+ content.
|
|
#- Required head on scrap and added new bnf subelement.
|
|
#- Added an xnt element and allowed it and nt in regular text and rhs.
|
|
#- Removed the ntref element.
|
|
#- Added back the com element to the content of rhs.
|
|
#- Added a key attribute to bibl.
|
|
#- Removed the ident element.
|
|
#- Added a term element to be used inside termdef.
|
|
#- Added an xtermref element parallel to termref.
|
|
#- Beefed up DTD comments.
|
|
#1997-09-12: maler
|
|
#- Allowed term element in general text.
|
|
#- Changed bibref to EMPTY.
|
|
#- Added ref.class to termdef.pcd.mix.
|
|
#1997-09-14: maler
|
|
#- Changed main attribute of xtermref from def to href.
|
|
#- Added termdef.class to label contents.
|
|
#1997-09-30: maler
|
|
#- Added character entity module and added new entities.
|
|
#- Removed p from appearing directly in self; created %p.mix;.
|
|
#- Added inform-div (non-normative division) element.
|
|
#- Fixed xtermref comment to mention HREF, not ref.
|
|
#- Extended orglist model to allow optional affiliation.
|
|
#- Modified author to make affiliation optional.
|
|
#- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;.
|
|
#- Added %note.class; and %illus.class; to %termdef.pcd.mix;.
|
|
#- Added unused HTML elements.
|
|
#- Put empty system ID next to public ID in entity declarations.
|
|
#1997-10-14: maler
|
|
#- Fixed "unused" div content model to move nested div to mixture.
|
|
#1997-10-16: maler
|
|
#- Added SGML Open Exchange tables.
|
|
#1997-11-28: maler
|
|
#- Added support for prodgroup and its attributes.
|
|
#- Added support for HTML tables.
|
|
#- Added loc and bibref to content of com.
|
|
#- Added loc to general p content models.
|
|
#- Allowed p as alternative to statusp in status.
|
|
#- Added non-null system IDs to external parameter entity declarations.
|
|
#- (Modified the SGML Open table module to make it XML-compliant.)
|
|
#- (Modified the character entity module.)
|
|
#1997-12-29: maler
|
|
#- Moved #PCDATA occurrences to come before GIs in content models.
|
|
#- Removed use of the SGML Open table module.
|
|
#- Added xspecref element.
|
|
#- Ensured that all FPIs contain 4-digit year.
|
|
#- (Modified the character entity module.)
|
|
#1997-03-10: maler
|
|
#- Merged the character entity and table modules into the main file.
|
|
#- Added ldquo and rdquo entities.
|
|
#- Added common attributes to prodgroup.
|
|
#- Made the email element in header optional.
|
|
#- Removed reference to the SGML Open table model.
|
|
#- Added ednote element.
|
|
#- Added quote element.
|
|
#- Updated XLink usage to reflect 3 March 1998 WD.
|
|
#- Added "local" entities to the class entities for customization.
|
|
#- Parameterized several content models to allow for customization.
|
|
#1997-03-23: maler
|
|
#- Cleaned up some comments and removed some others.
|
|
#- Added xml:space semi-common attribute to eg and bnf elements.
|
|
#- Added show and embed attributes on all the uses of href.
|
|
#- Added %common.att; to all HTML table elements.
|
|
#- Added a real URI to the "typical invocation" comment.
|
|
-->
|
|
|
|
<!-- ............................................................... -->
|
|
<!-- End of XML specification DTD .................................. -->
|
|
<!-- ............................................................... -->
|