XML DOM コマンドの概要

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11.3 (Modified)


4DにはXML (eXtensible Markup Language) データを含むオブジェクトを解析するための一連のコマンドがあります。

XMLランゲージについて


XMLランゲージはデータ交換の標準です。タグの使用に基づき、また交換されるデータや構造の明確な定義を可能にします。XMLファイルはテキストフォーマットファイルです。内容はアプリケーションにより読み込まれ、解析されます。多くのアプリケーションがいまやこのフォーマットをサポートしています。

XMLに関する詳細は例えば、http://xml.orghttp://www.w3.org などのサイトを参照してください。

XMLサポートのために、4DはApache Foundationにより開発されたXerces.dllライブラリを使用しています。4DはXML version 1.0をサポートしています。

Note: 4Dは書き出し/読み込みエディタを使用したXMLフォーマットでのデータ読み込みと書き出しをサポートしています。

DOM と SAX

このテーマのコマンドはDOM接頭辞が付いています。4DはDOMとSAX接頭辞がつく2つのセットのXMLコマンドを提供しています。DOM (Document Object Model) と SAX (Simple API XML) はXML用の2つの異なる解析モデルです。

・DOMモードでは、XMLソースを解析してその構造 (ツリー) をメモリに構築します。このため、それぞれの要素へのアクセスはとても速く行えます。しかしツリー構造の全体がメモリに格納されるため、大きなXMLドキュメントの処理ではメモリ不足を招き、結果エラーが生成されるかもしれません。

・SAXモードでは、メモリにツリー構造を構築しません。このモードではソースの解析時に (要素の開始と終了のような) イベントが生成されます。このモードではどんなサイズのXMLドキュメントでも、利用可能なメモリ量にかかわらず解析することができます。SAXコマンドは"XML SAX"テーマにまとめられています。詳細はXML SAX コマンドの概要の節を参照してください。

XML標準に関する情報は以下のサイトをご覧ください: http://www.saxproject.org/?selected=eventhttp://www.w3schools.com/xml/.

DOMによるXMLの作成、開く、及び閉じる

4DのDOMコマンドで作成、更新、または解析されるオブジェクトはテキスト、URL、ドキュメント、あるいはBLOBなどです。4DのXMLオブジェクトを開くために使用されるDOMコマンドはDOM Parse XML sourceDOM Parse XML variableです。

その後、要素や属性を読み込み、解析、そして書き込むために多くのコマンドを使用できます。エラーはGET XML ERROR コマンドを使用して復旧できます (両XML標準で共通です)。

DOM CLOSE XML コマンドを使用して最後にソースを閉じます。

SAXによるXMLの作成、開く、及び閉じる

SAXは4D標準のドキュメント参照 (DocRef, 時間型参照) を使用して動作します。そのため、これらのコマンドと、SEND PACKETAppend documentのようなドキュメント管理コマンドを組み合わせて使用できます。

プログラムによるXMLドキュメントの作成やオープンは、Create documentOpen documentコマンドを使用して行います。これらのドキュメントに対して引き続き使用されるXMLコマンドでは、エンコーディングなどのXMLメカニズムが自動で適用されます。例えば <?xml version="1.0" encoding="… encodage …" standalone = "no "?> ヘッダは自動でドキュメントに書き込まれます。

Note: SAXコマンドで読み込まれるドキュメントは、Open document コマンドの場合読み込みのみモードで開かれなければなりません。これにより、標準とXMLドキュメントを同時に開く際の4DとXercesライブラリ間でのコンフリクトが避けられます。読み書きモードで開いたドキュメントにSAX解析コマンドを実行すると、警告が表示され解析は行われません。

XMLドキュメントのクローズはCLOSE DOCUMENT コマンドを実行して行わなければなりません。開かれているXML要素があれば、それらは自動で閉じられます。

XPath記法の利用 (DOM)


3つのXML DOMコマンド (DOM Create XML element, DOM Find XML element そして DOM SET XML ELEMENT VALUE) はXML要素にアクセスするためにXPath記法を受け入れます。

XPath記法はXPathランゲージ由来であり、XMLストラクチャ間をナビゲートする目的で使用されます。パス名タイプのシンタックスを使用して、XMLストラクチャ内で直接要素を指定できます。例えば以下の構造があるとき:

   <RootElement>
      <Elem1>
         <Elem2>
            <Elem3 Font=Verdana  Size=10> </Elem3>
         </Elem2>
      </Elem1>
   </RootElement>

XPath記法ではElem3に /RootElement/Elem1/Elem2/Elem3 シンタックスでアクセスできます。

4DではElement[ElementNum]シンタックスを使用した添字によるXPath要素へのアクセスも使用できます。例えば以下の構造があるとき:

   <RootElement>
      <Elem1>
         <Elem2>aaa</Elem2>
         <Elem2>bbb</Elem2>
         <Elem2>ccc</Elem2>
      </Elem1>
   </RootElement>

