SophiaFramework UNIVERSE 5.3 |
DOM ツリーは、 W3C ( World Wide Web Consortium ) で定義される 12 種類のノードから構成され、 それぞれに対応する SophiaFramework UNIVERSE のクラスは以下の通りです。
表 19.1. XML ノード クラス
クラス名 | 解説 | ノードタイプ ( SFXXMLNode::NodeType ) |
---|---|---|
SFXXMLNode | 12 種類のノード クラスの基底クラスです。 | - |
SFXXMLElement | Element ノードを表すクラスです。 | ELEMENT_NODE |
SFXXMLAttribute | Attribute ノードを表すクラスです。 | ATTRIBUTE_NODE |
SFXXMLText | Text ノードを表すクラスです。 | TEXT_NODE |
SFXXMLCDATASection | CDATASection ノードを表すクラスです。 | CDATA_SECTION_NODE |
SFXXMLEntityReference | Entity Reference ノードを表すクラスです。 | ENTITY_REFERENCE_NODE |
SFXXMLEntity | Entity ノードを表すクラスです。 | ENTITY_NODE |
SFXXMLProcessingInstruction | Processing Instruction ノードを表すクラスです。 | PROCESSING_INSTRUCTION_NODE |
SFXXMLComment | Comment ノードを表すクラスです。 | COMMENT_NODE |
SFXXMLDocument | Document ノードを表すクラスです。 | DOCUMENT_NODE |
SFXXMLDocumentType | DocumentType ノードを表すクラスです。 | DOCUMENT_TYPE_NODE |
SFXXMLDocumentFragment | DocumentFragment ノードを表すクラスです。 | DOCUMENT_FRAGMENT_NODE |
SFXXMLNotation | Notation ノードを表すクラスです。 | NOTATION_NODE |
注意 | |
---|---|
12 種類のノードを表す各クラスは、すべて SFXXMLNode クラスを継承します。 |
DOM ツリーは、ルートのノードの種類に応じて以下の表のように分類することができます。
各ノードは、子ノードとして持てるノードの種類が以下のように決まっています。
表 19.2. 文書ツリー(Document ノードをルートとする DOM ツリー)の構成要素
ノードの種類 | 子になれるノードの種類 |
---|---|
Document | Element(最大 1 つ)/ ProcessingInstruction / Comment / DocumentType(最大 1 つ) |
Element | Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference |
ProcessingInstruction | 子ノードを持たない |
Comment | 子ノードを持たない |
DocumentType | 子ノードを持たない |
Text | 子ノードを持たない |
CDATASection | 子ノードを持たない |
EntityReference | Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference |
注意 | |
---|---|
XML 文書は、XML パーサーにより Document ノードをルートとする DOM ツリーに展開されます。 |
表 19.3. DOM ツリーを構成するノード(Document ノード以外)
ノードの種類 | 子になれるノードの種類 |
---|---|
DocumentFragment | Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference |
Attribute | Text / EntityReference |
Entity | Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference |
Notation | 子ノードを持たない |
DocumentFragment | |
---|---|
DocumentFragment とは、 DOM ツリーを操作する際の一時的な作業用サブツリーを作成するための「軽量 (最小限度)」 の Document オブジェクトです。 文書ツリーのあるノードに DocumentFragment ノードを挿入するとき、 実際に挿入されるのは DocumentFragment ノードではなく、DocumentFragment ノードの子が挿入されることに注意してください。 |
DOM(Document Object Model)の仕様 | |
---|---|
W3C DOM レベル 2 コア仕様 : Document Object Model (DOM) Level 2 Core Specification |
SFXXMLNode クラスの基本機能として、以下の関数が用意されています。
表 19.4. DOM ツリーを操作するための関数
関数名 | 解説 |
---|---|
GetFirstChild | 最初の子ノードを取得します。 |
GetLastChild | 最後の子ノードを取得します。 |
GetNextSibling | 次の兄弟ノードを取得します。 |
GetPreviousSibling | 前の兄弟ノードを取得します。 |
GetParentNode | 親ノードを取得します。 |
表 19.5. DOM ツリーを構築するための関数
関数名 | 解説 |
---|---|
AppendChild | 子ノードの最後にノードを追加します。 |
RemoveChild | 子孫ノードも含めて子ノードを削除します。 |
ReplaceChild | 子ノードを置換します。 |
InsertBefore | 指定されたノードの前にノードを挿入します。 |
CloneNode | ノードのコピーを作成します。 |
表 19.6. ノードの属性を設定・取得するための関数
関数名 | 解説 |
---|---|
HasChildNodes | 子ノードを持つかどうかを判定します。 |
GetChildNodes | すべての子ノードの取得します。 |
GetNodeType | ノードタイプを取得します。 |
GetNodeName | ノード名を取得します。 |
SetNodeValue | ノード内容を更新します。 |
GetText | ノードのテキストを取得します。 |
SetText | ノードにテキストを設定します。 |
XML パーサーは、DTD または XMLスキーマの文法により検証された XML 文書を、 ツリー構造(DOM ツリー)としてメモリ上に展開してアプリケーションに渡します。
実際のアプリケーションでは、 XML パーサー(SFXXMLDOMParser)を呼んで XML 文書を解析し、 作成された DOM ツリーのルートノード(SFXXMLDocument オブジェクト)を取得します。
SFXXMLScanner | |
---|---|
SFXXMLScanner は、 XML パーサーが内部的に使用するクラスです。 |
■ SFXXMLDocument クラスの機能
注意 | |
---|---|
XML パーサーの処理では、 DOM ツリーのルートノード(SFXXMLDocument オブジェクト)が最も重要な役割を果たします。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |