收藏

第六十三章 生成的类的详细信息 - 数组属性的创建

2024-07-21  本文已影响0人  Cache技术分享

第六十三章 生成的类的详细信息 - 数组属性的创建

数组属性的创建

默认情况下,SOAP 向导会在某些情况下创建数组类型的属性。如果需要,可以使用“不创建数组属性”选项来创建具有不同结构的属性。

具体来说,考虑包含以下类型的 WSDL

<s:complexType name="Obj">
    <s:sequence>
        <s:element minOccurs="0" name="MyProp" type="test:Array"/>
    </s:sequence>
</s:complexType>
<s:complexType name="Array">
    <s:sequence>
        <s:element maxOccurs="unbounded" minOccurs="0" name="Item" nillable="true" type="test:Item"/>
    </s:sequence>
</s:complexType>
<s:complexType name="Item">
    <s:simpleContent>
        <s:extension base="s:string">
<s:attribute name="Key" type="s:string" use="required"/>
        </s:extension>
    </s:simpleContent>
</s:complexType>

默认情况下,SOAP 向导生成以下类:

Class testws.Obj Extends (%RegisteredObject, %XML.Adaptor)
{

Parameter ELEMENTQUALIFIED = 1;

Parameter NAMESPACE = "https://testws.org";

Parameter XMLNAME = "Obj";

Parameter XMLSEQUENCE = 1;

Property MyProp As array Of %String(MAXLEN = "", XMLITEMNAME = "Item", 
XMLKEYNAME = "Key", XMLNAME = "MyProp", XMLPROJECTION = "COLLECTION");

}

如果在使用 SOAP 向导时选择“不创建数组属性”,则生成的 Obj 类中的属性 MyProp 将定义如下:

Property MyProp As list Of testws.Item(XMLITEMNAME = "Item", XMLNAME = "MyProp", XMLPROJECTION = "COLLECTION");

此属性引用以下类,SOAP 向导也会生成该类:

Class testws.Item Extends (%SerialObject, %XML.Adaptor)
{

Parameter ELEMENTQUALIFIED = 1;

Parameter NAMESPACE = "https://testws.org";

Parameter XMLNAME = "Item";

Parameter XMLSEQUENCE = 1;

Property content As %String(MAXLEN = "", XMLNAME = "content", XMLPROJECTION = "CONTENT");

Property Key As %String(MAXLEN = "", XMLNAME = "Key", XMLPROJECTION = "ATTRIBUTE") 
[ Required, SqlFieldName = _Key ];

}

生成的类中的 Web 方法的附加说明

本节包含有关生成的 Web 客户端类中的 Web 方法的附加说明。

所使用的算法没有记录并且可能会发生变化,恕不另行通知。

   Quit ..WebMethod("HelloWorld").Invoke($this,"")

编辑如下:

   Quit ..WebMethod("HelloWorld").Invoke($this,"""")

或者,在生成 Web 客户端之前编辑 WSDL。如果这样做,请将 soapAction 属性编辑为""""而不是""

上一篇下一篇

猜你喜欢

热点阅读