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

521 lines
No EOL
23 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- ============================================================= -->
<!-- HEADER -->
<!-- ============================================================= -->
<!-- ============================================================= -->
<!-- MODULE: DITA MAP XSD Module -->
<!-- VERSION: 1.1 -->
<!-- DATE: November 2006 -->
<!-- -->
<!-- ============================================================= -->
<!-- ============================================================= -->
<!-- SYSTEM: Darwin Information Typing Architecture (DITA) -->
<!-- -->
<!-- PURPOSE: W3C XML Schema to describe DITA maps -->
<!-- -->
<!-- ORIGINAL CREATION DATE: -->
<!-- March 2001 -->
<!-- -->
<!-- (C) Copyright OASIS-Open.org 2005, 2006 -->
<!-- (C) Copyright IBM Corporation 2001, 2004. -->
<!-- All Rights Reserved. -->
<!-- -->
<!-- UPDATES: -->
<!-- 2005.11.15 EAS: Moved domains attribute definition to -->
<!-- map.xsd -->
<!-- ============================================================= -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/">
<!-- ======= IMPORT - XML attributes and namespace ======= -->
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="urn:oasis:names:tc:dita:xsd:xml.xsd:1.1"/>
<xs:import namespace="http://dita.oasis-open.org/architecture/2005/" schemaLocation="urn:oasis:names:tc:dita:xsd:ditaarch.xsd:1.1"/>
<!-- STRUCTURAL MEMBERS ======================================================== -->
<!-- things that can be nested under topic after body - redefined when specializing -->
<!--xs:simpleType name="topicreftypes.class">
<xs:restriction base="xs:string">
<xs:enumeration value="topic"/>
<xs:enumeration value="concept"/>
<xs:enumeration value="task"/>
<xs:enumeration value="reference"/>
<xs:enumeration value="external"/>
<xs:enumeration value="local"/>
</xs:restriction>
</xs:simpleType>-->
<xs:attributeGroup name="topicref-atts">
<xs:annotation>
<xs:documentation>
The %topicref-atts; parameter entity represents a group of attributes
used in numerous map elements: map, topicref, relcolspec, relcell, topichead,
and topicgroup. The set is similar to those documented in <ph><xref href="topicref-atts-no-toc.xml">topicref-atts-no-toc</xref></ph> but
includes the <i><keyword>toc</keyword></i> attribute.
</xs:documentation>
</xs:annotation>
<xs:attribute name="collection-type" type="collection-type.class"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="scope" type="scope-att.class"/>
<xs:attribute name="locktitle" type="yesno-att.class"/>
<xs:attribute name="format" type="xs:string"/>
<xs:attribute name="linking" type="linkingtypes.class"/>
<xs:attribute name="toc" type="yesno-att.class"/>
<xs:attribute name="print" type="yesno-att.class"/>
<xs:attribute name="search" type="yesno-att.class"/>
<xs:attribute name="chunk" type="xs:string"/>
</xs:attributeGroup>
<xs:simpleType name="collection-type.class">
<xs:restriction base="xs:string">
<xs:enumeration value="choice"/>
<xs:enumeration value="unordered"/>
<xs:enumeration value="sequence"/>
<xs:enumeration value="family"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="linkingtypes.class">
<xs:restriction base="xs:string">
<xs:enumeration value="targetonly"/>
<xs:enumeration value="sourceonly"/>
<xs:enumeration value="normal"/>
<xs:enumeration value="none"/>
<xs:enumeration value="-dita-use-conref-target"/>
</xs:restriction>
</xs:simpleType>
<xs:attributeGroup name="topicref-atts-no-toc">
<xs:annotation>
<xs:documentation>
The %topicref-atts-no-toc; parameter entity represents the set
of attributes used in the <ph><xref href="reltable.xml">reltable</xref></ph> map
element. The set is similar to those documented in <ph><xref href="topicref-atts.xml">topicref-atts</xref></ph> but
for &lt;<keyword>reltable</keyword>&gt; the <i><keyword>toc</keyword></i> attribute
defaults to <q>no</q>. For the other elements that use the %topicref-atts;
group declaration, the <i><keyword>toc</keyword></i> attribute doesn't have
a default; they can inherit their <i><keyword>toc</keyword></i> value from
the nearest container, otherwise it functions upon output as if set to <q>yes</q>.
</xs:documentation>
</xs:annotation>
<xs:attribute name="collection-type" type="collection-type.class"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="scope" type="scope-att.class"/>
<xs:attribute name="locktitle" type="yesno-att.class"/>
<xs:attribute name="format" type="xs:string"/>
<xs:attribute name="linking" type="linkingtypes.class"/>
<xs:attribute name="toc" type="yesno-att.class" default="no"/>
<xs:attribute name="print" type="yesno-att.class"/>
<xs:attribute name="search" type="yesno-att.class"/>
<xs:attribute name="chunk" type="xs:string"/>
</xs:attributeGroup>
<xs:element name="map">
<xs:annotation>
<xs:documentation>
The &lt;<keyword>map</keyword>&gt; element is used to define a map
which describes the relationships among a set of DITA topics. Maps consist
of references to topics organized into hierarchies and tables. Maps provide
a way to express these relationships in a single common format that can be
used for different outputs.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="map.class">
<xs:attribute ref="class" default="- map/map " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="map.class" >
<xs:sequence>
<xs:group ref="title" minOccurs="0" />
<xs:group ref="topicmeta" minOccurs="0" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="navref" />
<xs:group ref="anchor" />
<xs:group ref="topicref" />
<xs:group ref="reltable" />
<xs:group ref="data.element.incl" />
</xs:choice>
</xs:sequence>
<xs:attribute name="title" type="xs:string" />
<xs:attribute name="id" type="xs:ID" />
<xs:attribute name="conref" type="xs:string" />
<xs:attribute name="anchorref" type="xs:string" />
<xs:attribute name="outputclass" type="xs:string" />
<xs:attributeGroup ref="topicref-atts" />
<xs:attributeGroup ref="select-atts" />
<xs:attributeGroup ref="localization-atts"/>
<xs:attribute ref="ditaarch:DITAArchVersion"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="navref">
<xs:annotation>
<xs:documentation>
The &lt;<keyword>navref</keyword>&gt; element references a map file
from within a map file. The reference is resolved at runtime for Eclipse
navigation, typically to pull together the navigation for multiple components
into a product navigation. <ph conref="commonLRdefs.xml#commonLRdefs/only4eclipse"></ph>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="navref.class">
<xs:attribute ref="class" default="- map/navref " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="navref.class">
<xs:attributeGroup ref="univ-atts"/>
<xs:attribute name="outputclass" type="xs:string" />
<xs:attribute name="mapref" type="xs:string"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="topicref">
<xs:annotation>
<xs:documentation>
The &lt;<keyword>topicref</keyword>&gt; element designates a topic
(such as a concept, task, or reference) as a link in a DITA map. A &lt;<keyword>topicref</keyword>&gt;
can contain other&lt;<keyword>topicref</keyword>&gt; elements, allowing you to
express navigation or table-of-contents hierarchies, as well as implying relationships
between the containing &lt;<keyword>topicref</keyword>&gt; and its children.
You can set the collection-type of a container &lt;<keyword>topicref</keyword>&gt;
to determine how its children are related to each other. Relationships end
up expressed as links in the output (with each participant in a relationship
having links to the other participants).
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="topicref.class">
<xs:attribute ref="class" default="- map/topicref " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="topicref.class">
<xs:sequence>
<xs:group ref="topicmeta" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="navref" />
<xs:group ref="anchor" />
<xs:group ref="topicref" />
<xs:group ref="data.element.incl" />
</xs:choice>
</xs:sequence>
<xs:attribute name="navtitle" type="xs:string"/>
<xs:attribute name="href" type="xs:string"/>
<xs:attribute name="keyref" type="xs:string"/>
<xs:attribute name="query" type="xs:string"/>
<xs:attribute name="copy-to" type="xs:string"/>
<xs:attributeGroup ref="topicref-atts" />
<xs:attributeGroup ref="univ-atts" />
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="reltable">
<xs:annotation>
<xs:documentation>
The relationship table (&lt;<keyword>reltable</keyword>&gt;) defines
relationships between topics, based on the familiar table model of rows (&lt;<keyword>relrow</keyword>&gt;),
columns (&lt;<keyword>relheader</keyword>&gt;), and cells (&lt;<keyword>relcell</keyword>>).
The &lt;<keyword>relcell</keyword>&gt; elements can contain &lt;<keyword>topicref</keyword>&gt;
elements, which are then related to other &lt;<keyword>topicref</keyword>&gt;
elements in the same row (although not necessarily in the same cell). By default,
the contents of a &lt;<keyword>reltable</keyword>&gt; element are not output
for navigation or TOC purposes, and are used only to define relationships
that can be expressed as topic-to-topic links.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="reltable.class">
<xs:attribute ref="class" default="- map/reltable " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="reltable.class">
<xs:sequence>
<xs:group ref="topicmeta" minOccurs="0" />
<xs:group ref="relheader" minOccurs="0" />
<xs:group ref="relrow" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="title" type="xs:string" />
<xs:attributeGroup ref="topicref-atts-no-toc" />
<xs:attributeGroup ref="univ-atts" />
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="relheader">
<xs:annotation>
<xs:documentation>
The &lt;<keyword>relheader</keyword>&gt; element is a row of column
definitions (&lt;<keyword>relcolspec</keyword>&gt; elements) in a relationship
table. Each table can have only one set of column definitions.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="relheader.class">
<xs:attribute ref="class" default="- map/relheader " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="relheader.class">
<xs:sequence maxOccurs="unbounded">
<xs:group ref="relcolspec" />
</xs:sequence>
<xs:attributeGroup ref="univ-atts" />
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="relcolspec">
<xs:annotation>
<xs:documentation>
A column definition in the relationship table. You can use &lt;<keyword>relcolspec</keyword>&gt;
column definitions to set defaults for the attributes of &lt;<keyword>topicref</keyword>&gt;
elements in the column. For example, you can set type="concept" to treat all
untyped &lt;<keyword>topicref</keyword>&gt; elements in the column as concepts.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="relcolspec.class">
<xs:attribute ref="class" default="- map/relcolspec " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="relcolspec.class">
<xs:sequence minOccurs="0">
<xs:group ref="topicmeta" />
</xs:sequence>
<xs:attributeGroup ref="univ-atts" />
<xs:attributeGroup ref="topicref-atts" />
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="relrow">
<xs:annotation>
<xs:documentation>
A &lt;<keyword>relrow</keyword>&gt; is a row in the relationship table.
This creates a relationship between the cells in the row, which will end up
expressed as links among the &lt;<keyword>topicref</keyword>&gt; elements in
the cells.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="relrow.class">
<xs:attribute ref="class" default="- map/relrow " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="relrow.class">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="relcell" />
</xs:sequence>
<xs:attributeGroup ref="univ-atts" />
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="relcell">
<xs:annotation>
<xs:documentation>
A &lt;<keyword>relcell</keyword>&gt; element is a cell in the relationship
table. The &lt;<keyword>topicref</keyword>&gt; elements it contains will be related
to topicrefs in other cells of the same row. By default, topicrefs in the
same cell are not related to each other, unless you change the relcell's collection-type
attribute to indicate that they are related.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="relcell.class">
<xs:attribute ref="class" default="- map/relcell " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="relcell.class">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="topicref" />
<xs:group ref="data.element.incl" />
</xs:choice>
<xs:attributeGroup ref="univ-atts" />
<xs:attributeGroup ref="topicref-atts" />
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="anchor">
<xs:annotation>
<xs:documentation>
The &lt;<keyword>anchor</keyword>&gt; element is used for runtime
integration of navigation. It provides an integration point that another map
can point to in order to insert its navigation into the current navigation
tree. It is currently supported by Eclipse output only.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="anchor.class">
<xs:attribute ref="class" default="- map/anchor " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="anchor.class">
<xs:attribute name="id" type="xs:ID" use="required"/>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attribute name="conref" type="xs:string"/>
<xs:attributeGroup ref="localization-atts"/>
<xs:attributeGroup ref="select-atts" />
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="topicmeta">
<xs:annotation>
<xs:documentation>
The &lt;<keyword>topicmeta</keyword>&gt; element defines the metadata
that applies to a topic and the topic's children. When creating links, it
can also be used to override the title and short description of the topic.
In addition, it can insert index entries through the &lt;<keyword>keywords</keyword>&gt;
element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="topicmeta.class">
<xs:attribute ref="class" default="- map/topicmeta " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="topicmeta.class" >
<xs:sequence>
<xs:group ref="linktext" minOccurs="0"/>
<xs:group ref="searchtitle" minOccurs="0"/>
<xs:group ref="shortdesc" minOccurs="0"/>
<xs:group ref="author" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="source" minOccurs="0"/>
<xs:group ref="publisher" minOccurs="0"/>
<xs:group ref="copyright" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="critdates" minOccurs="0"/>
<xs:group ref="permissions" minOccurs="0"/>
<xs:group ref="audience" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="category" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="keywords" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="prodinfo" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="othermeta" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="resourceid" minOccurs="0" maxOccurs="unbounded"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="data.element.incl" />
<xs:group ref="foreign.unknown.incl" />
</xs:choice>
</xs:sequence>
<xs:attribute name="lockmeta" type="yesno-att.class"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="linktext">
<xs:annotation>
<xs:documentation>
The &lt;<keyword>linktext</keyword>&gt; element provides the literal
label or line of text for a link. In most cases, the text of a link can be
resolved during processing by cross reference with the target resource. Use
the &lt;<keyword>linktext</keyword>&gt; element only when the target cannot be
reached, such as when it is a peer or external link.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="linktext.class">
<xs:attribute ref="class" default="- map/linktext " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="linktext.class" mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="words.cnt"/>
</xs:sequence>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType>
<xs:element name="searchtitle">
<xs:annotation>
<xs:documentation>
When your DITA topic is transformed to XHTML, the &lt;<keyword>searchtitle</keyword>&gt;
element is used to create a title element at the top of the resulting HTML
file. This title is normally used in search result summaries by some search
engines, such as that in Eclipse (<ph><xref format="html" href="http://eclipse.org"
scope="external">http://eclipse.org</xref></ph>); if not set, the XHTML's
title element defaults to the source topic's title content (which may not
be as well optimized for search summaries)
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="searchtitle.class">
<xs:attribute ref="class" default="- map/searchtitle " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="searchtitle.class" mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="words.cnt"/>
</xs:sequence>
<xs:attribute name="outputclass" type="xs:string"/>
<xs:attributeGroup ref="univ-atts"/>
<xs:attributeGroup ref="global-atts" />
</xs:complexType >
<xs:element name="shortdesc">
<xs:annotation>
<xs:documentation>
The short description (&lt;<keyword>shortdesc</keyword>&gt;) element
occurs between the topic title and the topic body, as the initial paragraph-like
content of a topic. The short description, which represents the purpose or
theme of the topic, is also intended to be used as a link preview and for
searching.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="shortdesc.class">
<xs:attribute ref="class" default="- map/shortdesc " />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--<xs:complexType name="shortdesc.class" mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="words.cnt"/>
</xs:sequence>
<xs:attributeGroup ref="global-atts" />
</xs:complexType >-->
</xs:schema>