code-srv-test/dita-ot-3.6/plugins/org.dita.specialization.dita11/schema/commonElementMod.xsd
2021-03-23 22:38:58 +00:00

2239 lines
No EOL
90 KiB
XML

<!-- ============================================================= -->
<!-- HEADER -->
<!-- ============================================================= -->
<!-- MODULE: DITA Common Elements XSD Module -->
<!-- VERSION: 1.1 -->
<!-- DATE: November 2006 -->
<!-- -->
<!-- ============================================================= -->
<!-- ============================================================= -->
<!-- SYSTEM: Darwin Information Typing Architecture (DITA) -->
<!-- -->
<!-- PURPOSE: W3C XML Schema to describe DITA common elements -->
<!-- -->
<!-- ORIGINAL CREATION DATE: -->
<!-- June 2006 -->
<!-- -->
<!-- (C) Copyright OASIS-Open.org 2006 -->
<!-- All Rights Reserved. -->
<!-- ============================================================= -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Import the XML Schema that contains the defiinitions for xml:lang and xml:space attributes -->
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="urn:oasis:names:tc:dita:xsd:xml.xsd:1.1"/>
<xs:attributeGroup name="display-atts">
<xs:annotation>
<xs:documentation>Display attributes is a parameter entity declaration in the topic
DTD that includes attributes whose values may be used for affecting the display
of a topic or its selection by search tools.
</xs:documentation>
</xs:annotation>
<xs:attribute name="scale" type="scale-atts.class"/>
<xs:attribute name="frame" type="frame-att.class"/>
<xs:attribute name="expanse" type="expanse-att.class"/>
</xs:attributeGroup>
<xs:simpleType name="frame-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="top"/>
<xs:enumeration value="bottom"/>
<xs:enumeration value="topbot"/>
<xs:enumeration value="all"/>
<xs:enumeration value="sides"/>
<xs:enumeration value="none"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="expanse-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="page"/>
<xs:enumeration value="column"/>
<xs:enumeration value="textline"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:attributeGroup name="id-atts">
<xs:annotation>
<xs:documentation>ID attributes (%id-atts;) is a parameter entity declaration in the
topic DTD that includes attributes that enable the naming and referencing
of elements in a DITA topic: <keyword>id</keyword> and <keyword>conref</keyword>.
</xs:documentation>
</xs:annotation>
<xs:attribute name="id" type="xs:NMTOKEN"/>
<xs:attribute name="conref" type="xs:string"/>
</xs:attributeGroup>
<xs:attributeGroup name="select-atts">
<xs:annotation>
<xs:documentation>Attributes that support both filtering and flagging include <keyword>platform</keyword>, <keyword>product</keyword>, <keyword>
audience</keyword>, and <keyword>otherprops</keyword>. Attribute <keyword>rev</keyword> only
lets you flag information that matches a run-time parameter. Attribute <keyword>importance</keyword> currently
provides output effects only for steps (where only the values "optional" and
"required" are supported).
</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="filter-atts" />
<xs:attribute name="base" type="xs:string" />
<xs:attributeGroup ref="base-attribute-extensions"/>
<xs:attribute name="rev" type="xs:string"/>
<xs:attribute name="importance" type="importance-atts.class"/>
<xs:attribute name="status" type="status-atts.class"/>
</xs:attributeGroup>
<xs:attributeGroup name="data-element-atts.class">
<xs:attributeGroup ref="univ-atts"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="datatype" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
<xs:attribute name="href" type="xs:string"/>
<xs:attribute name="format" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="scope" type="scope-att.class"/>
<xs:attribute name="outputclass" type="xs:string"/>
</xs:attributeGroup>
<xs:simpleType name="importance-atts.class">
<xs:restriction base="xs:string">
<xs:enumeration value="obsolete"/>
<xs:enumeration value="deprecated"/>
<xs:enumeration value="optional"/>
<xs:enumeration value="default"/>
<xs:enumeration value="low"/>
<xs:enumeration value="normal"/>
<xs:enumeration value="high"/>
<xs:enumeration value="recommended"/>
<xs:enumeration value="required"/>
<xs:enumeration value="urgent"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="scale-atts.class">
<xs:restriction base="xs:string">
<xs:enumeration value="50"/>
<xs:enumeration value="60"/>
<xs:enumeration value="70"/>
<xs:enumeration value="80"/>
<xs:enumeration value="90"/>
<xs:enumeration value="100"/>
<xs:enumeration value="110"/>
<xs:enumeration value="120"/>
<xs:enumeration value="140"/>
<xs:enumeration value="160"/>
<xs:enumeration value="180"/>
<xs:enumeration value="200"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="status-atts.class">
<xs:restriction base="xs:string">
<xs:enumeration value="new"/>
<xs:enumeration value="changed"/>
<xs:enumeration value="deleted"/>
<xs:enumeration value="unchanged"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:attributeGroup name="univ-atts">
<xs:annotation>
<xs:documentation>Universal attributes is a parameter entity declaration in the topic DTD that
includes all of the attributes in the select-atts and id-atts attribute groups.
</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="id-atts"/>
<xs:attributeGroup ref="select-atts"/>
<xs:attribute name="translate" type="yesno-att.class"/>
<xs:attribute ref="xml:lang"/>
</xs:attributeGroup>
<xs:attributeGroup name="univ-atts-translate-no">
<xs:attributeGroup ref="id-atts"/>
<xs:attributeGroup ref="select-atts"/>
<xs:attributeGroup ref="localization-atts-translate-no" />
</xs:attributeGroup>
<xs:attributeGroup name="global-atts">
<xs:annotation>
<xs:documentation>Debugging attributes, normally hidden from authoring view.
</xs:documentation>
</xs:annotation>
<xs:attribute name="xtrc" type="xs:string"/>
<xs:attribute name="xtrf" type="xs:string"/>
</xs:attributeGroup>
<!-- =========================================================================== -->
<!-- COMMON GROUP DECLARATIONS - START ======================================= -->
<!-- =========================================================================== -->
<!-- Phrase or inline elements of various classes
<!ENTITY % basic.ph "%ph;|%term;|%xref;|%cite;|%q;|%state;|%keyword;|%tm;"> -->
<xs:group name="basic.ph">
<xs:choice>
<xs:group ref="ph"/>
<xs:group ref="term"/>
<xs:group ref="xref"/>
<xs:group ref="cite"/>
<xs:group ref="q"/>
<xs:group ref="state"/>
<xs:group ref="boolean"/>
<xs:group ref="keyword"/>
<xs:group ref="tm"/>
</xs:choice>
</xs:group>
<!-- Elements common to most body-like contexts -->
<xs:group name="basic.block">
<xs:choice>
<xs:group ref="p"/>
<xs:group ref="lq"/>
<xs:group ref="note"/>
<xs:group ref="dl"/>
<xs:group ref="ul"/>
<xs:group ref="ol"/>
<xs:group ref="sl"/>
<xs:group ref="pre"/>
<xs:group ref="lines"/>
<xs:group ref="fig"/>
<xs:group ref="image"/>
<xs:group ref="object"/>
<xs:group ref="table"/>
<xs:group ref="simpletable"/>
</xs:choice>
</xs:group>
<!-- class groupings to preserve in a schema
<!ENTITY % basic.phandblock "%basic.ph; | %basic.block;">
-->
<xs:group name="basic.phandblock">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block"/>
</xs:choice>
</xs:group>
<!-- Exclusions:.models.modified by removing excluded content -->
<!-- <!ENTITY % basic.ph.noxref "%ph;|%term;| %q;|%state;|%keyword;|%tm"> -->
<xs:group name="basic.ph.noxref">
<xs:choice>
<xs:group ref="ph"/>
<xs:group ref="term"/>
<xs:group ref="q"/>
<xs:group ref="state"/>
<xs:group ref="boolean"/>
<xs:group ref="keyword"/>
<xs:group ref="tm"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % basic.block.notbl "%p;|%lq;|%note;|%dl;|%ul;|%ol;|%pre;|%lines;|%fig;|%image;|%object;"> -->
<xs:group name="basic.block.notbl">
<xs:choice>
<xs:group ref="p"/>
<xs:group ref="lq"/>
<xs:group ref="note"/>
<xs:group ref="dl"/>
<xs:group ref="ul"/>
<xs:group ref="ol"/>
<xs:group ref="sl"/>
<xs:group ref="pre"/>
<xs:group ref="lines"/>
<xs:group ref="fig"/>
<xs:group ref="image"/>
<xs:group ref="object"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % basic.block.nonote "%p;|%lq;| %dl;|%ul;|%ol;|%pre;|%lines;|%fig;|%image;|%object;|%table;|%simpletable;"> -->
<xs:group name="basic.block.nonote">
<xs:choice>
<xs:group ref="p"/>
<xs:group ref="lq"/>
<xs:group ref="dl"/>
<xs:group ref="ul"/>
<xs:group ref="ol"/>
<xs:group ref="sl"/>
<xs:group ref="pre"/>
<xs:group ref="lines"/>
<xs:group ref="fig"/>
<xs:group ref="image"/>
<xs:group ref="object"/>
<xs:group ref="table"/>
<xs:group ref="simpletable"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % basic.block.nopara " %lq;|%note;|%dl;|%ul;|%ol;|%pre;|%lines;|%fig;|%image;|%object;|%table;|%simpletable;"> -->
<xs:group name="basic.block.nopara">
<xs:choice>
<xs:group ref="lq"/>
<xs:group ref="note"/>
<xs:group ref="dl"/>
<xs:group ref="ul"/>
<xs:group ref="ol"/>
<xs:group ref="sl"/>
<xs:group ref="pre"/>
<xs:group ref="lines"/>
<xs:group ref="fig"/>
<xs:group ref="image"/>
<xs:group ref="object"/>
<xs:group ref="table"/>
<xs:group ref="simpletable"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % basic.block.nolq "%p;| %note;|%dl;|%ul;|%ol;|%pre;|%lines;|%fig;|%image;|%object;|%table;|%simpletable;"> -->
<xs:group name="basic.block.nolq">
<xs:choice>
<xs:group ref="p"/>
<xs:group ref="note"/>
<xs:group ref="dl"/>
<xs:group ref="ul"/>
<xs:group ref="ol"/>
<xs:group ref="sl"/>
<xs:group ref="pre"/>
<xs:group ref="lines"/>
<xs:group ref="fig"/>
<xs:group ref="image"/>
<xs:group ref="object"/>
<xs:group ref="table"/>
<xs:group ref="simpletable"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % basic.block.notbnofg "%p;|%lq;|%note;|%dl;|%ul;|%ol;|%pre;|%lines;| %image;|%object;"> -->
<xs:group name="basic.block.notbnofg">
<xs:choice>
<xs:group ref="p"/>
<xs:group ref="lq"/>
<xs:group ref="note"/>
<xs:group ref="dl"/>
<xs:group ref="ul"/>
<xs:group ref="ol"/>
<xs:group ref="sl"/>
<xs:group ref="pre"/>
<xs:group ref="lines"/>
<xs:group ref="image"/>
<xs:group ref="object"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % basic.block.notbfgobj "%p;|%lq;|%note;|%dl;|%ul;|%ol;|%pre;|%lines;| %image;"> -->
<xs:group name="basic.block.notbfgobj">
<xs:choice>
<xs:group ref="p"/>
<xs:group ref="lq"/>
<xs:group ref="note"/>
<xs:group ref="dl"/>
<xs:group ref="ul"/>
<xs:group ref="ol"/>
<xs:group ref="sl"/>
<xs:group ref="pre"/>
<xs:group ref="lines"/>
<xs:group ref="image"/>
</xs:choice>
</xs:group>
<!-- Phrase or inline elements of various classes
<!ENTITY % basic.ph "%ph;|%term;|%xref;|%cite;|%q;|%state;|%keyword;"> -->
<xs:group name="basic.ph.notm">
<xs:choice>
<xs:group ref="ph"/>
<xs:group ref="term"/>
<xs:group ref="xref"/>
<xs:group ref="cite"/>
<xs:group ref="q"/>
<xs:group ref="state"/>
<xs:group ref="boolean"/>
<xs:group ref="keyword"/>
</xs:choice>
</xs:group>
<!-- Inclusions: defined sets that can be added into appropriate.models -->
<xs:group name="txt.incl">
<xs:choice>
<xs:group ref="draft-comment"/>
<xs:group ref="required-cleanup"/>
<xs:group ref="fn"/>
<xs:group ref="indextermref"/>
<xs:group ref="indexterm"/>
</xs:choice>
</xs:group>
<!-- =========================================================================== -->
<!-- COMMON GROUP DECLARATIONS - END ======================================= -->
<!-- =========================================================================== -->
<!-- <!ENTITY % fig.cnt "%basic.block.notbnofg; | %simpletable; | %xref; | %fn;| %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="fig.cnt">
<xs:choice>
<xs:group ref="basic.block.notbnofg"/>
<xs:group ref="simpletable"/>
<xs:group ref="xref"/>
<xs:group ref="fn"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % desc.cnt "#PCDATA | %basic.ph; | %basic.block.notbfgobj; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="desc.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block.notbfgobj"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % note.cnt "#PCDATA | %basic.ph; | %basic.block.nonote; | %txt.incl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="note.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block.nonote"/>
<xs:group ref="txt.incl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % fn.cnt "#PCDATA | %basic.ph; | %basic.block.notbl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="fn.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block.notbl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % ph.cnt "#PCDATA | %basic.ph; | %image; | %txt.incl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="ph.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="image"/>
<xs:group ref="txt.incl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % tblcell.cnt "#PCDATA | %basic.ph; | %basic.block.notbl; | %txt.incl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="tblcell.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block.notbl"/>
<xs:group ref="txt.incl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % itemgroup.cnt "#PCDATA | %basic.ph; | %basic.block; | %txt.incl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="itemgroup.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block"/>
<xs:group ref="txt.incl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % listitem.cnt "#PCDATA | %basic.ph; | %basic.block; |%itemgroup;| %txt.incl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="listitem.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block"/>
<xs:group ref="itemgroup"/>
<xs:group ref="txt.incl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % para.cnt "#PCDATA | %basic.ph; | %basic.block.nopara; | %txt.incl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="para.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block.nopara"/>
<xs:group ref="txt.incl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % longquote.cnt "#PCDATA | %basic.ph; | %basic.block.nolq; | %txt.incl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="longquote.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block.nolq"/>
<xs:group ref="txt.incl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % shortquote.cnt "#PCDATA | %basic.ph; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="shortquote.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % defn.cnt ""#PCDATA | %basic.ph; | %basic.block; |%itemgroup;| %txt.incl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="defn.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="basic.block"/>
<xs:group ref="itemgroup"/>
<xs:group ref="txt.incl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % pre.cnt "#PCDATA | %basic.ph; | %txt.incl; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="pre.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="txt.incl"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % term.cnt "#PCDATA | %basic.ph; | %image; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="term.cnt">
<xs:choice>
<xs:group ref="basic.ph"/>
<xs:group ref="image"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % xreftext.cnt "#PCDATA | %basic.ph.noxref; | %image; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="xreftext.cnt">
<xs:choice>
<xs:group ref="basic.ph.noxref"/>
<xs:group ref="image"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % title.cnt "#PCDATA | %basic.ph.noxref; | %image; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="title.cnt">
<xs:choice>
<xs:group ref="basic.ph.noxref"/>
<xs:group ref="image"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % xrefph.cnt "#PCDATA | %basic.ph.noxref; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="xrefph.cnt">
<xs:choice>
<xs:group ref="basic.ph.noxref"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!-- <!ENTITY % words.cnt "#PCDATA | %keyword; | %term; | %data.elements.incl; | %foreign.unknown.incl;"> -->
<xs:group name="words.cnt">
<xs:choice>
<xs:group ref="keyword"/>
<xs:group ref="term"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
</xs:group>
<!--<!ENTITY % data.cnt "%words.cnt;|%image;|%object;|%ph;|%title;">-->
<xs:group name="data.cnt">
<xs:choice>
<xs:group ref="words.cnt"/>
<xs:group ref="image"/>
<xs:group ref="object"/>
<xs:group ref="ph"/>
<xs:group ref="title"/>
</xs:choice>
</xs:group>
<xs:group name="data.element.incl">
<xs:choice>
<xs:group ref="data" />
<xs:group ref="data-about" />
</xs:choice>
</xs:group>
<xs:group name="foreign.unknown.incl">
<xs:choice>
<xs:group ref="foreign" />
<xs:group ref="unknown" />
</xs:choice>
</xs:group>
<xs:simpleType name="role-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="parent"/>
<xs:enumeration value="child"/>
<xs:enumeration value="sibling"/>
<xs:enumeration value="friend"/>
<xs:enumeration value="next"/>
<xs:enumeration value="previous"/>
<xs:enumeration value="cousin"/>
<xs:enumeration value="ancestor"/>
<xs:enumeration value="descendant"/>
<xs:enumeration value="sample"/>
<xs:enumeration value="external"/>
<xs:enumeration value="other"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="view-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="internal"/>
<xs:enumeration value="classified"/>
<xs:enumeration value="all"/>
<xs:enumeration value="entitled"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="workflow-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="author"/>
<xs:enumeration value="editor"/>
<xs:enumeration value="reviewer"/>
<xs:enumeration value="publisher"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="job-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="installing"/>
<xs:enumeration value="customizing"/>
<xs:enumeration value="administering"/>
<xs:enumeration value="programming"/>
<xs:enumeration value="using"/>
<xs:enumeration value="maintaining"/>
<xs:enumeration value="troubleshooting"/>
<xs:enumeration value="evaluating"/>
<xs:enumeration value="planning"/>
<xs:enumeration value="migrating"/>
<xs:enumeration value="other"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="experiencelevel-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="novice"/>
<xs:enumeration value="general"/>
<xs:enumeration value="expert"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="disposition-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="issue"/>
<xs:enumeration value="open"/>
<xs:enumeration value="accepted"/>
<xs:enumeration value="rejected"/>
<xs:enumeration value="deferred"/>
<xs:enumeration value="duplicate"/>
<xs:enumeration value="reopened"/>
<xs:enumeration value="unassigned"/>
<xs:enumeration value="completed"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="yesno-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="yes"/>
<xs:enumeration value="no"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<!-- This is referenced inside CALS tables -->
<xs:element name="title">
<xs:annotation>
<xs:documentation>The &lt;<keyword>title</keyword>> element contains a heading or
label for the main parts of a document such as &lt;topic>, &lt;section>, and
&lt;example> and for the display elements such as figure (&lt;<keyword>fig</keyword>>)
and &lt;<keyword>table</keyword>>.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="title.class">
<xs:attribute ref="class" default="- topic/title "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="title.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="title.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attribute name="base" type="xs:string" />
<xs:attributeGroup ref="base-attribute-extensions"/>
<xs:attributeGroup ref="id-atts"/>
<xs:attributeGroup ref="localization-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="keyword">
<xs:annotation>
<xs:documentation>The &lt;<keyword>keyword</keyword>> element identifies a keyword
or token, such as a single value from an enumerated list, the name of a command
or parameter, or a lookup key for a message (contrast with <ph><xref href="term.xml">term</xref></ph>).
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="keyword.class">
<xs:attribute ref="class" default="- topic/keyword "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="keyword.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="tm" />
</xs:choice>
<xs:attribute name="keyref" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="desc">
<xs:annotation>
<xs:documentation>The &lt;<keyword>desc</keyword>> element contains the description
of the current element. A description should provide more information than
the title.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="desc.class">
<xs:attribute ref="class" default="- topic/desc "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="desc.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="desc.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="ph">
<xs:annotation>
<xs:documentation>The phrase (&lt;<keyword>ph</keyword>>) element is used to organize
content for reuse or conditional processing (for example, when part of a paragraph
applies to a particular audience). It can be used by future specializations
of DITA to apply specific processing or formatting to marked up phrases.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="ph.class">
<xs:attribute ref="class" default="- topic/ph "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="ph.class" mixed="true">
<xs:annotation>
<xs:documentation>var &amp; keyword defined by syntax diagram</xs:documentation>
</xs:annotation>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="ph.cnt"/>
</xs:choice>
<xs:attribute name="keyref" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="term">
<xs:annotation>
<xs:documentation>The &lt;<keyword>term</keyword>> element identifies words that
represent extended definitions or explanations. In future development of DITA,
for example, terms might provide associative linking to matching glossary
entries.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="term.class">
<xs:attribute ref="class" default="- topic/term "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="term.class" mixed="true">
<xs:annotation>
<xs:documentation>Inline content (prhases)</xs:documentation>
</xs:annotation>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="tm"/>
</xs:choice>
<xs:attribute name="keyref" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="tm">
<xs:annotation>
<xs:documentation>The trademark (&lt;<keyword>tm</keyword>>) element in DITA is used
to markup and identify a term or phrase that is trademarked. Trademarks include
registered trademarks, service marks, slogans and logos.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="tm.class">
<xs:attribute ref="class" default="- topic/tm "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="tm.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="tm"/>
</xs:choice>
<xs:attribute name="trademark" type="xs:string"/>
<xs:attribute name="tmowner" type="xs:string"/>
<xs:attribute name="tmtype" type="type-tmtype-att.class" use="required"/>
<xs:attribute name="tmclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:simpleType name="type-tmtype-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="tm"/>
<xs:enumeration value="reg"/>
<xs:enumeration value="service"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="boolean">
<xs:annotation>
<xs:documentation>( Deprecated ) - The &lt;<keyword>boolean</keyword>&gt; element is used to express
one of two opposite values, such as yes or no, on or off, true or false, high
or low, and so forth. The element itself is empty; the value of the element
is stored in its <keyword>state</keyword> attribute, and
the semantic associated with the value is typically in a specialized name
derived from this element. If you need more than two values (for example,
"yes," "no" and "don&apos;t care") use the <ph> <xref href="state.xml">&lt;<keyword>state</keyword>></xref>
</ph> element instead. This element is primarily for specialization, where
it can be used to require a logical true or false designation in a particular
part of the document.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="boolean.class">
<xs:attribute ref="class" default="- topic/boolean "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="boolean.class">
<xs:attribute name="state" type="yesno-att.class" use="required"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="state">
<xs:annotation>
<xs:documentation>The &lt;<keyword>state</keyword>> element specifies a name/value
pair whenever it is necessary to represent a named state that has a variable
value. The element is primarily intended for use in specializations to represent
specific states (like logic circuit states, chemical reaction states, airplane
instrumentation states, and so forth).
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="state.class">
<xs:attribute ref="class" default="- topic/state "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="state.class">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!---->
<!-- MIME type should follow the convention xxx/xxx -->
<!-- =========================================================================== -->
<!-- BASIC DOCUMENT ELEMENT DECLARATIONS (rich text) =========================== -->
<!-- =========================================================================== -->
<!-- Base form: Paragraph -->
<xs:element name="p">
<xs:annotation>
<xs:documentation>A paragraph element (&lt;<keyword>p</keyword>>) is a block of
text containing a single main idea.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="p.class">
<xs:attribute ref="class" default="- topic/p "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="p.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="para.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Excerpt -->
<xs:element name="lq">
<xs:annotation>
<xs:documentation> TThe long quote (&lt;<keyword>lq</keyword>&gt;) element indicates
content quoted from another source. Use the quote element &lt;<keyword>q</keyword>&gt;for
short, inline quotations, and long quote &lt;<keyword>lq</keyword>&gt; for quotations
that are too long for inline use, following normal guidelines for quoting
other sources. You can store a URL to the source of the quotation in the <keyword>href</keyword> attribute.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lq.class">
<xs:attribute ref="class" default="- topic/lq "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="lq.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="longquote.cnt"/>
</xs:choice>
<xs:attribute name="href" type="xs:string" />
<xs:attribute name="keyref" type="xs:string"/>
<xs:attribute name="type" type="type-lq-atts.class"/>
<xs:attribute name="reftitle" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:simpleType name="type-lq-atts.class">
<xs:restriction base="xs:string">
<xs:enumeration value="internal"/>
<xs:enumeration value="external"/>
<xs:enumeration value="bibliographic"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<!-- Base form: Note -->
<xs:element name="note">
<xs:annotation>
<xs:documentation>A &lt;<keyword>note</keyword>> element contains information, differentiated
from the main text, which expands on or calls attention to a particular point.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="note.class">
<xs:attribute ref="class" default="- topic/note "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="note.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="note.cnt"/>
</xs:choice>
<xs:attribute name="type" type="type-note-atts.class"/>
<xs:attribute name="spectitle" type="xs:string"/>
<xs:attribute name="othertype" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:simpleType name="type-note-atts.class">
<xs:restriction base="xs:string">
<xs:enumeration value="note"/>
<xs:enumeration value="tip"/>
<xs:enumeration value="fastpath"/>
<xs:enumeration value="restriction"/>
<xs:enumeration value="important"/>
<xs:enumeration value="remember"/>
<xs:enumeration value="attention"/>
<xs:enumeration value="caution"/>
<xs:enumeration value="danger"/>
<xs:enumeration value="other"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<!-- Base form: Quoted text -->
<xs:element name="q">
<xs:annotation>
<xs:documentation> A quotation element (&lt;q>) indicates content quoted from another
source. This element is used for short quotes which are displayed inline.
Use the long quote element (&lt;lq>) for quotations that should be set off
from the surrounding text.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="q.class">
<xs:attribute ref="class" default="- topic/q "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="q.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="shortquote.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Unordered list -->
<xs:element name="ul">
<xs:annotation>
<xs:documentation>In an unordered list (&lt;ul>), the order of the list items is
not significant. List items are typically styled on output with a "bullet"
character, depending on nesting level.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="ul.class">
<xs:attribute ref="class" default="- topic/ul "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="ul.class">
<xs:choice>
<xs:group ref="li" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="spectitle" type="xs:string"/>
<xs:attribute name="compact" type="yesno-att.class"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Ordered list -->
<xs:element name="ol">
<xs:annotation>
<xs:documentation>An ordered list (&lt;ol>) is a list of items sorted by sequence
or order of importance.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="ol.class">
<xs:attribute ref="class" default="- topic/ol "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="ol.class">
<xs:choice>
<xs:group ref="li" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="spectitle" type="xs:string"/>
<xs:attribute name="compact" type="yesno-att.class"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Simple list -->
<xs:element name="sl">
<xs:annotation>
<xs:documentation>The &lt;<keyword>sl</keyword>> element contains a simple list of
items of short, phrase-like content, such as in documenting the materials
in a kit or package.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="sl.class">
<xs:attribute ref="class" default="- topic/sl "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="sl.class">
<xs:choice>
<xs:group ref="sli" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="spectitle" type="xs:string"/>
<xs:attribute name="compact" type="yesno-att.class"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Simple List Item -->
<xs:element name="sli">
<xs:annotation>
<xs:documentation>
A simple list item (&lt;sli>) is a single item in a simple list&lt;sl>.
Simple list items have phrase or text content, adequate for describing package
contents, for example. When a DITA topic is formatted for output, the items
of a simple list are placed each on its own line, with no other prefix such
as a number (as in an ordered list) or bullet (as in an unordered list)..
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="sli.class">
<xs:attribute ref="class" default="- topic/sli "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="sli.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="ph.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: List Item -->
<xs:element name="li">
<xs:annotation>
<xs:documentation>A list (&lt;li>) item is a single item in an ordered &lt;ol> or
unordered &lt;ul> list. When a DITA topic is formatted for output, numbers
and alpha characters are usually output with list items in ordered lists,
while bullets and dashes are usually output with list items in unordered lists.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="li.class">
<xs:attribute ref="class" default="- topic/li "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="li.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="listitem.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: List Item Section-->
<xs:element name="itemgroup">
<xs:annotation>
<xs:documentation>The &lt;<keyword>itemgroup</keyword>> element is reserved for specialization
of DITA. As a container element, it can be used to sub-divide or organize
elements that occur inside a list item, definition, or parameter definition.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="itemgroup.class">
<xs:attribute ref="class" default="- topic/itemgroup "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="itemgroup.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="itemgroup.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Definition List -->
<xs:element name="dl">
<xs:annotation>
<xs:documentation>A definition list (&lt;<keyword>dl</keyword>>) is a list of terms
and corresponding definitions. The term (&lt;<keyword>dt</keyword>>) is usually
flush left. The description or definition (&lt;<keyword>dt</keyword>>) is
usually either indented and on the next line, or on the same line to the right
of the term.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="dl.class">
<xs:attribute ref="class" default="- topic/dl "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="dl.class">
<xs:sequence>
<xs:group ref="dlhead" minOccurs="0"/>
<xs:group ref="dlentry" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="compact" type="yesno-att.class"/>
<xs:attribute name="spectitle" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="dlhead">
<xs:annotation>
<xs:documentation>The &lt;<keyword>dlhead</keyword>> element contains optional headings
for the term and description columns in a definition list. The definition
list heading contains a heading &lt;<keyword>dthd</keyword>> for the column
of terms and an optional heading &lt;<keyword>ddhd</keyword>>for the column
of descriptions.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="dlhead.class">
<xs:attribute ref="class" default="- topic/dlhead "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="dlhead.class">
<xs:sequence>
<xs:group ref="dthd" minOccurs="0"/>
<xs:group ref="ddhd" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="ddhd">
<xs:annotation>
<xs:documentation>The definition descriptions heading (&lt;ddhd>) element contains
an optional heading or title for a column of descriptions or definitions in
a definition list
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="ddhd.class">
<xs:attribute ref="class" default="- topic/ddhd "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="ddhd.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="title.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="dthd">
<xs:annotation>
<xs:documentation>The definition term heading (&lt;dthd>) element is contained in
a definition list head (&lt;dlhead>) and provides an optional heading for
the column of terms in a description list.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="dthd.class">
<xs:attribute ref="class" default="- topic/dthd "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="dthd.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="title.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="dlentry">
<xs:annotation>
<xs:documentation>In a definition list, each list item is defined by the definition
list entry (&lt;dlentry>) element. The definition list entry element includes
a term &lt;dt> and one or more definitions or descriptions &lt;dd> of that
term.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="dlentry.class">
<xs:attribute ref="class" default="- topic/dlentry "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="dlentry.class">
<xs:sequence>
<xs:group ref="dt" maxOccurs="unbounded"/>
<xs:group ref="dd" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="dt">
<xs:annotation>
<xs:documentation>The definition term &lt;<keyword>dt</keyword>> element contains
a term in a definition list entry.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="dt.class">
<xs:attribute ref="class" default="- topic/dt "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="dt.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="term.cnt"/>
</xs:choice>
<xs:attribute name="keyref" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="dd">
<xs:annotation>
<xs:documentation>The definition description (&lt;<keyword>dd</keyword>>) element
contains the description of a term in a definition list entry.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="dd.class">
<xs:attribute ref="class" default="- topic/dd "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="dd.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="defn.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Figure -->
<xs:element name="fig">
<xs:annotation>
<xs:documentation>The figure (&lt;<keyword>fig</keyword>>) element is a display context
(sometimes called an <q>exhibit</q>) with an optional title for a wide variety
of content. Most commonly, the figure element contains an image element (a
graphic or artwork), but it can contain several kinds of text objects as well.
A title is placed inside the figure element to provide a caption to describe
the content.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="fig.class">
<xs:attribute ref="class" default="- topic/fig "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="fig.class">
<xs:sequence>
<xs:group ref="title" minOccurs="0"/>
<xs:group ref="desc" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="figgroup"/>
<xs:group ref="fig.cnt"/>
</xs:choice>
</xs:sequence>
<xs:attributeGroup ref="display-atts"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attribute name="spectitle" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="figgroup">
<xs:annotation>
<xs:documentation>The &lt;<keyword>figgroup</keyword>> element is used only for specialization
at this time. Figure groups can be used to contain multiple cross-references,
footnotes or keywords, but not multipart images. Multipart images in DITA
should be represented by a suitable media type displayed by the &lt;<keyword>object</keyword>>
element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="figgroup.class">
<xs:attribute ref="class" default="- topic/figgroup "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="figgroup.class">
<xs:sequence>
<xs:group ref="title" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="figgroup"/>
<xs:group ref="xref"/>
<xs:group ref="fn"/>
<xs:group ref="ph"/>
<xs:group ref="keyword"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Preformatted Text -->
<xs:element name="pre">
<xs:annotation>
<xs:documentation>The preformatted element (&lt;<keyword>pre</keyword>>) preserves
line breaks and spaces entered manually by the author in the content of the
element, and also presents the content in a monospaced type font (depending
on your output formatting processor).
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="pre.class">
<xs:attribute ref="class" default="- topic/pre "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="pre.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="pre.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attribute name="spectitle" type="xs:string"/>
<xs:attributeGroup ref="display-atts"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attribute ref="xml:space" fixed="preserve"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Lines Respecting Text -->
<xs:element name="lines">
<xs:annotation>
<xs:documentation>The &lt;<keyword>lines</keyword>> element may be used to represent
dialogs, lists, text fragments, and so forth. The &lt;<keyword>lines</keyword>>
element is similar to &lt;<keyword>pre</keyword>> in that hard line breaks
are preserved, but the font style is not set to monospace, and extra spaces
inside the lines are not preserved.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lines.class">
<xs:attribute ref="class" default="- topic/lines "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="lines.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="pre.cnt"/>
</xs:choice>
<xs:attribute name="spectitle" type="xs:string"/>
<xs:attributeGroup ref="display-atts"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attribute ref="xml:space" fixed="preserve"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="image">
<xs:annotation>
<xs:documentation>Include artwork or images in a DITA topic by using the &lt;<keyword>image</keyword>&gt;
element. The &lt;<keyword>image</keyword>&gt; element has optional attributes
that indicate whether the placement of the included graphic or artwork should
be inline (like a button or icon), or on a separate line for a larger image.
An <keyword>href</keyword> attribute is required on the image element,
as this attribute creates a pointer to the image, and allows the output formatting
processor to bring the image into the text flow. To make the intent of the
image more accessible for users using screen readers or text-only readers,
always include a description of the image's content in the <keyword>alt </keyword>attribute.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="image.class">
<xs:attribute ref="class" default="- topic/image "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="image.class">
<xs:choice>
<xs:group ref="alt" minOccurs="0"/>
</xs:choice>
<xs:attribute name="href" type="xs:string" use="required"/>
<xs:attribute name="keyref" type="xs:NMTOKEN"/>
<xs:attribute name="alt" type="xs:string"/>
<xs:attribute name="longdescref" type="xs:string"/>
<xs:attribute name="height" type="xs:NMTOKEN"/>
<xs:attribute name="width" type="xs:NMTOKEN"/>
<xs:attribute name="scale" type="xs:NMTOKEN"/>
<xs:attribute name="align" type="image-align-att.class"/>
<xs:attribute name="placement" type="image-placement-att.class" default="inline"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:simpleType name="image-placement-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="inline"/>
<xs:enumeration value="break"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="image-align-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="left"/>
<xs:enumeration value="center"/>
<xs:enumeration value="right"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="alt">
<xs:annotation>
<xs:documentation>The alt element provides an element equivalent of the <apiname>alt</apiname> attribute
on the image element. As an element, it provides direct text entry within
an XML editor and is more easily accessed than an attribute for translation.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="alt.class">
<xs:attribute ref="class" default="- topic/alt "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="alt.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="words.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="object">
<xs:annotation>
<xs:documentation>DITA's &lt;<keyword>object</keyword>> element corresponds to the
HTML &lt;<keyword>object</keyword>> element. The &lt;<keyword>object</keyword>>
element allows authors to include animated images, applets, plug-ins, ActiveX
controls, video clips, and other multimedia objects in a topic for rendering
after transformation to HTML.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="object.class">
<xs:attribute ref="class" default="- topic/object "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="object.class">
<xs:sequence>
<xs:group ref="desc" minOccurs="0"/>
<xs:group ref="param" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="foreign.unknown.incl" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="declare" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="declare"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="classid" type="xs:string"/>
<xs:attribute name="codebase" type="xs:string"/>
<xs:attribute name="data" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="codetype" type="xs:string"/>
<xs:attribute name="archive" type="xs:string"/>
<xs:attribute name="standby" type="xs:string"/>
<xs:attribute name="height" type="xs:NMTOKEN"/>
<xs:attribute name="width" type="xs:NMTOKEN"/>
<xs:attribute name="usemap" type="xs:string"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="tabindex" type="xs:string"/>
<xs:attribute name="longdescref" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="param">
<xs:annotation>
<xs:documentation>The parameter (&lt;<keyword>param</keyword>>)element specifies
a set of values that may be required by an &lt;<keyword>object</keyword>>
at runtime. Any number of &lt;<keyword>param</keyword>> elements may appear
in the content of an object in any order, but must be placed at the start
of the content of the enclosing object. This element is comparable to the
XHMTL &lt;<keyword>param</keyword>> element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="param.class">
<xs:attribute ref="class" default="- topic/param "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="param.class">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string"/>
<xs:attribute name="valuetype" type="valuetype-att.class"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Simple Table -->
<xs:element name="simpletable">
<xs:annotation>
<xs:documentation>The &lt;<keyword>simpletable</keyword>> element is used for tables
that are regular in structure and do not need a caption. Choose the simple
table element when you want to show information in regular rows and columns.
For example, multi-column tabular data such as phone directory listings or
parts lists are good candidates for simpletable. Another good use of simpletable
is for information that seems to beg for a "three-part definition list"—just
use the keycol attribute to indicate which column represents the "key" or
term-like column of your structure.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="simpletable.class">
<xs:attribute ref="class" default="- topic/simpletable "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="simpletable.class">
<xs:sequence>
<xs:group ref="sthead" minOccurs="0"/>
<xs:group ref="strow" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="relcolwidth" type="xs:string"/>
<xs:attribute name="keycol" type="xs:NMTOKEN" />
<xs:attribute name="refcols" type="xs:NMTOKENS"/>
<xs:attributeGroup ref="display-atts"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attribute name="spectitle" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="sthead">
<xs:annotation>
<xs:documentation>The simpletable header (&lt;sthead>) element contains the table's
header row. The header row is optional in a simple table.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="sthead.class">
<xs:attribute ref="class" default="- topic/sthead "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="sthead.class">
<xs:choice>
<xs:group ref="stentry" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="strow">
<xs:annotation>
<xs:documentation>The &lt;<keyword>simpletable</keyword>> row (&lt;<keyword>strow</keyword>>)
element specifies a row in a simple table, like row in a conventional <ph><xref
href="table.xml">table</xref></ph>.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="strow.class">
<xs:attribute ref="class" default="- topic/strow "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="strow.class">
<xs:choice>
<xs:group ref="stentry" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="stentry">
<xs:annotation>
<xs:documentation>The simpletable entry (&lt;stentry>) element represents a single
table cell, like &lt;entry> in &lt;table>. You can place any number of stentry
cells in either an <ph><xref href="sthead.xml">sthead</xref></ph> element
(for headings) or <ph><xref href="strow.xml">strow</xref></ph> element (for
rows of data).
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="stentry.class">
<xs:attribute ref="class" default="- topic/stentry "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="stentry.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="tblcell.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attribute name="specentry" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Required Cleanup Block -->
<!-- ===============================
CLEAN UP "ANY" CONTENT MODEL
================================ -->
<xs:element name="draft-comment">
<xs:annotation>
<xs:documentation>The &lt;<keyword>draft-comment</keyword>> element allows simple
review and discussion of topic contents within the marked-up content. Use
the &lt;draft-comment> element to ask a question or make a comment that you
would like others to review. To indicate the source of the draft comment or
the status of the comment, use the author, time or disposition attributes.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="draft-comment.class">
<xs:attribute ref="class" default="- topic/draft-comment "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="draft-comment.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="basic.phandblock"/>
<xs:group ref="data.element.incl"/>
<xs:group ref="foreign.unknown.incl"/>
</xs:choice>
<xs:attribute name="disposition" type="disposition-att.class"/>
<xs:attribute name="author" type="xs:string"/>
<xs:attribute name="time" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts-translate-no"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="required-cleanup">
<xs:annotation>
<xs:documentation>A &lt;<keyword>required-cleanup</keyword>> element is used as a
placeholder for migrated elements that cannot be appropriately tagged without
manual intervention. As the element name implies, the intent for authors is
to clean up the contained material and eventually get rid of the &lt;<keyword>required-cleanup</keyword>>
element. Authors should not insert this element into documents.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="required-cleanup.class">
<xs:attribute ref="class" default="- topic/required-cleanup "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="required-cleanup.class" mixed="true">
<xs:choice>
<xs:any processContents="skip" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="remap" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts-translate-no"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Footnote -->
<xs:element name="fn">
<xs:annotation>
<xs:documentation>Use footnote (&lt;<keyword>fn</keyword>>) to annotate text with
notes that are not appropriate for inclusion in line or to indicate the source
for facts or other material used in the text.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="fn.class">
<xs:attribute ref="class" default="- topic/fn "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="fn.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="fn.cnt"/>
</xs:choice>
<xs:attribute name="callout" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="indextermref">
<xs:annotation>
<xs:documentation>An &lt;<keyword>indextermref</keyword>> is a reference to an index
entry in a lookup table used by the indexing process. If you want to create
index markers pointing to referenced items, but only want page numbers instead
of separate index entries to be generated, use the index term reference &lt;indextermref>
element. This adds the page number of the reference to the index without creating
a separate index entry.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="indextermref.class">
<xs:attribute ref="class" default="- topic/indextermref "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="indextermref.class" >
<xs:attribute name="keyref" type="xs:string" use="required"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Citation (from a bibliographic source) -->
<xs:element name="cite">
<xs:annotation>
<xs:documentation>The &lt;<keyword>cite</keyword>&gt; element is used when you need
a bibliographic citation that refers to a book or article. It specifically
identifies the title of the resource. Its <keyword>keyref</keyword> attribute
allows the citation to be associated to other possible bibliographic processing
(not supported yet).
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="cite.class">
<xs:attribute ref="class" default="- topic/cite "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="cite.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="xrefph.cnt"/>
</xs:choice>
<xs:attribute name="keyref" type="xs:string"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="xref">
<xs:annotation>
<xs:documentation>Use the cross-reference (&lt;<keyword>xref</keyword>&gt;) element
to link to a different location within the current topic, or a different topic
within the same help system or DITA document. You can also point to external
sources, such as Web pages, or to a location in another topic as well. The <keyword><i>href</i></keyword> attribute
on the &lt;<keyword>xref</keyword>&gt; element is used to create the link pointer,
or URL.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="xref.class">
<xs:attribute ref="class" default="- topic/xref "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="xref.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="xreftext.cnt"/>
<xs:group ref="desc"/>
</xs:choice>
<xs:attribute name="href" type="xs:string"/>
<xs:attribute name="keyref" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="format" type="xs:string"/>
<xs:attribute name="scope" type="scope-att.class"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- <xs:simpleType name="xref-type-att.class">
<xs:union memberTypes="xref-type-attlist.class topicreftypes-att.class"/>
</xs:simpleType> -->
<xs:simpleType name="scope-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="local"/>
<xs:enumeration value="peer"/>
<xs:enumeration value="external"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="valuetype-att.class">
<xs:restriction base="xs:string">
<xs:enumeration value="data"/>
<xs:enumeration value="ref"/>
<xs:enumeration value="object"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:attribute name="class" type="xs:string" >
<xs:annotation>
<xs:documentation>
The class attribute supports specialization. Its predefined values help
the output transforms work correctly with ranges of related content.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:element name="data">
<xs:annotation>
<xs:documentation>The &lt;<keyword>data</keyword>> element represents a property
within a DITA topic or map. While the &lt;<keyword>data</keyword>> element
can be used directly to capture properties, it is particularly useful as a
basis for specialization. Default processing treats the property values as
an unknown kind of metadata, but custom processing can match the <keyword>name</keyword> attribute
or specialized element to format properties as sidebars or other adornments
or to harvest properties for automated processing. </xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="data.class">
<xs:attribute ref="class" default="- topic/data "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="data.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="data.cnt"/>
</xs:choice>
<xs:attributeGroup ref="data-element-atts.class"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="data-about">
<xs:annotation>
<xs:documentation><p>The &lt;<keyword>data-about</keyword>> element identifies the subject
of a property when the subject isn't associated with the context in which
the property is specified. The property itself is expressed by the &lt;<keyword>data</keyword>>
element. The &lt;<keyword>data-about</keyword>> element handles exception
cases where a property must be expressed somewhere other than inside the actual
subject of the property. The &lt;<keyword>data-about</keyword>> element is
particularly useful as a basis for specialization in combination with the &lt;<keyword>data</keyword>>
element.</p>
<p><note type="important">Don't use the &lt;<keyword>data-about</keyword>>
element to identify the object of a property. The <keyword>href</keyword> attribute
of the &lt;<keyword>data</keyword>> element serves that purpose.</note></p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="data-about.class">
<xs:attribute ref="class" default="- topic/data-about "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="data-about.class">
<xs:sequence>
<xs:group ref="data"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="data"/>
<xs:group ref="data-about"/>
</xs:choice>
</xs:sequence>
<xs:attributeGroup ref="univ-atts"/>
<xs:attribute name="href" type="xs:string"/>
<xs:attribute name="format" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="scope" type="scope-att.class"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="foreign">
<xs:annotation>
<xs:documentation>The &lt;foreign&gt; element is an open extension that allows information architects
to incorporate existing standard vocabularies for non-textual content. like MathML and SVG, as inline
objects. If &lt;foreign&gt; contains more than one alternative content element, they will all be processed.
Specialization of &lt;foreign&gt; should be implemented as a domain, but for those looking for more
control over the content can implement foreign vocabulary as an element specialization.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="foreign.class">
<xs:attribute ref="class" default="- topic/foreign "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="foreign.class">
<xs:sequence>
<xs:any processContents="skip" />
</xs:sequence>
<xs:attribute name="outoutclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<!-- Base form: Index entry -->
<xs:element name="indexterm">
<xs:annotation>
<xs:documentation>An &lt;<keyword>indexterm</keyword>> is an index entry. You can
nest entries to create multi-level indexes. The content is not output as part
of topic content, only as part of the index.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="indexterm.class">
<xs:attribute ref="class" default="- topic/indexterm "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="indexterm.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="words.cnt"/>
<xs:group ref="indexterm"/>
<xs:group ref="index-base"/>
</xs:choice>
<xs:attribute name="start" type="xs:string"/>
<xs:attribute name="end" type="xs:string"/>
<xs:attribute name="keyref" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="index-base">
<xs:annotation>
<xs:documentation>The &lt;index-base&gt; element allows indexing extensions to be added by specializing off this
element. It does not in itself have any meaning and should be ignored in processing.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="index-base.class">
<xs:attribute ref="class" default="- topic/index-base "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="index-base.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="words.cnt"/>
<xs:group ref="indexterm"/>
</xs:choice>
<xs:attribute name="keyref" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:element name="unknown">
<xs:annotation>
<xs:documentation>
The &lt;unknown&gt; element is an open extension that allows information architects to
incorporate xml fragments that does not necessarily fit into an exisitng DITA use case.
The base processing for &lt;unknown&gt; is to supress unless otherwise instructed.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="unknown.class">
<xs:attribute ref="class" default="- topic/unknown "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="unknown.class">
<xs:sequence>
<xs:any processContents="skip" />
</xs:sequence>
<xs:attribute name="outoutclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
<xs:attributeGroup name="localization-atts">
<xs:attribute name="translate" type="yesno-att.class" />
<xs:attribute ref="xml:lang"/>
<xs:attribute name="dir" type="dir-atts.class"/>
</xs:attributeGroup>
<xs:simpleType name="dir-atts.class">
<xs:restriction base="xs:string">
<xs:enumeration value="ltr"/>
<xs:enumeration value="rtl"/>
<xs:enumeration value="lro"/>
<xs:enumeration value="rlo"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:attributeGroup name="localization-atts-translate-no">
<xs:attribute name="translate" type="yesno-att.class" default="no"/>
<xs:attribute ref="xml:lang"/>
<xs:attribute name="dir" type="dir-atts.class"/>
</xs:attributeGroup>
<!-- <!ENTITY % filter-atts
'props CDATA #IMPLIED
base CDATA #IMPLIED
platform CDATA #IMPLIED
product CDATA #IMPLIED
audience CDATA #IMPLIED
otherprops CDATA #IMPLIED
%props-attribute-extensions;
%base-attribute-extensions; ' > -->
<xs:attributeGroup name="filter-atts">
<xs:attribute name="props" type="xs:string" />
<xs:attribute name="platform" type="xs:string" />
<xs:attribute name="product" type="xs:string" />
<xs:attribute name="audience" type="xs:string" />
<xs:attribute name="otherprops" type="xs:string" />
<xs:attributeGroup ref="props-attribute-extensions"/>
</xs:attributeGroup>
<xs:complexType name="shortdesc.class" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="title.cnt"/>
</xs:choice>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts"/>
</xs:complexType>
</xs:schema>