記事ディレクトリ
第 27 章 XML スキーマへのマッピングの制御 - スキーマに影響するコンパイラ キーワード
バリューリスト
タイプに 制限を追加<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>
制限で使用される value 属性を制御します。
属性パラメータとしては指定できません。
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
、スキーマの < /span> パラメータで同じパターン内の個別の分岐に結合されます (垂直バーで区切られています)。 XML
式制約)。これらのパターンは、XMLPATTERN
XSDTYPE
宣言は、XML
にマッピングするときに使用される XSD
型にマッピングされます。このパラメータは、すべての IRIS
データ型クラスで適切に設定されます。 IRIS XML
ツールはスキーマの生成時にこのパラメータを使用します。このパラメータは入力変換と出力変換に直接影響しませんが、それらと一貫性がある必要があります。