bedingte Attribute in XSD

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • bedingte Attribute in XSD

    Hallo zusammen,

    was ich hier machen möchte, ist nach der Auswahl eines Wertes des Attributs "type", wenn es den Wert a besitzt, weitere Attribute der Gruppe "mygroup-a" zuzulassen. Diese sollen dann auch benötigt werden. Das Gleiche beim Typwert "b" und "mygroup-b".

    ich habe es mal wie dem nachfolgenden Beispiel probiert, allerdings funktioniert es so nicht.

    Wie geht Das denn richtig?

    Quellcode

    1. <xsd:complexType name="abc">
    2. <xsd:attribute name="type" type="mytype" use="required" />
    3. <xsd:assert test="@type= 'a'" type="mytype-a">
    4. <xsd:attributeGroup ref="static-attribute-size" />
    5. </xsd:assert>
    6. <xsd:assert test="@type='b'" type="mytype-b">
    7. <xsd:attributeGroup ref="static-attribute-periode" />
    8. </xsd:assert>
    9. </xsd:complexType>
    10. <xsd:simpleType name="mytype">
    11. <xsd:restriction base="xsd:string">
    12. <xsd:enumeration value="a" />
    13. <xsd:enumeration value="b" />
    14. </xsd:restriction>
    15. </xsd:simpleType>
    16. <xsd:attributeGroup name="mygroup-a">
    17. <xsd:attribute name="b" type="xsd:boolean" use="required" />
    18. <xsd:attribute name="c" type="xsd:boolean" use="required" />
    19. <xsd:attribute name="d" type="xsd:boolean" use="required" />
    20. <xsd:attribute name="e" type="xsd:boolean" use="required" />
    21. </xsd:complexType>
    22. <xsd:attributeGroup name="mygroup-b">
    23. <xsd:attribute name="f" type="xsd:boolean" use="required" />
    24. <xsd:attribute name="g" type="xsd:boolean" use="required" />
    25. <xsd:attribute name="g" type="xsd:boolean" use="required" />
    26. <xsd:attribute name="i" type="xsd:boolean" use="required" />
    27. <xsd:attribute name="j" type="xsd:boolean" use="required" />
    28. <xsd:attribute name="k" type="xsd:boolean" use="required" />
    29. </xsd:complexType>
    Alles anzeigen


    Danke schonmal für die Hilfe.