次の方法で共有


パススルー テンプレート データ型

*DataType: PASSTHROUGH は、未処理のデータ型を表すテンプレートを定義します。 GDL 値を構成する文字は、GDL 属性を表す XML 要素の要素コンテンツとして挿入されます。

次のディレクティブは、PASSTHROUGH データ型を定義するテンプレート内で認識されます。

  • *ArrayLabel。 このディレクティブを指定した場合、パーサー フィルターは値をかっこで囲み、その前に指定した配列ラベルを付けます。 このディレクティブはオプションです。

値の構文は、文字データや子要素などを含めることができる XML 要素コンテンツに対して定義されている構文に従う必要があります。 また、GDLパーサーは、開閉括弧(<や>)やアンパサンド(&)などの特殊な XML 文字をエスケープしないことに注意してください。 値の作成者は、要素コンテンツの XML 構文に値を準拠させます。

XML 構文が基本的な GDL 構文規則と競合する場合は、値全体 (または競合する部分のみ) を<Begin/EndValue:>コンストラクト内に囲む必要があります。 このような互換性のない構文を持つ XML 値、または構文が複合データ型で使用される構文と互換性がない XML 値は、複合データ型のメンバーとして表示することはできませんが、GDL 属性の値として直接指定する必要があります。

たとえば、次のテンプレート例を考えてみましょう。

*Template:  ELEMENT_CONTENT
{
    *Type:  DATATYPE
    *DataType:   PASSTHROUGH
}

前のテンプレートでは、パーサー フィルターは PASSTHROUGH データの XSD スキーマ データ型宣言を作成しません。

次の GDL エントリについて考えてみましょう。

*InLineXML:  <BeginValue:XML>
 <Cell CellOrdinal="0">
         <Value xsi:type="xsd:double">16890</Value>
         <FmtValue>16,890.00</FmtValue>
         <FormatString>Standard</FormatString>
      </Cell>
<EndValue:XML>

前の例のテンプレートを使用して上記のエントリが解釈された場合、次の XML 出力が発生します。

<GDL_ATTRIBUTE Name="*InLineXML"  >
  <Cell CellOrdinal="0">
    <Value xsi:type="xsd:double">16890</Value>
    <FmtValue>16,890.00</FmtValue>
    <FormatString>Standard</FormatString>
  </Cell>
</GDL_ATTRIBUTE>

XML スキーマを使用して PASSTHROUGH インスタンスを検証する場合は、XSD_DEFINED データ型を使用すると XSD スキーマをテンプレートで明示的に定義でき、パーサーによってスキーマ出力に統合されるため、PASSTHROUGH の代わりに XSD_DEFINED データ型を使用する必要があります。