美文网首页
第五章 将对象映射到 XML - 指定映射 XML 文档的格式选

第五章 将对象映射到 XML - 指定映射 XML 文档的格式选

作者: Cache技术分享 | 来源:发表于2023-11-14 07:55 被阅读0次

第五章 将对象映射到 XML - 指定映射 XML 文档的格式选项

指定映射 XML 文档的格式选项

XML 文档有两种基本格式:文字格式和编码格式(SOAP 编码格式)。有关这些格式的示例,请参阅 XML 工具简介。当从启用 XML 的类导出数据或将数据导入到启用 XML 的类时,可以指定其中一种格式。

当将 %XML.Adaptor 添加到类并编译它时, IRIS 会将附加代码写入生成的例程。默认情况下,此附加代码支持这两种格式。如果只需要一种格式,则可以抑制其他格式并减少生成的代码量。为此,请为该类指定 XMLFORMAT 参数。使用以下值之一(不区分大小写):

  • "LITERAL" — 该类仅支持文字格式。
  • "ENCODED" — 该类仅支持编码格式。 (它支持 SOAP 1.1SOAP 1.2 版本)。
  • Null(默认值)— 该类支持文字格式和编码格式。

控制简单属性的映射形式

简单属性是类型为数据类型类或未声明类型的属性(任何没有指定类型的属性都假定为字符串)。

要控制简单属性的 XML 映射的形式,请设置该属性的 XMLPROJECTION 参数。使用以下值之一(不区分大小写):

XMLPROJECTION 的价值 对非集合属性的影响
"ELEMENT" 该属性被映射为一个元素。这是非集合属性的默认值。
"ATTRIBUTE" 该属性被映射为属性。
"XMLATTRIBUTE" 该属性被映射为带有前缀 xml 的属性。
"WRAPPED" 该属性被映射为具有子元素的元素;子元素的名称基于属性的数据类型。
"CONTENT" 该属性被映射为该类的主要内容(即,该属性的内容是在没有任何封闭元素的情况下编写的)。在任何类中,都不能为多个属性指定该值。
"NONE" 该属性不会映射为 XML

XMLPROJECTION 参数还接受值“COLLECTION”“ELEMENTREF”,但这些值已被弃用并且未在此处记录。

基本 XMLPROJECTION 变体

以下类定义了使用除“CONTENT”之外的 XMLPROJECTION 的所有变体的简单属性:

Class xmlproj.SimpleProps Extends (%RegisteredObject, %XML.Adaptor)
{

Property Simple1 As %String (XMLPROJECTION="attribute");

Property Simple2 As %String (XMLPROJECTION="xmlattribute");

Property Simple3 As %String;

Property Simple4 As %String (XMLPROJECTION="element");

Property Simple5 As %String (XMLPROJECTION="wrapped");

Property Simple6 As %String (XMLPROJECTION="none");

}

下面显示了此类实例的 XML 表示形式的示例:

<SimpleProps Simple1="The quick" xml:Simple2="brown fox">
  <Simple3>jumps</Simple3>
  <Simple4>over</Simple4>
  <Simple5>
    <string>the lazy</string>
  </Simple5>
</SimpleProps>

将属性映射为内容

“CONTENT”值使能够将类映射为具有一些文本内容和可能的一些属性但没有子元素的简单元素。

Class xmlproj.SimpleContentProp Extends (%RegisteredObject, %XML.Adaptor)
{

Property Simple1 As %String(XMLPROJECTION = "content");

Property Simple2 As %String(XMLPROJECTION = "attribute");

Property Simple3 As %String(XMLPROJECTION = "element");

}

当导出此类的实例时:

  • 如果标有“CONTENT”的属性有值,则该值将导出为类的内容。任何映射为属性的属性也会被导出。其他属性将被忽略。例如:
<SimpleContentProp Simple2="other value">The quick brown fox jumps over the lazy dog</SimpleContentProp>
  • 如果标有“CONTENT”的属性为 null,则该属性将被忽略,并且其他属性均按照其 XMLPROJECTION 值指定的方式导出。例如:
<SimpleContentProp Simple2="other value">
  <Simple3>yet another value</Simple3>
</SimpleContentProp>

对于任何类中的多个属性,不能将 XMLPROJECTION 指定为“CONTENT”。此外,只能将此值用于包含简单文字值的属性,而不是集合或其他类型的对象。

相关文章

  • XmlRootElement JAXB注解

    [XmlRootElement JAXB注解] XmlRootElement: 将类或枚举类型映射到 XML 元素...

  • 有关Hibernate知识的学习(一)

    1、Hibernate使用xml文件将java类映射到数据库中

  • 17.03.13 .Net基础(四)

    XML 创建XML文档 DOM方式创建XML文档对象 文档对象模型 XML文档的增删改查 xml文档追加 读取XM...

  • XML文档规则

    XML文档规则 格式良好的XML文档规则 XML文档必须遵守下列重要的规则: XML文档声明 XML文档声明是XM...

  • 解析XML之Digester

    本文讲解,如何使用Digester将XML文档和Java对象映射,主要以撸代码为主。 引入 Maven pom依赖...

  • URL映射

    XML文件配置 内部名映射到全限定类名 内部名映射到公共url名

  • XML语法

    XML声明 XML文档声明是XML文档的第一句,格式如下: XML声明由“”结束。“

  • jackson中objectMapper的使用

    Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对...

  • 最高效的XML解析方式-----Simple 简化 XML 解析

    XML数据解析 XML数据解析是将数据文档解析成不同的格式,XML现在已经成为一种通用的数据交换格式,它具有平台无...

  • scrapy crawl --help

    scrapy crawl --help -o 将数据保存到指定文件 -t 指定数据的格式,支持的数据格式有xml,...

网友评论

      本文标题:第五章 将对象映射到 XML - 指定映射 XML 文档的格式选

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