spec/Overview.html 1.1492 2319 Remove data templates and repetition tem

Remove data templates and repetition templates. (whatwg r2319)

3.3.3 Global attributes
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#global-attributes
7.4.4 Posting message ports
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#posting-message-ports
5.10.2.6 Processing model
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#processing-model-2
cache failure steps
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#cache-failure-steps
5.7 Offline Web applications
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#offline
matches an opportunistic caching namespace
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#concept-appcache-matches-oppcache
7.5.2 Message channels
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#message-channels
message
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#dom-sqlerror-message
7.5.1 Introduction
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#introduction-5
6.8 Drag and drop
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#dnd
4.12 Miscellaneous elements
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#miscellaneous-elements
HTMLElement
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#htmlelement
7.4.1 Introduction
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#introduction-4
MessageChannel
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#messagechannel
6.8.1 Introduction
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#introduction-3
5.10.2.1 Introduction
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#introduction-2
Index
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#index
DragEvent
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#dragevent
7.4 Cross-document messaging
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#crossDocumentMessages
discard a Document
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#discard-a-document
5.10.2 Database storage
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#sql
7.5 Channel messaging
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#channel-messaging
5.10 Structured client-side storage
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#structured-client-side-storage
1.6 Structure of this specification
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#structure-of-this-specification
5.7.5 Processing model
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#processing-model-1
7.4.5 Posting structured data
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#posting-structured-data
5.6.2.2 Sample user interface
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#sample-handler-impl
4.11.6.6 Using the bb element to define a command
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#using-the-bb-element-to-define-a-command
4.12.2 The div element
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1492.html#the-div-element

http://people.w3.org/mike/diffs/html5/spec/Overview.diff.html
http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.1491&r2=1.1492&f=h
http://html5.org/tools/web-apps-tracker?from=2318&to=2319

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.1491
retrieving revision 1.1492
diff -u -d -r1.1491 -r1.1492
--- Overview.html 10 Oct 2008 02:19:28 -0000 1.1491
+++ Overview.html 10 Oct 2008 02:27:18 -0000 1.1492
@@ -543,26 +543,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>
-    <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>
+   <li><a href=#miscellaneous-elements><span class=secno>4.12 </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>
@@ -614,7 +598,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>
@@ -622,7 +606,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>
@@ -652,7 +636,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>
@@ -662,12 +646,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>
@@ -738,7 +722,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>
@@ -792,7 +776,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>
@@ -802,7 +786,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>
@@ -1092,11 +1076,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
@@ -4980,14 +4959,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>;
@@ -5038,11 +5009,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
@@ -24861,560 +24831,7 @@
   of the command is always false. (The command is never checked.)<p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
   command is to perform the <i>action</i> of the <code><a href=#the-bb-element>bb</a></code>
   element's <code title=attr-bb-type><a href=#attr-bb-type>type</a></code> attribute's
-  state.<h3 id=datatemplate><span class=secno>4.12 </span>Data Templates</h3><h4 id=introduction-0><span class=secno>4.12.1 </span>Introduction</h4><p><em>This section is non-normative.</em><p class=XXX>...examples...<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.<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>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=#references>[SELECTORS]</a><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>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>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>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.<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>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=#references>[SELECTORS]</a><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>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>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>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.<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>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>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>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>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>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>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>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.<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>.<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 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.<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>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>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:<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><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:<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.<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>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>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:<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><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:<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.<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.<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.<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>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>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>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>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>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 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.<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:<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>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.<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.<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 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>
+  state.<h3 id=miscellaneous-elements><span class=secno>4.12 </span>Miscellaneous elements</h3><h4 id=the-legend-element><span class=secno>4.12.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>
@@ -25428,7 +24845,7 @@
    <dd>Uses <code><a href=#htmlelement>HTMLElement</a></code>.</dd>
   </dl><p>The <code><a href=#the-legend-element>legend</a></code> element represents a title or explanatory
   caption for the rest of the contents of the <code><a href=#the-legend-element>legend</a></code>
