![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework 4.1 |
DOM ( Document Object Model ) パーサーとして SFXXMLDOMParser クラスと SFXXSDDOMParser クラス、 SAX ( Simple API for XML ) パーサーとして SFXXMLSAXParser クラスが利用可能です。
DOM パーサーは XML 文書をひとつの DOM ツリーとしてメモリ上に展開します。XML 文書の操作は簡単ですが、多くのメモリが必要になります。
SAX パーサーは XML 文書を先頭から順次読み込み、イベント ドリブンで処理する API です。
SAX は DOM ツリーをメモリ上に構築しないので、DOM よりも少ないメモリで処理できます。また、DOM の場合、DOM ツリーを構築するまでは次の処理に移れませんが、SAX は解析しながら処理をするので高速です。
SFXXMLDOMParser クラスとSFXXMLSAXParser クラスの基本機能は以下の通りです。
■ XML 文書の解析
表 18.7. XML 文書を解析するための関数
| SFXXMLDOMParser クラスの関数名 | SFXXMLSAXParser クラスの関数名 | 解説 |
|---|---|---|
| SFXXMLDOMParser::Parse | SFXXMLSAXParser::Parse | XML 文書を解析します。 |
■パーサー属性の設定
表 18.8. パーサーの属性を設定するための Set 関数
| SFXXMLDOMParser クラスの関数名 | SFXXMLSAXParser クラスの関数名 | 解説 |
|---|---|---|
| SFXXMLDOMParser::SetGrammar | SFXXMLSAXParser::SetGrammar | パーサーが使用する文法を設定します。 |
| SFXXMLDOMParser::SetDoNamespaces | SFXXMLSAXParser::SetDoNamespaces | 名前空間を処理するかどうかを設定します。 |
| SFXXMLDOMParser::SetDoIndent | SFXXMLSAXParser::SetDoIndent | 文書をインデントするかどうかを設定します。 |
| SFXXMLDOMParser::SetDoSchema | SFXXMLSAXParser::SetDoSchema | スキーマを処理するかどうかを設定します。 |
| SFXXMLDOMParser::SetCreateCommentNodes | ------ | Comment ノードを生成するかどうかを設定します。 |
| SFXXMLDOMParser::SetValidationSchema | SFXXMLSAXParser::SetValidationSchema | XML 文書をスキーマで検証するかどうかを設定します。 |
| SFXXMLDOMParser::SetValidationDTD | SFXXMLSAXParser::SetValidationDTD | XML 文書を DTD で検証するかどうかを設定します。 |
| SFXXMLDOMParser::SetLoadExternalDTD | SFXXMLSAXParser::SetLoadExternalDTD | DTD 付き XML 文書に対し、外部の DTD ファイルをロードするかどうかを設定します。 |
| SFXXMLDOMParser::SetIgnoreAnnotations | SFXXMLSAXParser::SetIgnoreAnnotations | スキーマ付き XML 文書の Annotation 要素を無効にするかどうかを設定します。 |
| SFXXMLDOMParser::SetSchemaLocation | SFXXMLSAXParser::SetSchemaLocation | スキーマ付き XML 文書の XSD ファイルを設定します。 |
![]() |
注意 |
|---|---|
SFXXMLDOMParser::SetIgnoreAnnotations / SFXXMLSAXParser::SetIgnoreAnnotations 関数を除き、Set 関数のデフォルト値は " false " です。 | |
■パーサー属性の取得
表 18.9. パーサーの属性を取得するための Get 関数
| SFXXMLDOMParser クラスの関数名 | SFXXMLSAXParser クラスの関数名 | 解説 |
|---|---|---|
| SFXXMLDOMParser::GetDoNamespaces | SFXXMLSAXParser::GetDoNamespaces | 名前空間を処理するかどうかを取得します。 |
| SFXXMLDOMParser::GetDoIndent | SFXXMLSAXParser::GetDoIndent | 文書をインデントするかどうかを取得します。 |
| SFXXMLDOMParser::GetDoSchema | SFXXMLSAXParser::GetDoSchema | スキーマを処理するかどうかを取得します。 |
| SFXXMLDOMParser::GetCreateCommentNodes | ------ | Comment ノードを生成するかどうかを取得します。 |
| SFXXMLDOMParser::GetValidationSchema | SFXXMLSAXParser::GetValidationSchema | XML 文書をスキーマで検証するかどうかを取得します。 |
| SFXXMLDOMParser::GetValidationDTD | SFXXMLSAXParser::GetValidationDTD | XML 文書を DTD で検証するかどうかを取得します。 |
| SFXXMLDOMParser::GetLoadExternalDTD | SFXXMLSAXParser::GetLoadExternalDTD | DTD 付き XML 文書に関して、外部 DTD ファイルをロードするかどうかを取得します。 |
| SFXXMLDOMParser::GetIgnoreAnnotations | SFXXMLSAXParser::GetIgnoreAnnotations | スキーマ付き XML 文書の Annotation 要素を無効にするかどうかを判定します。 |
| SFXXMLDOMParser::GetDocument | ------ | DOM ツリーのルート ノードを取得します。 |
■要素の取得
表 18.10. 要素を取得するための関数
| SFXXMLDOMParser クラスの関数名 | 解説 |
|---|---|
| SFXXMLDOMParser::GetFirstChildElement | 指定した要素の最初の子要素を取得します。 |
| SFXXMLDOMParser::GetFirstChildElementNS | 指定した名前空間付き要素の最初の子要素を取得します。 |
| SFXXMLDOMParser::GetNextSiblingElement | 指定した要素の次の兄弟要素を取得します。 |
| SFXXMLDOMParser::GetNextSiblingElementNS | 指定した名前空間付き要素の次の兄弟要素を取得します。 |
![]() |
注意 |
|---|---|
上記メンバ関数は、SFXXMLSAXParser クラスにはありません。 | |
![]() |
SAX パーサー ( SFXXMLSAXParser クラス ) で解析する場合 |
|---|---|
XML 文書解析時に通知されるイベントを処理するハンドラを SFXXMLDefaultHandler クラスを継承するクラスにて実装する必要があります。 実装したクラスは SFXXMLSAXParser クラスに登録します。 | |
|
Copyright (C) 2002 - 2008 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|