<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:">manakai DOM Extensions</anchor> &gt; Extensions to
existing interfaces &gt; Extensions to the
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> interface</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> The description for the 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ElementTypeDefinition</anchor></code> and
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AttributeDefinition</anchor></code> interfaces
includes the interaction of existing attributes
and methods of <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> interface
and these new node types.</p><section><section><h1>New node types</h1><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> Two constants are added to the
definition group <code class="DOM" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NodeType</anchor></code>:<ul><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> 
The constant <code class="DOMc" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ELEMENT_TYPE_DEFINITION_NODE</anchor></code>,
<code class="IDL"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">81001</anchor></code> in <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">unsigned short</anchor></code>,
represents that the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>
is an <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ElementTypeDefinition</anchor></code>.</li><li><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> 
The constant <code class="DOMc" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ATTRIBUTE_DEFINITION_NODE</anchor></code>,
<code class="IDL"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">81002</anchor></code> in <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">unsigned short</anchor></code>,
represents that the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>
is an <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AttributeDefinition</anchor></code>.</li></ul></p></section><section><h1>New element type accessors</h1><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> The <dfn xml:lang="en"><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiLocalName</anchor></code> attribute</dfn>
contains the <q xml:lang="en">real</q> local name of the
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>.</p><p>The type of this attribute is <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMString</anchor></code>.
This attribute is read-only.</p><p>The getter of this attribute <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor>
return the same value as the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localName</anchor></code>
on the same <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>,
except when the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localName</anchor></code> getter
is so defined that it must return the canonicalized
version of <q xml:lang="en">real</q> local name, in that case
the <q xml:lang="en">real</q> local name <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> be returned.</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="81005" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81005]</anchor-end> Since it has clarified that <code xmlns="http://www.w3.org/1999/xhtml" class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localName</anchor></code> always returns the original local name
of the element, use of the <code xmlns="http://www.w3.org/1999/xhtml" class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiLocalName</anchor></code> attribute is discouraged.</comment-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> The <dfn xml:lang="en"><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiExpandedURI</anchor></code> attribute</dfn>
contans the expanded URI, i.e. the concatenation
of the namespace URI and the local name of the 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>.</p><p>The type of this attribute is <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMString</anchor></code>.
This attribute is read-only.</p><ol><li>If the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiLocalName</anchor></code> of the
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>,
then the getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>.</li><li>Otherwise, if the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code>
of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>,
then the getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return the
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiLocalName</anchor></code> of the 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>.</li><li>Otherwise, the getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return the 
concatenation of the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code>
and then <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiLocalName</anchor></code>.</li></ol></section><section><h1>New tree accessor and mutator</h1><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> The 
<dfn xml:lang="en"><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiParentElement</anchor></code> attribute</dfn>
contains the parent element of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>,
if any.</p><p>The type of this attribute is <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code>.
This attribute is read-only.</p><ol><li>If the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">parentNode</anchor></code> of
the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>,
then the getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>.</li><li>Otherwise, if the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">parentNode</anchor></code>
of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is an <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code>,
then the getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return that 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code>.</li><li>Otherwise, the getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return
the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiParentElement</anchor></code>
of the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">parentNode</anchor></code> of the
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>.  It might be <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>.</li></ol><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">ISSUE: Should the owner element be returned for
an <code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code>?</ed><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> The <dfn xml:lang="en"><code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiAppendText</anchor></code> method</dfn>
appends a string at the end of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>.</p><figure><pre class="IDL code"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">partial</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">interface</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor> {
  <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiAppendText</anchor>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMString</anchor> <var>s</var>);
  void <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiAppendContent</anchor>((<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor> or <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMString</anchor>) <var xml:lang="en">node</var>);
};</pre></figure><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="81011" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81011]</anchor-end> In <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM Perl Binding</anchor>, <var xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">s</var> can be a reference to the string.</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">It was the original intention that for the DOM Perl binding
the <code xmlns="http://www.w3.org/1999/xhtml" class="perl"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.=</anchor></code> operator is to be overloaded
by this method.  However, since overloading that
operator by this method makes the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor>
implementation (at least Perl 5.8.1 and 5.8.7
on GNU/Linux system) unstable, that feature is
temporarily disabled.</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81012" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81012]</anchor-end> When invoked, the method <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> run the following steps with the argument <var xml:lang="en">s</var>:<figure><ol><li>If setting the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">textContent</anchor></code> attribute of the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> has no effect,
return the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> and abort these steps.</li><li>If setting the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">textContent</anchor></code> attribute would append a <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Text</anchor></code> node
as the children of the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor>, <ol><li>If the last child of the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor>, if any, is a <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Text</anchor></code> node,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">replace data</anchor> with <var>node</var> the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Text</anchor></code> node, <var>offset</var> <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">length</anchor></code> attribute value
of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Text</anchor></code> node, <var xml:lang="en">count</var> 0, and <var xml:lang="en">data</var> <var xml:lang="en">s</var>.</li><li>Otherwise, if the length of <var xml:lang="en">s</var> is greater than zero (0), create a <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Text</anchor></code> node whose <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">data</anchor>
is <var xml:lang="en">s</var> and <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">insert</anchor> the node into the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> before <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor>.</li></ol></li><li>Otherwise, if the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> is an instance of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CharacterData</anchor></code> interface,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">replace data</anchor> with <var>node</var> the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor>, <var>offset</var> <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">length</anchor></code> attribute value
of the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor>, <var xml:lang="en">count</var> 0, and <var xml:lang="en">data</var> <var xml:lang="en">s</var>.</li><li>Otherwise, set the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">textContent</anchor></code> attribute value to the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">textContent</anchor></code>
attribute value immediately followed by <var xml:lang="en">s</var>.</li><li>Return the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor>.</li></ol></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81013" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81013]</anchor-end> The <dfn><code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiAppendContent</anchor></code></dfn> method <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> run the following steps:<figure><ol><li>Let <var xml:lang="en">node</var> be the argument.</li><li>Let <var xml:lang="en">context</var> be the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">template content</anchor> of the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> if the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> is an HTML <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">template</anchor></code> element, or the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> otherwise.</li><li>If <var xml:lang="en">node</var> is a [CODE(DOMi)en<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[Node</anchor>]], act as if the <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">appendChild</anchor></code> method of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> interface is invoked with the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> <var xml:lang="en">context</var> and the argument <var xml:lang="en">node</var>.</li><li>Otherwise, act as if the <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiAppendText</anchor></code> method of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> interface is invoked with the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> <var xml:lang="en">context</var> and the argument <var xml:lang="en">node</var>.</li></ol></figure></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="81014" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81014]</anchor-end> The method returns nothing.</comment-p></section><section><h1>Read-only flag accessors</h1><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> The <dfn xml:lang="en"><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiReadOnly</anchor></code> attribute</dfn>
represents whether the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>
is read-only or not.
This is a <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">boolean</anchor></code> attribute.
This attribute is <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">read-only</anchor>.</p><p>The getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">true</anchor></code>
if the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is read-only.
Otherwise, it <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">false</anchor></code>.</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> The <dfn xml:lang="en"><code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiSetReadOnly</anchor></code> method</dfn>
is used to set the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiReadOnly</anchor></code>
attribute.
This method has two parameters: <code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">newValue</anchor></code>
and <code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deep</anchor></code>.
This method returns nothing.</p><p><code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">newValue</anchor></code>, type <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">boolean</anchor></code>, 
represents the new value of the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiReadOnly</anchor></code>
attribute.</p><p><code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deep</anchor></code>, type <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">boolean</anchor></code>.
represents whether the descendants' 
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiReadOnly</anchor></code> attributes
should also be set or not.</p><p>When invoked, the method <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> set the
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiReadOnly</anchor></code> attribute,
i.e. the read-only flag, of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>
to <code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">newValue</anchor></code>.</p><p>If the <code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deep</anchor></code> parameter is set to
<code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">true</anchor></code>, then the method <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor>
act as if the method is also invoked to
any of the following <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>s with same
<code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">newValue</anchor></code> and <code class="DOMp" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">deep</anchor></code>
parameters:<ul><li><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>s contained in
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">childNodes</anchor></code> of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code></li><li><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>s contained in
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">attributes</anchor></code> of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>
(if it is an <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code>)</li><li><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>s contained in
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">elementTypes</anchor></code> of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>
(if it is a <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DocumentTypeDefinition</anchor></code>)</li><li><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>s contained in
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">generalEntities</anchor></code> of the 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>
(if it is a <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DocumentTypeDefinition</anchor></code>)</li><li><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>s contained in
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">notations</anchor></code> of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>
(if it is a <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DocumentTypeDefinition</anchor></code>)</li><li><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>s contained in
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">attributeDefinitions</anchor></code> of the 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>
(if it is a <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ElementTypeDefinition</anchor></code>)</li></ul></p></section><section><h1>Metadata accessor</h1><figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81008" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81008]</anchor-end> <pre class="IDL code"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">partial</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">interface</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor> {
  <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">attribute</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMString</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiLanguage</anchor>;
  <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">attribute</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMString</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiHTMLLanguage</anchor>;
};</pre></p></figure><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>
The <dfn xml:lang="en"><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiLanguage</anchor></code> attribute</dfn>
contans the language information of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>,
if available.</p><p>The type of this attribute is <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMString</anchor></code>.
This attribute is read-write.</p><p>This getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> act as if the following
algorithm is performed:<ol><li>If the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is an
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code>:<ol><li>If there is an <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code>, in
the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">attributes</anchor></code> list of
the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code>,
whose <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code> is 
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">http://www.w3.org/XML/1998/namespace</anchor></code>
and <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localName</anchor></code> is 
<code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code>, then the getter
returns the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">value</anchor></code>
of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code>.</li><li>Otherwise, if there is an <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code>, in
the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">attributes</anchor></code> list of
the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code>,
whose <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code> is 
<code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code>
and <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localName</anchor></code> is 
<code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xml</anchor>:<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code>, then the getter
returns the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">value</anchor></code>
of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code>.</li></ol></li><li>If the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> has a 
non-<code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">parentNode</anchor></code>,
then the getter returns the 
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiLanguage</anchor></code> of that 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>.</li><li>Otherwise, if the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> has a
non-<code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code> <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ownerDocument</anchor></code>,
then the getter returns the 
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiLanguage</anchor></code> of that 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code>.</li><li>Otherwise, if the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is a 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> and any natural
language information is attached to the 
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code>,
for example by <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Language</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> header field, then the getter returns it.<ul><li>If such information has different syntax and / or
semantics than one for the <code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xml</anchor>:<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code>
attributes as defined in XML 1.0 and 1.1 specifications,
then the getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return an XML-compatible
string that is considered as equivalent to that information.</li><li>If such convertion if not possible, then
the getter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST NOT</strong></anchor> return any string in this step.</li><li>If more than one languages are specified, then
the string <code class="lang" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mul</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MAY</strong></anchor> be used.</li></ul></li><li>Otherwise, return an empty string.</li></ol></p><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">TODO: Maybe we should clarify what convertion
must be done for <code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code>s.</ed><p>The setter <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> act as if the following algorithm
is performed:<ol><li>Let <var xml:lang="en">s</var> as the new value given to the attribute.</li><li>If the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is an
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code>:<ol><li>If the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> has one or two
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code>s whose <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code>
is <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">http://www.w3.org/XML/1998/namespace</anchor></code>
and <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localName</anchor></code> is <code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code>
or whose <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code> is
<code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code> and <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localName</anchor></code> is
<code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xml</anchor>:<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code>, then:<ol><li>If the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code> is read-only,
then throw a <code class="DOM" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NO_MODIFICATION_ALLOWED_ERR</anchor></code>
exceoption and abort the algorithm.</li><li>Otherwise, any such <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> be removed from the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code>
as if <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">removeAttributeNode</anchor></code> is invoked
with appropriate parameter.<ul><li>Note that a default attribute might appear after
the remove operation.</li></ul></li></ol></li><li>Otherwise, if the element has an <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code>
whose <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code>
is <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">http://www.w3.org/XML/1998/namespace</anchor></code>
and <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localName</anchor></code> is <code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code>:<ol><li>If the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code> is read-only,
then throw a <code class="DOM" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NO_MODIFICATION_ALLOWED_ERR</anchor></code>
exceoption and abort the algorithm.</li><li>Otherwise, set its <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">value</anchor></code> to 
<var xml:lang="en">s</var> and set its <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">specified</anchor></code>
to <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">true</anchor></code>.</li></ol></li><li>Otherwise, if the element has an <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code>
whose <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code>
is <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code> and <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">localName</anchor></code> is 
<code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xml</anchor>:<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code>:<ol><li>If the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Attr</anchor></code> is read-only,
then throw a <code class="DOM" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NO_MODIFICATION_ALLOWED_ERR</anchor></code>
exceoption and abort the algorithm.</li><li>Otherwise, set its <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">value</anchor></code> to 
<var xml:lang="en">s</var> and set its <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">specified</anchor></code>
to <code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">true</anchor></code>.</li></ol></li><li>Otherwise, invoke the <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">setAttributeNS</anchor></code>
method on the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Element</anchor></code> with
parameters <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">http://www.w3.org/XML/1998/namespace</anchor></code>,
<code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xml</anchor>:<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code>, and <var xml:lang="en">s</var>.<ul><li>Note that this might cause an exception is thrown.</li></ul></li></ol></li><li>Otherwise, setter do nothing.</li></ol></p><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">TODO: Setter for <code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code>.</ed><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">TODO: mutation event consideration</ed><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81009" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81009]</anchor-end> On getting, the <dfn><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiHTMLLanguage</anchor></code></dfn> attribute of the
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> object <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> return the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">language</anchor> of the node <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML</src>.</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81010" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81010]</anchor-end> On setting, the attribute <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor> run the following steps:<figure><ol><li>If the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">context object</anchor> is not an element, abort these steps.</li><li>If the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">element</anchor> has the <code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code> attribute in the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML namespace</anchor>,
set its value to the new value and abort these steps.</li><li>If the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">element</anchor> is in the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML namespace</anchor>, set the <code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code> attribute in no namespace
to the new value and abort these steps.</li><li>Set the <code class="XMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code> attribute in the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML namespace</anchor>,
set its value to the new value and abort these steps.</li></ol></figure></p></section></section><section><h1>Interfaces</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> objects <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MAY</strong></anchor>
implement the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NSResolver</anchor></code> interface
[SelectorsAPI].</p></section><section><h1>Parsing</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81004" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81004]</anchor-end> <pre class="code IDL">partial interface Node {
  DOMString? manakaiGetChildNamespaceURI(DOMString? tagName);
};</pre></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81003" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81003]</anchor-end> The <dfn><code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">manakaiGetChildNamespaceURI</anchor></code></dfn> method <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong></anchor>
run the following steps:<ol><li>If the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">node document</anchor> of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is an <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML document</anchor>:<ol><li>Let <var xml:lang="en">tagName</var> be <var xml:lang="en">tagName</var> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">converted to ASCII lowercase</anchor>.</li><li>If the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is a <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MathML text integration point</anchor>:<ol><li>If <var xml:lang="en">tagName</var> is <code class="XMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mglyph</anchor></code> or <code class="XMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">malignmark</anchor></code>,
return the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MathML namespace</anchor> and abort these steps.</li><li>Otherwise, jump to the step named <strong>HTML</strong>.</li></ol></li><li>Otherwise, if the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is an <code class="XMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotation-xml</anchor></code> element in the 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MathML namespace</anchor> and <var xml:lang="en">tagName</var> is <code class="XMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">svg</anchor></code>, return the
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG namespace</anchor> and abort these steps.</li><li>Otherwise, if the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is an <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML integration point</anchor>, jump to the step named <strong>HTML</strong>.</li><li>Otherwise, if the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code> of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> is 
the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG namespace</anchor> or the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MathML namespace</anchor>, return the <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespaceURI</anchor></code> and
abort these steps.</li><li><strong>HTML</strong>: If <var xml:lang="en">tagName</var> is <code class="XMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">svg</anchor></code>, return the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG namespace</anchor> and
abort these steps.</li><li>Otherwise, if <var xml:lang="en">tagName</var> is <code class="XMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">math</anchor></code>, return the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MathML namespace</anchor> and
abort these steps.</li><li>Otherwise, return the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML namespace</anchor> and abort these steps.</li></ol></li><li>Otherwise:<ol><li>If <var xml:lang="en">tagName</var> contains a <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+003A</anchor></code> <code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">COLON</anchor></code>
character (<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">:</anchor></code>):<ol><li>Let <var xml:lang="en">prefix</var> be <var xml:lang="en">tagName</var>.</li><li>Delete the <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+003A</anchor></code> <code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">COLON</anchor></code>
character (<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">:</anchor></code>) character and any folloing characters from <var xml:lang="en">prefix</var>.</li><li>Return the result of running <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">locate a namespace</anchor>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#locate-a-namespace" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#locate-a-namespace</anchor-external>
for the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> using <var>prefix</var> and abort these steps.
<span class="comment">Please note that <var xml:lang="en">prefix</var> could be the empty string, which is different from <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor>.</span></li></ol></li><li>Otherise, return the result of running <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">locate a namespace</anchor>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#locate-a-namespace" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#locate-a-namespace</anchor-external>
for the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Node</anchor></code> using <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor> as <var>prefix</var> and abort these steps.</li></ol></li></ol></p></section><section><h1><code class="DOMi" xml:lang="en">RootNode</code></h1><figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81006" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81006]</anchor-end> <pre class="IDL code">partial interface DocumentFragment {
  HTMLCollection getElementsByTagName(DOMString localName);
  HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
  HTMLCollection getElementsByClassName(DOMString classNames);
};</pre></p></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81007" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81007]</anchor-end> Methods <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getElementsByTagName</anchor></code>,
<code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getElementsByTagNameNS</anchor></code>, and
<code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getElementsByClassName</anchor></code>
of the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DocumentFragment</anchor></code> interface
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">MUST</strong>'</anchor> behave in the same way as the methods with same names
on the <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> interface, respectively.</p></section></body></html>