文章目錄
- 第二十八章 控制到 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 |
例如,考慮以下類:
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 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 (架構未指定集合項的類型) |