第二十五章 控制到 XML 模式的映射 - 将文字属性映射到 XML 模式
文章目录
- 第二十五章 控制到 XML 模式的映射 - 将文字属性映射到 XML 模式
- 将文字属性映射到 `XML` 模式
- `IRIS` 数据类型类的默认 `XSD` 类型
第二十五章 控制到 XML 模式的映射 - 将文字属性映射到 XML 模式
将文字属性映射到 XML
模式
本节讨论如何将文字(非集合)属性投影到 XML
类型,以及影响 XML
架构的选项。它讨论了以下内容:
- 数据类型类的默认
XSD
类型 - 影响架构的编译器关键字
- 影响架构的参数
IRIS
数据类型类的默认 XSD
类型
如果类或类属性基于常见 IRIS
数据类型类之一,则将根据下表自动设置 XML
类型。 %xsd
包中的类直接映射到 XML
类型,如表中所示。
%Library
和 %xsd
包中 IRIS
数据类型的 XM
类型
IRIS Class in the %xsd Package | IRIS Class in the %Library Package | XSD Type Used in Projections to XML |
---|---|---|
%xsd.anyURI | anyURI | |
%xsd.base64Binary | %Binary ,%Status | base64Binary |
%xsd.boolean | %Boolean | boolean |
%xsd.byte | %TinyInt | byte |
%xsd.date | %Date | date |
%xsd.dateTime | %PosixTime ,%StringTimeStamp ,%TimeStamp | dateTime |
%xsd.decimal | %Currency ,%Decimal ,%Numeric | decimal |
%xsd.double | %Double | double |
%xsd.float | float | |
%xsd.hexBinary | hexBinary | |
%xsd.int | int | |
%xsd.integer | integer | |
%xsd.long | %BigIn ,%Integer | long |
%xsd.negativeInteger | negativeInteger | |
%xsd.nonNegativeInteger | nonNegativeInteger | |
%xsd.nonPositiveInteger | nonPositiveInteger | |
%xsd.positiveInteger | positiveInteger | |
%xsd.short | %SmallInt | short |
%xsd.string | %Name ,%String ,%List | string |
%xsd.time | %Time | time |
%xsd.unsignedByte | unsignedByte | |
%xsd.unsignedInt | unsignedInt | |
%xsd.unsignedLong | unsignedLong | |
%xsd.unsignedShort | unsignedShort |
有关 XML 数据类型的信息,请参阅 https://www.w3.org/TR/xmlschema-2/。
例如,考虑以下类:
Class Schema.DataTypesDemo Extends (%RegisteredObject, %XML.Adaptor)
{
Parameter XMLTYPENAMESPACE="mytypes";
Property binaryprop As %xsd.base64Binary;
Property booleanprop As %Boolean;
Property dateprop As %Date;
Property datetimeprop As %TimeStamp;
Property decimalprop As %Numeric;
Property integerprop As %Integer;
Property stringprop As %String;
Property timeprop As %Time;
}
该类的架构如下:
<?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="DataTypesDemo">
<sequence>
<element minOccurs="0" name="binaryprop" type="s:base64Binary"/>
<element minOccurs="0" name="booleanprop" type="s:boolean"/>
<element minOccurs="0" name="dateprop" type="s:date"/>
<element minOccurs="0" name="datetimeprop" type="s:dateTime"/>
<element minOccurs="0" name="decimalprop" type="s:decimal"/>
<element minOccurs="0" name="integerprop" type="s:long"/>
<element minOccurs="0" name="stringprop" type="s:string"/>
<element minOccurs="0" name="timeprop" type="s:time"/>
</sequence>
</complexType>
</schema>