У меня есть XSD, который не был создан самим, а получен от другой стороны. Поэтому я не могу изменить этот XSD, потому что я должен обеспечить совместимость с другой стороной.
Используя XJC 2.2 и JAXB 2.2 в режиме простого связывания, я хочу создать корневой элемент с пустым элементом hello внутри. Но при упорядочивании я получаю много лишнего дерьма с пространством имен. Что мне кажется ненужным. (Это работает, но это больше данных для отправки и т. Д.)
XSD Rootelement:
<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("");
Упорядоченный результат:
<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>
Предпочтительный результат:
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello />
</epp>
Или:
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<hello></hello>
</epp>
Есть ли любой способ сделать это возможным, желательно без изменения XSD или ручного изменения скомпилированных классов XJC?