2009-05-12 6 views
0

ich folgende XML erstellen möchten:gleiche Element, mehrere Typen mit XML-Schema

<?xml version="1.0"?> 
<foo> 
    <bar type="alpha"> 
    <first /> 
    <second /> 
    </bar> 
    <bar type="bravo"> 
    <third /> 
    <fourth /> 
    </bar> 
</foo> 

Der springende Punkt ist, dass ich „bar“ wollen andere Kind-Elemente haben auf ihren Typ abhängig - wenn der Typ ist "Alpha" dann müssen die Kinder "erste" und "zweite" sein, und wenn der Typ "bravo" ist, dann müssen die Kinder "dritte" und "vierte" sein. XSD-Validierer scheinen die Idee des gleichen Elements, das mit zwei verschiedenen Regelsätzen definiert ist, nicht zu mögen.

Wie konstruiere ich ein XML-Schemadokument, um diese Regel durchzusetzen?

Antwort

1

Leider können Sie dies nicht mit XDS tun, siehe Schemakomponentenbeschränkung cos-element-consistent. Sie können das Inhaltsmodell entweder als Problemumgehung ändern oder z. Relax NG, das wird dies ermöglichen.

+0

@Michael Kay Das ist die teuflischste Eigenschaft von XSD überhaupt. –

Verwandte Themen