-  element's parent element.<h4 id=the-div-element><span class=secno>4.13.2 </span>The <dfn><code>div</code></dfn> element</h4><dl class=element><dt>Categories</dt>
+  element's parent element.<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>
    <dt>Contexts in which this element may be used:</dt>
    <dd>Where <a href=#flow-content-0>flow content</a> is expected.</dd>
@@ -27578,7 +26995,7 @@
   sections, will redirect the user to
   "http://kittens.example.org/?show=x-meow%3AS2l0dGVucyBhcmUgdGhlIGN1dGVzdCE%253D".<p>The <code title=dom-navigator-registerContentHandler><a href=#dom-navigator-registercontenthandler>registerContentHandler()</a></code>
   method would work equivalently, but for unknown MIME types instead
-  of unknown protocols.<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><p><em>This section is non-normative.</em><p class=XXX>...<h4 id=appcache><span class=secno>5.7.2 </span>Application caches</h4><p>An <dfn id=application-cache>application cache</dfn> is a collection of resources. An
+  of unknown protocols.<h3 id=offline><span class=secno>5.7 </span>Offline Web applications</h3><h4 id=introduction-0><span class=secno>5.7.1 </span>Introduction</h4><p><em>This section is non-normative.</em><p class=XXX>...<h4 id=appcache><span class=secno>5.7.2 </span>Application caches</h4><p>An <dfn id=application-cache>application cache</dfn> is a collection of resources. An
   application cache is identified by the <a href=#absolute-url>absolute URL</a> of
   a resource manifest which is used to populate the cache.<p>Application caches are versioned, and there can be different
   instances of caches for the same manifest URL, each having a
@@ -28341,7 +27758,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><p>The processing model of application caches for offline support in
+  </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
   algorithms defined in this section.<p>A URL <dfn id=concept-appcache-matches-oppcache title=concept-appcache-matches-oppcache>matches an
   opportunistic caching namespace</dfn> if there exists an
@@ -29656,7 +29073,7 @@
   XMLHttpRequests, database transactions, etc, must be killed, and any
   MessagePorts owned by the Window object must be
   unentangled.<p class=XXX>Also, <code title=event-unload>unload</code>
-  events should fire.<h3 id=structured-client-side-storage><span class=secno>5.10 </span>Structured client-side storage</h3><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><p><em>This section is non-normative.</em><p>This specification introduces two related mechanisms, similar to
+  events should fire.<h3 id=structured-client-side-storage><span class=secno>5.10 </span>Structured client-side storage</h3><h4 id=storage><span class=secno>5.10.1 </span>Storing name/value pairs</h4><h5 id=introduction-1><span class=secno>5.10.1.1 </span>Introduction</h5><p><em>This section is non-normative.</em><p>This specification introduces two related mechanisms, similar to
   HTTP session cookies, for storing structured data on the client
   side. <a href=#references>[RFC2109]</a> <a href=#references>[RFC2965]</a><p>The first is designed for scenarios where the user is carrying
   out a single transaction, but could be carrying out multiple
@@ -29907,7 +29324,7 @@
         * deleting databases
         * determining how much storage room is left
         * handling the database getting corrupted
-  --><h5 id=introduction-3><span class=secno>5.10.2.1 </span>Introduction</h5><p><em>This section is non-normative.</em><p class=XXX>...</p><!-- include an example that does something like the following to show
+  --><h5 id=introduction-2><span class=secno>5.10.2.1 </span>Introduction</h5><p><em>This section is non-normative.</em><p class=XXX>...</p><!-- include an example that does something like the following to show
 you should never embed strings straight into the statement, even when you
 have a variable and unknowable number of literals coming:
    var q = "";
@@ -30168,7 +29585,7 @@
   are needed.<p>The <dfn id=dom-sqlerror-message title=dom-SQLError-message><code>message</code></dfn>
   DOM attribute must return an error message describing the error
   encountered. The message should be localized to the user's
