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クラスは基盤クラスです。それから継承しているのは、クラスXMLElement、XMLDocument、XMLDTD、そして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 NSObjectisEqual(_:) 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:.
初期状態でXMLNodeはNSObjectのisEqual(_:)メソッドを実装して、ある深い比較を実行します: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
ノードオブジェクトの作成と初期化
Returns an NSXMLNode instance initialized with the constant indicating node kind and one or more initialization options.NSXMLNodeインスタンスを返します、ノード種類を指し示している定数そして1つ以上の初期化オプションで初期化されます。
Returns a XMLDTDNode object representing the DTD declaration for an element, attribute, entity, or notation based on a given string.XMLDTDNodeオブジェクトを返します、与えられた文字列に基づく要素、属性、エンティティ、または表記法に対するDTD宣言を表しています。
Returns an NSXMLNode object representing one of the predefined namespaces with the specified prefix.NSXMLNodeオブジェクトを返します、指定された接頭辞を持つあらかじめ定義された名前空間の1つを表しています。
Sets the content of the receiver as a string value and, optionally, resolves character references, predefined entities, and user-defined entities as declared in the associated DTD.
レシーバの内容を文字列値として設定しますそして、随意に文字参照、あらかじめ定義されたエンティティ、そしてユーザ定義エンティティをその結びつけられたDTDにおいて宣言されるとおりに解決します。
Returns the XMLDocument object containing the root element and representing the XML document as a whole.XMLDocumentオブジェクトを返します、ルート要素を含んでいます、そしてXML書類を全体として表しています。
Returns the string representation of the receiver as it would appear in an XML document, with one or more output options specified.
レシーバの文字列表現を返します、それがXML書類において現れるのと同じに、1つ以上の指定された出力オプションで。
NSXMLNode declares the following constants of type NSXMLNodeKind for specifying a node’s kind in the initializer methods init(kind:) and init(kind:options:):NSXMLNodeは、型NSXMLNodeKindの以下の定数を、イニシャライザメソッドinit(kind:)とinit(kind:options:): においてあるノードのもつ種類を指定するために宣言します。