第二十九章 控制到 XML 模式的映射 - 类名列表
2023-12-13 03:57:59
第二十九章 控制到 XML 模式的映射 - List of Classname
List of Classname
本部分显示了从支持 XML 的类生成的 XML 架构的一部分(当该类包含定义为类名列表的属性时)。例如,考虑以下属性定义:
Property PropName As list Of %Integer(XMLITEMNAME = "MyXmlItemName");
如果此属性位于名为 Test.DemoList1 的启用 XML 的类中,则该类的 XML 架构包含以下内容:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="mytypes">
<complexType name="DemoList1">
<sequence>
<element minOccurs="0" name="PropName" type="s01:ArrayOfMyXmlItemNameLong" xmlns:s01="mytypes"/>
</sequence>
</complexType>
<complexType name="ArrayOfMyXmlItemNameLong">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="MyXmlItemName" nillable="true" type="s:long"/>
</sequence>
</complexType>
...
</schema>
以下规则管理类型的名称:
-
对于
PropName属性,相应的类型被命名为ArrayOfXMLItemNameType,其中:XMLItemName是集合中项目的名称,如控制列表类型属性的元素和属性名称中所述。对于数据类型属性,默认项目名称是在属性名称末尾附加Item的名称。 (对于对象属性,默认项名称是短类名称。)Type是属性类映射到的XML类型。
<element minOccurs="0" name="PropName" type="s01:ArrayOfMyXmlItemNameLong" xmlns:s01="mytypes"/>注意:如果
XMLItemName与Type相同,则对于PropName属性,相应的类型将命名为ArrayOfXMLItemName。即,从类型名称中删除冗余数组项。要使类型名称包含冗余名称,请将(%XML.Schema实例)AllowRedundantArrayName属性指定为1。同样,在Web服务类中,要在类型中包含冗余数组项名称在WSDL中,将(Web服务类的)ALLOWREDUNDANTARRAYNAME参数指定为1。 -
类型
ArrayOfXMLItemNameType被定义为另一种类型的<sequence>,名为XMLItemName:<complexType name="ArrayOfMyXmlItemNameLong"> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="MyXmlItemName" nillable="true" type="s:long"/> </sequence> </complexType> -
元素
XMLItemName基于与数据类型类对应的XSD类型:<element maxOccurs="unbounded" minOccurs="0" name="MyXmlItemName" nillable="true" type="s:long"/>
当 Classname 引用对象类时,适用相同的规则。例如,考虑以下属性定义:
Property PropName As list Of SimpleObject(XMLITEMNAME = "MyXmlItemName");
其中 Simple.Object 包含两个属性:MyProp 和 AnotherProp。如果此属性位于名为 Test.DemoObjList 的启用 XML 的类中,则该类的 XML 架构包含以下内容:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="mytypes">
<complexType name="DemoObjList">
<sequence>
<element minOccurs="0" name="PropName" type="s01:ArrayOfMyXmlItemNameSimpleObject" xmlns:s01="mytypes"/>
</sequence>
</complexType>
<complexType name="ArrayOfMyXmlItemNameSimpleObject">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="MyXmlItemName" nillable="true" type="s01:SimpleObject" xmlns:s01="mytypes"/>
</sequence>
</complexType>
<complexType name="SimpleObject">
<sequence>
<element minOccurs="0" name="MyProp" type="s:string"/>
<element minOccurs="0" name="AnotherProp" type="s:string"/>
</sequence>
</complexType>
...
</schema>
文章来源:https://blog.csdn.net/yaoxin521123/article/details/134890524
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!