xml espacio de nombres de Java, como modelar 'elección'?
-
23-08-2019 - |
Pregunta
¿Cuál es la mejor manera de representar en java una "elección" etiqueta de espacio de nombres? es decir.
<xs:complexType name="MyType">
<xs:sequence>
<!-- common elements here -->
<xs:element type="xs:string" name="name" ... />
</xs:sequence>
<xs:choice>
<xs:element name="stringValue" type="xs:string"></xs:element>
<xs:element name="intValue" type="xs:int"></xs:element>
</xs:choice>
</xs:complexType>
¿Cómo modelar esto en Java? Estaba pensando en algo como:
public class MyType
String name;
String stringValue;
int intValue;
...
pero esto no es seguro de la mejor manera, o estoy equivocado? Además, si quiero exponer servicios con Axis2 que utilizan ese tipo, ¿necesito para implementar algunas receptor de mensaje personalizado?
Solución
Por lo general, traducimos el xsd a objetos Java con jaxb o algún otro mecanismo de unión (de los cuales tiene varios en axis2). Aquellos generar objetos exactamente como lo ha demostrado: es decir, todos los atributos de las opciones están ahí y que no se ve nada que indique que sólo uno de ellos puede estar presente. Si está traduciendo el material nuevo en XML, esto sería sólo se nota si se cambia de validación. No hay ningún problema con opciones si usted consciente de que no debe establecer simultáneamente ambas variantes en Java -. El resultado a veces puede ser incluso que ninguno de ellos lo hace en el XML generado