我遇到了使用属性限制类型的问题。它看起来像这样(我无法改变它)。
<xsd:complexType name="TypeWithAttr" abstract="true">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="type" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
我需要它限制,所以它只能采取2个值。我试过这样做
<xsd:complexType name="TypeWithAttrRestriction">
<xsd:complexContent>
<xsd:restriction base="TypeWithAttr">
<xsd:enumeration value="Green"/>
<xsd:enumeration value="Blue"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
但是它说我不能在限制下进行枚举。
答案 0 :(得分:1)
如果您需要限制包含纯文字的内容,则应使用:simpleContent
代替complexContent
。
这样的事情应该有效:
<xsd:complexType name="TypeWithAttrRestriction">
<xsd:simpleContent>
<xsd:restriction base="TypeWithAttr">
<xsd:enumeration value="Green"/>
<xsd:enumeration value="Blue"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>