美文网首页收藏
第五十六章 生成的 WSDL 的详细信息 - types中的名称

第五十六章 生成的 WSDL 的详细信息 - types中的名称

作者: Cache技术分享 | 来源:发表于2024-07-13 08:47 被阅读0次

第五十六章 生成的 WSDL 的详细信息 - types中的名称空间

types中的名称空间

web服务的以下参数会影响<types>部分中名称空间的使用:

  • 如果指定了TYPENAMESPACE,则TYPENAMESPACE控制<schema>元素的targetNamespace属性。
  • 如果不指定TYPENAMESPACE,则targetNamespace属性由NAMESPACE参数指定。
  • RESPONSETYPENAMESPACE控制响应使用的类型的targetNamespace属性。
  • USECLASSNAMESPACES控制<types>是否也使用支持类型类中指定的名称空间。

每个支持xml的类的NAMESPACE参数也影响WSDL<types>元素。

考虑前面显示的web服务的以下变体:

Class WSDLSamples.Namespaces Extends %SOAP.WebService
{

Parameter SERVICENAME = "MyServiceName";

Parameter NAMESPACE = "https://www.mynamespace.org";

Parameter RESPONSENAMESPACE = "https://www.myresponsenamespace.org";

Parameter TYPENAMESPACE = "https://www.mytypes.org";

Parameter RESPONSETYPENAMESPACE = "https://www.myresponsetypes.org";

Parameter USECLASSNAMESPACES = 1;

///  adds two complex numbers
Method Add(a As ComplexNumberNS, b As ComplexNumberNS) As ComplexNumberNS [ WebMethod ]
{
    Set sum = ##class(ComplexNumberNS).%New()
    Set sum.Real = a.Real + b.Real
    Set sum.Imaginary = a.Imaginary + b.Imaginary

    Quit sum
}

}

WSDLSamples.ComplexNumberNS如下:

///  A complex number
Class WSDLSamples.ComplexNumberNS Extends (%RegisteredObject, %XML.Adaptor)
{

Parameter NAMESPACE = "https://www.complexnumbers.org";

Property Real As %Double;

Property Imaginary As %Double;

}

对于此web服务的WSDL<types>部分如下所示:

<types>
    <s:schema elementFormDefault="qualified" targetNamespace="https://www.mytypes.org">
        <s:import namespace="https://www.complexnumbers.org"/>
        <s:element name="Add">
            <s:complexType>
                <s:sequence>
                    <s:element minOccurs="0" name="a" type="ns2:ComplexNumberNS"/>
                    <s:element minOccurs="0" name="b" type="ns2:ComplexNumberNS"/>
                </s:sequence>
            </s:complexType>
        </s:element>
    </s:schema>
    <s:schema elementFormDefault="qualified" targetNamespace="https://www.complexnumbers.org">
        <s:complexType name="ComplexNumberNS">
            <s:sequence>
                <s:element minOccurs="0" name="Real" type="s:double"/>
                <s:element minOccurs="0" name="Imaginary" type="s:double"/>
            </s:sequence>
        </s:complexType>
    </s:schema>
    <s:schema elementFormDefault="qualified" targetNamespace="https://www.myresponsetypes.org">
        <s:import namespace="https://www.complexnumbers.org"/>
        <s:element name="AddResponse">
            <s:complexType>
                <s:sequence>
                    <s:element name="AddResult" type="ns2:ComplexNumberNS"/>
                </s:sequence>
            </s:complexType>
        </s:element>
    </s:schema>
</types>

相关文章

网友评论

    本文标题:第五十六章 生成的 WSDL 的详细信息 - types中的名称

    本文链接:https://www.haomeiwen.com/subject/erxqhjtx.html