我正在使用 jibx lib 生成 xsd 到 java 代码。我也使用 ant 创建了 jar 文件。我们需要在哪里设置 xmlschemalocation,所以当我们如下执行 marshalmessage 时,我们可以获得 xsd 位置。
public String marshalMessage(Object message)
{
try {
IBindingFactory jc = BindingDirectory.getFactory(DeviceCapability.class);
IMarshallingContext marshaller = jc.createMarshallingContext();
ByteArrayOutputStream out = new ByteArrayOutputStream();
marshaller.marshalDocument(message, URL_ENCODING, null, out);
return out.toString(STRING_ENCODING);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (JiBXException e) {
e.printStackTrace();
}
return null;
}
//这是用来创建对象的
DeviceCapability devicecapability = new DeviceCapability();
devicecapability.setHref("Hello");
String xml = marshalMessage(devicecapability);
生成的 xml o/p 是 ?xml version="1.0" encoding="UTF-8"?> /DeviceCapability xmlns="http://zigbee.org/sep" href="Hello"//>
我想要像下面这样的 o/p ?xml version="1.0" encoding="UTF-8"?>DeviceCapability xmlns="http://zigbee.org/sep" href="Hello" xmlns:xsi="http:// /www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://zigbee.org/abc abc.xsd/>
有人可以告诉我如何使用 jibx 添加模式定位。我使用过 ant codegen/bind 工具。