美文网首页收藏
第五十六章 生成的 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