summaryrefslogtreecommitdiff
path: root/client/dl/xmlspec-its.xsd
diff options
context:
space:
mode:
Diffstat (limited to 'client/dl/xmlspec-its.xsd')
-rw-r--r--client/dl/xmlspec-its.xsd2772
1 files changed, 2772 insertions, 0 deletions
diff --git a/client/dl/xmlspec-its.xsd b/client/dl/xmlspec-its.xsd
new file mode 100644
index 0000000..6789551
--- /dev/null
+++ b/client/dl/xmlspec-its.xsd
@@ -0,0 +1,2772 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ............................................................... -->
+<!-- XML specification DTD ......................................... -->
+<!-- ............................................................... -->
+<!-- $Id: xmlspec-its.xsd,v 1.1 2008/02/10 07:44:48 fsasaki 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 &ldquo; and &rdquo;.
+ # 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.
+-->
+<!-- ............................................................... -->
+<!-- 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;.
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:its="http://www.w3.org/2005/11/its">
+ <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
+ <xs:import namespace="http://www.w3.org/2005/11/its" schemaLocation="its.xsd"/>
+ <xs:group name="p.class">
+ <xs:sequence>
+ <xs:element ref="p"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:element name="list.class" abstract="true"/>
+ <xs:element name="speclist.class" abstract="true"/>
+ <xs:element name="note.class" abstract="true"/>
+ <xs:element name="illus.class" abstract="true"/>
+ <!-- ............................................................... -->
+ <!-- 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;.
+ -->
+ <xs:element name="annot.class" abstract="true">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="termdef.class" abstract="true"/>
+ <xs:element name="emph.class" abstract="true"/>
+ <xs:element name="ref.class" abstract="true"/>
+ <xs:element name="loc.class" abstract="true">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href-req.att"/>
+ <xs:attributeGroup ref="user-replace.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tech.class" abstract="true"/>
+ <xs:element name="ednote.class" abstract="true">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="name"/>
+ <xs:element minOccurs="0" ref="date"/>
+ <xs:element ref="edtext"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- 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;.
+ -->
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="div.mix">
+ <xs:choice>
+ <xs:group ref="p.class"/>
+ <xs:element ref="list.class"/>
+ <xs:element ref="speclist.class"/>
+ <xs:element ref="note.class"/>
+ <xs:element ref="illus.class"/>
+ <xs:element ref="ednote.class"/>
+ </xs:choice>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="obj.mix">
+ <xs:choice>
+ <xs:group ref="p.class"/>
+ <xs:element ref="list.class"/>
+ <xs:element ref="speclist.class"/>
+ <xs:element ref="note.class"/>
+ <xs:element ref="illus.class"/>
+ <xs:element ref="ednote.class"/>
+ </xs:choice>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="p.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="speclist.class"/>
+ <xs:element ref="note.class"/>
+ <xs:element ref="illus.class"/>
+ </xs:choice>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="hdr.mix">
+ <xs:choice>
+ <xs:group ref="p.class"/>
+ <xs:element ref="list.class"/>
+ <xs:element ref="ednote.class"/>
+ </xs:choice>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="termdef.mix">
+ <xs:choice>
+ <xs:element ref="note.class"/>
+ <xs:element ref="illus.class"/>
+ </xs:choice>
+ </xs:group>
+ <!-- ............................................................... -->
+ <!-- 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;.
+ -->
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="p.pcd.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="annot.class"/>
+ <xs:element ref="termdef.class"/>
+ <xs:element ref="emph.class"/>
+ <xs:element ref="ref.class"/>
+ <xs:element ref="tech.class"/>
+ <xs:element ref="loc.class"/>
+ <xs:element ref="ednote.class"/>
+ <xs:element ref="its:span"/>
+ <xs:element ref="its:ruby"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="head.pcd.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="annot.class"/>
+ <xs:element ref="emph.class"/>
+ <xs:element ref="tech.class"/>
+ <xs:element ref="loc.class"/>
+ <xs:element ref="ednote.class"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="label.pcd.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="annot.class"/>
+ <xs:element ref="termdef.class"/>
+ <xs:element ref="emph.class"/>
+ <xs:element ref="tech.class"/>
+ <xs:element ref="loc.class"/>
+ <xs:element ref="ednote.class"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="eg.pcd.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="annot.class"/>
+ <xs:element ref="emph.class"/>
+ <xs:element ref="loc.class"/>
+ <xs:element ref="ednote.class"/>
+ <xs:element ref="constraint"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="termdef.pcd.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="term"/>
+ <xs:element ref="emph.class"/>
+ <xs:element ref="ref.class"/>
+ <xs:element ref="tech.class"/>
+ <xs:element ref="loc.class"/>
+ <xs:element ref="ednote.class"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="bibl.pcd.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="emph.class"/>
+ <xs:element ref="ref.class"/>
+ <xs:element ref="loc.class"/>
+ <xs:element ref="ednote.class"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <!-- compensate for IE bug; suggested by ht -->
+ <xs:group name="tech.pcd.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="loc.class"/>
+ <xs:element ref="ednote.class"/>
+ <xs:element ref="phrase"/>
+ <xs:element ref="rfc2119"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <!-- ............................................................... -->
+ <!-- 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.
+ -->
+ <xs:complexType name="spec.mdl">
+ <xs:sequence>
+ <xs:element ref="header"/>
+ <xs:element minOccurs="0" ref="front"/>
+ <xs:element ref="body"/>
+ <xs:element minOccurs="0" ref="back"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="header.mdl">
+ <xs:sequence>
+ <xs:element ref="title"/>
+ <xs:element minOccurs="0" ref="subtitle"/>
+ <xs:element minOccurs="0" ref="version"/>
+ <xs:element ref="w3c-designation"/>
+ <xs:element ref="w3c-doctype"/>
+ <xs:element ref="pubdate"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="notice"/>
+ <xs:element ref="publoc"/>
+ <xs:element minOccurs="0" ref="altlocs"/>
+ <xs:choice minOccurs="0">
+ <xs:sequence>
+ <xs:element ref="prevlocs"/>
+ <xs:element minOccurs="0" ref="latestloc"/>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:element ref="latestloc"/>
+ <xs:element minOccurs="0" ref="prevlocs"/>
+ </xs:sequence>
+ </xs:choice>
+ <xs:element ref="authlist"/>
+ <xs:element minOccurs="0" ref="errataloc"/>
+ <xs:element minOccurs="0" ref="preverrataloc"/>
+ <xs:element minOccurs="0" ref="translationloc"/>
+ <xs:element minOccurs="0" ref="copyright"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:element ref="status"/>
+ <xs:element ref="abstract"/>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:element ref="abstract"/>
+ <xs:element ref="status"/>
+ </xs:sequence>
+ </xs:choice>
+ <xs:element minOccurs="0" ref="pubstmt"/>
+ <xs:element minOccurs="0" ref="sourcedesc"/>
+ <xs:element ref="langusage"/>
+ <xs:element ref="revisiondesc"/>
+ <xs:element ref="its:rules" maxOccurs="1" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="pubdate.mdl">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="day"/>
+ <xs:element ref="month"/>
+ <xs:element ref="year"/>
+ </xs:sequence>
+ </xs:complexType>
+ <!-- ............................................................... -->
+ <!-- Entities for common attributes ................................ -->
+ <!-- ............................................................... -->
+ <!-- #2000-03-07: maler: Added %argtypes;. -->
+ <!--
+ argtypes:
+ Values for function prototype argument datatypes.
+ -->
+ <xs:simpleType name="argtypes">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="boolean"/>
+ <xs:enumeration value="expression"/>
+ <xs:enumeration value="location-set"/>
+ <xs:enumeration value="node-set"/>
+ <xs:enumeration value="number"/>
+ <xs:enumeration value="object"/>
+ <xs:enumeration value="point"/>
+ <xs:enumeration value="range"/>
+ <xs:enumeration value="string"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!--
+ key attribute:
+ Optionally provides a sorting or indexing key, for cases when
+ the element content is inappropriate for this purpose.
+ -->
+ <xs:attributeGroup name="key.att">
+ <xs:attribute name="key"/>
+ </xs:attributeGroup>
+ <!--
+ 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.
+ -->
+ <xs:attributeGroup name="def-req.att">
+ <xs:attribute name="def" use="required" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <!--
+ 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.
+ -->
+ <xs:attributeGroup name="ref-req.att">
+ <xs:attribute name="ref" use="required" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <!--
+ #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.
+ -->
+ <xs:attributeGroup name="simple-xlink.att">
+ <xs:attribute ref="xlink:type" default="simple"/>
+ </xs:attributeGroup>
+ <!--
+ 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.
+ -->
+ <xs:attributeGroup name="href.att">
+ <xs:attribute name="href"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="href-req.att">
+ <xs:attribute name="href" use="required"/>
+ </xs:attributeGroup>
+ <!--
+ 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.
+ -->
+ <xs:attributeGroup name="auto-embed.att">
+ <xs:attributeGroup ref="xlink:show"/>
+ <xs:attributeGroup ref="xlink:actuate"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="user-replace.att">
+ <xs:attributeGroup ref="xlink:show1"/>
+ <xs:attributeGroup ref="xlink:actuate1"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="user-new.att">
+ <xs:attributeGroup ref="xlink:show2"/>
+ <xs:attributeGroup ref="xlink:actuate1"/>
+ </xs:attributeGroup>
+ <!--
+ xml:space attribute:
+ Indicates that the element contains whitespace that the
+ formatter or other application should retain, as appropriate
+ to its function.
+ -->
+ <xs:attributeGroup name="xmlspace.att">
+ <xs:attribute ref="xml:space" default="preserve"/>
+ </xs:attributeGroup>
+ <!-- #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".
+ -->
+ <xs:attributeGroup name="diff.att">
+ <xs:attribute name="diff">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="chg"/>
+ <xs:enumeration value="add"/>
+ <xs:enumeration value="del"/>
+ <xs:enumeration value="off"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <!--
+ role attribute:
+ Extends the useful life of the DTD by allowing authors to
+ make a subtype of any element. No default.
+ -->
+ <xs:attributeGroup name="role.att">
+ <xs:attribute name="role" type="xs:NMTOKEN"/>
+ </xs:attributeGroup>
+ <!--
+ 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.
+ -->
+ <xs:attributeGroup name="common.att">
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attributeGroup ref="role.att"/>
+ <xs:attributeGroup ref="diff.att"/>
+ <xs:attributeGroup ref="its:its-att.local.with-ns.attributes"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="common-idreq.att">
+ <xs:attribute name="id" use="required" type="xs:ID"/>
+ <xs:attributeGroup ref="role.att"/>
+ <xs:attributeGroup ref="diff.att"/>
+ </xs:attributeGroup>
+ <!-- ............................................................... -->
+ <!-- Common elements ............................................... -->
+ <!-- ............................................................... -->
+ <!-- head: Title on divisions, productions, and the like -->
+ <xs:element name="head">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="head.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- 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.
+ -->
+ <xs:element name="spec">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="spec.mdl">
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attribute name="w3c-doctype">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="cr"/>
+ <xs:enumeration value="dispcmts"/>
+ <xs:enumeration value="issues"/>
+ <xs:enumeration value="wgnote"/>
+ <xs:enumeration value="memsub"/>
+ <xs:enumeration value="teamsub"/>
+ <xs:enumeration value="note"/>
+ <xs:enumeration value="other"/>
+ <xs:enumeration value="pr"/>
+ <xs:enumeration value="per"/>
+ <xs:enumeration value="rec"/>
+ <xs:enumeration value="wd"/>
+ <xs:enumeration value="review"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="other-doctype"/>
+ <xs:attribute name="status">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="int-review"/>
+ <xs:enumeration value="ext-review"/>
+ <xs:enumeration value="final"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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.
+ -->
+ <xs:element name="front">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="div1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="body">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="div1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #1997-09-30: maler: Added inform-div1 to back content. -->
+ <xs:element name="back">
+ <xs:complexType>
+ <xs:choice>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="div1"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="inform-div1"/>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="inform-div1"/>
+ </xs:choice>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="div1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="div.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="div2"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ #1997-09-30: maler: Added inform-div1 declarations.
+ #2000-03-07: maler: Added div5 level.
+ -->
+ <!-- inform-div1: Non-normative division in back matter -->
+ <xs:element name="inform-div1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="div.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="div2"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="div2">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="div.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="div3"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="div3">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="div.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="div4"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="div4">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="div.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="div5"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="div5">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="div.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- Specification header .......................................... -->
+ <!-- ............................................................... -->
+ <!-- #1998-03-10: maler: Made header content model easily customizable. -->
+ <xs:element name="header">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="header.mdl">
+ <xs:attributeGroup ref="common.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- Example of title: "Extensible Cheese Language (XCL)" -->
+ <xs:element name="title">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- Example of subtitle: "A Cheesy Specification" -->
+ <xs:element name="subtitle">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- Example of version: "Version 666.0" -->
+ <xs:element name="version">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- Example of w3c-designation: "WD-xcl-19991231" -->
+ <xs:element name="w3c-designation">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- Example of w3c-doctype: "W3C Working Draft" -->
+ <xs:element name="w3c-doctype">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #1998-03-10: maler: Made pubdate content model easily customizable. -->
+ <xs:element name="pubdate">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="pubdate.mdl">
+ <xs:attributeGroup ref="common.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="day">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="month">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="year">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #1999-07-02: maler: Declared copyright element. -->
+ <xs:element name="copyright">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="hdr.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- Example of notice: "This draft is for public comment..." -->
+ <xs:element name="notice">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="hdr.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #2000-03-07: maler: Broadened models of *loc to %p.pcd.mix;. -->
+ <xs:element name="publoc">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="p.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ #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.
+ -->
+ <xs:element name="altlocs">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="loc"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="prevlocs">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="p.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ #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.
+ -->
+ <xs:element name="latestloc">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="loc"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="errataloc">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href-req.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="preverrataloc">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href-req.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="translationloc">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href-req.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- loc (defined in "Phrase-level elements" below) -->
+ <xs:element name="authlist">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="author"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ #1997-09-30: maler: Made affiliation optional.
+ #1998-03-10: maler: Made email optional.
+ -->
+ <xs:element name="author">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element minOccurs="0" ref="affiliation"/>
+ <xs:element minOccurs="0" ref="email"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="name">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="key.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="affiliation">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #1999-07-02: maler: Added show/actuate attributes and default values. -->
+ <xs:element name="email">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href-req.att"/>
+ <xs:attributeGroup ref="user-new.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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>
+ -->
+ <!--
+ #1998-05-15: maler: Changed status content from %statusobj.mix;
+ # to plain %obj.mix;. statusp is obsolete.
+ -->
+ <xs:element name="status">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="abstract">
+ <xs:complexType>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="hdr.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pubstmt">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="hdr.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sourcedesc">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="hdr.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="langusage">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="language"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="language">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="revisiondesc">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="hdr.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- 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.
+ -->
+ <xs:element name="p">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="p.pcd.mix"/>
+ <xs:group ref="p.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- Regular lists ................................................. -->
+ <!-- ............................................................... -->
+ <!-- ulist: Unordered list, typically bulleted. -->
+ <xs:element name="ulist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="item"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attribute name="spacing">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="compact"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ spacing attribute:
+ Use "normal" to get normal vertical spacing for items;
+ use "compact" to get less spacing. The default is dependent
+ on the stylesheet.
+ -->
+ <!-- olist: Ordered list, typically numbered. -->
+ <xs:element name="olist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="item"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attribute name="spacing">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="compact"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ spacing attribute:
+ Use "normal" to get normal vertical spacing for items;
+ use "compact" to get less spacing. The default is dependent
+ on the stylesheet.
+ -->
+ <xs:element name="item">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- slist: Simple list, typically with no mark. -->
+ <xs:element name="slist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="sitem"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sitem">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="p.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- glist: Glossary list, typically two-column. -->
+ <xs:element name="glist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="gitem"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="gitem">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="label"/>
+ <xs:element ref="def"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="label">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="label.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="def">
+ <xs:complexType>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="obj.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- Special lists ................................................. -->
+ <!-- ............................................................... -->
+ <!-- blist: Bibliography list. -->
+ <xs:element name="blist" substitutionGroup="speclist.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="bibl"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #1999-07-02: maler: Added show/actuate attributes and default values. -->
+ <xs:element name="bibl">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="bibl.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href.att"/>
+ <xs:attributeGroup ref="user-replace.att"/>
+ <xs:attributeGroup ref="key.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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>
+ -->
+ <!-- orglist: Organization member list. -->
+ <xs:element name="orglist" substitutionGroup="speclist.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="member"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #1997-09-30: maler: Added optional affiliation. -->
+ <xs:element name="member">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element minOccurs="0" ref="affiliation"/>
+ <xs:element minOccurs="0" ref="role"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- name (defined in "Specification header" above) -->
+ <!-- affiliation (defined in "Specification header" above) -->
+ <xs:element name="role">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- Notes ......................................................... -->
+ <!-- ............................................................... -->
+ <xs:element name="note" substitutionGroup="note.class">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ #1998-05-14: maler: Declared issue element.
+ #2000-03-07: maler: Added head, source, resolution, and status.
+ -->
+ <xs:element name="issue" substitutionGroup="note.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="head"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="source"/>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ <xs:element minOccurs="0" ref="resolution"/>
+ </xs:sequence>
+ <xs:attribute name="id" use="required" type="xs:ID"/>
+ <xs:attributeGroup ref="role.att"/>
+ <xs:attributeGroup ref="diff.att"/>
+ <xs:attribute name="status" default="open">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="open"/>
+ <xs:enumeration value="closed"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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.
+ -->
+ <xs:element name="source">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="p.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="resolution">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- wfcnote: Well-formedness constraint note. -->
+ <xs:element name="wfcnote" substitutionGroup="note.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common-idreq.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ ID attribute:
+ wfcnote must have an ID so that it can be pointed to
+ from a wfc element in a production.
+ -->
+ <!-- vcnote: Validity constraint note. -->
+ <xs:element name="vcnote" substitutionGroup="note.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common-idreq.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ ID attribute:
+ vcnote must have an ID so that it can be pointed to
+ from a vc element in a production.
+ -->
+ <!-- #1998-05-21: maler: Declared generic constraintnote element. -->
+ <!-- constraintnote: Generic constraint note. -->
+ <xs:element name="constraintnote" substitutionGroup="note.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common-idreq.att"/>
+ <xs:attribute name="type" use="required" type="xs:NMTOKEN"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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.
+ -->
+ <!-- ............................................................... -->
+ <!-- Basic display elements ........................................ -->
+ <!-- ............................................................... -->
+ <!-- #1998-03-23: maler: Added xml:space attribute. -->
+ <!-- eg: Example element, with whitespace respected. -->
+ <xs:element name="eg" substitutionGroup="illus.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="eg.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="xmlspace.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ #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.
+ -->
+ <xs:element name="graphic" substitutionGroup="illus.class">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attribute name="source" use="required"/>
+ <xs:attributeGroup ref="auto-embed.att"/>
+ <xs:attribute name="alt"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ source attribute:
+ The graphic data must reside at the location pointed to.
+ -->
+ <!-- #2000-03-07: maler: Added proto element structure. -->
+ <!-- proto: Function prototype, in the XPath/XPointer style. -->
+ <xs:element name="proto" substitutionGroup="illus.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="arg"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attribute name="name" use="required" type="xs:NMTOKEN"/>
+ <xs:attribute name="return-type" use="required" type="argtypes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="arg">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attribute name="type" use="required" type="argtypes"/>
+ <xs:attribute name="occur">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="opt"/>
+ <xs:enumeration value="req"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <!-- #2000-03-07: maler: Added example element. -->
+ <xs:element name="example" substitutionGroup="illus.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="head"/>
+ <xs:group maxOccurs="unbounded" ref="obj.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- 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. -->
+ <xs:element name="scrap" substitutionGroup="illus.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="prodgroup"/>
+ <xs:element ref="prod"/>
+ <xs:element ref="bnf"/>
+ <xs:element ref="prodrecap"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attribute name="lang" type="xs:IDREF"/>
+ <xs:attribute name="headstyle" default="show">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="show"/>
+ <xs:enumeration value="suppress"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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.
+ -->
+ <!--
+ prodgroup: Sub-collection of productions, needed for
+ formatting reasons.
+ -->
+ <xs:element name="prodgroup">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="prod"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attribute name="pcw1"/>
+ <xs:attribute name="pcw2"/>
+ <xs:attribute name="pcw3"/>
+ <xs:attribute name="pcw4"/>
+ <xs:attribute name="pcw5"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ pcw<n> attributes:
+ Presentational attributes to control the width
+ of the "pseudo-table" columns used to output
+ groups of productions.
+ -->
+ <!-- prod: EBNF language production. -->
+ <xs:element name="prod">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="lhs"/>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:element ref="rhs"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="com"/>
+ <xs:element ref="wfc"/>
+ <xs:element ref="vc"/>
+ <xs:element ref="constraint"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:sequence>
+ <xs:attributeGroup ref="common-idreq.att"/>
+ <xs:attribute name="num"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ ID attribute:
+ The production must have an ID so that cross-references
+ (specref) and mentions of nonterminals (nt) can link to
+ it.
+ -->
+ <!-- lhs: Left-hand side of production. -->
+ <xs:element name="lhs">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ rhs: Right-hand side of production; may have many
+ "right-hand sides," one to a line.
+ -->
+ <xs:element name="rhs">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="phrase"/>
+ <xs:element ref="nt"/>
+ <xs:element ref="xnt"/>
+ <xs:element ref="com"/>
+ </xs:choice>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- nt and xnt (defined in "Phrase-level elements" below) -->
+ <!-- #1997-11-28: maler: Added loc and bibref to com content. -->
+ <!-- com: Production comment. -->
+ <xs:element name="com">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="phrase"/>
+ <xs:element ref="loc"/>
+ <xs:element ref="bibref"/>
+ </xs:choice>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ wfc: Reference to a well-formedness constraint; should
+ generate the head of the wfcnote pointed to.
+ -->
+ <xs:element name="wfc">
+ <xs:complexType>
+ <xs:attributeGroup ref="def-req.att"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ def attribute:
+ Each well formedness tagline in a production must link to the
+ wfcnote that defines it.
+ -->
+ <!--
+ vc: Reference to a validity constraint; should generate
+ the head of the vcnote pointed to.
+ -->
+ <xs:element name="vc">
+ <xs:complexType>
+ <xs:attributeGroup ref="def-req.att"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ def attribute:
+ Each validity tagline in a production must link to the vcnote
+ that defines it.
+ -->
+ <!-- #1998-05-21: maler: Declared generic constraint element. -->
+ <!--
+ constraint: Reference to a generic constraint; should
+ generate the head of the constraintnote pointed to.
+ -->
+ <xs:element name="constraint">
+ <xs:complexType>
+ <xs:attributeGroup ref="def-req.att"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ def attribute:
+ Each constraint tagline in a production must link to the
+ constraint note that defines it.
+ -->
+ <!-- #1998-03-23: maler: Added xml:space attribute. -->
+ <!--
+ bnf: Un-marked-up EBNF production, with whitespace
+ respected.
+ -->
+ <xs:element name="bnf">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="eg.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="xmlspace.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #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.
+ -->
+ <xs:element name="prodrecap">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="ref-req.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- 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.
+ -->
+ <xs:attributeGroup name="cellhalign.att">
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="justify"/>
+ <xs:enumeration value="char"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="char"/>
+ <xs:attribute name="charoff"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="cellvalign.att">
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ <xs:enumeration value="baseline"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="thtd.att">
+ <xs:attribute name="abbr"/>
+ <xs:attribute name="axis"/>
+ <xs:attribute name="headers" type="xs:IDREFS"/>
+ <xs:attribute name="scope">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="row"/>
+ <xs:enumeration value="col"/>
+ <xs:enumeration value="rowgroup"/>
+ <xs:enumeration value="colgroup"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="rowspan" default="1" type="xs:NMTOKEN"/>
+ <xs:attribute name="colspan" default="1" type="xs:NMTOKEN"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="width.att">
+ <xs:attribute name="width"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="span.att">
+ <xs:attribute name="span" default="1" type="xs:NMTOKEN"/>
+ </xs:attributeGroup>
+ <!-- table: HTML-based geometric table model. -->
+ <xs:element name="table" substitutionGroup="illus.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="caption"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup"/>
+ </xs:choice>
+ <xs:element minOccurs="0" ref="thead"/>
+ <xs:element minOccurs="0" ref="tfoot"/>
+ <xs:element maxOccurs="unbounded" ref="tbody"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="width.att"/>
+ <xs:attribute name="summary"/>
+ <xs:attribute name="border"/>
+ <xs:attribute name="frame">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="void"/>
+ <xs:enumeration value="above"/>
+ <xs:enumeration value="below"/>
+ <xs:enumeration value="hsides"/>
+ <xs:enumeration value="lhs"/>
+ <xs:enumeration value="rhs"/>
+ <xs:enumeration value="vsides"/>
+ <xs:enumeration value="box"/>
+ <xs:enumeration value="border"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="rules">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="none"/>
+ <xs:enumeration value="groups"/>
+ <xs:enumeration value="rows"/>
+ <xs:enumeration value="cols"/>
+ <xs:enumeration value="all"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="cellspacing"/>
+ <xs:attribute name="cellpadding"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="caption">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="p.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="col">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="span.att"/>
+ <xs:attributeGroup ref="width.att"/>
+ <xs:attributeGroup ref="cellhalign.att"/>
+ <xs:attributeGroup ref="cellvalign.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="colgroup">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="span.att"/>
+ <xs:attributeGroup ref="width.att"/>
+ <xs:attributeGroup ref="cellhalign.att"/>
+ <xs:attributeGroup ref="cellvalign.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="thead">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="cellhalign.att"/>
+ <xs:attributeGroup ref="cellvalign.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tfoot">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="cellhalign.att"/>
+ <xs:attributeGroup ref="cellvalign.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tbody">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="cellhalign.att"/>
+ <xs:attributeGroup ref="cellvalign.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tr">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="th"/>
+ <xs:element ref="td"/>
+ </xs:choice>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="cellhalign.att"/>
+ <xs:attributeGroup ref="cellvalign.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="th">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="p.pcd.mix"/>
+ <xs:group ref="p.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="thtd.att"/>
+ <xs:attributeGroup ref="cellhalign.att"/>
+ <xs:attributeGroup ref="cellvalign.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="td">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="p.pcd.mix"/>
+ <xs:group ref="p.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="thtd.att"/>
+ <xs:attributeGroup ref="cellhalign.att"/>
+ <xs:attributeGroup ref="cellvalign.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- IDL structures for DOM specifications ......................... -->
+ <!-- ............................................................... -->
+ <!-- ............................................................... -->
+ <!-- Specialized entities for classes .............................. -->
+ <xs:group name="idl-desc.class">
+ <xs:choice>
+ <xs:element ref="p"/>
+ <xs:element ref="note"/>
+ </xs:choice>
+ </xs:group>
+ <xs:element name="idl-tdef.class" abstract="true"/>
+ <xs:element name="idl-mod.class" abstract="true"/>
+ <xs:element name="idl-struct.class" abstract="true" substitutionGroup="idl-type.mix"/>
+ <xs:element name="idl-meth.class" abstract="true"/>
+ <!-- ............................................................... -->
+ <!-- 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
+ -->
+ <xs:group name="idl-grp.mix">
+ <xs:choice>
+ <xs:group ref="idl-desc.class"/>
+ <xs:element ref="idl-tdef.class"/>
+ <xs:element ref="idl-mod.class"/>
+ <xs:element ref="idl-struct.class"/>
+ <xs:element ref="idl-meth.class"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="idl-defn.mix">
+ <xs:choice>
+ <xs:group ref="idl-desc.class"/>
+ <xs:element ref="idl-tdef.class"/>
+ <xs:element ref="idl-mod.class"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="idl-intfc.mix">
+ <xs:choice>
+ <xs:group ref="idl-desc.class"/>
+ <xs:element ref="idl-tdef.class"/>
+ <xs:element ref="idl-meth.class"/>
+ </xs:choice>
+ </xs:group>
+ <xs:element name="idl-type.mix" abstract="true"/>
+ <!-- ............................................................... -->
+ <!-- Specialized entities for common attributes .................... -->
+ <!--
+ name attribute:
+ Provides a name. Required.
+ -->
+ <xs:attributeGroup name="idl-name.att">
+ <xs:attribute name="name" use="required"/>
+ </xs:attributeGroup>
+ <!--
+ type attribute:
+ Provides a type. Required.
+ -->
+ <xs:attributeGroup name="idl-type.att">
+ <xs:attribute name="type" use="required"/>
+ </xs:attributeGroup>
+ <!-- ............................................................... -->
+ <!-- Common IDL element ............................................ -->
+ <xs:complexType name="descr">
+ <xs:sequence>
+ <xs:element ref="descr"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="descr">
+ <xs:complexType>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="obj.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- IDL definition elements ....................................... -->
+ <!-- definitions: Top-level element for definitions. -->
+ <xs:element name="definitions" substitutionGroup="illus.class">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="idl-defn.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- group: Element used to group a set of definitions. -->
+ <xs:element name="group" substitutionGroup="idl-tdef.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="idl-grp.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- interface: Definition of an interface. -->
+ <xs:element name="interface" substitutionGroup="idl-mod.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="idl-intfc.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ <xs:attribute name="inherits"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- module: Definition of a module. -->
+ <xs:element name="module" substitutionGroup="idl-mod.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="idl-defn.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- reference: Reference to some other declaration. -->
+ <xs:element name="reference" substitutionGroup="idl-tdef.class">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attribute name="declaration" use="required" type="xs:IDREF"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- typedef: Definition of a named type. -->
+ <xs:element name="typedef" substitutionGroup="idl-tdef.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:sequence>
+ <xs:element ref="idl-type.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ <xs:attribute name="array.size" type="xs:NMTOKEN"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- struct: Declaration of a struct type. -->
+ <xs:element name="struct" substitutionGroup="idl-struct.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="component"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- component: Declaration of a structural member. -->
+ <xs:element name="component">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="idl-type.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- union: Declaration of a union type. -->
+ <xs:element name="union" substitutionGroup="idl-struct.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="case"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ <xs:attribute name="switch.type" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="case">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:sequence>
+ <xs:element ref="idl-type.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attribute name="labels" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- enum: Declaration of an enum type. -->
+ <xs:element name="enum" substitutionGroup="idl-struct.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="enumerator"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="enumerator">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- sequence: Declaration of a sequence type (not named). -->
+ <xs:element name="sequence" substitutionGroup="idl-struct.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="sequence"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-type.att"/>
+ <xs:attribute name="size" type="xs:NMTOKEN"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- constant: Declaration of a named constant. -->
+ <xs:element name="constant" substitutionGroup="idl-tdef.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ <xs:attributeGroup ref="idl-type.att"/>
+ <xs:attribute name="value" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- exception: Declaration of an exception. -->
+ <xs:element name="exception" substitutionGroup="idl-tdef.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="component"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- component (defined under struct, above) -->
+ <!-- attribute: Declaration of an attribute (data member). -->
+ <xs:element name="attribute" substitutionGroup="idl-meth.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ <xs:attributeGroup ref="idl-type.att"/>
+ <xs:attribute name="readonly" default="no">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="yes"/>
+ <xs:enumeration value="no"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- method: Declaration of a method. -->
+ <xs:element name="method" substitutionGroup="idl-meth.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:sequence>
+ <xs:element ref="parameters"/>
+ <xs:element ref="returns"/>
+ <xs:element ref="raises"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="parameters">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="param"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="param">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-name.att"/>
+ <xs:attributeGroup ref="idl-type.att"/>
+ <xs:attribute name="attr" default="inout">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="in"/>
+ <xs:enumeration value="out"/>
+ <xs:enumeration value="inout"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="returns">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="descr">
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="idl-type.att"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="raises">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="exception"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!-- exception (defined under constant, above) -->
+ <xs:element name="typename" substitutionGroup="idl-struct.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- ............................................................... -->
+ <!-- Phrase-level elements ......................................... -->
+ <!-- ............................................................... -->
+ <!-- #2000-03-07: maler: Added att and attval elements. -->
+ <!-- att: Attribute name. -->
+ <xs:element name="att" substitutionGroup="tech.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="tech.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- attval: Attribute value. -->
+ <xs:element name="attval" substitutionGroup="tech.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="tech.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ bibref: Reference to a bibliography list entry; should
+ generate, in square brackets, "key" on bibl.
+ -->
+ <xs:element name="bibref" substitutionGroup="ref.class">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="ref-req.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ ref attribute:
+ A bibliography reference must link to the bibl element that
+ describes the resource.
+ -->
+ <xs:element name="code" substitutionGroup="tech.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="tech.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ #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. -->
+ <xs:element name="ednote" substitutionGroup="ednote.class"/>
+ <xs:element name="date">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="edtext">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="p.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #2000-03-07: maler: Added el element. -->
+ <!-- el: Element type name (GI). -->
+ <xs:element name="el" substitutionGroup="tech.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="tech.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #2000-03-07: maler: Expanded emph to %p.pcd.mix;. -->
+ <xs:element name="emph" substitutionGroup="emph.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="p.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- footnote: Both footnote content and call to footnote. -->
+ <xs:element name="footnote" substitutionGroup="annot.class"/>
+ <!--
+ #2000-03-07: maler: Added function and gave it content of
+ # %tech.pcd.mix; instead of XPath's #PCDATA.
+ -->
+ <xs:element name="function" substitutionGroup="tech.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="tech.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="kw" substitutionGroup="tech.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="tech.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #1999-07-02: maler: Added show/actuate attributes and default values. -->
+ <!-- loc: Generic link to a Web resource, similar to HTML's A. -->
+ <xs:element name="loc" substitutionGroup="loc.class"/>
+ <!--
+ 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>
+ -->
+ <!--
+ nt: Mention of a nonterminal in text, along with a link to
+ the production in the current document that defines it.
+ -->
+ <xs:element name="nt" substitutionGroup="tech.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="def-req.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ def attribute:
+ The nonterminal must link to the production that defines
+ it.
+ -->
+ <!-- #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.
+ -->
+ <xs:element name="phrase" substitutionGroup="emph.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="p.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #2003-06-25: nwalsh: RFC2119 elements -->
+ <xs:element name="rfc2119" substitutionGroup="emph.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #1998-03-10: maler: Declared quote. -->
+ <!-- quote: Scare quotes and other purely presentational quotes. -->
+ <xs:element name="quote" substitutionGroup="emph.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="p.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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.
+ -->
+ <xs:element name="specref" substitutionGroup="ref.class">
+ <xs:complexType>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="ref-req.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ ref attribute:
+ The purpose of a specref element is to link to a div, item
+ in an olist, or production in the current spec.
+ -->
+ <!-- #2000-03-07: maler: Added sub and sup. -->
+ <!-- sub: Subscript. -->
+ <xs:element name="sub" substitutionGroup="emph.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- sup: Superscript. -->
+ <xs:element name="sup" substitutionGroup="emph.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- term: The term in text that is being defined in text. -->
+ <xs:element name="term" substitutionGroup="termdef.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- termdef: Definition of a term in text. -->
+ <xs:element name="termdef" substitutionGroup="termdef.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="termdef.pcd.mix"/>
+ <xs:group ref="termdef.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="common-idreq.att"/>
+ <xs:attribute name="term" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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).
+ -->
+ <!--
+ termref: Mention of a term, along with a link to the
+ definition in the current document.
+ -->
+ <xs:element name="termref" substitutionGroup="ref.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="def-req.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ ref attribute:
+ A term reference must link to the termdef element that
+ defines the term.
+ -->
+ <!-- #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.
+ -->
+ <xs:element name="titleref" substitutionGroup="ref.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href.att"/>
+ <xs:attributeGroup ref="user-new.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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>
+ -->
+ <!-- #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..."
+ -->
+ <xs:element name="var" substitutionGroup="tech.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="tech.pcd.mix"/>
+ <xs:attributeGroup ref="common.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- #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.
+ -->
+ <xs:element name="xnt" substitutionGroup="tech.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href-req.att"/>
+ <xs:attributeGroup ref="user-new.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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>
+ -->
+ <!--
+ #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.
+ -->
+ <xs:element name="xspecref" substitutionGroup="ref.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href-req.att"/>
+ <xs:attributeGroup ref="user-new.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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>
+ -->
+ <!-- #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.
+ -->
+ <xs:element name="xtermref" substitutionGroup="ref.class">
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="phrase"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="common.att"/>
+ <xs:attributeGroup ref="simple-xlink.att"/>
+ <xs:attributeGroup ref="href-req.att"/>
+ <xs:attributeGroup ref="user-new.att"/>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ 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>
+ -->
+ <!-- ............................................................... -->
+ <!-- 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.
+ -->
+ <xs:element name="div">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="head"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="div.mix"/>
+ <xs:element ref="ul"/>
+ <xs:element ref="ol"/>
+ <xs:element ref="h1"/>
+ <xs:element ref="h2"/>
+ <xs:element ref="h3"/>
+ <xs:element ref="h4"/>
+ <xs:element ref="h5"/>
+ <xs:element ref="h6"/>
+ <xs:element ref="div"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h1">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="head.pcd.mix"/>
+ <xs:element ref="em"/>
+ <xs:element ref="a"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h2">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="head.pcd.mix"/>
+ <xs:element ref="em"/>
+ <xs:element ref="a"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h3">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="head.pcd.mix"/>
+ <xs:element ref="em"/>
+ <xs:element ref="a"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h4">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="head.pcd.mix"/>
+ <xs:element ref="em"/>
+ <xs:element ref="a"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h5">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="head.pcd.mix"/>
+ <xs:element ref="em"/>
+ <xs:element ref="a"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h6">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="head.pcd.mix"/>
+ <xs:element ref="em"/>
+ <xs:element ref="a"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pre">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="eg.pcd.mix"/>
+ <xs:element ref="em"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ul">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="item"/>
+ <xs:element ref="li"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ol">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="item"/>
+ <xs:element ref="li"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="li">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="obj.mix"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="em" type="xs:string"/>
+ <xs:element name="a" type="xs:string"/>
+ <xs:element name="key-term" type="xs:string"/>
+ <xs:element name="htable">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="caption"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup"/>
+ </xs:choice>
+ <xs:element minOccurs="0" ref="thead"/>
+ <xs:element minOccurs="0" ref="tfoot"/>
+ <xs:element maxOccurs="unbounded" ref="tbody"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="htbody">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="statusp">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="p.pcd.mix"/>
+ <xs:group ref="p.mix"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="itemizedlist">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="listitem"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="orderedlist">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="listitem"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="listitem">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="para"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="para" type="xs:string"/>
+</xs:schema>
+<!-- ............................................................... -->
+<!-- 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 .................................. -->
+<!-- ............................................................... -->