簡體   English   中英

如何對XML Schema Complex類型進行限制?

[英]How to make restrictions on XML Schema Complex type?

我正在閱讀w3cschools( http://www.w3schools.com/schema/schema_complex.asp )上的教程,但他們似乎沒有提到如何在復雜類型上添加限制。

比如我有這個架構。

<xs:element name="employee">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

現在我想確保名字長度不超過10個字符。 我該怎么做呢?

我試圖為firstname添加簡單類型,但它說我不能這樣做,因為我使用的是復雜類型。

那么我如何在文件中加上這樣的限制,以便我給模式的人不要嘗試將firstname設為100個字符。

您可以使用XSD進行一些限制:

假設您想要firstName不超過10個字符。 您將使用以下內容:

<xs:element name="employee">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

對於更復雜的約束,我猜你必須做一些基於代碼的檢查。

<xs:element name="employee">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="10"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

這解決了你的問題嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM