2013-07-25 163 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>