Einschränkung XML-Attribut enum-Werte
Hier ist das XSD-schema, dass ich für einen WS
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="shipmentStatus" type="shipmentStatusType" />
<xs:complexType name="shipmentStatusType">
<xs:sequence>
<xs:element name="orderNumber" type="xs:int"/>
</xs:sequence>
<xs:attribute name="requestStatus">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="SHIPPED"/>
<xs:enumeration value="PENDING"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
Wenn ich die generierten Java-Klassen mit JAXB 2.1, erzeugt es nur eine Klasse, d.h. shipmentStatusType. Ich hatte erwartet, dass es generieren requestStatus als JAVA-Enum-aber das ist es nicht. Ist es ein erwartetes Verhalten oder habe ich da etwas verpasst?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur extrahieren Sie Ihre enum/einfache Typ-Deklaration der obersten Ebene und verwenden Sie es als Typ des XML-Attribut:
Es wird Ihnen eine solche enum:
und Klasse es:
Ich denke, dass Sie Fragen, die gleiche Sache da diese ja posten. Müssen Sie erstellen eine benutzerdefinierte Bindung-Datei zum anzeigen dieser einfache Typ einer enumeration.
Die binding-Datei:
Die generierte Klasse (des betreffenden Teils):