第三十章 控制到 XML 模式的映射 - Array of Classname

2023-12-11 09:12

本文主要是介绍第三十章 控制到 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"/>
    

    注意:如果 XMLKeyNameType 相同,则对于 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 包含两个属性:MyPropAnotherProp。如果此属性位于名为 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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/480172

相关文章

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

SpringBoot中配置文件pom.xml的使用详解

《SpringBoot中配置文件pom.xml的使用详解》SpringBoot的pom.xml文件是Maven项目的核心配置文件,用于定义项目的依赖、插件、构建配置等信息,下面小编就来和大家详细介绍一... 目录1. 基本结构2. 关键部分详解2.1 <modelVersion>2.2 项目坐标2.3 <p