是否可以在这个wsdl中扩展这个complexType?

问题描述 投票:0回答:1

我有一个wsdl是这样的,我无法改变。

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:typens="urn:{{var wsdl.name}}" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"
    name="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}">
    <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento">
            <import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/" />
            <complexType name="salesOrderEntity">
                <all>
                    <element name="increment_id" type="xsd:string" minOccurs="0" />
                    <!-- lot more elements come here -->
                </all>
            </complexType>
        </schema>
    </types>
</definitions>

我想对这个 complexType 做一个扩展。salesOrderEntity我看到在一些wsdl中可以做到这一点(我从这里得到的参考).

现在我很困惑,是否可以以及如何扩展这个特定的 complexType

我试过的:

    <complexType name="salesOrderCustomEntity">
        <complexContent>
            <extension base="salesOrderEntity">
                <sequence>
                    <element name="some_field" type="xsd:string" minOccurs="0"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>

    <complexType name="salesOrderCustomEntity">
        <complexContent>
            <extension base="salesOrderEntity">
                <all>
                    <element name="some_field" type="xsd:string" minOccurs="0"/>
                </all>
            </extension>
        </complexContent>
    </complexType>

但对于这两个元素,我都得到了 "some_field "元素,但没有得到所有的元素。salesOrderEntity complexType.

xml magento wsdl
1个回答
1
投票

看来我是找到了。声明中写道:"你必须扩展基本的 complexType。

xmlns:typens="urn:{{var wsdl.name}}"

所以你必须扩展基本的 complexType typens:salesOrderEntity 而不仅仅 salesOrderEntity

<complexType name="salesOrderCustomEntity">
    <complexContent>
        <extension base="typens:salesOrderEntity">
            <all>
                <element name="some_field" type="xsd:string" minOccurs="0"/>
            </all>
        </extension>
    </complexContent>
</complexType>

对不起,这个橡皮鸭子调试。

© www.soinside.com 2019 - 2024. All rights reserved.