第二十六章 控制到 XML 模式的映射 - 影响架构的编译器关键字

本文主要是介绍第二十六章 控制到 XML 模式的映射 - 影响架构的编译器关键字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 第二十六章 控制到 XML 模式的映射 - 影响架构的编译器关键字
  • 影响架构的编译器关键字
    • 影响 `XML` 模式的参数
        • `CONTENT`
        • `DISPLAYLIST`
        • `MAXLEN`
        • `MAXVAL`
        • `MINLEN`
        • `MINVAL`

第二十六章 控制到 XML 模式的映射 - 影响架构的编译器关键字

影响架构的编译器关键字

required 关键字通过删除 minOccurs="0" 属性来影响 XML 架构。例如,考虑以下类:

Class Schema.PropKeywords Extends (%RegisteredObject, %XML.Adaptor)
{Parameter XMLTYPENAMESPACE="mytypes";Property Property1 As %String;Property Property2 As %String [ Required ];}

如果我们为此处使用的命名空间生成架构,我们会看到以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:s="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" targetNamespace="test"><complexType name="PropKeywords"><sequence><element minOccurs="0" name="Property1" type="s:string"/><element name="Property2" type="s:string"/></sequence></complexType>
</schema>

请注意,minOccurs 的默认值为 1;也就是说,Property2 是必需的。

注意:出于兼容性原因,%XML.Reader 默认情况下不检查必需的属性,但可以使其这样做;请参阅使用 XML 工具中的检查所需元素和属性。另外,默认情况下, IRIS Web 服务不会检查所需的属性,但可以使其这样做;请参阅检查必需的元素和属性。

没有其他属性关键字影响数据类型类的架构。

影响 XML 模式的参数

IRIS 数据类型类使用许多参数。 (有关列出每个数据类型类支持的参数的表,请参阅定义和使用类中的数据类型。)在大多数情况下,还可以将它们指定为属性参数。

影响 XML 模式的参数如下:

CONTENT

影响属性值的转义方式;请参阅处理特殊 XML 字符。

与其他可能的值相比,“MIXED”值会导致架构发生变化。考虑下面的类:

Class Schema.CONTENT Extends (%RegisteredObject, %XML.Adaptor)
{Parameter XMLTYPENAMESPACE = "mytypes";Property Property1 As %String;Property Property2 As %String(CONTENT = "STRING");Property Property3 As %String(CONTENT = "ESCAPE");Property Property4 As %String(CONTENT = "MIXED");}

如果我们为此处使用的命名空间生成架构,我们会看到以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:s="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" targetNamespace="mytypes"><complexType name="CONTENT"><sequence><element minOccurs="0" name="Property1" type="s:string"/><element minOccurs="0" name="Property2" type="s:string"/><element minOccurs="0" name="Property3" type="s:string"/><element name="Property4"><complexType mixed="true"><choice maxOccurs="unbounded" minOccurs="0"><any processContents="lax"/></choice></complexType></element></sequence></complexType>
</schema>

请注意,这三个属性具有相同的类型信息,因为 XML 以相同的方式处理它们。然而, IRIS 对属性的处理方式有所不同,如处理特殊 XML 字符中所述。

如果使用该对象作为 Web 方法的输入或输出,并且 SoapBodyUse 已针对该方法进行编码,则 IRIS 会将混合内容视为默认的字符串内容。也就是说,如果将 CONTENT 指定为“MIXED”,则该值将被忽略。

DISPLAYLIST

如果还指定了 VALUELIST 并且 XMLLISTPARAMETER 等于“DISPLAYLIST”,则会影响架构。请参阅这两个参数的讨论。

MAXLEN

控制 maxLength 属性,它是一个方面或限制。 Facet 定义 XML 类型可接受的值。以下示例显示了其中的几个。考虑下面的类:

Class Schema.BasicFacets Extends (%RegisteredObject, %XML.Adaptor)
{Parameter XMLTYPENAMESPACE = "mytypes";Property Property1 As %Integer (MINVAL=10, MAXVAL=1000);Property Property2 As %String (MINLEN=20, MAXLEN=100);}

如果我们为此处使用的命名空间生成架构,我们会看到以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="mytypes"><complexType name="BasicFacets"><sequence><element minOccurs="0" name="Property1"><simpleType><restriction base="s:long"><maxInclusive value="1000"/><minInclusive value="10"/></restriction></simpleType></element><element minOccurs="0" name="Property2"><simpleType><restriction base="s:string"><maxLength value="100"/><minLength value="20"/></restriction></simpleType></element></sequence></complexType>
</schema>

SOAP 向导或 XML 架构向导在架构中发现 maxLength 限制时,它会在生成的类中根据需要设置 MAXLEN 属性参数。

MAXVAL

控制 maxInclusive 属性。请参阅 MAXLEN 中的示例。

MINLEN

控制 minLength 属性。请参阅 MAXLEN 中的示例。

当 SOAP 向导或 XML 架构向导在架构中发现 minLength 限制时,它会在生成的类中根据需要设置 MINLEN 属性参数。

MINVAL

控制 minInclusive 属性。请参阅 MAXLEN 中的示例。

这篇关于第二十六章 控制到 XML 模式的映射 - 影响架构的编译器关键字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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中控制视频播放

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

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

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

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

Java实现XML与JSON的互相转换详解

《Java实现XML与JSON的互相转换详解》这篇文章主要为大家详细介绍了如何使用Java实现XML与JSON的互相转换,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. XML转jsON1.1 代码目的1.2 代码实现2. JSON转XML3. JSON转XML并输出成指定的