Web Services 如何在WSDL文件的`element`标记内生成'minOccurs'和'maxOccurs'属性值?

hfwmuf9z  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(180)

我们在JBoss中部署了自定义的java代码。我们正在触发webservice调用,并使用Apache Axis框架生成WSDL文件。
我的问题是,对于一些标签,minOccursmaxOccurs属性存在,但对于其他一些标签,这些属性不存在。
如果我想在元素标签中添加minOccursmaxOccurs属性,那么我需要在哪里配置?这个Apache Axis框架将如何生成这些属性。

示例WSDL:

<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" 
xmlns:impl="urn:sif.siperian.com" xmlns:intf="urn:sif.siperian.com" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
targetNamespace="urn:sif.siperian.com">
<!--
WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT)
-->
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" targetNamespace="urn:sif.siperian.com">
<complexType name="Account">
<sequence>
<element name="accountNumber" nillable="true" type="xsd:string"/>
<element name="accountType" nillable="true" type="xsd:string"/>
<element name="cardholderName" nillable="true" type="xsd:string"/>
<element name="city" nillable="true" type="xsd:string"/>
<element name="expirationMonth" nillable="true" type="xsd:string"/>
<element name="expirationYear" nillable="true" type="xsd:string"/>
<element name="hubStateInd" nillable="true" type="xsd:string"/>
<element name="issuingCompany" nillable="true" type="xsd:string"/>
<element name="pkeySrcObject" nillable="true" type="xsd:string"/>
<element name="postalCode" nillable="true" type="xsd:string"/>
<element name="rowidObject" nillable="true" type="xsd:string"/>
<element name="securityCode" nillable="true" type="xsd:string"/>
<element name="source" nillable="true" type="xsd:string"/>
<element name="stateProvince" nillable="true" type="xsd:string"/>
<element name="streetName" nillable="true" type="xsd:string"/>
</sequence>
</complexType>

<complexType name="ArrayOfAccount">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" 
type="impl:Account"/>
</sequence>
</complexType>

</schema>
</wsdl:types>
</wsdl:definitions>

在上面的WSDL中,<complexType name="Account">没有属性minOccursmaxOccurs
其中as,<complexType name="ArrayOfAccount">具有这两种属性。

ruyhziif

ruyhziif1#

下面是一个Java代码示例,说明如何构建以下元素:

<element maxOccurs="1" minOccurs="0" name="Test" nillable="true" type="xsd:string"/>

Java代码:

elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("test");
elemField.setXmlName(new javax.xml.namespace.QName("http://www.test.com", "Test"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setMinOccurs(0);
elemField.setNillable(true);

希望这能帮上忙。

相关问题