258 lines
7.1 KiB
XML
258 lines
7.1 KiB
XML
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
|
|
elementFormDefault="qualified">
|
||
|
|
|
||
|
|
<!-- ===== Model Groups ===== -->
|
||
|
|
|
||
|
|
<xs:group name="paraInlineContent">
|
||
|
|
<xs:choice>
|
||
|
|
<xs:element ref="span"/>
|
||
|
|
<xs:element ref="inlineeq"/>
|
||
|
|
<xs:element ref="b"/>
|
||
|
|
<xs:element ref="i"/>
|
||
|
|
<xs:element ref="ref"/>
|
||
|
|
<xs:element ref="cref"/>
|
||
|
|
<xs:element ref="cite"/>
|
||
|
|
</xs:choice>
|
||
|
|
</xs:group>
|
||
|
|
|
||
|
|
<xs:group name="sectionBodyContent">
|
||
|
|
<xs:choice>
|
||
|
|
<xs:element ref="paragraph"/>
|
||
|
|
<xs:element ref="equation"/>
|
||
|
|
<xs:element ref="figure"/>
|
||
|
|
<xs:element ref="table"/>
|
||
|
|
<xs:element ref="pagebreaker"/>
|
||
|
|
</xs:choice>
|
||
|
|
</xs:group>
|
||
|
|
|
||
|
|
<!-- ===== Root Element ===== -->
|
||
|
|
|
||
|
|
<xs:element name="article">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:sequence>
|
||
|
|
<xs:element ref="preface"/>
|
||
|
|
<xs:element ref="document"/>
|
||
|
|
<xs:element ref="appendix"/>
|
||
|
|
<xs:element ref="reference"/>
|
||
|
|
</xs:sequence>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<!-- ===== Top-level Structure Elements ===== -->
|
||
|
|
|
||
|
|
<xs:element name="preface">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:sequence>
|
||
|
|
<xs:element ref="section" minOccurs="0" maxOccurs="unbounded"/>
|
||
|
|
</xs:sequence>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="document">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:sequence>
|
||
|
|
<xs:element ref="section1" minOccurs="0" maxOccurs="unbounded"/>
|
||
|
|
</xs:sequence>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="appendix">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:sequence>
|
||
|
|
<xs:element ref="section" minOccurs="0" maxOccurs="unbounded"/>
|
||
|
|
</xs:sequence>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="reference" type="xs:string"/>
|
||
|
|
|
||
|
|
<!-- ===== Section (no number, for preface/appendix) ===== -->
|
||
|
|
|
||
|
|
<xs:element name="section">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:element ref="paragraph"/>
|
||
|
|
<xs:element ref="pagebreaker"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<!-- ===== Numbered Sections (section1 ~ section9) ===== -->
|
||
|
|
|
||
|
|
<xs:element name="section9">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="sectionBodyContent"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="section8">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="sectionBodyContent"/>
|
||
|
|
<xs:element ref="section9"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="section7">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="sectionBodyContent"/>
|
||
|
|
<xs:element ref="section8"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="section6">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="sectionBodyContent"/>
|
||
|
|
<xs:element ref="section7"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="section5">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="sectionBodyContent"/>
|
||
|
|
<xs:element ref="section6"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="section4">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="sectionBodyContent"/>
|
||
|
|
<xs:element ref="section5"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="section3">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="sectionBodyContent"/>
|
||
|
|
<xs:element ref="section4"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="section2">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="sectionBodyContent"/>
|
||
|
|
<xs:element ref="section3"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="section1">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="sectionBodyContent"/>
|
||
|
|
<xs:element ref="section2"/>
|
||
|
|
</xs:choice>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<!-- ===== Paragraph and Inline Elements ===== -->
|
||
|
|
|
||
|
|
<xs:element name="paragraph">
|
||
|
|
<xs:complexType mixed="true">
|
||
|
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||
|
|
<xs:group ref="paraInlineContent"/>
|
||
|
|
</xs:choice>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="span" type="xs:string"/>
|
||
|
|
<xs:element name="inlineeq" type="xs:string"/>
|
||
|
|
<xs:element name="b" type="xs:string"/>
|
||
|
|
<xs:element name="i" type="xs:string"/>
|
||
|
|
<xs:element name="ref" type="xs:string"/>
|
||
|
|
<xs:element name="cref" type="xs:string"/>
|
||
|
|
<xs:element name="cite" type="xs:string"/>
|
||
|
|
|
||
|
|
<!-- ===== Block Elements ===== -->
|
||
|
|
|
||
|
|
<xs:element name="equation">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:simpleContent>
|
||
|
|
<xs:extension base="xs:string">
|
||
|
|
<xs:attribute name="label" type="xs:string" use="required"/>
|
||
|
|
</xs:extension>
|
||
|
|
</xs:simpleContent>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="figure">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:simpleContent>
|
||
|
|
<xs:extension base="xs:string">
|
||
|
|
<xs:attribute name="label" type="xs:string" use="required"/>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:extension>
|
||
|
|
</xs:simpleContent>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="table">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:sequence>
|
||
|
|
<xs:element ref="thead"/>
|
||
|
|
<xs:element ref="tbody"/>
|
||
|
|
</xs:sequence>
|
||
|
|
<xs:attribute name="label" type="xs:string" use="required"/>
|
||
|
|
<xs:attribute name="caption" type="xs:string" use="required"/>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="thead">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:sequence>
|
||
|
|
<xs:element ref="td" maxOccurs="unbounded"/>
|
||
|
|
</xs:sequence>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="tbody">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:sequence>
|
||
|
|
<xs:element ref="tr" maxOccurs="unbounded"/>
|
||
|
|
</xs:sequence>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="tr">
|
||
|
|
<xs:complexType>
|
||
|
|
<xs:sequence>
|
||
|
|
<xs:element ref="td" maxOccurs="unbounded"/>
|
||
|
|
</xs:sequence>
|
||
|
|
</xs:complexType>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
<xs:element name="td" type="xs:string"/>
|
||
|
|
|
||
|
|
<!-- ===== Misc ===== -->
|
||
|
|
|
||
|
|
<xs:element name="pagebreaker">
|
||
|
|
<xs:complexType/>
|
||
|
|
</xs:element>
|
||
|
|
|
||
|
|
</xs:schema>
|