我正在尝试编组一个子元素对象以获取 xml 字符串。然后使用这个 xml 字符串我也想解组。
为了澄清,我已经从 xsd 生成了我的 jaxb 类,并且我在 ObjectFactory 中没有任何方法可以提供所需的对象。
xsd 定义:IBUSStatusType 是根元素 IBUSMessage 的子元素
我想编组一个 IBUSStatusType 的对象。为此,我的编组代码如下:
public static StringWriter getStringFromIBUSStatusType(IBUSStatusType iBUSStatusType) throws JAXBException
{
StringWriter stringWriter = new StringWriter();
JAXBContext jaxbContext = JAXBContext
.newInstance(com.myhealth.soa.ibus.v1_1.ObjectFactory.class);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper",
new DefaultNamespacePrefixMapper());
marshaller.setProperty("com.sun.xml.bind.xmlDeclaration", Boolean.FALSE);
QName qName = new QName("com.myhealth.soa.ibus.v1_1", "iBUSStatusType");
JAXBElement<IBUSStatusType> root = new JAXBElement<>(qName, IBUSStatusType.class, iBUSStatusType);
marshaller.marshal(root, stringWriter);
return stringWriter;
}
当我编组 IBUSStatusType 对象时,我得到了这个 xml 字符串:
<ns2:iBUSStatusType xmlns:tns="http://soa.myhealth.com/ibus/v1.1.0" xmlns:ns2="com.myhealth.soa.ibus.v1_1"><tns:code>8</tns:code><tns:description>Completed With Warning</tns:description><tns:Messages><tns:Message><tns:Reason><tns:description>Subscriber's email missing</tns:description><tns:code>2187</tns:code></tns:Reason><tns:type>1</tns:type><tns:Context><tns:description>WARN</tns:description>
繁星coding
Helenr
相关分类