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