-  language.<h5 id=processing-model-3><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
+  language.<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
   callback</i>, optionally an <i>error callback</i>, optionally a
   <i>success callback</i>, optionally a <i>preflight operation</i>,
@@ -31949,7 +31366,7 @@
   canceled. The end point must be the last element selected as a
   possible drop point before the drop occurs (so if the operation is
   not canceled, there must be at least one element in the middle
-  step).<h4 id=introduction-4><span class=secno>6.8.1 </span>Introduction</h4><p><em>This section is non-normative.</em><p class=XXX>It's also currently non-existent.<h4 id=the-dragevent-and-datatransfer-interfaces><span class=secno>6.8.2 </span>The <code><a href=#dragevent>DragEvent</a></code> and <code><a href=#datatransfer>DataTransfer</a></code> interfaces</h4><p>The drag-and-drop processing model involves several events. They
+  step).<h4 id=introduction-3><span class=secno>6.8.1 </span>Introduction</h4><p><em>This section is non-normative.</em><p class=XXX>It's also currently non-existent.<h4 id=the-dragevent-and-datatransfer-interfaces><span class=secno>6.8.2 </span>The <code><a href=#dragevent>DragEvent</a></code> and <code><a href=#datatransfer>DataTransfer</a></code> interfaces</h4><p>The drag-and-drop processing model involves several events. They
   all use the <code><a href=#dragevent>DragEvent</a></code> interface.<pre class=idl>interface <dfn id=dragevent>DragEvent</dfn> : UIEvent {
   readonly attribute <a href=#datatransfer>DataTransfer</a> <a href=#dom-dragevent-datatransfer title=dom-DragEvent-dataTransfer>dataTransfer</a>;
   void <a href=#dom-dragevent-initdragevent title=dom-DragEvent-initDragEvent>initDragEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in AbstractView viewArg, in long detailArg, in <a href=#datatransfer>DataTransfer</a> dataTransferArg);
@@ -34184,7 +33601,7 @@
   not hostile. This section introduces a messaging system that allows
   documents to communicate with each other regardless of their source
   domain, in a way designed to not enable cross-site scripting
-  attacks.<h4 id=introduction-5><span class=secno>7.4.1 </span>Introduction</h4><p><em>This section is non-normative.</em><div class=example>
+  attacks.<h4 id=introduction-4><span class=secno>7.4.1 </span>Introduction</h4><p><em>This section is non-normative.</em><div class=example>
 
    <p>For example, if document A contains an <code><a href=#the-iframe-element>iframe</a></code>
    element that contains document B, and script in document A calls
@@ -34388,7 +33805,7 @@
   sections be kept separate so that implementors can avoid getting
   confused with the 'port' step. --><h4 id=posting-structured-data><span class=secno>7.4.5 </span>Posting structured data</h4><p class=XXX>People often request the ability to send
   name/value pairs, arrays, and numbers using postMessage() instead of
-  just strings.<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><p><em>This section is non-normative.</em><p class=XXX>An introduction to the channel and port
+  just strings.<h3 id=channel-messaging><span class=secno>7.5 </span><dfn>Channel messaging</dfn></h3><h4 id=introduction-5><span class=secno>7.5.1 </span>Introduction</h4><p><em>This section is non-normative.</em><p class=XXX>An introduction to the channel and port
   APIs.<h4 id=message-channels><span class=secno>7.5.2 </span>Message channels</h4><pre class=idl>[<a href=#dom-messagechannel title=dom-MessageChannel>Constructor</a>]
 interface <dfn id=messagechannel>MessageChannel</dfn> {
   readonly attribute <a href=#messageport>MessagePort</a> <a href=#dom-channel-port1 title=dom-channel-port1>port1</a>;
@@ -43411,8 +42828,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
@@ -43580,10 +42995,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"

Received on Friday, 10 October 2008 02:31:22 UTC