feat: add XThesis standard
This commit is contained in:
257
docs/XThesis.xsd
Normal file
257
docs/XThesis.xsd
Normal file
@@ -0,0 +1,257 @@
|
||||
<?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>
|
||||
Reference in New Issue
Block a user