Xml XSD属性限制和值

Xml XSD属性限制和值,xml,enumeration,Xml,Enumeration,这似乎相当简单,但我还没有找到答案。我有一个同时使用属性和值的xml: <BusinessIdentifier businessIdentifierType="Customer Number">D123456788</BusinessIdentifier> D123456788 应根据架构验证以下内容: <xs:simpleType name="BusinessIdentifierTypes"> <xs:restriction base="x

这似乎相当简单,但我还没有找到答案。我有一个同时使用属性和值的xml:

<BusinessIdentifier businessIdentifierType="Customer Number">D123456788</BusinessIdentifier>
D123456788
应根据架构验证以下内容:

<xs:simpleType name="BusinessIdentifierTypes">
    <xs:restriction base="xs:string">
        <xs:enumeration value="Plan Number"/>
        <xs:enumeration value="Customer Number"/>
        <xs:enumeration value="Scheme Number"/>
        <xs:enumeration value="Agency Code"/>
    </xs:restriction>
</xs:simpleType>

<xs:element name="BusinessIdentifier">
<xs:complexType>
<xs:attribute name="businessIdentifierType" type="BusinessIdentifierTypes" use="required"/>                                             
</xs:complexType>
</xs:element>
<xs:element name="BusinessIdentifier">
                                        <xs:complexType>
                                            <xs:simpleContent>                                                  <xs:extension base="xs:string">                                                     <xs:attribute name="businessIdentifierType" type="BusinessIdentifierTypes" use="required"/>
                                                </xs:extension>
                                            </xs:simpleContent>
                                        </xs:complexType>
                                    </xs:element>


我可以看到D123456789的值缺失了,但我不确定如何将其与属性放在同一个元素中。这看起来与我试图实现的类似,但在尝试使用xs:extension标记时出现了一个错误

您需要将类型定义为“具有简单内容的复杂类型”。希望这能帮助您在您最喜欢的XML模式参考书中查找它。

是的,谢谢,我通过在模式中使用以下内容修复了此问题:

<xs:simpleType name="BusinessIdentifierTypes">
    <xs:restriction base="xs:string">
        <xs:enumeration value="Plan Number"/>
        <xs:enumeration value="Customer Number"/>
        <xs:enumeration value="Scheme Number"/>
        <xs:enumeration value="Agency Code"/>
    </xs:restriction>
</xs:simpleType>

<xs:element name="BusinessIdentifier">
<xs:complexType>
<xs:attribute name="businessIdentifierType" type="BusinessIdentifierTypes" use="required"/>                                             
</xs:complexType>
</xs:element>
<xs:element name="BusinessIdentifier">
                                        <xs:complexType>
                                            <xs:simpleContent>                                                  <xs:extension base="xs:string">                                                     <xs:attribute name="businessIdentifierType" type="BusinessIdentifierTypes" use="required"/>
                                                </xs:extension>
                                            </xs:simpleContent>
                                        </xs:complexType>
                                    </xs:element>