【问题标题】:set xmlschema in xml在 xml 中设置 xmlschema
【发布时间】:2013-01-11 20:20:21
【问题描述】:

我正在使用 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 版本=“1.0”编码=“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 工具。

【问题讨论】:

    标签: java android xsd jibx


    【解决方案1】:

    JiBX 可以轻松处理多个命名空间。您所要做的就是在架构定义 (.xsd) 文件中指定所有命名空间。例如,这是我的一个架构定义中的一个 sn-p:








    JiBX 生成的 XML 具有您想要的命名空间定义。

    Don - JiBX 贡献者

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      相关资源
      最近更新 更多