第二十八章 控制到 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 (架构未指定集合项的类型)
相关推荐
金融小师妹4 小时前
多因子智能推演:油价回落6%与黄金震荡上行的关联解析——AI预测框架
大数据·python·深度学习
BUG研究员_7 小时前
Runnable与LCEL
开发语言·人工智能·python
老马聊技术7 小时前
Pytorch深度学习环境配置与测试
人工智能·pytorch·python
码农颜8 小时前
5.4.1 锁分类
java·数据库·mysql
Python私教8 小时前
AI Agent 上生产要不要开写权限?我把执行链拆成 4 道闸门
人工智能·后端·python
天才测试猿8 小时前
软件测试知识总结(基础篇)
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
崔子末8 小时前
某影视库剧集列表以及查询接口逆向
爬虫·python
gogogo出发喽8 小时前
v3 admin
python
牛艺翔9 小时前
C++基础
开发语言·c++