Tengo un XSD que no se crea por sí mismo, sino que se recibe de otra persona. Así que no puedo cambiar este XSD porque debo asegurar la comptibilidad con la otra parte.Cómo evitar declaraciones de espacio de nombres innecesarias en un elemento/etiqueta ordenada?
Usando XJC 2.2 y JAXB 2.2 usando el modo de unión sencilla Quiero crear un elemento raíz con el interior de un elemento de hola vacía. Pero cuando me reúnen, recibo mucha basura adicional del espacio de nombres. Lo cual para mí parece innecesario. (Funciona sin embargo, pero es más datos para enviar ect ...)
XSD rootElement:
código<element name="epp">
<complexType>
<choice>
<element name="greeting" type="epp:greetingType" />
<element name="hello" />
<element name="command" type="epp:commandType" />
<element name="response" type="epp:responseType" />
<element name="extension" type="epp:extAnyType" />
</choice>
</complexType>
</element>
Java:
Epp epp = new Epp();
epp.setHello("");
Resultado marshalled:
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string"></hello>
</epp>
Resultado preferido:
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello />
</epp>
O:
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello></hello>
</epp>
¿Hay alguna manera de hacer que esto sea posible, preferiblemente sin cambiar XSD o manualmente cambiar clases compiladas el xjc?
importa si puedo editar el título de la pregunta? Se siente como si estuvieras preguntando cómo generar un elemento sin contenido, pero eso se solucionó. El objetivo real es evitar las declaraciones superfluas del espacio de nombres. –
No hay problema, es mi primera pregunta aquí ... :), Sí, el objetivo es deshacerse de esas decs del espacio de nombres –
¿Intentó no establecer el valor Hello (no se ejecuta epp.setHello (""))? – altanis