我正在尝试将子类编组为超类,并将xsi:type信息作为XML Root元素属性。
目前这就是我所拥有的(让我们说..):
<xmlInvoiceType>
<xmlInvoiceType>
e.g:
jaxbWrapper.setXmlDocumentType(xmlInvoiceTypeInstance);
//会做的但是额外的根
我想得到的是:
<XMLDOCUMENTTYPE ... ... xsi:type="XML_INVOICE_TYPE">
</XMLDOCUMENTTYPE>
知道怎么做吗?
答案 0 :(得分:2)
尝试编组:
new JAXBElement(new QName("XMLDOCUMENTTYPE"), XMLDOCUMENTTYPE.class, xmlInfoiceTypeInstance)
答案 1 :(得分:0)
xsi:仅当类型不与类匹配时才会呈现类型。
试试这个:
// create the type and add childs and attributes ...
XmlInVoiceType xmlInVoice = new XmlInVoiceType();
// map the element to object to force xsi:type
final JAXBElement<?> object = new JAXBElement<>(new QName("http://your/namespace/xmlinvoice", "xmlinvoice"), Object.class, xmlInVoice);