我想为我的XSD中的每个元素分配一个属性。
示例:
mySchema.xsd
每个元素:
<xs:element name="description" type="xs:string" />
<xs:element name="benefits" type="xs:string"/>
<xs:element name="best_practices" type="xs:string"/>
<xs:element name="example" type="xs:anyURI"/>
我希望他们有这个属性:
<xs:attribute name="label" type="xs:string"/>
在这个例子中,元素只有4,但在我的情况下有很多元素,...任何建议?
谢谢!
答案 0 :(得分:0)
如果您要添加属性,那么您实际上是将xs:string
中的元素的类型更改为包含该属性的自定义complexType
。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.com/namespace"
xmlns:tns="http://example.com/namespace"
elementFormDefault="qualified">
<xs:complexType name="labelledString">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="label" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
使用此类型,您只需在元素上使用type="tns:labelledString"
而不是type="xs:string"
,同样的方法适用于anyURI
(使用另一种自定义类型xs:anyURI
1}})。