2010-09-29 16 views
5

Próbuję zaprojektować schemat XSD, który pozwala elementom być w losowej kolejności i mieć maxOccurs = "nieograniczony".Schemat XSD, który umożliwia losową kolejność

Moje 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> 
+1

Czy możesz pokazać nam, co udało Ci się do tej pory? O których elementach mówisz? Zgaduję, że twój model pozwala elementom 'group' zawierać zarówno elementy' klucz' i 'grupy', a także, że chcesz, aby' root' miał ten sam model. Czy to prawda? –

+0

Tak, właśnie tego chcę. – magol

Odpowiedz

5

Chcesz <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> 

mam to przez wklejenie próbki XML do edytora Oxygen XML i za pomocą "Narzędzia> Generowanie/Konwersja schematu", z input = twój przykładowy dokument XML. (Może użyć Trang pod kołdrą ... Nie jestem pewien.) Potem poprawiłem wynik.

Powiązane problemy