文章目录
第二十七章 控制到 XML 模式的映射 - 影响架构的编译器关键字
VALUELLIST
向类型添加 <enumeration>
限制。考虑下面的类:
Class Schema.VALUELIST Extends (%RegisteredObject, %XML.Adaptor)
{
Parameter XMLTYPENAMESPACE = "mytypes";
Property Property1 As %String;
Property Property2 As %String (VALUELIST = ",r,g,b");
}
下面显示了该类的架构:
<?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="VALUELIST">
<sequence>
<element minOccurs="0" name="Property1" type="s:string"/>
<element minOccurs="0" name="Property2">
<simpleType>
<restriction base="s:string">
<enumeration value="r"/>
<enumeration value="g"/>
<enumeration value="b"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
</schema>
XMLFractionDigits
适用于 %Numeric
。此参数对应于 <fractionDigits>
构面,如以下片段所示:
<element minOccurs="0" name="Property2">
<simpleType>
<restriction base="s:decimal">
<fractionDigits value="2"/>
<totalDigits value="5"/>
</restriction>
</simpleType>
</element>
XMLTotalDigits
适用于 %Numeric
属性或 %Integer
属性。此参数对应于 <totalDigits>
方面,如以下片段所示:
<element minOccurs="0" name="Property2">
<simpleType>
<restriction base="s:decimal">
<fractionDigits value="2"/>
<totalDigits value="5"/>
</restriction>
</simpleType>
</element>
XMLLISTPARAMETER
适用于指定 VALUELIST
参数的属性中的 %String
。指定包含要投影到 XML
的值列表的参数名称,而不是对象中包含的值。在大多数情况下,还指定标准 DISPLAYLIST
参数,并将 XMLLISTPARAMETER
设置为等于“DISPLAYLIST
”。
XMLLISTPARAMETER
参数控制 <enumeration>
限制中使用的值属性。
不能将其指定为属性参数。
XMLPATTERN
控制模式限制。考虑下面的类:
Class Schema.Pattern Extends (%RegisteredObject, %XML.Adaptor)
{
Parameter XMLTYPENAMESPACE = "mytypes";
Property Property1 As %String;
Property Property2 As %String(XMLPATTERN = "[A-Z]");
}
该类的架构如下:
<?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="Pattern">
<sequence>
<element minOccurs="0" name="Property1" type="s:string"/>
<element minOccurs="0" name="Property2">
<simpleType>
<restriction base="s:string">
<pattern value="[A-Z]"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
</schema>
如果简单类型中出现多个模式,则根据 https://www.w3.org/TR/xmlschema-2 组合模式(请参阅第 4.3.4.3
节,模式的 XML
表示形式的约束) 。这些模式在 XMLPATTERN
参数中组合为同一模式中的单独分支(由竖线分隔)。
XSDTYPE
声明映射到 XML
时使用的 XSD
类型。该参数在所有 IRIS
数据类型类中进行了适当设置。 IRIS XML
工具在生成模式时使用此参数。该参数不直接影响输入和输出转换,尽管它应该与它们一致。