第二十九章 控制到 XML 模式的映射 - 类名列表

文章目录

  • [第二十九章 控制到 XML 模式的映射 - List of Classname](#第二十九章 控制到 XML 模式的映射 - List of Classname)
  • [`List of Classname`](#List of Classname)

第二十九章 控制到 XML 模式的映射 - List of Classname

List of Classname

本部分显示了从支持 XML 的类生成的 XML 架构的一部分(当该类包含定义为类名列表的属性时)。例如,考虑以下属性定义:

java 复制代码
Property PropName As list Of %Integer(XMLITEMNAME = "MyXmlItemName");

如果此属性位于名为 Test.DemoList1 的启用 XML 的类中,则该类的 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 类型。
    xml 复制代码
    <element minOccurs="0" name="PropName" type="s01:ArrayOfMyXmlItemNameLong" xmlns:s01="mytypes"/>

    注意:如果 XMLItemNameType 相同,则对于 PropName 属性,相应的类型将命名为 ArrayOfXMLItemName。即,从类型名称中删除冗余数组项。要使类型名称包含冗余名称,请将( %XML.Schema 实例)AllowRedundantArrayName 属性指定为 1。同样,在 Web 服务类中,要在类型中包含冗余数组项名称在 WSDL 中,将(Web 服务类的)ALLOWREDUNDANTARRAYNAME 参数指定为 1

  • 类型 ArrayOfXMLItemNameType 被定义为另一种类型的 <sequence>,名为 XMLItemName

    xml 复制代码
      <complexType name="ArrayOfMyXmlItemNameLong">
    <sequence>
      <element maxOccurs="unbounded" minOccurs="0" name="MyXmlItemName" nillable="true" type="s:long"/>
    </sequence>
    </complexType>
  • 元素 XMLItemName 基于与数据类型类对应的 XSD 类型:

    xml 复制代码
    <element maxOccurs="unbounded" minOccurs="0" name="MyXmlItemName" nillable="true" type="s:long"/>

Classname 引用对象类时,适用相同的规则。例如,考虑以下属性定义:

xml 复制代码
Property PropName As list Of SimpleObject(XMLITEMNAME = "MyXmlItemName");

其中 Simple.Object 包含两个属性:MyPropAnotherProp。如果此属性位于名为 Test.DemoObjList 的启用 XML 的类中,则该类的 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>
相关推荐
AC赳赳老秦12 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
谢慧琼12 小时前
2026零基础做企业网站,低成本搭建官方网站
服务器·前端·javascript
weixin_4316004413 小时前
前端数据埋点(1):一次点击如何变成一条埋点
前端·js·数据埋点
IT_陈寒13 小时前
Python线程池吞了异常还不告诉我,这谁顶得住啊
前端·人工智能·后端
计算机魔术师14 小时前
同样是AI辅助建造,为什么有的游戏三个月就烂尾了?
前端
用户9210802628614 小时前
0. 做 Agent 产品,前端 AI 组件框架怎么选?
前端
拾年27515 小时前
React Hooks 进阶篇:useMemo / useCallback / useReducer / useImperativeHandle,用「算账 +
前端·javascript·react.js
Jackson__15 小时前
面试官:如何在老项目中使用新框架,并实现通信?
前端·javascript·面试
拾年27515 小时前
React Hooks 保姆级教程:把组件想象成失忆的打工人,4 个 Hook 带你原地起飞
前端·javascript·react.js
mmsx15 小时前
一个 Bug 修了 12 轮,根因只有一句话:AI 编程时代,日志才是唯一的真相
前端