rootNode

rootNode

[1] データ構造であるの中で、植物にあたる部分の節点を、 根節点 (ねせってん) (root node) 、 あるいは単に () (root) といいます。

[4] のほとんどの節点親節点を持ちますが、 唯一だけは親節点がありません。

[5]根節点」という時、データモデルによっては特定の節点の種類を表しますが、 別のデータモデルでは木構造中の位置を表します。具体的には、 XPath 1.0データ・モデルでは「根節点」とは DOM文書節点に相当する節点の種類ですが、 XDM では「根節点」とは種類に関わらず木構造に位置する節点のことです。

仕様書

定義

[11] オブジェクト (root) は、 そのnull ならそれ自体、 それ以外ならそのです >>10

[12] つまり、をたどってそれ以上たどれなくなったら、それがです。

[6] (root) は、 それに属するオブジェクトのうち、 そのnull であるものです >>10

[13] そのようなオブジェクトは、ごとにちょうど1つだけ存在します。
[14] は、属する任意のオブジェクトと常に一致します。

根の取得

[18] ある節点は、その節点をたどっていくことで取得できます。 その計算量は深さ (から当該節点までのの数) ですから、 おおよそ平均的には O(log(n)) (最悪 O(n)) となります。

[19] を保持するデータ構造や、速い探索のための最適化の方法次第で、 より高速に取得できることがあります。

[20] 例えば多くの DOM の実装は、少なくても主たる文書木については、 O(1)節点にアクセスできるように参照を保持しているようです。

根要素

[7]根要素」は要素のみを考えた時にあたるものです。必ずしも根節点と同一ではありません。

根要素参照。

影を含む根

[15] 影木も含めた全体の影を含む根といいます。

歴史

[8] XQuery and XPath Data Model 3.0 ( ( 版)) <http://www.w3.org/TR/xpath-datamodel-3/#dt-root-node>

[2] Add Node.prototype.rootNode · whatwg/dom@0316b62 ( 版) <https://github.com/whatwg/dom/commit/0316b621cfe8a7aa4ad50a2ec7d10dba902ddccb>

[3] [Issue #80] Remove Node.treeRoot because it was renamed and was upstr… · w3c/webcomponents@959d802 ( 版) <https://github.com/w3c/webcomponents/commit/959d8026056976b24e5eccc55eb3190e7719cf8d>

[9] Editorial: add sections on document and shadow trees · whatwg/dom@018440e ( 版) <https://github.com/whatwg/dom/commit/018440e918b59633eb0a6b9033528f612f84aa49>

[16] Remove Node.prototype.rootNode ( (annevk著, )) <https://github.com/whatwg/dom/commit/42a45eb0d1af13e510620b6b29696997f0c7aa3d>

[17] Add Node.prototype.getRootNode() ( (annevk著, )) <https://github.com/whatwg/dom/commit/579ef079ded65daa981cac974648621790839072>

[21] XQuery and XPath Data Model 3.1 () <https://www.w3.org/TR/2017/REC-xpath-datamodel-31-20170321/#dt-root-node>

[22] Editorial: getRootNode() is a method (annevk著, ) <https://github.com/whatwg/dom/commit/b8d9f4e4a319d3050df0e9242a8d3d2733ba67fa>

[23] "The getRootNode(options) attribute’s getter" · Issue #481 · whatwg/dom () <https://github.com/whatwg/dom/issues/481>