当前位置: 首页 > article >正文

第十一章 将对象映射到 XML - 控制流属性的映射形式

文章目录

  • 第十一章 将对象映射到 XML - 控制流属性的映射形式
  • 控制流属性的映射形式
  • 控制预计属性的可用性
  • 禁用映射
  • `%XML.Adapter` 中的方法

第十一章 将对象映射到 XML - 控制流属性的映射形式

控制流属性的映射形式

对于流属性,XMLPROJECTION 的选项如下:

XMLPROJECTION 对流属性的影响

Value of XMLPROJECTIONEffect on Stream Properties
"ELEMENT"流内容包含在元素中。
"WRAPPED"“ELEMENT”的处理方式相同。
"CONTENT"流内容的映射如将属性映射为内容中所述。对于所有其他属性,`` 参数必须为“NONE”
"NONE"该属性不会映射为 XML
"ATTRIBUTE"该属性被映射为属性。
"XMLATTRIBUTE"该属性被映射为带有前缀 xml 的属性。

本节展示了如何映射流的示例。

例如,考虑以下类:

Class Basics.StreamPropDemo Extends (%Persistent, %XML.Adaptor)
{

Property BinStream As %Library.GlobalBinaryStream;

Property CharStream As %Library.GlobalCharacterStream;

}

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

<StreamPropDemo>
  <BinStream>/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP
ERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e
...
VcE/wkZ5wGJBH/joP50UVfQkqaS5dbi34EZtpJgPRlUkf1H402Fy9oIWHHlPj2K/Nn9cfhRRSGip
ZHzbmEPnEwZGGePu5/nj8qNJcpcrG4DxSuEkToDnPPtRRUyKGhPsuqlAxbypAhJ43A/y44q5HbNM
vmx3U9vuJDLG+ASCQW+pxRRSKP/Z</BinStream>
  <CharStream><![CDATA[This is a sample file.
This is line 2.
This is line 3.
This is line 4.]]></CharStream>
</StreamPropDemo>

控制预计属性的可用性

可以指定每个映射属性是否由导入、导出或两者使用。为此,需要设置 XMLIO 参数,该参数控制 %XML.Writer%XML.Reader 的导出和导入方法如何处理属性。该参数可以采用以下值之一(不区分大小写):

  • “INOUT” — 此属性可供导出和导入使用。这是映射属性的默认值。
  • “IN” — 此属性由导入使用,但由导出忽略。
  • “OUT” — 此属性供导出使用,但在导入时会导致错误。如果在 XML 文档中找到与此属性对应的 XML 元素,则导入将返回错误。
  • “CALC” — 该属性由导出使用,但由导入忽略。如果在 XML 文档中找到与此属性对应的 XML 元素,则导入会忽略它。通常,这用于计算属性(其值基于其他属性的值),以便可以导出包含所有值的文档并在导入时忽略计算值。

此参数对未映射到 XML 的属性没有影响。

禁用映射

如果某个类支持 XML,并且希望阻止该类被映射(可能在测试期间由于某种原因),可以将类参数 XMLENABLED 设置为 0。默认值为 1

如果使用 XMLENABLED 来阻止映射某个类,则任何映射到 XML 的类都不能将该类用作属性。将 XMLENABLED 设置为 0 与从超类列表中在删除 %XML.Adaptor相同。

%XML.Adapter 中的方法

%XML.Adaptor 中的方法已弃用,并且大多没有记录。应该使用更强大的类 %XML.Writer%XML.SchemaO,它们为命名空间提供更好的支持。


http://www.kler.cn/news/136484.html

相关文章:

  • 一、Hadoop:大数据处理之基石
  • 利用飞腾派进行OpenCV开发
  • LabVIEW提高开发效率技巧----事件日志记录
  • testing包
  • 当有违法数据时,浏览器不解析,返回了undefined,导致数据不解析
  • 【论文阅读】Tabbed Out: Subverting the Android Custom Tab Security Model
  • 一道简单的无穷级数题目
  • 相似基因序列问题 ——查找
  • 算法-简单-二叉树-翻转、对称
  • golang学习笔记——日志记录
  • [Spring Cloud] Nacos 实战 + Aws云服务器
  • 贪吃蛇游戏制作
  • CentOS7安装Docker遇到的问题笔记
  • redhat下使用CentOS yum源,并安装docker
  • 【JavaEE初阶】 CSS相关属性,元素显示模式,盒模型,弹性布局,Chrome 调试工具||相关讲解
  • vue3-响应式核心
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • 如何在公网环境下使用内网穿透工具实现用ipad pro进行代码开发
  • 上位机与下位机通讯方式(转载)
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • 【草料】uni-app ts vue 小程序 如何如何通过草料生成对应的模块化二维码
  • 命令执行无回显的判断方法及dnslog相关例题的讲解
  • git提交时会将target也提交
  • Django学习日志06
  • 007 OpenCV霍夫变换
  • vscode设置代码模板