Axis2在没有OMNamespace的情况下创建OMElement

时间:2014-05-15 10:40:43

标签: java web-services axis2

在我的wsdl文件中,我有以下部分

<s:element maxOccurs="1" minOccurs="0" name="Request">
<s:complexType>
<s:sequence>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>

因此,我为此wsdl生成了axis2存根,并将其创建为元素Request this class

Request_type0 rqType0 = new Request_type0();

只有方法rqType0.setExtraElement(OMElement);

我需要发送这样的请求,

     <web:Request>
        <test1>
           <t>1</t>
        </test1>
        <test2>
           <t>2</t>
        </test2>
     </web:Request>

请帮帮我!!!

1 个答案:

答案 0 :(得分:1)

根据我对XML Schema的理解,你的wsdl片段指出在Request元素下面,只能有一个任何类型的元素。对于任何类型的更多元素,任何元素声明都应该存在maxOccurs =“unbounded” 有关详细说明,请参阅此链接:http://www.w3schools.com/schema/el_any.asp

要创建OMElements,您可以使用以下代码:

OMFactory fac = OMAbstractFactory.getOMFactory();
OMElement test1 = fac.createOMElement("test1", "", "");
OMElement t1 = fac.createOMElement("t", "", "");

t1.setText("1");
test1.addChild(t1);

希望这会有所帮助。 :)