Domanda

sto cerco di progettare uno schema XSD che consentono elementi di essere in un ordine casuale e hanno maxOccurs = "illimitata".

Il mio XML:

<root>
  <key></key>
  <group></group>
  <group>
     <key></key> 
     <key></key>
     <group>
        <key></key> 
        <key></key>
     </group>
  </group> 
  <key></key>
  <key></key> 
  <group>
     <key></key> 
     <key></key>
     <key></key>
  </group>
  <key></key>
</root>
È stato utile?

Soluzione

Si vuole <xs:choice>:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:complexType name="groupType">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:element name="group" type="groupType"/>
         <xs:element name="key"/>
      </xs:choice>
   </xs:complexType>

   <xs:element name="root" type="groupType" />
</xs:schema>

Ho ottenuto questo incollando il tuo XML campione in editor XML ossigeno, e l'utilizzo di "Strumenti> Genera / Convertire Schema", con il contributo = il documento XML di esempio. (Si può utilizzare Trang sotto le coperte ... non sono sicuro). Poi ho ottimizzato il risultato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top