我正在使用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添加schemalocation.I使用了ant codegen / bind工具 .