2013-02-27 60 views
0

我必须编写符合Axis2 1.5.4的Web服务客户端。的代码给该问题的部分如下:在XmlObject中添加数据

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。任何人都可以帮我写正确的声明吗?

+0

什么是您的XSD样子? – 2013-02-28 15:33:05

+0

有问题的唯一元素是值元素。 value元素被声明为xs:anytype。现在,当通过wsdl2java生成客户端代码时,为MetaDataEntry元素创建一个接口,并且在那里我有setValue方法并接受XmlObject类型的值。我基本上面临的问题是如何在setValue方法中传递简单的文本值,以便不存在嵌套的值标记。 – 2013-02-28 20:36:24

回答

1

尝试使用了XmlString值:

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

非常感谢凯文。这解决了我的问题。 – 2013-03-05 05:57:53