2013-07-25 53 views
0

这似乎很简单,但我还没有找到答案。我对XML中的属性和值一起:XSD属性限制和值

<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:扩展标记时出现错误

回答

0

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

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>