簡體   English   中英

xml模式xsd:all和另一個元素

[英]xml schema xsd:all and one another element

我有3個全部必需的元素,但可以按任何順序排列,在它們之后有一個可選元素,maxOccours無界。 如何寫XSD?

<!-- pid is required, unique (positive) integer 
            (can be used as a key for persons);
            the name, surname, salary elts. can be ordered in any order -->
            <person pid="1">    
                <!-- name is required, non-empty string -->  
                <name>Pavel</name>   
                <!-- surname is required, non-empty string -->
                <surname>Novák</surname> 
                <!-- salary is required, positive number 
                 with 2 decimal places precision, e.g. 10000.50 -->
                <salary>200000.00</salary> 
                <!-- note optional element, repeatable, contains any string -->  
                <note>Poznámka</note>   
            </osoba> 

前三個元素對應於“所有”模型組,而整體設置是一個序列。

據我所知,XML Schema不允許在序列模型組內嵌套“所有”模型組。

以下架構驗證了超集,其中注釋也可以位於任何地方。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="person">
    <xs:complexType>
      <xs:all>
        <xs:element name="name" type="xs:string"/>
        <xs:element name="surname" type="xs:string"/>
        <xs:element name="salary" type="xs:decimal"/>
        <xs:element name="note" type="xs:string" maxOccurs="unbounded"/>
      </xs:all>
      <xs:attribute name="pid" type="xs:integer" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

從那里,可以使用類型限制將字符串進一步微調為非空和十進制值。

我解決了這是選擇(所有訂單)和順序內的順序的組合。

暫無
暫無

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

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