我需要为一xml节点写schema文档,这个节点带一个属性,节点的为受限的简单内容,如下:<bookMark category="1">Mark1</bookMark>其中category为必须有的属性,属性内容为大于1小于10的值。Mark1为节点内容,节点内容限定为Mark1、Mark2、Mark3这三项之一,不能填其它内容。我试着用如下写法:<xs:element name="bookMark">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="xs:string">
<xs:enumeration value="Mark1" />
<xs:enumeration value="Mark2" />
<xs:enumeration value="Mark3" />
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
<xs:maxInclusive value="9" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
但会收到一个错误:xs:string是简单类型,不能去限定复杂类型。请教各位大侠,怎么写才能完成我的需求?
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="xs:string">
<xs:enumeration value="Mark1" />
<xs:enumeration value="Mark2" />
<xs:enumeration value="Mark3" />
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
<xs:maxInclusive value="9" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
但会收到一个错误:xs:string是简单类型,不能去限定复杂类型。请教各位大侠,怎么写才能完成我的需求?
<xs:restriction base="xs:string">
<xs:enumeration value="Mark1" />
<xs:enumeration value="Mark2" />
<xs:enumeration value="Mark3" />
</xs:restriction>
</xs:simpleType><xs:simpleType name="attributeType">
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
<xs:maxInclusive value="10" />
</xs:restriction>
</xs:simpleType>
<xs:element name="bookMark">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="contentType" >
<xs:attribute name="category" type="attributeType" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>写在这儿吧,希望能帮到遇到相似问题的人。