本文主要是介绍第三十章 控制到 XML 模式的映射 - Array of Classname,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 第三十章 控制到 XML 模式的映射 - Array of Classname
- `Array of Classname`
第三十章 控制到 XML 模式的映射 - Array of Classname
Array of Classname
本部分显示了从启用 XML
的类生成的XML
架构的一部分,此时该类包含定义为类名数组的属性。例如,考虑以下属性定义:
Property PropName As array Of %Integer(XMLITEMNAME = "MyXmlItemName", XMLKEYNAME = "MyXmlKeyName");
如果此属性位于名为 Test.DemoArray1
的启用 XML
的类中,则该类的 XML 架构包含以下内容:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="mytypes"><complexType name="DemoArray1"><sequence><element minOccurs="0" name="PropName" type="s01:ArrayOfMyXmlItemNamePairOfMyXmlKeyNameLong" xmlns:s01="mytypes"/></sequence></complexType><complexType name="ArrayOfMyXmlItemNamePairOfMyXmlKeyNameLong"><sequence><element maxOccurs="unbounded" minOccurs="0" name="MyXmlItemName" nillable="true" type="s01:PairOfMyXmlKeyNameLong" xmlns:s01="mytypes"/></sequence></complexType><complexType name="PairOfMyXmlKeyNameLong"><simpleContent><extension base="s:long"><attribute name="MyXmlKeyName" type="s:string" use="required"/></extension></simpleContent></complexType>
...
</schema>
以下规则管理类型的名称:
-
对于
PropName
属性,相应的类型被命名为ArrayOfXMLItemNamePairOfXMLKeyNameType
,其中:XMLItemName
是集合中项目的名称,如控制数组类型属性的元素和属性名称中所述。对于数据类型属性,默认项目名称是在属性名称末尾附加Item
的名称。 (对于对象属性,默认项名称是短类名称。)XMLKeyName
是集合的键名称,如控制数组类型属性的元素和属性名称中所述。默认为属性名称,末尾连接有Key
Type
是属性类映射到的XML
类型。
<element minOccurs="0" name="PropName" type="s01:ArrayOfMyXmlItemNamePairOfMyXmlKeyNameLong" xmlns:s01="mytypes"/>
注意:如果
XMLKeyName
与Type
相同,则对于PropName
属性,相应的类型将命名为ArrayOfXMLItemNamePairOfXMLKeyName
。即,从类型名称中删除冗余数组项。要使类型名称包含冗余名称,请将(%XML.Schema
实例)AllowRedundantArrayName
属性指定为 1。同样,在Web
服务类中,要在类型中包含冗余数组项名称在WSDL
中,将(Web
服务类的)ALLOWREDUNDANTARRAYNAME
参数指定为1
。 -
类型
ArrayOfXMLItemNamePairOfXMLKeyNameType
被定义为另一种类型的<sequence>
,名为PairOfXMLKeyNameType
:<complexType name="ArrayOfMyXmlItemNamePairOfMyXmlKeyNameLong"> <sequence><element maxOccurs="unbounded" minOccurs="0" name="MyXmlItemName" nillable="true" type="s01:PairOfMyXmlKeyNameLong" xmlns:s01="mytypes"/> </sequence> </complexType>
-
PairOfXMLKeyNameType
类型是给定XSD
类型的扩展。此扩展添加了一个名为XMLKeyName
的属性:<complexType name="PairOfMyXmlKeyNameLong"> <simpleContent><extension base="s:long"><attribute name="MyXmlKeyName" type="s:string" use="required"/></extension> </simpleContent> </complexType>
当 Classname
引用对象类时,适用相同的规则。例如,考虑以下属性定义:
Property PropName As %ArrayOfObjects(XMLITEMNAME = "MyXmlItemName", XMLKEYNAME = "MyXmlKeyName");
其中 Simple.Object
包含两个属性:MyProp
和 AnotherProp
。如果此属性位于名为 Test.DemoObjArray
的启用 XML
的类中,则该类的 XML
架构包含以下内容:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="mytypes"><complexType name="DemoObjArray"><sequence><element minOccurs="0" name="PropName" type="s01:ArrayOfMyXmlItemNamePairOfMyXmlKeyNameSimpleObject" xmlns:s01="mytypes"/></sequence></complexType><complexType name="ArrayOfMyXmlItemNamePairOfMyXmlKeyNameSimpleObject"><sequence><element maxOccurs="unbounded" minOccurs="0" name="MyXmlItemName" nillable="true" type="s01:PairOfMyXmlKeyNameSimpleObject" xmlns:s01="mytypes"/></sequence></complexType><complexType name="PairOfMyXmlKeyNameSimpleObject"><complexContent><extension base="s01:SimpleObject" xmlns:s01="mytypes"><attribute name="MyXmlKeyName" type="s:string" use="required"/></extension></complexContent></complexType><complexType name="SimpleObject"><sequence><element minOccurs="0" name="MyProp" type="s:string"/><element minOccurs="0" name="AnotherProp" type="s:string"/></sequence></complexType>
</schema>
这篇关于第三十章 控制到 XML 模式的映射 - Array of Classname的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!