我正在尝试为具有自定义类型的元素编写xsd类型模式,以包含用于扩展基类型的附加属性。我遇到了使语法正确的问题。
<xs:element name="graphs">
<xs:complexType>
<xs:sequence>
<xs:element name="graph"
minOccurs="1"
maxOccurs="unbounded"
type="graphType">
<!-- child elements -->
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="graphType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
我认为这将是非常普遍的事情,但阅读了许多内容和论坛,我似乎无法找到适合我的答案。
编辑:其实我不希望父节点(图)包含字符串数据,只有xml ..
答案 0 :(得分:2)
我想出了这个......
<xs:element name="graphs">
<xs:complexType>
<xs:sequence>
<xs:element name="graph"
minOccurs="1"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="sequence" type="sequenceType"/>
</xs:sequence>
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="sequenceType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
我认为它在语法上是有效的。它看起来是否正确?