Class

XMLNode

The nodes in the abstract, logical tree structure that represents an XML document. XML文書を表す、抽象的、論理ツリー構造の中のノード。

Declaration 宣言

class XMLNode : NSObject

Overview 概要

Node objects can be of different kinds, corresponding to the following markup constructs in an XML document: element, attribute, text, processing instruction, namespace, and comment. In addition, a document-node object (specifically, an instance of XMLDocument) represents an XML document in its entirety. XMLNode objects can also represent document type declarations as well as declarations in Document Type Definitions (DTDs). Class factory methods of XMLNode enable you to create nodes of each kind. Only document, element, and DTD nodes may have child nodes. ノードオブジェクトは、異なる種類のものであることができます、XML書類の中の以下のマークアップ構成体:要素、属性、テキスト、処理命令、名前空間、そしてコメントに対応しています。さらに、書類ノードオブジェクト(具体的には、XMLDocumentのインスタンス)は、そっくりそのままXML書類を表します。XMLNodeオブジェクトはまた、書類型宣言を表します、それだけでなくDocument Type Definition(DTD)それらにおける宣言も。XMLNodeのクラスファクトリメソッドは、あなたに各種のノードを作成させます。書類、要素、そしてDTDノードだけは、子ノードを持つかもしれません。

Among the XML family of classes (excluding XMLParser) the XMLNode class is the base class. Inheriting from it are the classes XMLElement, XMLDocument, XMLDTD, and XMLDTDNode. XMLNode specifies the interface common to all XML node objects and defines common node behavior and attributes, for example hierarchy level, node name and value, tree traversal, and the ability to emit representative XML markup text. クラスのXMLファミリーの間で(XMLParserを除いて)XMLNodeクラスは基盤クラスです。それから継承しているのは、クラスXMLElementXMLDocumentXMLDTD、そしてXMLDTDNodeです。XMLNodeは、XMLノードオブジェクトに一般的なインターフェイスを指定します、そして一般的ノード挙動と属性を定義します、例えば改装水準、ノード名と値、ツリー探索、そして代表的XMLマークアップテキストを発行するなど。

Subclassing Notes サブクラス作成の注意

You can subclass XMLNode if you want nodes of kinds different from the supported ones, You can also create a subclass with more specialized attributes or behavior than XMLNode. あなたは、XMLNodeのサブクラスを作成できます、もしあなたがサポートされるものとは違う種類のノードを望むならば、あなたはまたXMLNodeよりも特殊化された属性または挙動を持つサブクラスを作成できます。

Methods to Override メソッドのオーバーライド

To subclass XMLNode you need to override the primary initializer, init(kind:options:), and the methods listed below. In most cases, you need only invoke the superclass implementation, adding any subclass-specific code before or after the invocation, as necessary. XMLNodeのサブクラスを作るためにあなたは主要イニシャライザ、init(kind:options:)、および下で一覧にされるメソッドをオーバーライドする必要があります。ほとんどの場合には、あなたはスーパークラス実装の発動だけが必要です、何らかのサブクラス特有コードをその発動の前または後に加えます、必要に応じて。

By default XMLNode implements the NSObject isEqual(_:) method to perform a deep comparison: two XMLNode objects are not considered equal unless they have the same name, same child nodes, same attributes, and so on. The comparison looks at the node and its children, but does not include the node’s parent. If you want a different standard of comparison, override isEqual:. 初期状態でXMLNodeNSObjectisEqual(_:)メソッドを実装して、ある深い比較を実行します:2つのXMLNodeオブジェクトは等しいとみなされません、それらが同じ名前、同じ子ノード、同じ属性、などを持たない限り。比較は、ノードとそれの子を見ます、しかしノードのもつ親を含めません。あなたが比較の異なる標準を望むならば、isEqual:をオーバーライドしてください。

Special Considerations 特別な注意事項

Because of the architecture and data model of NSXML, when it parses and processes a source of XML it cannot know about your subclass unless you override the XMLDocument class method replacementClass(for:) to return your custom class in place of an NSXML class. If your custom class has no direct NSXML counterpart—for example, it is a subclass of XMLNode that represents CDATA sections—then you can walk the tree after it has been created and insert the new node where appropriate. NSXMLのアーキテクチャとデータモデルが原因で、それがXMLのソースを構文解析して処理する時にそれはあなたのサブクラスについて知ることはできません、もしあなたがXMLDocumentのクラスメソッドreplacementClass(for:)をオーバーライドしてあなたのあつらえのクラスをNSXMLクラスの代わりに返すのでなければ。あなたのあつらえのクラスが直接のNSXML相当物を持たないならば — 例えば、それが、XMLNodeのサブクラスであり、CDATAセクションを表している — そのときあなたはツリーをそれが作成された後に歩いて行って(walk)、新しいノードを適切なところに挿入できます。

Topics 話題

Creating and Initializing Node Objects ノードオブジェクトの作成と初期化

Managing XML Node Objects XMLノードオブジェクトを管理する

Navigating the Tree of Nodes ノードのツリーを閲覧する

Emitting Node Content ノード内容を発行する

Executing Queries クエリを遂行する

Managing Namespaces 名前空間を管理する

Constants 定数

Initializers イニシャライザ

Relationships 関係

Inherits From 継承元

Conforms To 次に準拠

See Also 参照

Tree-Based Processing ツリー基盤の処理