Как значения атрибутов 'minOccurs' и 'maxOccurs' будут генерироваться внутри тега `element` файла WSDL? - PullRequest
0 голосов
/ 27 ноября 2018

У нас есть пользовательский код Java, который развернут в JBoss.Мы запускаем вызов веб-службы, и файл WSDL генерируется с использованием фреймворка Apache Axis.

У меня вопрос к некоторым тегам, атрибут minOccurs и maxOccurs присутствует, но длякакой-то другой тег, эти атрибуты отсутствуют.

Если я хочу атрибут minOccurs и maxOccurs внутри тега элемента, то где я должен настроить?Как эта 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"> не имеет свойства minOccurs и maxOccurs.

Где *, 1025 * обладает обоими свойствами.

1 Ответ

0 голосов
/ 18 января 2019

Ниже приведен пример кода 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);

Надеюсь, это поможет.

...