我正在尝试在xml文件下面编写xsd文件。
<?xml version="1.0" ?>
<booklist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="p5_09_final.xsd">
<book kind="novel"> Purpose-Driven Life
<price>9000</price>
</book>
<book kind="computer"> XML and Ontology
<price>5000</price>
</book>
</booklist>
我尝试为这个xml文件编写xsd文件。 但是我无法处理包括字符串类型和子元素价格在内的书元素。 如何为此xml文件编写validate xsd文件?这是我写的xsd文件。这是无效的
<?xml version="1.0" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--
-->
<xsd:element name="booklist">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="book" type="ctBook" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ctBook" >
<xsd:sequence>
<xsd:element name="price" type="xsd:int" />
</xsd:sequence>
<xsd:attribute name="kind" type="ctKind" />
</xsd:complexType>
<xsd:simpleType name="ctKind">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="computer" />
<xsd:enumeration value="novel" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
答案 0 :(得分:1)
如果您希望能够插入文字和标签,则需要为图书使用混合内容类型。只需将mixed
属性添加到ctBook
complexType
<xsd:complexType name="ctBook" mixed="true">
但是,请注意,您无法控制文本的显示位置。它可以在<price>
元素之前和之后(或两者)。