0
我正在研究基於子集Docbook 5標記的XSD。下面是這個XSD只爲說明問題解的幾個標籤的非常小的一部分:如何在基於Docbook標籤的XSD中包含MathML標籤?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook" targetNamespace="http://docbook.org/ns/docbook" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<xs:element name="book">
<xs:annotation>
<xs:documentation>Root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="chapter" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="xml:lang" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="chapter">
<xs:complexType>
<xs:sequence>
<xs:element ref="informalequation" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="xml:lang" use="required"/>
<xs:attribute ref="xml:id" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="informalequation">
<xs:complexType>
<xs:attribute ref="xml:id"/>
<xs:attribute name="condition" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="block"/>
<xs:enumeration value="inline"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
眼下,元<informalequation>
沒有內容,只有屬性。我想要做的就是把它裏面的MATHML格式,如公式:
<math display='block'>
<mrow>
<msqrt>
<mn>2</mn>
</msqrt>
</mrow>
</math>
而且這裏的問題是...我不知道該怎麼做,因爲MATHML標籤中不包含的Docbook ...我使用Altova XMLSpy 2011企業版創建我的XSD。我已經從http://www.w3.org/Math/XMLSchema/下載了MathML 3 XSD,但我不知道下一步該怎麼做。有誰知道如何做到這一點,並得到一個有效的XSD這樣我就可以創建基於其與此結構的XML?:
<?xml version="1.0" encoding="UTF-8"?>
<book xml:lang="en" version="5.0" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<chapter xml:lang="en" xml:id="1">
<informalequation condition="block">
<math display='block'>
<mrow>
<msqrt>
<mn>2</mn>
</msqrt>
</mrow>
</math>
</informalequation>
</chapter>
我感謝所有幫助。
謝謝!