「NSXMLNode Class Reference」の編集履歴(バックアップ)一覧に戻る

NSXMLNode Class Reference - (2010/02/06 (土) 23:42:44) のソース

//0.下はいじらない
Tags:&tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「NSHogeのクラスリファレンス」、まで書く
&link_toppage(トップ) > [[リファレンス]] > データ管理:データ型とコレクション > NSXMLNode クラスリファレンス

//2.リファレンス日本語名を見出し1で書く。wiki内のリンクで用いられるタイトルになる。翻訳元にもリンクする。
*NSXMLNode クラスリファレンス [[翻訳元>http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSXMLNode_Class/Reference/Reference.html]]

//3.翻訳元の最終更新日を書く
このページの最終更新:&date()
ADCの最終更新:2009-10-19

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ(未完または完成、カテゴリ名×3)をつけて下線を引く(広告との境)。これで終了。それではGood Luck!
//本文開始↓

|TOP:BGCOLOR(#eef):継承するクラス|BGCOLOR(#eef):[[NSObject>NSObject Protocol Reference]]|
|TOP:準拠しているプロトコル|[[NSCopying>NSCopying Protocol Reference]]&br()[[NSObject (NSObject)>NSObject Protocol Reference]]|
|TOP:BGCOLOR(#eef):フレームワーク|BGCOLOR(#eef):/System/Library/Frameworks/Foundation.framework|
|TOP:使用可能な環境|Mac OS X v10.4以降|
|TOP:BGCOLOR(#eef):宣言ファイル|BGCOLOR(#eef):NSXMLNode.h&br()NSXMLNodeOptions.h|
|TOP:コンパニオンガイド|Tree-Based XML Programming Guide for Cocoa|
|TOP:BGCOLOR(#eef):サンプルコード|BGCOLOR(#eef):AlbumToSlideshow&br()Core Data HTML Store&br()MovieAssembler&br()TimelineToTC&br()XMLBrowser|

**概観(Overview)
----
 NSXMLNodeクラスのオブジェクトはXMLドキュメントを表す抽象的かつ論理的な木構造のノードです。ノードオブジェクトはエレメント、属性、テキスト、処理命令、名前空間、コメントなどのXMLドキュメントのマークアップの構成体それぞれに相当する異なる種類のノードになることができます。さらに、ドキュメントノードオブジェクト(具体的には[[NSXMLDocument]]のインスタンス)はXMLドキュメントそれ自体を表します。またNSXMLNodeオブジェクトはドキュメントタイプ定義(DTD)内での宣言だけでなくドキュメントタイプの宣言も表すことができます。NSXMLNodeクラスのクラスファクトリを使えば、それぞれの種類のノードを生成することができます。ドキュメント、エレメント、DTDノードだけが子ノードを持つことができます。
 NSXML系列のクラス、つまり「NSXML」がつくFoundationクラス([[NSXMLParser]]を除く)はNSXMLNodeクラスをベースにしています。このクラスを継承しているクラスは、[[NSXMLElement]]、[[NSXMLDocument]]、[[NSXMLDTD]]、そして[[NSXMLDTDNode]]です。NSXMLNodeクラスはXMLノードオブジェクトの共通のインターフェースを明確にし、ノードに共通する動作や属性(例えば階層のレベル、ノードの名前や値、木の走査、代表的なXMLのマークアップテキストを出力する機能など)を定義します。

**サブクラス作成時の注意(Subclassing Notes)
 サポートされているものと異なる種類のノードを利用したい時には、NSXMLNodeクラスのサブクラスを作成することができます。XMLNodeに比べより特化した動作や属性を持つサブクラスを作ることもできます。
***オーバーライドするメソッド(Methods to Override)
 NSXMLNodeのサブクラスを作成する為には、主要なイニシャライザである[[initWithKind:options:]]メソッドと、以下のリストのメソッドをオーバーライドする必要があります。多くの場合、単にスーパークラスの実装を呼び出すか、必要に応じてその前後にサブクラス特有のコードを書くだけで構いません。
|[[kind]]|[[parent]]|
|[[name]]|[[childAtIndex:]]|
|[[setName:]]|[[childCount]]|
|[[objectValue]]|[[children]]|
|[[setObjectValue:]]|[[detach]]|
|[[stringValue]]|[[localName]]|
|[[setStringValue:resolvingEntities:]]|[[prefix]]|
|[[index]]|[[URI]]|
 NSObjectのメソッド[[isEqual:]]のNSXMLNodeのデフォルトの実装では、深い比較を実行します。NSXMLNode同士の名前、子ノード、属性等が全て同じでない限り等値とは見なされません。この比較ではノードの子は調べますが、親は調べません。これとは違う基準で比較を行いたい場合には、[[isEqual:]]メソッドをオーバーライドしてください。
***特に気をつけること(Special Considerations)
 NSXMLのデータモデルとデータ構造ゆえに、カスタムクラスで[[NSXMLDocument]]クラスのクラスメソッド[[replacementClassForClass:]]メソッドをオーバーライドしてNSXMLクラスの代わりにカスタムクラスを返すようにしない限り、XMLを解析、処理している時にカスタムクラスを知ることができません。カスタムクラスがNSXML系列の直系のオブジェクトでないとき、例えばカスタムクラスがCDATAセクションを表すNSXMLNodeのサブクラスであるときなどは、新しいノードを作成し、それを適切な位置に挿入した後に木構造を走査することができます。

**採用しているプロトコル(Adopted Protocols)
----
[[NSCopying>NSCopying Protocol Reference]]
&space(4)&link_anchor(page=NSCopying Protocol Reference, copyWithZone:){- copyWithZone:}

**このクラスでできること(Tasks)
----
****ノードオブジェクトの生成と初期化(Creating and Initializing Node Objects)
&space(4)[[– initWithKind:]]
&space(4)[[– initWithKind:options:]]
&space(4)[[+ document]]
&space(4)[[+ documentWithRootElement:]]
&space(4)[[+ elementWithName:]]
&space(4)[[+ elementWithName:children:attributes:]]
&space(4)[[+ elementWithName:stringValue:]]
&space(4)[[+ elementWithName:URI:]]
&space(4)[[+ attributeWithName:stringValue:]]
&space(4)[[+ attributeWithName:URI:stringValue:]]
&space(4)[[+ textWithStringValue:]]
&space(4)[[+ commentWithStringValue:]]
&space(4)[[+ namespaceWithName:stringValue:]]
&space(4)[[+ DTDNodeWithXMLString:]]
&space(4)[[+ predefinedNamespaceForPrefix:]]
&space(4)[[+ processingInstructionWithName:stringValue:]]
***XMLノードオブジェクトの管理(Managing XML Node Objects)
&space(4)[[– index]]
&space(4)[[– kind]]
&space(4)[[– level]]
&space(4)[[– setName:]]
&space(4)[[– name]]
&space(4)[[– setObjectValue:]]
&space(4)[[– objectValue]]
&space(4)[[– setStringValue:]]
&space(4)[[– setStringValue:resolvingEntities:]]
&space(4)[[– stringValue]]
&space(4)[[– setURI:]]
&space(4)[[– URI]]
***ツリーノードのナビゲート(Navigating the Tree of Nodes)
&space(4)[[– rootDocument]]
&space(4)[[– parent]]
&space(4)[[– childAtIndex:]]
&space(4)[[– childCount]]
&space(4)[[– children]]
&space(4)[[– nextNode]]
&space(4)[[– nextSibling]]
&space(4)[[– previousNode]]
&space(4)[[– previousSibling]]
&space(4)[[– detach]]
***ノードコンテンツの出力(Emitting Node Content)
&space(4)[[– XMLString]]
&space(4)[[– XMLStringWithOptions:]]
&space(4)[[– canonicalXMLStringPreservingComments:]]
&space(4)[[– description]]
***クエリの実行(Executing Queries)
&space(4)[[– nodesForXPath:error:]]
&space(4)[[– objectsForXQuery:error:]]
&space(4)[[– objectsForXQuery:constants:error:]]
&space(4)[[– XPath]]
***名前空間の管理(Managing Namespaces)
&space(4)[[– localName]]
&space(4)[[+ localNameForName:]]
&space(4)[[– prefix]]
&space(4)[[+ prefixForName:]]

**クラスメソッド
----

**インスタンスメソッド
----

**定数(Constants)
----


----
目安箱バナー