XPath記法では /RootElement/Elem1/Elem2[3] シンタックスを使用して"ccc"値にアクセスできます。

XPath記法に関しては、DOM Create XML elementDOM Find XML element コマンドの例題を参照してください。

文字セット

以下の文字セットが4DのXML DOMとXML SAXコマンドでサポートされています:

・ASCII

・UTF-8

・UTF-16 (ビッグ/スモールエンディアン)

・UCS4 (ビッグ/スモールエンディアン)

・EBCDIC コードページ IBM037, IBM1047, IBM1140 エンコーディング,

・ISO-8859-1 (または Latin1)

・Windows-1252.

XSL 変換の管理


4DはXSL (eXtended Stylesheet Language) スタイルシートのアプリケーションをサポートします。XSLランゲージはXMLドキュメントのタグを変更することを可能にします。

XSLランゲージは2つの異なる機能を持ちます:

フォーマット: HTMLのCSS (Cascading StyleSheet) のように、スタイルや表示ルールを適用することを可能にします。

変換: XMLのタグを例えばHTMLなどの異なるタグシステムに変換します。この機能はXSLTとして知られます。XSLスタイルシートはドキュメントのXML要素を認識し、それらを他の要素に変換します。この機能は例えば異なるドキュメントを同期させるなどの場合に便利です。

Note: 4DはXSL変換を実行するためにXalan-C_1_6_0.dllライブラリを使用します。XalanはフリーウェアのXSLTプロセッサです。詳細はhttp://xml.apache.org/xalan-c/index.htmlを参照してください。

XSLスタイルシートは.xsl拡張子を持つテキストドキュメントで、マニュアルあるいは専用のアプリケーションを使用して生成できます。XSLランゲージは動的な変換を可能にするさまざまな要素と機能を持ちます。このランゲージに関する詳細は、例えば http://xmlfr.org を参照してください。

4Dでは既存のXSLスタイルシートを使用してXMLドキュメントを変換できます (APPLY XSLT TRANSFORMATION コマンド)。また4DではSET XSLT PARAMETER コマンドを使用してオンザフライでXSLスタイルシートのパラメタを変更できます。

Note: 書き出しダイアログのオプションを使用して、XML書き出し時にXSLスタイルシートの利用ができます。これにより変換されたXMLドキュメントを生成できます。

用語


XMLランゲージでは多くの特別な用語や略語が使用されます。ここでは4Dのコマンドで使用される主なXMLのコンセプトを説明します。

属性 (Attribute): 要素に付随するXMLのサブタグ。属性は常に名前と値を含みます (後述の図参照)。

子 (Child): XML構造において、ある要素の直接下のレベルにある要素。

DTD: Document Type Declaration。DTDはXMLが従わなくてはならない特定のルールとプロパティのセットを記述したものです。これらのルールは特にそれぞれのタグの名前と内容、およびそのコンテキストを定義します。この要素の形式化を使用して、XMLドキュメントが妥当であるかを検証できます。

DTDはXMLドキュメントに含めることができますし (内部DTD)、あるいは分離したドキュメントに置くこともできます (外部DTD)。DTDは必須でないことに留意してください。

要素 (Element): XMLタグ。要素は常に名前と値を含みます。オプションで要素は属性を含みます (図参照)。

要素参照 (ElementRef): 4DのXMLコマンドで使用されるXML参照はXML構造を指定します。この参照は8バイトの16進化されたコードです (つまり16文字)。

親 (Parent): XML構造において、ある要素の直接上のレベルにある要素。

解析、パーサ (Parsing, parser): 利用可能な情報を取り出すために構造化されたオブジェクトを解析すること。"XML"テーマのコマンドを使用してXMLオブジェクトの解析を行います。

ルート (Root): XML構造の先頭レベルに位置する要素。

兄弟 (Sibling): XML構造中、ある要素と同じレベルにある要素。

XML構造 (XML Structure): 構造化されたXMLオブジェクト。ドキュメント、変数、あるいは要素がこのオブジェクトになりえます。

妥当 (Valid): パーサにより整形式かつDTD定義に準拠していると検証されたXML。整形式を参照。

整形式 (Well-formed): パーサにより一般的なXML仕様に準拠していると検証されたXML。妥当を参照。

XML: eXtensible Markup Language。データやその構造の転送を可能にする電子的なデータ交換の標準。XMLランゲージは、HTMLのようにタグや特定のシンタックスの使用に基づきます。しかしXMLランゲージではカスタマイズされたタグの定義が可能です。

XSL: eXtensible Stylesheet Language。XMLドキュメントへの処理および内容の表示に使用するスタイルシートの定義を行うランゲージ。


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次