WSDL: to produce tag in SOAP file

below is part of current WSDL file:

<xsd:complexType name="issue">
    <xsd:sequence>
         <xsd:element name="payload" type="tns:payload" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="payload">
    <xsd:sequence>
         <xsd:element name="data" type="tns:data" maxOccurs="unbounded" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="data">
    <xsd:sequence>
        <xsd:element name="key">
            <xsd:simpleType>
                <xsd:restriction base="xsd:string" />
            </xsd:simpleType>
        </xsd:element>
        <xsd:element name="value">
            <xsd:simpleType>
                <xsd:restriction base="xsd:string" />
            </xsd:simpleType>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

now the generated SOAP xml is:

<record name="payload" javaclass="com.wm.data.BasicData">
    <record name="data" javaclass="com.wm.data.BasicData">
      <value name="key">xx</value>
      <value name="value">xx</value>
    </record>
    <record name="data" javaclass="com.wm.data.BasicData">
      <value name="key">xx</value>
      <value name="value">xx</value>
    </record>
    <record name="data" javaclass="com.wm.data.BasicData">
      <value name="key">xx</value>
      <value name="value">xxCI/AFR-CN</value>
    </record>
</record>

but below SOAP is wanted: to add tag , how can I modify the WSDL, thank you: xxxxxxxxxxxxx--------------------------------------------xxxxxxxxxxxxxxxxxxxxxxxxxxx

  <record name="payload" javaclass="com.wm.data.BasicData">
    <array name="data" type="record" depth="1">
      <record javaclass="com.wm.data.BasicData">
        <value name="key">xxx</value>
        <value name="value">xx</value>
      </record>
      <record javaclass="com.wm.data.BasicData">
        <value name="key">xxx</value>
        <value name="value">xxx</value>
      </record>
      <record javaclass="com.wm.data.BasicData">
        <value name="key">xx</value>
        <value name="value">xx</value>
      </record>
    </array>
  </record>
有帮助吗?

解决方案

Your question is a little confusing, but if you are trying to get an array of data objects, the problem looks like you added 'maxOccurs' in the wrong spot. If you add it to the sequence node, it should produce an array of data objects.

this:

<xsd:sequence>
     <xsd:element name="data" type="tns:data" maxOccurs="unbounded" />
</xsd:sequence>

should be:

<xsd:sequence minOccurs="0" maxOccurs="unbounded">
     <xsd:element name="data" type="tns:data"  />
</xsd:sequence>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top