SophiaFramework UNIVERSE 5.3 |
SFXXMLDocument クラスは、DOM ツリーをメモリ上に構築し、 XML 文書として保存するためのクラスです。
SFXXMLDocument オブジェクトは、DOM ツリーのルートノードとなります。
ルートノード(SFXXMLDocument オブジェクト)は、 DOM ツリーの頂点に位置するノードであり、DOM ツリー内のすべてのノードを管理します。
DOM ツリーの各種ノード(SFXXMLNode オブジェクト)は、 以下の表にあるように SFXXMLDocument クラスの関数を使用して作成します。 そして、DOM ツリーの他のノードの子ノードに設定することにより、DOM ツリーを構築します。
関数名 | 引数 | 戻り値 | 解説 |
---|---|---|---|
SFXXMLDocument::CreateElement | 要素名 | Element ノード(SFXXMLElement) | 要素名を指定して Element ノードを作成する |
SFXXMLDocument::CreateElementNS | 要素名(修飾名)、名前空間 URI | Element ノード(SFXXMLElement) | 要素名(修飾名)と名前空間 URI を指定して Element ノードを作成する |
SFXXMLDocument::CreateAttribute | 属性名 | Attribute ノード(SFXXMLAttribute) | 属性名を指定して Attribute ノードを作成する |
SFXXMLDocument::CreateAttributeNS | 属性名(修飾名)、名前空間 URI | Attribute ノード(SFXXMLAttribute) | 属性名(修飾名)と名前空間 URI を指定して Attribute ノードを作成する |
SFXXMLDocument::CreateTextNode | テキスト | Text ノード(SFXXMLText) | 指定されたテキストを持つ Text ノードを作成する |
SFXXMLDocument::CreateComment | コメントの内容 | Comment ノード(SFXXMLComment) | 指定されたコメントの内容を持つ Comment ノードを作成する |
SFXXMLDocument::CreateCDATASection | CDATASection の内容 | CDATASection ノード(SFXXMLCDATASection) | 指定された CDATASection の内容を持つ CDATASection ノードを作成する |
SFXXMLDocument::CreateEntity | エンティティ名 | Entity ノード(SFXXMLEntity) | 指定されたエンティティ名を持つ Entity ノードを作成する |
SFXXMLDocument::CreateEntityReference | 参照するエンティティ名 | EntityReference ノード(SFXXMLEntityReference) | 指定された参照するエンティティ名を持つ EntityReference ノードを作成する |
SFXXMLDocument::CreateDocumentType | 文書型名、公開識別子、システム識別子 | DocumentType ノード(SFXXMLDocumentType) | 指定された文書型名、公開識別子、システム識別子を持つ DocumentType ノードを作成する |
SFXXMLDocument::CreateNotation | 記法名 | Notation ノード(SFXXMLNotation) | 指定された記法名を持つ Notation ノードを作成する |
SFXXMLDocument::CreateProcessingInstruction | ターゲット名、処理命令の内容 | ProcessingInstruction ノード(SFXXMLProcessingInstruction) | 指定されたターゲット名、処理命令の内容を持つ ProcessingInstruction ノードを作成する |
SFXXMLDocument::CreateDocumentFragment | 無し | DocumentFragment ノード(SFXXMLDocumentFragment) | 空の DocumentFragment ノードを作成する |
SFXXMLDocument::Save 関数を呼び出すことにより、 DOM ツリーを XML 文書としてファイルに保存することが可能です。
名前空間関係の関数は、SFXXMLDocument / SFXXMLNode::DOMNamedNodeMap / SFXXMLElement クラスに存在します。
以下の表は、名前空間関係の関数の一覧です (名前空間関係の関数はすべて関数名の末尾が"NS"で終わります)。
表 19.8. SFXXMLDocument クラス
関数名 | 解説 |
---|---|
SFXXMLDocument::CreateElementNS | 名前空間付きの Element ノードを作成します。 |
SFXXMLDocument::CreateAttributeNS | 名前空間付きの Attribute ノードを作成します。 |
SFXXMLDocument::GetElementsByTagNameNS | 指定したローカル名と名前空間 URI を持つ Element ノードのリストを取得します。 |
表 19.9. SFXXMLNode::DOMNamedNodeMap クラス
関数名 | 解説 |
---|---|
GetNamedItemNS | 指定したローカル名と名前空間 URI を持つノードを取得します。 |
RemoveNamedItemNS | 指定したローカル名と名前空間 URI を持つノードを削除します。 |
SetNamedItemNS | 名前空間付きのノードを追加します。 |
表 19.10. SFXXMLElement クラス
関数名 | 解説 |
---|---|
SFXXMLElement::GetElementsByTagNameNS | 指定したローカル名と名前空間 URI を持つ Element ノードのリストを取得します。 |
SFXXMLElement::GetAttributeNS | 指定したローカル名と名前空間 URI を持つ属性の値を取得します。 |
SFXXMLElement::SetAttributeNS | 名前空間で修飾された属性を追加します。 |
SFXXMLElement::RemoveAttributeNS | 指定したローカル名と名前空間 URI を持つ属性を削除します。 |
SFXXMLElement::GetAttributeNodeNS | 指定したローカル名と名前空間 URI を持つ Attribute ノードを取得します。 |
SFXXMLElement::SetAttributeNodeNS | 名前空間で修飾された Attribute ノードを追加します。 |
SFXXMLElement::HasAttributeNS | 指定したローカル名と名前空間 URI を持つ属性が存在するか判定します。 |
SFXXMLDocument::CreateElementNS / SFXXMLDocument::CreateAttributeNS 関数は、 名前空間付き Element / Attribute ノードを作成するための関数です。
名前空間付き Element / Attribute ノードを作成するには、 引数に修飾名("名前空間接頭辞:ローカル名")と名前空間 URI を指定して SFXXMLDocument::CreateElementNS / SFXXMLDocument::CreateAttributeNS 関数を呼び出します。
CreateElementNS 関数で Element ノードを作成した場合、 [xmlns:"prefix" = "名前空間 URI"] という属性(Attribute ノード)が Element ノードに自動的に設定されます。
以上の操作により、 Element / Attribute ノードは名前空間 URI とそれに対応した名前空間接頭辞を保持するため、 ローカル名と名前空間 URI で名前空間付き Element / Attribute ノードにアクセスすることが可能になります。
名前空間付きの Element / Attribute ノードでは、 GetNamespaceURI / GetPrefix / GetLocalName 関数により、 名前空間 URI / 名前空間接頭辞 / ローカル名を取得できます。 GetName / GetNodeName 関数を呼び出すと、修飾名を取得できます。
修飾名 / 名前空間接頭辞 / ローカル名 / 名前空間 URI | |
---|---|
修飾名(Qname)は、":" を挟んで左側にある名前空間接頭辞(prefix)と右側にあるローカル名(localname)から構成されます。 名前空間接頭辞(prefix)は、名前空間 URI (namespaceURI)に関連付けられています。 |
SFXXMLDocument::GetElementsByTagNameNS / SFXXMLElement::GetElementsByTagNameNS 関数は、 ローカル名と名前空間 URI を指定することにより名前空間付き Element ノードを検索するための関数です。
XML パーサーで名前空間を処理する方法 | |
---|---|
XML パーサーでは、 SFXXMLDOMParser::SetDoNamespaces / SFXXMLSAXParser::SetDoNamespaces 関数で true を指定することにより名前空間を処理できます。 この設定を行えば、 XML パーサーによる解析後の DOM ツリー内の各 Element / Attribute ノードには、 名前空間 URI、名前空間接頭辞、ローカル名が設定されます。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |