使用nusoap添加simpleContent

时间:2013-05-22 07:32:09

标签: php xml wsdl nusoap simpletype

我的问题似乎很简单,但我找不到任何解决方案。

我使用nusoap进行webservice,我需要生成这样的结构(来自php arrray):

<ns0:measurementUnitList>
       <ns0:measurementUnit type="type1">type1.value</ns0:measurementUnit>
       <ns0:measurementUnit type="type2">type1.value</ns0:measurementUnit>
</ns0:measurementUnitList>

需要的xsd如下所示:

<xsd:complexType name="measurementUnit">
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="type" type="xsd:string" use="required" >                    
                </xsd:attribute>
            </xsd:extension>
        </xsd:simpleContent>
</xsd:complexType>

...而有问题的php数组部分看起来像这样:

[measurementUnitList] => Array(
     [measurementUnit] => Array
     (
        [0] => Array
        (
            [type] => type1
            [unit] => type1.value
        )

        [1] => Array
        (
            [type] => type2
            [unit] => type2.value
        )

     )

)

在这个例子中,必须从php数组的“type”元素生成“type”属性,内容应该来自同一个php数组的“unit”元素。

问题在于无论如何我尝试将“unit”放入元素的内容中,库会在“measurementUnit”元素中生成一个新的“unit”元素,其内容如下:

<ns1:measurementUnitList>
    <ns1:measurementUnit type="type1">
         <ns1:unit>type1.value</ns1:unit>
    </ns1:measurementUnit>
    <ns1:measurementUnit type="type2">
         <ns1:unit>type2.value</ns1:unit>
    </ns1:measurementUnit>
</ns1:measurementUnitList>

所以我无法弄清楚,我怎么可以简单地使用该值而不需要任何额外的标签。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

试试这个

[measurementUnitList] => Array(
     [measurementUnit] => Array
     (
        [0] => Array
        (
            [type] => type1
            [!] => type1.value
        )

        [1] => Array
        (
            [type] => type2
            [!] => type2.value
        )

     )

)