2009-06-29 73 views
0

我怎樣才能要求「地址」元素?如何在XSD中至少需要出現一次元素?

如果我對沒有「地址」的文檔執行XSD驗證,它會通過,但我希望它失敗。

這可能嗎?

http://en.wikipedia.org/wiki/XSD 請參閱示例xsd。它隱藏我的xsd樣本

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Address"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Recipient" type="xs:string" /> 
     <xs:element name="House" type="xs:string" /> 
     <xs:element name="Street" type="xs:string" /> 
     <xs:element name="Town" type="xs:string" /> 
     <xs:element name="County" type="xs:string" minOccurs="0" /> 
     <xs:element name="PostCode" type="xs:string" /> 
     <xs:element name="Country"> 
      <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:enumeration value="FR" /> 
       <xs:enumeration value="DE" /> 
       <xs:enumeration value="ES" /> 
       <xs:enumeration value="UK" /> 
       <xs:enumeration value="US" /> 
      </xs:restriction> 
      </xs:simpleType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
+0

例如XML和模式,請 – skaffman 2009-06-29 19:15:41

+0

似乎有一個問題,驗證一個Excel XML輸出到XSD的時候,它總是似乎過去了。我將發佈一個新的修訂問題。 – eschneider 2009-06-29 19:51:20

回答

6

您想在其定義中設置。

來自實例W3C Schools採取:

<xs:element name="item" maxOccurs="unbounded"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="title" type="xs:string" minOccurs="0"/> 
     <xs:element name="note" type="xs:string" minOccurs="1"/> 
     <xs:element name="quantity" type="xs:positiveInteger" minOccurs="0"/> 
     <xs:element name="price" type="xs:decimal" minOccurs="0"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

note元素必須出現item下至少一次,但其他人沒有出現。爲minOccursmaxOccurs

1

默認值是1,所以這個問題是別的地方...

相關問題