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

2023-12-13 03:44:34

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

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

IRIS 流的 XML 类型

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

例如,考虑以下类:

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

Parameter XMLTYPENAMESPACE="mytypes";

Property BinStream As %Library.GlobalBinaryStream;

Property CharStream As %Library.GlobalCharacterStream;

}

该类的架构如下:

<?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 DefinitionXML Is Usable?XML Schema Is Usable?
Property PropName As List of classname or Property PropName As Array of classnameYesYes
Property PropName As %ListOfDataTypes or Property PropName As %ArrayOfDataTypesYesYes (但是集合项的默认类型是字符串,这可能不合适)
Property PropName As %ListOfObjects or Property PropName As %ArrayOfObjectsYesNo (架构未指定集合项的类型)

文章来源:https://blog.csdn.net/yaoxin521123/article/details/134868859
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。