第二十六章 控制到 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

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间