【发布时间】: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>"));
但它将值标记格式化为<value><value>some_value</value></value>。我也试过:
metaDataEntry.setValue(XmlObject.Factory.parse(my_var));
但它给出了例外:意外元素:CDATA。谁能帮我写出正确的陈述?
【问题讨论】:
-
你的 XSD 是什么样的?
-
唯一有问题的元素是值元素。 value 元素被声明为 xs:anytype。现在,当通过 wsdl2java 生成客户端代码时,将为 MetaDataEntry 元素创建一个接口,其中我有 setValue 方法并接受 XmlObject 类型的值。我基本上面临的问题是如何在 setValue 方法中传递一个简单的文本值,这样就没有值标签的嵌套。
标签: java xml web-services cdata xmlbeans