【问题标题】:WSDL: to produce <array> tag in SOAP fileWSDL:在 SOAP 文件中生成 <array> 标记
【发布时间】:2014-04-29 10:32:18
【问题描述】:

WSDL:在 SOAP 文件中生成标签

以下是当前 WSDL 文件的一部分:

<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>

现在生成的 SOAP xml 是:

<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>

但是想要在SOAP下面:添加标签,我该如何修改WSDL,谢谢: xxxxxxxxxxxxx--------------------------------------------xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  <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>

【问题讨论】:

    标签: java web-services xsd wsdl


    【解决方案1】:

    您的问题有点令人困惑,但如果您尝试获取数据对象数组,则问题看起来像是您在错误的位置添加了“maxOccurs”。如果将它添加到序列节点,它应该会生成一个数据对象数组。

    这个:

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

    应该是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多