XMLNSC パーサーは、作成するすべての構文エレメントにフィールド・タイプを設定します。
フィールド・タイプは、そのエレメントが表す XML 構成のタイプを示します。 XMLNSC パーサーは、メッセージ・ツリーの作成時にフィールド・タイプを使用します。 フィールド・タイプは、ESQL または Java™ を使用して出力 XML を制御することにより、設定できます。
XMLNSC パーサーが使用するフィールド・タイプは、接頭部が XMLNSC という名前の定数を使用して参照される必要があります。
ヒント: 「XML」という接頭部の付いたフィールド・タイプ定数は、XMLNS および XML パーサーでのみ使用され、XMLNSC または MRM パーサーでは無効です。
構文エレメントを作成するためのフィールド・タイプ
メッセージ・ツリー中で構文エレメントを作成するには、以下のフィールド・タイプ定数を使用します。 XMLNSC パーサーは、入力メッセージからメッセージ・ツリーを作成するときに、これらの値を使用します。
XML 構成 |
XMLNSC フィールド・タイプ定数 |
値 |
単純エレメント
|
XMLNSC.Field
XMLNSC.CDataField
|
0x03000000
0x03000001
|
属性
|
XMLNSC.SingleAttribute
XMLNSC.Attribute
|
0x03000101
0x03000100
|
混合内容
|
XMLNSC.Value
XMLNSC.CDataValue
|
0x02000000
0x02000001
|
ネーム・スペース宣言
|
XMLNSC.SingleNamespaceDecl
XMLNSC.NamespaceDecl
|
0x03000102
0x03000103
|
複合エレメント
|
XMLNSC.Folder
|
0x01000000
|
インライン DTD
|
XMLNSC.DocumentType
|
0x01000300
|
XML 宣言
|
XMLNSC.XmlDeclaration
|
0x01000400
|
エンティティー参照
|
XMLNSC.EntityReference
|
0x02000100
|
エンティティー定義
|
XMLNSC.SingleEntityDefinition
XMLNSC.EntityDefinition
|
0x03000301
0x03000300
|
コメント
|
XMLNSC.Comment
|
0x03000400
|
処理命令
|
XMLNSC.ProcessingInstruction
|
0x03000401
|
パス式用のフィールド・タイプ (汎用フィールド・タイプ)
パス式を使用してメッセージ・ツリーを照会するときには、次のフィールド・タイプ定数を使用します。例えば、
SET str = FIELDVALUE(InputRoot.e1.(XMLNSC.Attribute)attr1)
XMLNSC パーサーによって作成されたメッセージ・ツリーを照会するときには、フィールド・タイプを指定するようにしてください。 このようにすれば、ESQL コードはより特定された理解しやすいものとなり、場合によっては誤った結果を回避できます。
ただし、使用するフィールド・タイプ定数を選択するときには注意が必要です。 XMLNSC パーサーを使用する場合、メッセージ・ツリーを照会する際には汎用フィールド・タイプ定数を使用します。 このようにすれば、パス式は入力 XML のバリエーションを許容できるようになります。
汎用フィールド・タイプ定数は、次の表にリストされています。
XML 構成 |
XMLNSC フィールド・タイプ定数 |
目的 |
タグ |
XMLNSC.Element |
タグに子のタグ (XMLNSC.Folder) が含まれていても、また、値 (XMLNSC.Field) が含まれていても、すべてのタグに一致します。 |
エレメント |
XMLNSC.Field |
通常テキスト、CData、またはその両方の混合を含むタグに一致します。 子のタグを含むタグには一致しません。 |
属性 |
XMLNSC.Attribute |
単一引用および二重引用の属性に一致します。 |
混合内容 |
XMLNSC.Value |
通常テキスト、CData、またはその両方の混合に一致します。 |
XML 宣言 |
XMLNSC.NamespaceDecl |
単一引用および二重引用の宣言と一致します。 |
以下のように書いた場合、
InputRoot.e1.(XMLNSC.DoubleAttribute)attrName
パス式は単一引用の属性と一致しません。 汎用フィールド・タイプ定数
XMLNSC.Attribute を使用すると、メッセージ・フローは単一引用または二重引用の属性のいずれかを処理します。
常にフィールド・タイプ定数を使用すべきで、それらの数値を使用すべきでないことに注意してください。
出力フォーマットを制御するためのフィールド・タイプ
以下のフィールド・タイプは、XML スキーマおよび base64 をサポートするために備えられています。
これらのフィールド・タイプ定数をパス式で使用しないでください。これらは、DATE および BLOB 値に必要な出力フォーマットを示すために、XMLNSC.Attribute および XMLNSC.Field と共に使用してください。 詳細は、
XMLNSC: XML スキーマのサポートを参照してください。
XMLNSC フィールド・タイプ定数 |
目的 |
値 |
XMLNSC.gYear |
値は DATE でなければなりません。 フィールド・タイプにこの値が含まれている場合、DATE 値は XML スキーマの gYear フォーマットを使用して生成されます。 |
0x00000010 |
XMLNSC.gYearMonth |
値は DATE でなければなりません。 フィールド・タイプにこの値が含まれている場合、DATE 値は XML スキーマの gYearMonth フォーマットを使用して生成されます。 |
0x00000040 |
XMLNSC.gMonth |
値は DATE でなければなりません。 フィールド・タイプにこの値が含まれている場合、DATE 値は XML スキーマの gMonth フォーマットを使用して生成されます。 |
0x00000020 |
XMLNSC.gMonthDay |
値は DATE でなければなりません。 フィールド・タイプにこの値が含まれている場合、DATE 値は XML スキーマの gMonthDay フォーマットを使用して生成されます。 |
0x00000050 |
XMLNSC.gDay |
値は DATE でなければなりません。 フィールド・タイプにこの値が含まれている場合、DATE 値は XML スキーマの gDay フォーマットを使用して生成されます。 |
0x00000030 |
XMLNSC.base64Binary |
値は BLOB でなければなりません。 値は base64 エンコード方式で生成されます。 |
0x00000060 |
XMLNSC.List |
エレメントは XMLNSC.Attribute または XMLNSC.Field でなければなりません。
フィールド・タイプにこの値が含まれている場合、メッセージ・ツリー中のすべての子エレメントの値は、スペース区切りリストとして生成されます。 |
0x00000070 |
直接出力用のフィールド・タイプ
XML 文書の事前構成セグメントを出力するには、以下のフィールド・タイプを使用します。
文字エスケープは行われないので、整っていない出力文書を構成することがないよう、細心の注意を払ってください。 これらの定数は、代替の解決策を注意深く調べてから使用してください。
XMLNSC フィールド・タイプ定数 |
目的 |
値 |
XMLNSC.Bitstream |
この構文エレメントの値は BLOB でなければなりません。
値は出力ビット・ストリームに直接書き込まれます。その使用法の詳細は、大規模な XML メッセージの処理を参照してください。 |
0x03000200 |
XMLNSC.AsisElementContent |
この構文エレメントの値は CHARACTER でなければなりません。
値は出力ビット・ストリームに直接書き込まれます。文字の置換は実行されません。 このエレメントは注意して使用してください。 |
0x03000600 |