0

这似乎很简单,但我还没有找到答案。我有 xml 一起使用属性和值:

<BusinessIdentifier businessIdentifierType="Customer Number">D123456788</BusinessIdentifier>

哪个应该针对架构进行验证:

<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>

我可以看到我在某处缺少值 D123456789 但我不确定如何将它放在同一个元素和属性中。这看起来类似于我试图实现XML Schema How to Restrict Attribute by Enumeration但尝试使用 xs:extension 标记时出现错误

4

2 回答 2

0

是的,谢谢,我通过在架构中使用以下内容解决了这个问题:

<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>
于 2013-08-05T14:06:38.150 回答
0

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

于 2013-07-25T14:01:03.137 回答