Hallo,
ich entwickle aktuell eine Anwendung bei der XML mit JAXB (JAVA 7) verarbeitet wird.
Hierbei muss ich auch ein XML-Schema erstellen.
Bei der Definition eines eigenen einfachen Datentypen (xsd:simpleType) ist es möglich einen Basistyp einzuschränken. Abhhänig vom Basistyp bzw. abhängig vom Wert eines Attributs sind unterschiedliche Elemente (xsd:enumeration, xsd:minInclusive) erlaubt.
In den Beispielen sieht man, dass wenn base="xsd:string" ist, eine Sequenz an xsd:enumeration Elementen erlaubt ist (bzw. sinnvoll ist) und wenn base="xsd:int" ist, die Elemente xsd:minInclusive und xsd:maxInclusive erlaubt sind (bzw. sinnvoll sind).
Könnte ich so eine Semantik auch in meinem Schema beschreiben? Also konkret möchte ich, dass nach einem Element, dass als Wert einen Enum enthält und abhänigg von dem Wert eine bestimmte Sequenz an Elementen erlaubt ist? Kann ich so etwas im XML-Schema beschreiben und kann JAXB in JAVA 7 dies verarbeiten?
Beispiel:
Wenn <Enum/> den Wert "INT" enthält, darf auf <Enum/> das Element <IntParam/> folgen und wenn <Enum/> den Wert "DOUBLE" enthält, darf auf <Enum/> das Element <DoubleParam/> folgen.
Es handelt sich um kein praxisnahes Beispiel, es soll nur die Problemstellung verdeutlichen.
ich entwickle aktuell eine Anwendung bei der XML mit JAXB (JAVA 7) verarbeitet wird.
Hierbei muss ich auch ein XML-Schema erstellen.
Bei der Definition eines eigenen einfachen Datentypen (xsd:simpleType) ist es möglich einen Basistyp einzuschränken. Abhhänig vom Basistyp bzw. abhängig vom Wert eines Attributs sind unterschiedliche Elemente (xsd:enumeration, xsd:minInclusive) erlaubt.
Code:
<xsd:simpleType name="type">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AN"/>
<xsd:enumeration value="AUS"/>
</xsd:restriction>
</xsd:simpleType>
Code:
<xsd:simpleType name="type">
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="255"/>
</xsd:restriction>
</xsd:simpleType>
In den Beispielen sieht man, dass wenn base="xsd:string" ist, eine Sequenz an xsd:enumeration Elementen erlaubt ist (bzw. sinnvoll ist) und wenn base="xsd:int" ist, die Elemente xsd:minInclusive und xsd:maxInclusive erlaubt sind (bzw. sinnvoll sind).
Könnte ich so eine Semantik auch in meinem Schema beschreiben? Also konkret möchte ich, dass nach einem Element, dass als Wert einen Enum enthält und abhänigg von dem Wert eine bestimmte Sequenz an Elementen erlaubt ist? Kann ich so etwas im XML-Schema beschreiben und kann JAXB in JAVA 7 dies verarbeiten?
Beispiel:
Wenn <Enum/> den Wert "INT" enthält, darf auf <Enum/> das Element <IntParam/> folgen und wenn <Enum/> den Wert "DOUBLE" enthält, darf auf <Enum/> das Element <DoubleParam/> folgen.
Es handelt sich um kein praxisnahes Beispiel, es soll nur die Problemstellung verdeutlichen.
Code:
<Element>
<Enum>INT</Enum>
<IntParam>4</IntParam>
<Element/>
<Element>
<Enum>DOUBLE</Enum>
<DoubleParam>3.45693</DoubleParam>
</Element>