[html5] r2319 - [] (0) Remove data templates and repetition templates.

whatwg at whatwg.org whatwg at whatwg.org
Thu Oct 9 19:27:14 PDT 2008


Author: ianh
Date: 2008-10-09 19:27:14 -0700 (Thu, 09 Oct 2008)
New Revision: 2319

Modified:
   index
   source
Log:
[] (0) Remove data templates and repetition templates.

/home/ianh/svn/webapps/hooks/commit-email.pl: `/usr/bin/svnlook diff /home/ianh/svn/webapps -r 2319' failed with this output:
Modified: index
===================================================================
--- index	2008-10-10 02:19:24 UTC (rev 2318)
+++ index	2008-10-10 02:27:14 UTC (rev 2319)
@@ -601,26 +601,10 @@
        <li><a href=#using-the-command-element-to-define-a-command><span class=secno>4.11.6.5 </span>Using the <code>command</code> element to define
   a command</a></li>
        <li><a href=#using-the-bb-element-to-define-a-command><span class=secno>4.11.6.6 </span>Using the <code>bb</code> element to define a command</a></ol></ol></li>
-   <li><a href=#datatemplate><span class=secno>4.12 </span>Data Templates</a>
+   <li><a href=#miscellaneous-elements><span class=secno>4.12 </span>Miscellaneous elements</a>
     <ol>
-     <li><a href=#introduction-0><span class=secno>4.12.1 </span>Introduction</a></li>
-     <li><a href=#the-datatemplate-element><span class=secno>4.12.2 </span>The <code>datatemplate</code> element</a></li>
-     <li><a href=#the-rule-element><span class=secno>4.12.3 </span>The <code>rule</code> element</a></li>
-     <li><a href=#the-nest-element><span class=secno>4.12.4 </span>The <code>nest</code> element</a></li>
-     <li><a href=#global-attributes-for-data-templates><span class=secno>4.12.5 </span>Global attributes for data templates</a></li>
-     <li><a href=#processing-model-1><span class=secno>4.12.6 </span>Processing model</a>
-      <ol>
-       <li><a href=#the-originalcontent-dom-attribute><span class=secno>4.12.6.1 </span>The <code title=dom-originalContent>originalContent</code> DOM
-  attribute</a></li>
-       <li><a href=#the-template-attribute><span class=secno>4.12.6.2 </span>The <code title=attr-template>template</code> attribute</a></li>
-       <li><a href=#the-ref-attribute><span class=secno>4.12.6.3 </span>The <code title=attr-ref>ref</code> attribute</a></li>
-       <li><a href=#the-nodedatatemplate-interface><span class=secno>4.12.6.4 </span>The <code>NodeDataTemplate</code> interface</a></li>
-       <li><a href=#mutations><span class=secno>4.12.6.5 </span>Mutations</a></li>
-       <li><a href=#updating-the-generated-content><span class=secno>4.12.6.6 </span>Updating the generated content</a></ol></ol></li>
-   <li><a href=#miscellaneous-elements><span class=secno>4.13 </span>Miscellaneous elements</a>
-    <ol>
-     <li><a href=#the-legend-element><span class=secno>4.13.1 </span>The <code>legend</code> element</a></li>
-     <li><a href=#the-div-element><span class=secno>4.13.2 </span>The <code>div</code> element</a></ol></ol></li>
+     <li><a href=#the-legend-element><span class=secno>4.12.1 </span>The <code>legend</code> element</a></li>
+     <li><a href=#the-div-element><span class=secno>4.12.2 </span>The <code>div</code> element</a></ol></ol></li>
  <li><a href=#browsers><span class=secno>5 </span>Web browsers</a>
   <ol>
    <li><a href=#windows><span class=secno>5.1 </span>Browsing contexts</a>
@@ -672,7 +656,7 @@
        <li><a href=#sample-handler-impl><span class=secno>5.6.2.2 </span>Sample user interface</a></ol></ol></li>
    <li><a href=#offline><span class=secno>5.7 </span>Offline Web applications</a>
     <ol>
-     <li><a href=#introduction-1><span class=secno>5.7.1 </span>Introduction</a></li>
+     <li><a href=#introduction-0><span class=secno>5.7.1 </span>Introduction</a></li>
      <li><a href=#appcache><span class=secno>5.7.2 </span>Application caches</a></li>
      <li><a href=#manifests><span class=secno>5.7.3 </span>The cache manifest syntax</a>
       <ol>
@@ -680,7 +664,7 @@
        <li><a href=#writing-cache-manifests><span class=secno>5.7.3.2 </span>Writing cache manifests</a></li>
        <li><a href=#parsing-cache-manifests><span class=secno>5.7.3.3 </span>Parsing cache manifests</a></ol></li>
      <li><a href=#updating-an-application-cache><span class=secno>5.7.4 </span>Updating an application cache</a></li>
-     <li><a href=#processing-model-2><span class=secno>5.7.5 </span>Processing model</a>
+     <li><a href=#processing-model-1><span class=secno>5.7.5 </span>Processing model</a>
       <ol>
        <li><a href=#changesToNetworkingModel><span class=secno>5.7.5.1 </span>Changes to the networking model</a></ol></li>
      <li><a href=#application-cache-api><span class=secno>5.7.6 </span>Application cache API</a></li>
@@ -710,7 +694,7 @@
     <ol>
      <li><a href=#storage><span class=secno>5.10.1 </span>Storing name/value pairs</a>
       <ol>
-       <li><a href=#introduction-2><span class=secno>5.10.1.1 </span>Introduction</a></li>
+       <li><a href=#introduction-1><span class=secno>5.10.1.1 </span>Introduction</a></li>
        <li><a href=#the-storage-interface><span class=secno>5.10.1.2 </span>The <code>Storage</code> interface</a></li>
        <li><a href=#the-sessionstorage-attribute><span class=secno>5.10.1.3 </span>The <code title=dom-sessionStorage>sessionStorage</code> attribute</a></li>
        <li><a href=#the-localstorage-attribute><span class=secno>5.10.1.4 </span>The <code title=dom-localStorage>localStorage</code> attribute</a></li>
@@ -720,12 +704,12 @@
        <li><a href=#threads><span class=secno>5.10.1.6 </span>Threads</a></ol></li>
      <li><a href=#sql><span class=secno>5.10.2 </span>Database storage</a>
       <ol>
-       <li><a href=#introduction-3><span class=secno>5.10.2.1 </span>Introduction</a></li>
+       <li><a href=#introduction-2><span class=secno>5.10.2.1 </span>Introduction</a></li>
        <li><a href=#databases><span class=secno>5.10.2.2 </span>Databases</a></li>
        <li><a href=#executing-sql-statements><span class=secno>5.10.2.3 </span>Executing SQL statements</a></li>
        <li><a href=#database-query-results><span class=secno>5.10.2.4 </span>Database query results</a></li>
        <li><a href=#errors><span class=secno>5.10.2.5 </span>Errors</a></li>
-       <li><a href=#processing-model-3><span class=secno>5.10.2.6 </span>Processing model</a></ol></li>
+       <li><a href=#processing-model-2><span class=secno>5.10.2.6 </span>Processing model</a></ol></li>
      <li><a href=#disk-space><span class=secno>5.10.3 </span>Disk space</a></li>
      <li><a href=#privacy><span class=secno>5.10.4 </span>Privacy</a>
       <ol>
@@ -796,7 +780,7 @@
      <li><a href=#making-entire-documents-editable><span class=secno>6.7.2 </span>Making entire documents editable</a></ol></li>
    <li><a href=#dnd><span class=secno>6.8 </span>Drag and drop</a>
     <ol>
-     <li><a href=#introduction-4><span class=secno>6.8.1 </span>Introduction</a></li>
+     <li><a href=#introduction-3><span class=secno>6.8.1 </span>Introduction</a></li>
      <li><a href=#the-dragevent-and-datatransfer-interfaces><span class=secno>6.8.2 </span>The <code>DragEvent</code> and <code>DataTransfer</code> interfaces</a></li>
      <li><a href=#events-fired-during-a-drag-and-drop-action><span class=secno>6.8.3 </span>Events fired during a drag-and-drop action</a></li>
      <li><a href=#drag-and-drop-processing-model><span class=secno>6.8.4 </span>Drag-and-drop processing model</a>
@@ -850,7 +834,7 @@
        <li><a href=#closing-the-connection><span class=secno>7.3.4.3 </span>Closing the connection</a></ol></ol></li>
    <li><a href=#crossDocumentMessages><span class=secno>7.4 </span>Cross-document messaging</a>
     <ol>
-     <li><a href=#introduction-5><span class=secno>7.4.1 </span>Introduction</a></li>
+     <li><a href=#introduction-4><span class=secno>7.4.1 </span>Introduction</a></li>
      <li><a href=#security-4><span class=secno>7.4.2 </span>Security</a>
       <ol>
        <li><a href=#authors><span class=secno>7.4.2.1 </span>Authors</a></li>
@@ -860,7 +844,7 @@
      <li><a href=#posting-structured-data><span class=secno>7.4.5 </span>Posting structured data</a></ol></li>
    <li><a href=#channel-messaging><span class=secno>7.5 </span>Channel messaging</a>
     <ol>
-     <li><a href=#introduction-6><span class=secno>7.5.1 </span>Introduction</a></li>
+     <li><a href=#introduction-5><span class=secno>7.5.1 </span>Introduction</a></li>
      <li><a href=#message-channels><span class=secno>7.5.2 </span>Message channels</a></li>
      <li><a href=#message-ports><span class=secno>7.5.3 </span>Message ports</a>
       <ol>
@@ -1257,11 +1241,6 @@
    client.</dd>
 
 
-   <dt><a href=#datatemplate>Data Templates</a></dt>
-
-   <dd>A mechanism to support repeating sections in forms.</dd>
-
-
    <dt><a href=#syntax>The Language Syntax</a></dt>
 
    <dd>All of these features would be for naught if they couldn't be
@@ -6004,14 +5983,6 @@
   // <span>styling</span>
   readonly attribute <span>CSSStyleDeclaration</span> <a href=#dom-style title=dom-style>style</a>;
 
-  // <span>data templates</span>
-           attribute DOMString <a href=#dom-template title=dom-template>template</a>;
-  readonly attribute <span>HTMLDataTemplateElement</span> <a href=#dom-templateelement title=dom-templateElement>templateElement</a>;
-           attribute DOMString <a href=#dom-ref title=dom-ref>ref</a>;
-  readonly attribute Node <a href=#dom-refnode title=dom-refNode>refNode</a>;
-           attribute DOMString <a href=#dom-registrationmark title=dom-registrationMark>registrationMark</a>;
-  readonly attribute DocumentFragment <a href=#dom-originalcontent title=dom-originalContent>originalContent</a>;
-
   // <a href=#event-handler-dom-attributes>event handler DOM attributes</a>
            attribute <span>EventListener</span> <a href=#handler-onabort title=handler-onabort>onabort</a>;
            attribute <span>EventListener</span> <a href=#handler-onbeforeunload title=handler-onbeforeunload>onbeforeunload</a>;
@@ -6072,11 +6043,10 @@
    <dd><code title=attr-id><a href=#the-id-attribute>id</a></code></dd>
    <dd><code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code></dd>
    <dd><code title=attr-lang><a href=#the-lang-and-xml:lang-attributes>lang</a></code></dd>
-   <dd><code title=attr-ref><a href=#attr-ref>ref</a></code></dd>
-   <dd><code title=attr-registrationmark><a href=#attr-registrationmark>registrationmark</a></code></dd>
+   <dd><code title=attr-ref>ref</code></dd>
+   <dd><code title=attr-registrationmark>registrationmark</code></dd>
    <dd><code title=attr-style><a href=#the-style-attribute>style</a></code></dd>
    <dd><code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code></dd>
-   <dd><code title=attr-template><a href=#attr-template>template</a></code></dd>
    <dd><code title=attr-title><a href=#the-title-attribute>title</a></code></dd>
   </dl><p>In addition, the following <a href=#event-handler-content-attributes>event handler content
   attributes</a> may be specified on any <span>HTML
@@ -30809,722 +30779,13 @@
 
 
 
+  <h3 id=miscellaneous-elements><span class=secno>4.12 </span>Miscellaneous elements</h3>
 
-  <h3 id=datatemplate><span class=secno>4.12 </span>Data Templates</h3>
+  <h4 id=the-legend-element><span class=secno>4.12.1 </span>The <dfn><code>legend</code></dfn> element</h4>
 
-  <h4 id=introduction-0><span class=secno>4.12.1 </span>Introduction</h4>
-
-  <p><em>This section is non-normative.</em></p>
-
-  <p class=XXX>...examples...</p>
-
-
-  <h4 id=the-datatemplate-element><span class=secno>4.12.2 </span>The <dfn><code>datatemplate</code></dfn> element</h4>
-
   <dl class=element><dt>Categories</dt>
-   <dd><a href=#metadata-content-0>Metadata content</a>.</dd>
-   <dd><a href=#flow-content-0>Flow content</a>.</dd>
-   <dt>Contexts in which this element may be used:</dt>
-   <dd>As the root element of an <a href=#xml-documents title="xml documents">XML document</a>.</dd>
-   <dd>Where <a href=#metadata-content-0>metadata content</a> is expected.</dd>
-   <dd>Where <a href=#flow-content-0>flow content</a> is expected.</dd>
-   <dt>Content model:</dt>
-   <dd>Zero or more <code><a href=#the-rule-element>rule</a></code> elements.</dd>
-   <dt>Element-specific attributes:</dt>
    <dd>None.</dd>
-   <dt>DOM interface:</dt>
-   <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
-  </dl><p>The <code><a href=#the-datatemplate-element>datatemplate</a></code> element brings together the various
-  rules that form a data template. The element doesn't itself do
-  anything exciting.</p>
-
-
-  <h4 id=the-rule-element><span class=secno>4.12.3 </span>The <dfn><code>rule</code></dfn> element</h4>
-
-  <dl class=element><dt>Categories</dt>
-   <dd>None.</dd>
    <dt>Contexts in which this element may be used:</dt>
-   <dd>As a child of a <code><a href=#the-datatemplate-element>datatemplate</a></code> element.</dd>
-   <dt>Content model:</dt>
-   <dd>Anything, regardless of the children's required contexts (but see prose).</dd>
-   <dt>Element-specific attributes:</dt>
-   <dd><code title=attr-rule-condition><a href=#attr-rule-condition>condition</a></code></dd>
-   <dd><code title=attr-rule-mode><a href=#attr-rule-mode>mode</a></code></dd>
-   <dt>DOM interface:</dt>
-   <dd>
-<pre class=idl>interface <dfn id=htmlruleelement>HTMLRuleElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-           attribute DOMString <a href=#dom-rule-condition title=dom-rule-condition>condition</a>;
-           attribute DOMString <a href=#dom-rule-mode title=dom-rule-mode>mode</a>;
-  readonly attribute DOMTokenString <a href=#dom-rule-modelist title=dom-rule-modeList>modeList</a>;
-};</pre>
-   </dd>
-  </dl><p>The <code><a href=#the-rule-element>rule</a></code> element represents a template of content
-  that is to be used for elements when <a href=#datatemplate-regen title=datatemplate-regen>updating an element's generated
-  content</a>.</p>
-
-  <p>The <dfn id=attr-rule-condition title=attr-rule-condition><code>condition</code></dfn>
-  attribute, if specified, must contain a valid selector. It specifies
-  which nodes in the data tree will have the condition's template
-  applied. <a href=#refsSELECTORS>[SELECTORS]</a></p>
-
-  <p>If the <code title=attr-rule-condition><a href=#attr-rule-condition>condition</a></code>
-  attribute is not specified, then the condition applies to all
-  elements, text nodes, <code>CDATASection</code> nodes, and
-  processing instructions.</p>
-
-  <p>The <dfn id=attr-rule-mode title=attr-rule-mode><code>mode</code></dfn>
-  attribute, if specified, must have a value that is an
-  <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique space-separated tokens</a>
-  representing the various modes for which the rule applies. When, and
-  only when, the <code title=attr-rule-mode><a href=#attr-rule-mode>mode</a></code> attribute is
-  omitted, the rule applies if and only if the mode is the empty
-  string. A mode is invoked by the <code><a href=#the-nest-element>nest</a></code> element; for the
-  first node (the root node) of the data tree, the mode is the empty
-  string.</p>
-
-  <p>The contents of <code><a href=#the-rule-element>rule</a></code> elements form a template, and
-  may be anything that, when the parent <code><a href=#the-datatemplate-element>datatemplate</a></code> is
-  applied to some conforming data, results in a conforming DOM
-  tree.</p> <!-- XXX examples of conforming and non-conforming rules
-  -->
-
-  <p>The <dfn id=dom-rule-condition title=dom-rule-condition><code>condition</code></dfn>
-  DOM attribute must <a href=#reflect>reflect</a> the <code title=attr-rule-condition><a href=#attr-rule-condition>condition</a></code> content attribute.</p>
-
-  <p>The <dfn id=dom-rule-mode title=dom-rule-mode><code>mode</code></dfn> and <dfn id=dom-rule-modelist title=dom-rule-modeList><code>modeList</code></dfn> DOM attributes
-  must <a href=#reflect>reflect</a> the <code title=attr-rule-mode><a href=#attr-rule-mode>mode</a></code> content
-  attribute.</p>
-
-
-  <h4 id=the-nest-element><span class=secno>4.12.4 </span>The <dfn><code>nest</code></dfn> element</h4>
-
-  <dl class=element><dt>Categories</dt>
-   <dd>None.</dd>
-   <dt>Contexts in which this element may be used:</dt>
-   <dd>As a child of a descendant of a <code><a href=#the-rule-element>rule</a></code> element, regardless of the element's content model.</dd>
-   <dt>Content model:</dt>
-   <dd>Empty.</dd>
-   <dt>Element-specific attributes:</dt>
-   <dd><code title=attr-nest-filter><a href=#attr-nest-filter>filter</a></code></dd>
-   <dd><code title=attr-nest-mode><a href=#attr-nest-mode>mode</a></code></dd>
-   <dt>DOM interface:</dt>
-   <dd>
-<pre class=idl>interface <dfn id=htmlnestelement>HTMLNestElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-           attribute DOMString <a href=#dom-nest-filter title=dom-nest-filter>filter</a>;
-           attribute DOMString <a href=#dom-nest-mode title=dom-nest-mode>mode</a>;
-};</pre>
-   </dd>
-  </dl><p>The <code><a href=#the-nest-element>nest</a></code> element represents a point in a template
-  where the user agent should recurse and start inserting the children
-  of the data node that matches the <code><a href=#the-rule-element>rule</a></code> in which the
-  <code><a href=#the-nest-element>nest</a></code> element finds itself.</p>
-
-  <p>The <dfn id=attr-nest-filter title=attr-nest-filter><code>filter</code></dfn>
-  attribute, if specified, must contain a valid selector. It specifies
-  which of the child nodes in the data tree will be examined for
-  further processing at this point. <a href=#refsSELECTORS>[SELECTORS]</a></p>
-
-  <p>If the <code title=attr-nest-filter><a href=#attr-nest-filter>filter</a></code> attribute is
-  not specified, then all elements, text nodes,
-  <code>CDATASection</code> nodes, and processing instructions are
-  processed.</p>
-
-  <p>The <dfn id=attr-nest-mode title=attr-nest-mode><code>mode</code></dfn>
-  attribute, if specified, must have a value that is a word token
-  consisting of one or more characters, none of which are <a href=#space-character title="space character">space characters</a>. It gives the mode
-  which will be in effect when looking at the rules in the data
-  template.</p>
-
-  <p>The <dfn id=dom-nest-filter title=dom-nest-filter><code>filter</code></dfn> DOM
-  attribute must <a href=#reflect>reflect</a> the <code title=attr-nest-filter><a href=#attr-nest-filter>filter</a></code> content attribute.</p>
-
-  <p>The <dfn id=dom-nest-mode title=dom-nest-mode><code>mode</code></dfn> DOM
-  attribute must <a href=#reflect>reflect</a> the <code title=attr-nest-mode><a href=#attr-nest-mode>mode</a></code> content attribute.</p>
-
-
-
-
-  <h4 id=global-attributes-for-data-templates><span class=secno>4.12.5 </span>Global attributes for data templates</h4>
-  <!-- authoring side, with DOM reflections -->
-
-  <p>The <dfn id=attr-template title=attr-template><code>template</code></dfn>
-  attribute may be added to an element to indicate that the template
-  processing model is to be applied to that element.</p>
-
-  <p>The <code title=attr-template><a href=#attr-template>template</a></code> attribute, when
-  specified, must be a <a href=#valid-url>valid URL</a> to an XML or HTML
-  document, or a fragment identifier pointing at another part of the
-  document. If there is a fragment identifier present, then the
-  element with that ID in the target document must be a
-  <code><a href=#the-datatemplate-element>datatemplate</a></code> element, otherwise, the root element must
-  be a <code><a href=#the-datatemplate-element>datatemplate</a></code> element.</p>
-
-  <p>The <dfn id=dom-template title=dom-template><code>template</code></dfn> DOM
-  attribute must <a href=#reflect>reflect</a> the <code title=attr-template><a href=#attr-template>template</a></code> content attribute.</p>
-
-
-  <p>The <dfn id=attr-ref title=attr-ref><code>ref</code></dfn> attribute may be
-  specified on any element on which the <code title=attr-template><a href=#attr-template>template</a></code> attribute is specified. If it
-  is specified, it must be a <a href=#valid-url>valid URL</a> to an XML or HTML
-  document, or a fragment identifier pointing at another part of the
-  document.</p>
-
-  <p>When an element has a <code title=attr-template><a href=#attr-template>template</a></code>
-  attribute but no <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute, the
-  element may, instead of its usual content model, have a single
-  element of any kind. That element is then used as the root node of
-  the data for the template.</p>
-
-  <p>The <dfn id=dom-ref title=dom-ref><code>ref</code></dfn> DOM
-  attribute must <a href=#reflect>reflect</a> the <code title=attr-ref><a href=#attr-ref>ref</a></code> content attribute.</p>
-
-
-  <p>The <dfn id=attr-registrationmark title=attr-registrationmark><code>registrationmark</code></dfn>
-  attribute may be specified on any element that is a descendant of a
-  <code><a href=#the-rule-element>rule</a></code> element, except <code><a href=#the-nest-element>nest</a></code> elements. Its
-  value may be any string, including the empty string (which is the
-  value that is assumed if the attribute is omitted). This attribute
-  performs a role similar to registration marks in printing presses:
-  when the generated content is regenerated, elements with the same
-  <code title=attr-registrationmark><a href=#attr-registrationmark>registrationmark</a></code> are
-  lined up. This allows the author to disambiguate how elements should
-  be moved around when generated content is regenerated in the face of
-  changes to the data tree.</p>
-
-  <p>The <dfn id=dom-registrationmark title=dom-registrationMark><code>registrationMark</code></dfn> DOM
-  attribute must <a href=#reflect>reflect</a> the <code title=attr-registrationmark><a href=#attr-registrationmark>registrationmark</a></code> content
-  attribute.</p>
-
-
-
-  <h4 id=processing-model-1><span class=secno>4.12.6 </span>Processing model</h4>
-  <!-- ua side -->
-
-  <p>The <a href=#task-source>task source</a> for all <a href=#concept-task title=concept-task>tasks</a> <a href=#queue-a-task title="queue a
-  task">queued</a> by algorithms in this section and its
-  subsections is the <dfn id=template-task-source>template task source</dfn>.</p>
-
-
-  <h5 id=the-originalcontent-dom-attribute><span class=secno>4.12.6.1 </span>The <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code> DOM
-  attribute</h5>
-
-  <p>The <dfn id=dom-originalcontent title=dom-originalContent><code>originalContent</code></dfn> is
-  set to a <code>DocumentFragment</code> to hold the original children
-  of an element that has been replaced by content generated for a data
-  template. Initially, it must be null. Its value is set when the
-  <code title=attr-template><a href=#attr-template>template</a></code> attribute is set to a
-  usable value, and is unset when the attribute is removed.</p>
-
-  <p class=note>The <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code> DOM attribute can
-  thus be used as an indicator of whether a template is currently
-  being applied, just as the <code title=dom-templateElement><a href=#dom-templateelement>templateElement</a></code> DOM attribute
-  can.</p>
-
-
-  <h5 id=the-template-attribute><span class=secno>4.12.6.2 </span>The <code title=attr-template><a href=#attr-template>template</a></code> attribute</h5>
-
-  <p><dfn id=datatemplate-template-set title=datatemplate-template-set>Setting</dfn>: When an
-  <a href=#html-elements title="HTML elements">HTML element</a> without a <code title=attr-template><a href=#attr-template>template</a></code> attribute has its <code title=attr-template><a href=#attr-template>template</a></code> attribute set, the user agent
-  must <a href=#fetch>fetch</a> the specified file and parse it (without a
-  <a href=#browsing-context>browsing context</a>) to obtain a DOM. If the
-  <a href=#url>URL</a>, when <a href=#resolve-a-url title="resolve a url">resolved</a>,
-  is the same as <span>the document's address</span><!-- XXXDOCURL
-  xref -->, then the current document's DOM must be assumed to be that
-  parsed DOM. While this loading and parsing is in progress, the
-  element is said to be <i>busy loading the template rules or
-  data</i>.</p>
-
-  <p>If the resource specified by the <code title=attr-template><a href=#attr-template>template</a></code> attribute is not the current
-  document<!-- XXX xref --> and does not have an XML MIME type, or if
-  an XML parse error is found while parsing the resource, then the
-  resource cannot be successfully parsed, and the user agent must jump
-  to the <a href=#datatemplate-template-failed title=datatemplate-template-failed>failed to
-  parse</a> steps below.</p>
-
-  <p>Once the DOM in question has been parsed, assuming that it indeed
-  can be parsed and does so successfully, the user agent must
-  <a href=#queue-a-task>queue a task</a> to run the following algorithm:</p>
-
-  <ol><!-- precondition: the originalContent is null and the element
-        contains its original content. --><li>
-
-    <p>If the <code title=attr-template><a href=#attr-template>template</a></code> attribute's
-    value has a fragment identifier, and, in the DOM in question, it
-    identifies<!-- XXX how --> a <code><a href=#the-datatemplate-element>datatemplate</a></code> element,
-    then set the <code title=dom-templateElement><a href=#dom-templateelement>templateElement</a></code> DOM attribute
-    to that element.</p>
-
-    <p>Otherwise, if the <code title=attr-template><a href=#attr-template>template</a></code>
-    attribute value does not have a fragment identifier, and the root
-    element of the DOM in question is a <code><a href=#the-datatemplate-element>datatemplate</a></code>
-    element, then set the <code title=dom-templateElement><a href=#dom-templateelement>templateElement</a></code> DOM attribute
-    to that element.</p>
-
-    <p>Otherwise, jump to the <a href=#datatemplate-template-failed title=datatemplate-template-failed>failed to parse</a> steps
-    below.</p>
-
-   </li>
-
-   <li><p>Create a new <code>DocumentFragment</code> and move all the
-   nodes that are children of the element to that
-   <code>DocumentFragment</code> object. Set the <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code> DOM attribute on
-   the element to this new <code>DocumentFragment</code>
-   object.</li>
-
-   <li><p>Jump to the steps below for <a href=#datatemplate-regen title=datatemplate-regen>updating the generated
-   content</a>.</li>
-
-  </ol><p>If the resource has <dfn id=datatemplate-template-failed title=datatemplate-template-failed>failed to parse</dfn>, the user
-  agent must <a href=#fire-a-simple-event>fire a simple event</a> with the name <code title=event-error><a href=#event-error>error</a></code> at the element on which the <code title=attr-template><a href=#attr-template>template</a></code> attribute was found.</p>
-
-  <p><dfn id=datatemplate-template-unset title=datatemplate-template-unset>Unsetting</dfn>: When an
-  <a href=#html-elements title="HTML elements">HTML element</a> with a <code title=attr-template><a href=#attr-template>template</a></code> attribute has its <code title=attr-template><a href=#attr-template>template</a></code> attribute removed or
-  dynamically changed from one value to another, the user agent must
-  run the following algorithm:</p>
-
-  <ol><li><p>Set the <code title=dom-templateElement><a href=#dom-templateelement>templateElement</a></code> DOM attribute to
-   null.</li>
-
-   <li>
-
-    <p>If the <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code>
-    DOM attribute of the element is not null, run these substeps:</p>
-
-    <ol><li><p>Remove all the nodes that are children of the
-     element.</li>
-
-     <li><p>Append the nodes in the <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code>
-     <code>DocumentFragment</code> to the element.</li>
-
-     <li><p>Set <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code>
-     to null.</li>
-
-    </ol><p>(If the <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code> DOM attribute
-    of the element is null, then either there was an error loading or
-    parsing the previous template, or the previous template never
-    finished loading; in either case, there is nothing to undo.)</p>
-
-   </li>
-
-   <li><p>If the <code title=attr-template><a href=#attr-template>template</a></code> attribute
-   was changed (as opposed to simply removed), then <a href=#datatemplate-template-set title=datatemplate-template-set>act as if it was now set to its
-   new value</a> (fetching the specified page, etc, as described
-   above).</li>
-
-  </ol><p>The <dfn id=dom-templateelement title=dom-templateElement><code>templateElement</code></dfn> DOM
-  attribute is updated by the above algorithm to point to the
-  currently active <code><a href=#the-datatemplate-element>datatemplate</a></code> element. Initially, the
-  attribute must have the value null.</p>
-
-
-  <h5 id=the-ref-attribute><span class=secno>4.12.6.3 </span>The <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute</h5>
-
-  <p><dfn id=datatemplate-ref-set title=datatemplate-ref-set>Setting</dfn>: When an <a href=#html-elements title="HTML elements">HTML element</a> without a <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute has its <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute set, the user agent must
-  <a href=#fetch>fetch</a> the specified file and parse it (without a
-  <a href=#browsing-context>browsing context</a>) to obtain a DOM. If the
-  <a href=#url>URL</a>, when <a href=#resolve-a-url title="resolve a url">resolved</a>,
-  is the same as <span>the document's address</span><!-- XXXDOCURL
-  xref -->, then the current document's DOM must be assumed to be that
-  parsed DOM. While this loading and parsing is in progress, the
-  element is said to be <i>busy loading the template rules or
-  data</i>.</p>
-
-  <p>If the resource specified by the <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute is not the current
-  document<!-- XXX xref --> and does not have an XML MIME type, or if
-  an XML parse error is found while parsing the resource, then the
-  resource cannot be successfully parsed, and the user agent must jump
-  to the <a href=#datatemplate-ref-failed title=datatemplate-ref-failed>failed to parse</a>
-  steps below.</p>
-
-  <p>Once the DOM in question has been parsed, assuming that it indeed
-  can be parsed and does so successfully, the user agent must
-  <a href=#queue-a-task>queue a task</a> to run the following algorithm:</p>
-
-  <ol><li>
-
-    <p>If the <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute value does
-    not have a fragment identifier, then set the <code title=dom-refNode><a href=#dom-refnode>refNode</a></code> DOM attribute to the
-    <code>Document</code> node of that DOM.</p>
-
-    <p>Otherwise, if the <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute's
-    value has a fragment identifier, and, in the DOM in question, that
-    fragment identifier identifies an element, then set the <code title=dom-refNode><a href=#dom-refnode>refNode</a></code> DOM attribute to that
-    element.</p>
-
-    <p>Otherwise, jump to the <a href=#datatemplate-ref-failed title=datatemplate-ref-failed>failed to parse</a> steps
-    below.</p>
-
-   </li>
-
-   <li><p>Jump to the steps below for <a href=#datatemplate-regen title=datatemplate-regen>updating the generated
-   content</a>.</li>
-
-  </ol><p>If the resource has <dfn id=datatemplate-ref-failed title=datatemplate-ref-failed>failed to parse</dfn>, the user
-  agent must <a href=#fire-a-simple-event>fire a simple event</a> with the name <code title=event-error><a href=#event-error>error</a></code> at the element on which the <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute was found, and must then jump
-  to the steps below for <a href=#datatemplate-regen title=datatemplate-regen>updating the
-  generated content</a> (the contents of the element will be used
-  instead of the specified resource).</p>
-
-  <p><dfn id=datatemplate-ref-unset title=datatemplate-ref-unset>Unsetting</dfn>: When an
-  <a href=#html-elements title="HTML elements">HTML element</a> with a <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute has its <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute removed or dynamically changed
-  from one value to another, the user agent must run the following
-  algorithm:</p>
-
-  <ol><li><p>Set the <code title=dom-refNode><a href=#dom-refnode>refNode</a></code> DOM
-   attribute to null.</li>
-
-   <li><p>If the <code title=attr-ref><a href=#attr-ref>ref</a></code> attribute was
-   changed (as opposed to simply removed), then <a href=#datatemplate-ref-set title=datatemplate-ref-set>act as if it was now set to its new
-   value</a> (fetching the specified page, etc, as described
-   above). Otherwise, jump to the steps below for <a href=#datatemplate-regen title=datatemplate-regen>updating the generated
-   content</a>.</li>
-
-  </ol><p>The <dfn id=dom-refnode title=dom-refNode><code>refNode</code></dfn> DOM
-  attribute is updated by the above algorithm to point to the current
-  data tree, if one is specified explicitly. If it is null, then the
-  data tree is given by the <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code> DOM attribute,
-  unless that is also null, in which case no template is currently
-  being applied. Initially, the attribute must have the value
-  null.</p>
-
-
-  <h5 id=the-nodedatatemplate-interface><span class=secno>4.12.6.4 </span>The <code><a href=#nodedatatemplate>NodeDataTemplate</a></code> interface</h5>
-
-  <p>All objects that implement the <code>Node</code> interface must
-  also implement the <code><a href=#nodedatatemplate>NodeDataTemplate</a></code> interface, whose
-  members must be accessible using binding-specific casting
-  mechanisms.</p>
-
-  <pre class=idl>interface <dfn id=nodedatatemplate>NodeDataTemplate</dfn> {
-  readonly attribute Node <a href=#dom-datanode title=dom-dataNode>dataNode</a>;
-};</pre>
-
-  <p>The <dfn id=dom-datanode title=dom-dataNode><code>dataNode</code></dfn> DOM
-  attribute returns the node for which <em>this</em> node was
-  generated. It must initially be null. It is set on the nodes that
-  form the content generated during the <a href=#datatemplate-regen title=datatemplate-regen>algorithm for updating the generated
-  content</a> of elements that are using the data template
-  feature.</p>
-
-
-  <h5 id=mutations><span class=secno>4.12.6.5 </span>Mutations</h5>
-
-  <p>An element with a non-null <code title=dom-templateElement><a href=#dom-templateelement>templateElement</a></code> is said to be a
-  <dfn id=data-tree-user>data tree user</dfn> of the node identified by the element's
-  <code title=dom-refNode><a href=#dom-refnode>refNode</a></code> attribute, as well as all
-  of that node's children, or, if that attribute is null, of the node
-  identified by the element's <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code>, as well as all
-  <em>that</em> node's children.</p>
-
-  <p>Nodes that have one or more <a href=#data-tree-user title="data tree user">data
-  tree users</a> associated with them (as per the previous
-  paragraph) are themselves termed <dfn id=data-tree-component-node title="data tree component
-  node">data tree component nodes</dfn>.</p>
-
-  <p>Whenever a <a href=#data-tree-component-node>data tree component node</a> changes its name
-  or value, or has one of its attributes change name or value, or has
-  an attribute added or removed, or has a child added or removed, the
-  user agent must <span>update the generated content</span> of all of
-  that node's <a href=#data-tree-user title="data tree user">data tree users</a>.</p>
-
-  <p>An element with a non-null <code title=dom-templateElement><a href=#dom-templateelement>templateElement</a></code> is also said to
-  be a <dfn id=template-tree-user>template tree user</dfn> of the node identified by the
-  element's <code title=dom-templateElement><a href=#dom-templateelement>templateElement</a></code>
-  attribute, as well as all of that node's children.</p>
-
-  <p>Nodes that have one or more <a href=#template-tree-user title="template tree
-  user">template tree users</a> associated with them (as per the
-  previous paragraph) are themselves termed <dfn id=template-tree-component-node title="template tree
-  component node">template tree component nodes</dfn>.</p>
-
-  <p>Whenever a <a href=#template-tree-component-node>template tree component node</a> changes its
-  name or value, or has one of its attributes change name or value, or
-  has an attribute added or removed, or has a child added or removed,
-  the user agent must <span>update the generated content</span> of all
-  of that node's <a href=#template-tree-user title="template tree user">template tree
-  users</a>.</p>
-
-  <p class=note>In other words, user agents update the content
-  generated from a template whenever either the backing data changes
-  or the template itself changes.</p>
-
-
-  <h5 id=updating-the-generated-content><span class=secno>4.12.6.6 </span>Updating the generated content</h5>
-
-  <p>When the user agent is to <dfn id=datatemplate-regen title=datatemplate-regen>update
-  the generated content</dfn> of an element that uses a template, the
-  user agent must run the following steps:</p>
-
-  <ol><li><p>Let <var title="">destination</var> be the element whose
-   generated content is being updated.</li>
-
-   <li><p>If the <var title="">destination</var> element is <i>busy
-   loading the template rules or data</i>, then abort these
-   steps. Either the steps will be invoked again once the loading has
-   completed, or the loading will fail and the generated content will
-   be removed at that point.</li>
-
-   <li><p>Let <var title="">template tree</var> be the element given
-   by <var title="">destination</var>'s <code title=dom-templateElement><a href=#dom-templateelement>templateElement</a></code> DOM
-   attribute. If it is null, then abort these steps. There are no
-   rules to apply.</li>
-
-   <li><p>Let <var title="">data tree</var> be the node given by <var title="">destination</var>'s <code title=dom-refNode><a href=#dom-refnode>refNode</a></code> DOM attribute. If it is null,
-   then let <var title="">data tree</var> be the node given by the
-   <code title=dom-originalContent><a href=#dom-originalcontent>originalContent</a></code> DOM
-   node.</li>
-
-   <li><p>Let <var title="">existing nodes</var> be a set of ordered
-   lists of nodes, each list being identified by a tuple consisting of
-   a node, a node type and name, and a <a href=#attr-registrationmark title=attr-registrationmark>registration mark</a> (a
-   string).</li>
-
-   <li><p>For each node <var title="">node</var> that is a descendant
-   of <var title="">destination</var>, if any, add <var title="">node</var> to the list identified by the tuple given by:
-   <var title="">node</var>'s <code title=dom-dataNode><a href=#dom-datanode>dataNode</a></code> DOM attribute; the <var title="">node</var>'s node type and, if it's an element, its
-   qualified name (that is, its namespace and local name), or, if it's
-   a processing instruction, its target name<!-- we're basically
-   indexing on nodeName here -->, and the value of the <var title="">node</var>'s <code title=attr-registrationmark><a href=#attr-registrationmark>registrationmark</a></code> attribute, if
-   it has one, or the empty string otherwise.</li> <!-- XXX should
-   non-element nodes inherit the registration marks of their parent?
-   or have it set via a PI? -->
-
-   <li><p>Remove all the child nodes of <var title="">destination</var>, so that its child node list is
-   empty.</li>
-
-   <li><p>Run the <a href=#levenberg-data-node-algorithm>Levenberg data node algorithm</a>
-   (described below) using <var title="">destination</var> as the
-   destination node, <var title="">data tree</var> as the source node,
-   <var title="">template tree</var> as the rule container, the empty
-   string as the mode, and the <var title="">existing nodes</var> lists
-   as the lists of existing nodes.</li>
-
-<!--(for now, since we can't guarantee that we'll reset the dataNode
-attribute of nodes that are dynamically moved around between regens,
-we'll just act as if the dataNode attribute is set on creation and
-never reset. This is nice and consistent.)
-
-   <li><p>Set the <code title="dom-dataNode">dataNode</code> DOM
-   attribute of every node in the <var title="">existing nodes</var>
-   lists to null.</p></li>
--->
-
-  </ol><!--<h6 class="notoc">The Levenberg algorithm</h6>--><p>The Levenberg algorithm consists of two algorithms that invoke
-  each other recursively, the <a href=#levenberg-data-node-algorithm>Levenberg data node
-  algorithm</a> and the <a href=#levenberg-template-node-algorithm>Levenberg template node
-  algorithm</a>. These algorithms use the data structures
-  initialized by the set of steps described above.</p>
-
-  <p>The <dfn id=levenberg-data-node-algorithm>Levenberg data node algorithm</dfn> is as follows. It is
-  always invoked with three DOM nodes, one string, and a set of lists
-  as arguments: the <var title="">destination node</var>, the <var title="">source node</var>, the <var title="">rule container</var>,
-  the <var title="">mode string</var>, and the <var title="">existing
-  nodes lists</var> respectively.</p>
-
-  <ol><li><p>Let <var title="">condition</var> be the first
-   <code><a href=#the-rule-element>rule</a></code> element child of the <var title="">rule
-   container</var> element, or null if there aren't any.</p>
-
-   <li><p>If <var title="">condition</var> is null, follow these
-   substeps:</p>
-
-    <ol><li><p>If the <var title="">source node</var> is an element,
-     then, for each child <var title="">child node</var> of the <var title="">source node</var> element, in tree order, invoke the
-     <a href=#levenberg-data-node-algorithm>Levenberg data node algorithm</a> recursively, with <var title="">destination node</var>, <var title="">child node</var>,
-     <var title="">rule container</var>, the empty string, and <var title="">existing nodes lists</var> as the five arguments
-     respectively.</li>
-
-     <li><p>Abort the current instance of the <a href=#levenberg-data-node-algorithm>Levenberg data
-     node algorithm</a>, returning to whatever algorithm invoked
-     it.</li>
-
-    </ol></li>
-
-   <li><p>Let <var title="">matches</var> be a boolean with the value
-   true.</li>
-
-   <li><p>If the <var title="">condition</var> element has a <code title=attr-rule-mode><a href=#attr-rule-mode>mode</a></code> attribute, but the value of that
-   attribute is not a <span>mode match</span> for the current
-   <span>mode string</span>, then let <var title="">matches</var> be
-   false.</li>
-
-   <li><p>If the <var title="">condition</var> element has a <code title=attr-rule-condition><a href=#attr-rule-condition>condition</a></code> attribute, and the
-   attribute's value, when <a href=#evaluated-as-a-selector>evaluated as a selector</a>, does
-   not match the current <var title="">source node</var>, then let
-   <var title="">matches</var> be false.</li>
-
-   <li><p>If <var title="">matches</var> is true, then follow these
-   substeps:</p>
-
-    <ol><li><p>For each child <var title="">child node</var> of the
-     <var title="">condition</var> element, in tree order, invoke the
-     <a href=#levenberg-template-node-algorithm>Levenberg template node algorithm</a> recursively, with
-     the five arguments being <var title="">destination node</var>,
-     <var title="">source node</var>, <var title="">rule
-     container</var>, <var title="">child node</var>, and <var title="">existing nodes lists</var> respectively.</li>
-
-     <li><p>Abort the current instance of the <a href=#levenberg-data-node-algorithm>Levenberg data
-     node algorithm</a>, returning to whatever algorithm invoked
-     it.</li>
-
-    </ol></li>
-
-   <li><p>Let <var title="">condition</var> be the next
-   <code><a href=#the-rule-element>rule</a></code> element that is a child of the <var title="">rule container</var> element, after the <var title="">condition</var> element itself, or null if there are no
-   more <code><a href=#the-rule-element>rule</a></code> elements.</li>
-
-   <li><p>Jump to step 2 in this set of steps.</li>
-
-  </ol><p>The <dfn id=levenberg-template-node-algorithm>Levenberg template node algorithm</dfn> is as
-  follows. It is always invoked with four DOM nodes and a set of lists
-  as arguments: the <var title="">destination node</var>, the <var title="">source node</var>, the <var title="">rule container</var>,
-  the <var title="">template node</var>, and the <var title="">existing nodes lists</var> respectively.</p>
-
-  <ol><li><p>If <var title="">template node</var> is a comment node,
-   abort the current instance of the <a href=#levenberg-template-node-algorithm>Levenberg template node
-   algorithm</a>, returning to whatever algorithm invoked
-   it.</li>
-
-   <li><p>If <var title="">template node</var> is a <code><a href=#the-nest-element>nest</a></code>
-   element, then run these substeps:</p>
-
-    <ol><li><p>If <var title="">source node</var> is not an element, then
-     abort the current instance of the <a href=#levenberg-template-node-algorithm>Levenberg template node
-     algorithm</a>, returning to whatever algorithm invoked
-     it.</li>
-
-     <li><p>If the <var title="">template node</var> has a <code title=attr-nest-mode><a href=#attr-nest-mode>mode</a></code> attribute, then let <var title="">mode</var> be the value of that attribute; otherwise,
-     let <var title="">mode</var> be the empty string.</li>
-
-     <li><p>Let <var title="">child node</var> be the first child of
-     the <var title="">source node</var> element, or null if <var title="">source node</var> has no children.</li>
-
-     <li><p>If <var title="">child node</var> is null, abort the
-     current instance of the <a href=#levenberg-template-node-algorithm>Levenberg template node
-     algorithm</a>, returning to whatever algorithm invoked
-     it.</li>
-
-     <li><p>If the <var title="">template node</var> element has a
-     <code title=attr-nest-filter><a href=#attr-nest-filter>filter</a></code> attribute, and the
-     attribute's value, when <a href=#evaluated-as-a-selector>evaluated as a selector</a>,
-     matches <var title="">child node</var>, then invoke the
-     <a href=#levenberg-data-node-algorithm>Levenberg data node algorithm</a> recursively, with <var title="">destination node</var>, <var title="">child node</var>,
-     <var title="">rule container</var>, <var title="">mode</var>, and
-     <var title="">existing nodes lists</var> as the five arguments
-     respectively.</li>
-
-     <li><p>Let <var title="">child node</var> be <var title="">child
-     node</var>'s next sibling, or null if <var title="">child
-     node</var> was the last node of <var title="">source
-     node</var>.</li>
-
-     <li><p>Return to step 4 in this set of substeps.</li>
-
-    </ol></li>
-
-   <li><p>If <var title="">template node</var> is an element, and that
-   element has a <code title=attr-registrationmark><a href=#attr-registrationmark>registrationmark</a></code> attribute,
-   then let <var title="">registration mark</var> have the value of
-   that attribute. Otherwise, let <var title="">registration
-   mark</var> be the empty string.</li>
-
-   <li>
-
-    <p>If there is a list in the <var title="">existing nodes
-    lists</var> corresponding to the tuple (<var title="">source
-    node</var>, the node type and name of <var title="">template
-    node</var>, <var title="">registration mark</var>), and that list
-    is not empty, then run the following substeps. (For an element
-    node, the name of the node is its qualified tag name, i.e. its
-    namespace and local name. For a processing instruction, its name
-    is the target. For other types of nodes, there is no name.)</p>
-
-    <ol><li><p>Let <var title="">new node</var> be the first node in that
-     list.</li>
-
-     <li><p>Remove <var title="">new node</var> from that
-     list.</li>
-
-     <li><p>If <var title="">new node</var> is an element, remove all
-     the child nodes of <var title="">new node</var>, so that its
-     child node list is empty.</li>
-
-    </ol><p>Otherwise, if there is no matching list, or there was, but it
-    is now empty, then run these steps instead:</p>
-
-    <ol><li><p>Let <var title="">new node</var> be a shallow clone of
-     <var title="">template node</var>.</li>
-
-     <li><p>Let <var title="">new node</var>'s <code title=dom-dataNode><a href=#dom-datanode>dataNode</a></code> DOM attribute be <var title="">source node</var>.</li>
-
-    </ol></li>
-
-   <li>
-
-    <p>If <var title="">new node</var> is an element, run these substeps:</p>
-
-    <ol><li><p>For each attribute on <var title="">new node</var>, if
-     an attribute with the same qualified name is not present on
-     <var title="">template node</var>, remove that attribute.</p>
-
-     <li>
-
-      <p>For each attribute <var title="">attribute</var> on <var title="">template node</var>, run these substeps:</p>
-
-      <ol><li><p>Let <var title="">expanded</var> be the result of
-       passing the value of <var title="">attribute</var> to the
-       <a href=#text-expansion-algorithm-for-templates>text expansion algorithm for templates</a> along
-       with <var title="">source node</var>.</li>
-
-       <li><p>If an attribute with the same qualified name as <var title="">attribute</var> is already present on <var title="">new node</var>, then: if its value is different from
-       <var title="">expanded</var>, replace its value with <var title="">expanded</var>.</li>
-
-       <li><p>Otherwise, if there is no attribute with the same
-       qualified name as <var title="">attribute</var> on <var title="">new node</var>, then add an attribute with the same
-       namespace, prefix, and local name as <var title="">attribute</var>, with its value set to <var title="">expanded</var>'s.</li>
-
-      </ol></li>
-
-    </ol><p>Otherwise, the <var title="">new node</var> is a text node,
-    <code>CDATASection</code> node, or processing instruction. Run
-    these substeps instead:</p>
-
-    <ol><li><p>Let <var title="">expanded</var> be the result of passing
-     the node value of <var title="">template node</var> (the content
-     of the text node, <code>CDATASection</code> node, or processing
-     instruction) to the <a href=#text-expansion-algorithm-for-templates>text expansion algorithm for
-     templates</a> along with <var title="">source
-     node</var>.</li>
-
-     <li><p>If the value of the <var title="">new node</var> is
-     different from <var title="">expanded</var>, then set the value
-     of <var title="">new node</var> to <var title="">expanded</var>.</li>
-
-    </ol></li>
-
-   <li><p>Append <var title="">new node</var> to <var title="">destination</var>.</li>
-
-   <li><p>If <var title="">template node</var> is an element, then,
-   for each child <var title="">child node</var> of the <var title="">template node</var> element, in tree order, invoke the
-   <a href=#levenberg-template-node-algorithm>Levenberg template node algorithm</a> recursively, with
-   the five arguments being <var title="">new child</var>, <var title="">source node</var>, <var title="">rule container</var>,
-   <var title="">child node</var>, and <var title="">existing nodes
-   lists</var> respectively.</li>
-
-  </ol><p class=XXX>Define: <dfn id=evaluated-as-a-selector>evaluated as a selector</dfn></p>
-
-  <p class=XXX>Define: <dfn id=text-expansion-algorithm-for-templates>text expansion algorithm for
-  templates</dfn></p> <!-- this is basically used for expanding
-  nodeValue values -->
-
-
-  <h3 id=miscellaneous-elements><span class=secno>4.13 </span>Miscellaneous elements</h3>
-
-  <h4 id=the-legend-element><span class=secno>4.13.1 </span>The <dfn><code>legend</code></dfn> element</h4>
-
-  <dl class=element><dt>Categories</dt>
-   <dd>None.</dd>
-   <dt>Contexts in which this element may be used:</dt>
    <dd>As the first child of a <code><a href=#the-fieldset-element>fieldset</a></code> element.</dd>
    <dd>As the first child of a <code><a href=#the-details-element>details</a></code> element.</dd>
    <dd>As a child of a <code><a href=#the-figure-element>figure</a></code> element, if there are no other <code><a href=#the-legend-element>legend</a></code> element children of that element.</dd>
@@ -31539,7 +30800,7 @@
   element's parent element.</p>
 
 
-  <h4 id=the-div-element><span class=secno>4.13.2 </span>The <dfn><code>div</code></dfn> element</h4>
+  <h4 id=the-div-element><span class=secno>4.12.2 </span>The <dfn><code>div</code></dfn> element</h4>
 
   <dl class=element><dt>Categories</dt>
    <dd><a href=#flow-content-0>Flow content</a>.</dd>
@@ -34215,7 +33476,7 @@
 
   <h3 id=offline><span class=secno>5.7 </span>Offline Web applications</h3>
 
-  <h4 id=introduction-1><span class=secno>5.7.1 </span>Introduction</h4>
+  <h4 id=introduction-0><span class=secno>5.7.1 </span>Introduction</h4>
 
   <p><em>This section is non-normative.</em></p>
 
@@ -35057,7 +34318,7 @@
    that an update for this cache is in progress. Abort the update
    process.</li>
 
-  </ol><h4 id=processing-model-2><span class=secno>5.7.5 </span>Processing model</h4>
+  </ol><h4 id=processing-model-1><span class=secno>5.7.5 </span>Processing model</h4>
 
   <p>The processing model of application caches for offline support in
   Web applications is part of the <a href=#navigate title=navigate>navigation</a> model, but references the
@@ -36722,7 +35983,7 @@
 
   <h4 id=storage><span class=secno>5.10.1 </span>Storing name/value pairs</h4>
 
-  <h5 id=introduction-2><span class=secno>5.10.1.1 </span>Introduction</h5>
+  <h5 id=introduction-1><span class=secno>5.10.1.1 </span>Introduction</h5>
 
   <p><em>This section is non-normative.</em></p>
 
@@ -37120,7 +36381,7 @@
         * handling the database getting corrupted
   -->
 
-  <h5 id=introduction-3><span class=secno>5.10.2.1 </span>Introduction</h5>
+  <h5 id=introduction-2><span class=secno>5.10.2.1 </span>Introduction</h5>
 
   <p><em>This section is non-normative.</em></p>
 
@@ -37476,7 +36737,7 @@
 
 
 
-  <h5 id=processing-model-3><span class=secno>5.10.2.6 </span>Processing model</h5>
+  <h5 id=processing-model-2><span class=secno>5.10.2.6 </span>Processing model</h5>
 
   <p>The <dfn id=transaction-steps>transaction steps</dfn> are as follows. These steps must
   be run asynchronously. These steps are invoked with a <i>transaction
@@ -39971,7 +39232,7 @@
   step).</p>
 
 
-  <h4 id=introduction-4><span class=secno>6.8.1 </span>Introduction</h4>
+  <h4 id=introduction-3><span class=secno>6.8.1 </span>Introduction</h4>
 
   <p><em>This section is non-normative.</em></p>
 
@@ -42792,7 +42053,7 @@
   attacks.</p>
 
 
-  <h4 id=introduction-5><span class=secno>7.4.1 </span>Introduction</h4>
+  <h4 id=introduction-4><span class=secno>7.4.1 </span>Introduction</h4>
 
   <p><em>This section is non-normative.</em></p>
 
@@ -43039,7 +42300,7 @@
 
   <h3 id=channel-messaging><span class=secno>7.5 </span><dfn>Channel messaging</dfn></h3>
 
-  <h4 id=introduction-6><span class=secno>7.5.1 </span>Introduction</h4>
+  <h4 id=introduction-5><span class=secno>7.5.1 </span>Introduction</h4>
 
   <p><em>This section is non-normative.</em></p>
 
@@ -53193,8 +52454,6 @@
         - dragging the window out of the tab
  XXX * in-window non-modal palettes
         - with a solution for the mobile space
- XXX * a way of selecting rows, so that you can declaratively have buttons
-       outside the template that move a "selected row" around
  XXX * calendar with list of days that have events (think: blog calendars)
  XXX * find object at (x,y)
        http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/elementfrompoint.asp
@@ -53362,10 +52621,6 @@
        it exists (case insensitive)? - kerz
        [or deprecate the lot (->web apps)]
  XXX * option.text should do the same as option.textContent
- XXX * select.options.add(), .remove() should exist (and forward to the select)
- XXX * select.add()'s second argument should also be allowed to be an integer (negative means append)
-       + see: http://bugzilla.mozilla.org/show_bug.cgi?id=240304
-              http://junkyard.damowmow.com/138
  XXX * need an attribute that says "the children of this element are in
        their own tabbing universe, tabindex should be relative to each
        other, not to the document"

Modified: source
===================================================================



More information about the Commit-Watchers mailing list