第二十八章 控制到 XML 模式的映射 - 流类到 XML 类型的映射

文章目录

  • [第二十八章 控制到 XML 模式的映射 - 流类到 XML 类型的映射](#第二十八章 控制到 XML 模式的映射 - 流类到 XML 类型的映射)
  • [将集合属性映射到 `XML` 模式](#将集合属性映射到 XML 模式)

第二十八章 控制到 XML 模式的映射 - 流类到 XML 类型的映射

如果类或属性基于流,则它将投影为 XML 类型,如下表所示:

IRIS 流的 XML 类型

Stream Type 映射到 XML 时使用的 XSD 类型
%Library.GlobalCharacterStream, %Library.FileCharacterStream, %Stream.FileCharacter, and %Stream.GlobalCharacter string
%Library.GlobalBinaryStream, %Library.FileBinaryStream, %Stream.FileBinary, and %Stream.GlobalBinary base64Binary

例如,考虑以下类:

java 复制代码
Class Schema.StreamPropDemo Extends (%Persistent, %XML.Adaptor)
{

Parameter XMLTYPENAMESPACE="mytypes";

Property BinStream As %Library.GlobalBinaryStream;

Property CharStream As %Library.GlobalCharacterStream;

}

该类的架构如下:

xml 复制代码
<?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="StreamPropDemo">
    <sequence>
      <element minOccurs="0" name="BinStream" type="s:base64Binary"/>
      <element minOccurs="0" name="CharStream" type="s:string"/>
    </sequence>
  </complexType>
</schema>

将集合属性映射到 XML 模式

对于大多数类型的属性,类定义包含足够的信息来指定完整的 XML 映射 --- 将对象映射为 XML 文档,并定义用于验证目的的完整 XML 模式。然而,对于集合属性, IRIS 支持某些形式的定义,这些定义不能为完整的 XML 模式提供足够的信息。如果在需要架构的上下文中(例如在 Web 服务和客户端中)使用 XML 投影,则必须拥有完整的 XML 架构;否则针对架构的验证将失败。如果不针对架构进行验证,则此注意事项不适用。下表列出了场景:

集合属性的形式及其 XML 映射详细信息

Form of Property Definition XML Is Usable? XML Schema Is Usable?
Property PropName As List of classname or Property PropName As Array of classname Yes Yes
Property PropName As %ListOfDataTypes or Property PropName As %ArrayOfDataTypes Yes Yes (但是集合项的默认类型是字符串,这可能不合适)
Property PropName As %ListOfObjects or Property PropName As %ArrayOfObjects Yes No (架构未指定集合项的类型)
相关推荐
是梦终空11 分钟前
计算机毕业设计240—基于python+爬虫+html的微博舆情数据可视化系统(源代码+数据库)
爬虫·python·pandas·课程设计·毕业论文·计算机毕业设计·微博舆情可视化
CodeJourney.14 分钟前
Python开发可视化音乐播放器教程(附代码)
数据库·人工智能·python
kkkkk02110630 分钟前
【Rust创作】Rust 错误处理:从 panic 到优雅控制
开发语言·算法·rust
晓梦.32 分钟前
Linux
linux·运维·服务器
回忆是昨天里的海38 分钟前
k8s集群-节点间通信之安装kube-flannel插件
java·docker·kubernetes
John.Lewis40 分钟前
C++初阶(14)list
开发语言·c++·笔记
爱学习的小鱼gogo1 小时前
pyhton 螺旋矩阵(指针-矩阵-中等)含源码(二十六)
python·算法·矩阵·指针·经验·二维数组·逆序
信仰_2739932431 小时前
Mybatis-Spring重要组件介绍
java·spring·mybatis
盖世英雄酱581361 小时前
java深度调试【第二章通过堆栈分析性能瓶颈】
java·后端
没有bug.的程序员1 小时前
AOP 原理深剖:动态代理与 CGLIB 字节码增强
java·spring·aop·动态代理·cglib