<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ構造</anchor>である<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>の中で、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">植物</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</anchor>にあたる部分の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>を、
<dfn><ruby>根節点<rt>ねせってん</rt><rt xml:lang="en">root node</rt></ruby></dfn>、
あるいは単に<dfn><ruby>根<rt>ね</rt><rt xml:lang="en">root</rt></ruby></dfn>といいます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>のほとんどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親節点</anchor>を持ちますが、
唯一<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</anchor>だけは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親節点</anchor>がありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根節点</anchor>」という時、データモデルによっては特定の節点の種類を表しますが、
別のデータモデルでは木構造中の位置を表します。具体的には、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XPath 1.0データ・モデル</anchor>では「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根節点</anchor>」とは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書節点</anchor>に相当する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>の種類ですが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XDM</anchor>
では「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根節点</anchor>」とは種類に関わらず<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木構造</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</anchor>に位置する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>のことです。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite xml:lang="en-US">DOM Standard</cite> (<time>2013-09-23 20:54:24 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://dom.spec.whatwg.org/#concept-tree-root">https://dom.spec.whatwg.org/#concept-tree-root</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite xml:lang="en">DOM Standard</cite> (<time>2017-09-15 01:44:22 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://dom.spec.whatwg.org/#dom-node-getrootnode">https://dom.spec.whatwg.org/#dom-node-getrootnode</anchor-external></li></ul></refs></section><section><h1>定義</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>の<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>根</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">root</rt></rubyb></f></dfn>は、
その<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親</f>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor> ならそれ自体、
それ以外ならその<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親</f>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</f>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;10</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> つまり、<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親</f>をたどってそれ以上たどれなくなったら、それが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</anchor>です。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>の<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>根</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">root</rt></rubyb></f></dfn>は、
それに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属する<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">participate</title></anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>のうち、
その<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親</f>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor> であるものです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;10</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> そのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>ごとにちょうど1つだけ存在します。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</f>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属する<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">participate</title></anchor>任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</f>と常に一致します。</comment-p></section><section><h1>根の取得</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</f>は、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親</f>をたどっていくことで取得できます。
その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">計算量</anchor>は深さ (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</anchor>から当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>までの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">枝</anchor>の数) ですから、
おおよそ平均的には <code class="math"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">O<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">O()</title></anchor>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">log</anchor>(<var>n</var>))</code>
(最悪 <code class="math"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">O<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">O()</title></anchor>(<var>n</var>)</code>) となります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">木</anchor>を保持する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ構造</anchor>や、速い探索のための最適化の方法次第で、
より高速に取得できることがあります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> 例えば多くの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> の実装は、少なくても主たる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書木</anchor>については、
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">O<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">O()</title></anchor>(1)</code> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</f>にアクセスできるように参照を保持しているようです。</p></example></section><section><h1>根要素</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根要素</anchor>」は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>のみを考えた時<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</anchor>にあたるものです。必ずしも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根節点</anchor>と同一ではありません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根要素</anchor>参照。</comment-p></section><section><h1>影を含む根</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">影木</anchor>も含めた全体の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">影を含む根</anchor>といいます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">影を含む根</anchor>参照。</comment-p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite xml:lang="en">XQuery and XPath Data Model 3.0</cite>
( (<time>2014-04-08 07:00:06 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/xpath-datamodel-3/#dt-root-node">http://www.w3.org/TR/xpath-datamodel-3/#dt-root-node</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en">Add Node.prototype.rootNode · whatwg/dom@0316b62</cite>
(<time>2016-03-08 18:14:44 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/dom/commit/0316b621cfe8a7aa4ad50a2ec7d10dba902ddccb">https://github.com/whatwg/dom/commit/0316b621cfe8a7aa4ad50a2ec7d10dba902ddccb</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="en"><strong></strong>[<strong></strong>Issue #80<strong></strong>]<strong></strong> Remove Node.treeRoot because it was renamed and was upstr… · w3c/webcomponents@959d802</cite>
(<time>2016-03-08 18:26:27 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webcomponents/commit/959d8026056976b24e5eccc55eb3190e7719cf8d">https://github.com/w3c/webcomponents/commit/959d8026056976b24e5eccc55eb3190e7719cf8d</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite xml:lang="en">Editorial: add sections on document and shadow trees · whatwg/dom@018440e</cite> (<time>2016-03-20 18:28:50 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/dom/commit/018440e918b59633eb0a6b9033528f612f84aa49">https://github.com/whatwg/dom/commit/018440e918b59633eb0a6b9033528f612f84aa49</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <cite xml:lang="en">Remove Node.prototype.rootNode</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2016-06-07 17:53:11 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/dom/commit/42a45eb0d1af13e510620b6b29696997f0c7aa3d">https://github.com/whatwg/dom/commit/42a45eb0d1af13e510620b6b29696997f0c7aa3d</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <cite xml:lang="en">Add Node.prototype.getRootNode()</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2016-06-09 16:53:30 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/dom/commit/579ef079ded65daa981cac974648621790839072">https://github.com/whatwg/dom/commit/579ef079ded65daa981cac974648621790839072</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <cite xml:lang="en">XQuery and XPath Data Model 3.1</cite>
(<time>2017-03-20 07:26:25 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/TR/2017/REC-xpath-datamodel-31-20170321/#dt-root-node">https://www.w3.org/TR/2017/REC-xpath-datamodel-31-20170321/#dt-root-node</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite xml:lang="en">Editorial: getRootNode() is a method</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-07-24 16:22:50 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/dom/commit/b8d9f4e4a319d3050df0e9242a8d3d2733ba67fa">https://github.com/whatwg/dom/commit/b8d9f4e4a319d3050df0e9242a8d3d2733ba67fa</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <cite xml:lang="en">&quot;The getRootNode(options) attribute’s getter&quot; · Issue #481 · whatwg/dom</cite>
(<time>2017-07-25 11:28:35 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/dom/issues/481">https://github.com/whatwg/dom/issues/481</anchor-external></p></section></body></html>