【问题标题】:Adding Data in XmlObject在 XmlObject 中添加数据
【发布时间】:2013-02-13 10:30:03
【问题描述】:

我必须编写一个符合Axis2 1.5.4 的Web 服务客户端。给出问题的部分代码如下:

String my_var = "some value";
MetaDataEntry metaDataEntry = MetaDataEntry.Factory.newInstance();
metaDataEntry.setKey(MetaDataKey.Enum.forInt(key));
metaDataEntry.setValue(my_var);

现在基本上setKey 可以正常工作,但setValue 需要XmlObject 值,而根据我得到的示例响应文档,xml 结构应该是这样的:

....
    <MetaDataEntry>
        <key>some_key_enum</key>
        <value>some _value</value>
    </MetaDataEntry>
....

我尝试过使用:

MetaDataEntry.setValue(XmlObject.Factory.parse("<value>"+my_var+"</value>"));

但它将值标记格式化为&lt;value&gt;&lt;value&gt;some_value&lt;/value&gt;&lt;/value&gt;。我也试过:

metaDataEntry.setValue(XmlObject.Factory.parse(my_var));

但它给出了例外:意外元素:CDATA。谁能帮我写出正确的陈述?

【问题讨论】:

  • 你的 XSD 是什么样的?
  • 唯一有问题的元素是值元素。 value 元素被声明为 xs:anytype。现在,当通过 wsdl2java 生成客户端代码时,将为 MetaDataEntry 元素创建一个接口,其中我有 setValue 方法并接受 XmlObject 类型的值。我基本上面临的问题是如何在 setValue 方法中传递一个简单的文本值,这样就没有值标签的嵌套。

标签: java xml web-services cdata xmlbeans


【解决方案1】:

尝试使用 XmlString 值:

metaDataEntry.setValue(XmlString.Factory.newValue(my_var));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2016-10-06
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多