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

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

作者: Cache技术分享 | 来源:发表于2023-12-05 08:09 被阅读0次

第二十六章 控制到 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 中的示例。

相关文章

  • 何为模糊控制,他的基本原理是什么?

    利用模糊数学的基本思想和理论的控制方法。在传统的控制领域里,控制系统动态模式的精确与否是影响控制优劣的最主要关键。...

  • SpringMVC的执行流程

    一个请求匹配前端控制器 DispatcherServlet 的请求映射路径(在 web.xml中指定), WEB ...

  • MyBatis

    mybatis简介 关键词:持久层框架、xml配置、JDBC高级对象映射MyBatis前身是apache的开源项目...

  • 【存档】software-architecture-patter

    软件架构模式简介分层架构模式描述关键概念模式示例注意事项模式分析事件驱动架构中介者拓扑代理人拓扑注意事项模式分析微...

  • iOS之LLVM架构

    编译器架构 传统编译器架构(Three-Phase) 上图是最简单的三段式编译器架构。 Frontend:前端词法...

  • MyBatis快速入门(11)XML映射文件-select

    XML映射文件 MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。由于它的异常强大,映射器的 XML ...

  • 浅谈MVC,MVP,MVVM三种架构模式

    1.MVC架构模式 View:对应的xml布局文件Model:实体模型(JavaBean)Controllor:对...

  • SpringMVC的执行流程

    一个请求匹配前端控制器DispatcherServlet的请求映射路径(在web.xml中指定), WEB 容器将...

  • SpringMVC的执行流程

    一个请求匹配前端控制器DispatcherServlet的请求映射路径(在web.xml中指定), WEB 容器将...

  • iOS readonly 属性赋值小记

    readonly 关键字用于属性的存取控制 ,如果不使用readonly ,编译器默认属性关键字为 readwri...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/czargdtx.html