/[suikacvs]/markup/xml/domdtdef/domdtdef-work.en.html
Suika

Contents of /markup/xml/domdtdef/domdtdef-work.en.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.22 - (hide annotations) (download) (as text)
Sat Dec 8 08:16:53 2007 UTC (16 years, 11 months ago) by wakaba
Branch: MAIN
Changes since 1.21: +190 -78 lines
File MIME type: text/html
Abstract written (or copied from intro:-) ); Conformance section rewritten; 'live' now referrs HTML5; feature and interface MUSTs revised; some methods will be defined in future revision

1 wakaba 1.1 <!DOCTYPE html>
2     <html lang="en" class="formal-specification status-work-in-progress">
3     <head>
4 wakaba 1.2 <title>DOM Document Type Definition Module</title>
5 wakaba 1.1 <link rel="stylesheet" href="http://suika.fam.cx/www/style/html/spec">
6 wakaba 1.4 <link rel="stylesheet" href="http://suika.fam.cx/www/style/def/dom">
7 wakaba 1.1 <link rel="license" href="http://suika.fam.cx/c/gnu/fdl">
8     </head>
9     <body class="has-abstract">
10    
11     <div class="header">
12 wakaba 1.2 <h1>DOM Document Type Definition Module</h1>
13 wakaba 1.21 <h2>Working Draft <time datetime=2007-12-08>8 December 2007</time></h2>
14 wakaba 1.1
15     <dl class="versions-uri">
16     <dt>This Version</dt>
17 wakaba 1.2 <dd><code class="URI">&lt;<a href="http://suika.fam.cx/www/markup/xml/domdtdef/domdtdef-work"
18     >http://suika.fam.cx/www/markup/xml/domdtdef/domdtdef-work</a>&gt;</code></dd>
19 wakaba 1.1 <dt>Latest Version</dt>
20 wakaba 1.2 <dd><code class="URI">&lt;<a href="http://suika.fam.cx/www/markup/xml/domdtdef/domdtdef"
21     >http://suika.fam.cx/www/markup/xml/domdtdef/domdtdef</a>&gt;</code></dd>
22 wakaba 1.1 <dt>Latest Working Draft</dt>
23 wakaba 1.2 <dd><code class="URI">&lt;<a href="http://suika.fam.cx/www/markup/xml/domdtdef/domdtdef-work"
24     >http://suika.fam.cx/www/markup/xml/domdtdef/domdtdef-work</a>&gt;</code></dd>
25 wakaba 1.1 <!-- <dt>Previous Version</dt> -->
26     <dt>Version History</dt>
27 wakaba 1.2 <dd><code class=URI>&lt;<a href="http://suika.fam.cx/gate/cvs/markup/xml/domdtdef/domdtdef-work.en.html">http://suika.fam.cx/gate/cvs/markup/xml/domdtdef/domdtdef-work.en.html</a>&gt;</code></dd>
28     <dt id=author>Author</dt>
29 wakaba 1.1 <dd><a href="http://suika.fam.cx/~wakaba/who?" rel="author"
30     lang=ja>Wakaba</a>
31     <code class="mail">&lt;<a href="mailto:w@suika.fam.cx" rel="author"
32     >w@suika.fam.cx</a>&gt;</code></dd>
33     </dl>
34    
35     <p class="copyright" lang="en">&#xA9; <time>2007</time> <a
36     href="http://suika.fam.cx/~wakaba/who?" rel="author">Wakaba</a>.
37     Permission is granted to copy, distribute and/or modify this document
38     under the terms of the <a rel="license"
39     href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>,
40     Version 1.2
41     or any later version published by the <a
42     href="http://www.fsf.org/">Free Software Foundation</a>;
43     with no Invariant Sections, no Front$B!>(BCover Texts, and no Back$B!>(BCover
44     Texts. A copy of the license is
45     available at <code class="URI">&lt;<a
46     href="http://www.gnu.org/copyleft/fdl.html"
47     rel="license">http://www.gnu.org/copyleft/fdl.html</a>&gt;</code>.</p>
48     </div>
49    
50     <div id="abstract" class="section">
51     <h2>Abstract</h2>
52    
53 wakaba 1.22 <p>The <abbr>DOM</abbr> Document Type Definition module is a set of
54     <abbr>DOM</abbr> interfaces, including both new interfaces and modifications
55     to existing <abbr>DOM</abbr> interfaces, over which <abbr>DOM</abbr>
56     applications are able to access to the definitions of the document type.</p>
57 wakaba 1.1 </div>
58    
59     <div id="status" class="section">
60     <h2>Status of This Document</h2>
61    
62     <p class=section-info><em>This section describes the status of this document
63     at the time of its publication. Other documents
64     might supersede this document.</em></p>
65    
66     <p>This document is a working draft, produced as part of the
67     <a href="http://suika.fam.cx/www/manakai-core/doc/web/">manakai</a>
68     project. It might be updated, replaced, or obsoleted by
69     other documents at any time. It is inappropriate to
70     cite this document as other than <q>work in progress</q>.</p>
71    
72     <p>Comments on this document are welcome and
73     may be sent to the <a href="#author">author</a>.</p>
74    
75     <p>Translations of thie document might be available.
76     The English version of the document is the only
77     normative version.</p>
78     </div>
79    
80     <div id="introduction" class="section">
81     <h2>Introduction</h2>
82    
83     <p class=section-info>This section is <em>non$B!>(Bnormative</em>.</p>
84    
85 wakaba 1.3 <p>The <dfn id=term-dom-dtdef><abbr>DOM</abbr> Document Type Definition</dfn>
86     module is a set of <abbr>DOM</abbr> interfaces, including both new
87     interfaces and modifications to existing <abbr>DOM</abbr> interfaces,
88     over which <abbr>DOM</abbr> applications are able to access to the
89     definitions of the document type.</p>
90    
91     <p>Interfaces defined in this specification are partially modeled from
92     early drafts of <abbr>DOM</abbr> level 1 <span class=ed>@@ ref</span>,
93     <abbr>DOM</abbr> Abstract Schema level 3 <span class=ed>@@ ref</span>, and
94     <abbr>XML</abbr> Schema <abbr>API</abbr>, but are not compatible with
95     any of them as a whole.</p>
96 wakaba 1.1 </div>
97    
98 wakaba 1.22 <div class="section" id=conformance>
99     <h2>Conformance Requirements</h2>
100 wakaba 1.1
101 wakaba 1.22 <div class=section id=terminology>
102     <h3>Terminology</h3>
103 wakaba 1.1
104     <p>All examples and notes in this specification are non$B!>(Bnormative,
105     as are all sections explicitly marked non$B!>(Bnormative. Everything
106     else in this specification is normative.</p>
107    
108 wakaba 1.22 <p>The key words <q><em class="rfc2119">MUST</em></q>,
109     <q><em class="rfc2119">MUST NOT</em></q>, and <q><em class=rfc2119>MAY</em></q>
110     in this document are to be interpreted as described in
111     <a href="urn:ietf:rfc:2119"><abbr title="Request for Comments">RFC</abbr>
112     2119</a>
113     <cite class="bibref normative">[<a href="#ref-KEYWORDS">KEYWORDS</a>]</cite>.</p>
114 wakaba 1.3
115 wakaba 1.22 <p>Conformance requirements phrased as algorithms or specific steps
116     <em class=rfc2119>MAY</em> be implemented in any manner, so long as the end
117     result is equivalent. Requirements phrased in the imperative as part of
118     algorithms are to be interpreted with the meaning of the key word used in
119     introducing the algorithm.</p>
120    
121     <p>Sometimes an exception is phrased as being required to be raised. As
122     specified in the <abbr>DOM</abbr> Core specification
123     <span class=ed>[DOM3]</span>,
124     when the value of the <code>strictErrorChecking</code> attribute of the
125     <a href="#Document"><code>Document</code></a> node is <code>false</code>,
126     then the exception is not have to be raised.</p>
127    
128     <p>Some conformance requirements are phrased as requirements on interfaces,
129     attributes, methods, or objects. Such requirements are applied to
130     implementations.</p>
131    
132     <p>The construction <q>a <code><var>Foo</var></code> object</q>, where
133     <code><var>Foo</var></code> is an interface, is used instead of the more
134     accurate <q>an object implementing the interface
135     <code><var>Foo</var></code></q>.</p>
136    
137     <p>The construction <q>raise a <code><var>Bar</var></code></q>, where
138     <code><var>Bar</var></code> is an exception code, is used instead of the more
139     accurate <q>raise an exception implementing the interface
140     <code>DOMException</code> <span class=ed>[DOM3]</span> with its
141     <code>code</code> attribute set to <code><var>Bar</var></code></q>.</p>
142    
143     <p>The term
144     <q id=live><a href="http://www.whatwg.org/specs/web-apps/current-work/#live">live</a></q>
145     is defined in the HTML5 specification <span class=ed>[HTML5]</span>.</p>
146 wakaba 1.3
147     <p class=ed>@@ ref to DOM Binding Spec</p>
148 wakaba 1.22 </div>
149 wakaba 1.12
150 wakaba 1.22 <div class=section id=conformance-categories>
151     <h3>Conformance Categories</h3>
152 wakaba 1.18
153 wakaba 1.22 <p>There are several kinds of products that can be claim to conform to
154     this specification:</p>
155     <dl>
156     <dt id=category-dom-implementation><abbr>DOM</abbr> Implementation</dt>
157     <dd>A <abbr>DOM</abbr> implementation (or just written as
158     <q>implementation</q> in this document) provides a way to access
159     <abbr>DOM</abbr> trees for applications by implementing interfaces defined
160     by this and other documents. Unless otherwise noted, requirements in this
161     document are applied to <abbr>DOM</abbr> implementations. To implement
162     all the features in this document, the implementation have to implement
163     some version of <abbr>DOM</abbr> Core (e.g. <abbr>DOM</abbr> level 3
164     <span class=ed>[DOM3]</span>) with one or more language binding (e.g.
165     ECMAScript or Java binding <span class=ed>[BINDINGS]</span> or
166     Perl binding <span class=ed>[PERLBINDING]</span>).</dd>
167     <dt id=category-xml-parser><abbr>XML</abbr> Parser (<abbr>XML</abbr> document
168     to <abbr>DOM</abbr> tree converter)</dt>
169     <dd>A software component that converts
170     <abbr>XML</abbr> 1.0 or 1.1 document (or fragment thereof) into a
171     <abbr>DOM</abbr> tree (or fragment thereof) in the context of this
172     document. Note that this document does not define any particular way to
173     parse an <abbr>XML</abbr> document or to construct an <abbr>DOM</abbr>
174     document, but it defines constraints for such processing.</dd>
175     <dt id=category-xml-serializer><abbr>XML</abbr> Serializer (<abbr>DOM</abbr>
176     tree to <abbr>XML</abbr> document converter)</dt>
177     <dd>A software component that converts
178     <abbr>DOM</abbr> tree (or fragment thereof) into an <abbr>XML</abbr> 1.0 or
179     1.1 document (or fragment thereof). Note that this document does not define
180     any particular way to serialize a <abbr>DOM</abbr> tree, but it defines
181     constraints for such processing.</dd>
182     <dt id=category-infoset-dom><abbr>XML</abbr> Information Set to
183     <abbr>DOM</abbr> Tree Converter</dt>
184     <dd>A software component that converts an <abbr>XML</abbr> information set
185     into a <abbr>DOM</abbr> tree. Note that this documetn does not define
186     any particular way for the convertion, but it defines constraints for
187     such processing.</dd>
188     <dt id=category-dom-infoset><abbr>DOM</abbr> Tree to <abbr>XML</abbr>
189     Information Set Converter</dt>
190     <dd>A software component that converts a <abbr>DOM</abbr> tree into
191     an <abbr>XML</abbr> information set. Note that this documetn does not define
192     any particular way for the convertion, but it defines constraints for
193     such processing.</dd>
194     </dl>
195 wakaba 1.18 </div>
196 wakaba 1.3 </div>
197    
198     <div class=section id=dom-dtdef>
199     <h2><abbr>DOM</abbr> Document Type Definition Module</h2>
200    
201     <p>The <abbr>DOM</abbr> Document Type Definition module, version 3.0,
202 wakaba 1.20 introduces four interfaces:
203     <a href="#DocumentXDoctype"><code>DocumentXDoctype</code></a>,
204     <a href="#DocumentTypeDefinition"><code>DocumentTypeDefinition</code></a>,
205     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>,
206     and <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>.
207     In addition, it modifies existing interfaces
208 wakaba 1.3 <a href="#Node"><code>Node</code></a>,
209 wakaba 1.20 <a href="#Document"><code>Document</code></a>,
210 wakaba 1.12 <a href="#DocumentType"><code>DocumentType</code></a>,
211 wakaba 1.20 <a href="#Entity"><code>Entity</code></a>, and
212     <a href="#Notation"><code>Notation</code></a>.</p>
213 wakaba 1.3
214     <div class=section id=features>
215 wakaba 1.22 <h3>Feature String</h3>
216 wakaba 1.3
217     <p>In a <abbr>DOM</abbr> implementation that supports the version 3.0 of
218     the <abbr>DOM</abbr> Document Type Definition module, the
219     <code>hasFeature</code> method of a <code>DOMImplementation</code> object
220     <em class=rfc2119>MUST</em> return <code>true</code> when the parameters are
221 wakaba 1.19 set to
222     <dfn id=feature-XDoctype><code>http://suika.fam.cx/www/2006/feature/XDoctype</code></dfn>
223 wakaba 1.22 and <dfn id=feature-XDoctype-3.0><code>3.0</code></dfn> respectively. Any
224     method that takes one or more feature names, with or without version number,
225     such as <code>hasFeature</code> or <code>getFeature</code>,
226     <em class=rfc2119>MUST</em> behave in a manner consistent with it.</p>
227 wakaba 1.4 </div>
228    
229 wakaba 1.14 <div class=section id=section-node>
230     <h3>Modifications to the <code id=Node>Node</code> Interface</h3>
231    
232 wakaba 1.15 <p>The implementation of the
233     <a href="#Node"><code>Node</code></a> interface
234     <em class=rfc2119>MUST</em> be modified as following:</p>
235 wakaba 1.14 <pre class=idl><code>// Additions to the Node interface
236    
237     // Additions to the NodeType definition group
238     const unsigned short <a href="#ELEMENT_TYPE_DEFINITION_NODE">ELEMENT_TYPE_DEFINITION_NODE</a> = 81001;
239     const unsigned short <a href="#ATTRIBUTE_DEFINITION_NODE">ATTRIBUTE_DEFINITION_NODE</a> = 81002;
240     </pre>
241    
242     <p>This specification adds two new types (subinterfaces) of
243     <a href="#Node"><code>Node</code></a>: element type definition (node type
244     <a href="#ELEMENT_TYPE_DEFINITION_NODE"><code>ELEMENT_TYPE_DEFINITION_NODE</code></a>,
245     interface
246     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>) and
247     attribute definition (node type
248     <a href="#ATTRIBUTE_DEFINITION_NODE"><code>ATTRIBUTE_DEFINITION_NODE</code></a>,
249     interface
250     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>). For
251     these kinds of nodes, methods and attributes in the
252     <a href="#Node"><code>Node</code></a> interface must behave as following:</p>
253    
254     <dl>
255 wakaba 1.15 <dt><code id=attributes>attributes</code></dt>
256     <dd>
257     <p>On getting, the attribute <em class=rfc2119>MUST</em> return
258     <code>null</code>.</p>
259     </dd>
260     <dt><code id=baseURI>baseURI</code></dt>
261     <dd>
262     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
263     value of the <a href="#baseURI"><code>baseURI</code></a> attribute
264     of the node in the <code>ownerDocument</code> attribute of the node.
265     Note that the value might be <code>null</code>.</p>
266     </dd>
267 wakaba 1.20 <dt><code id=cloneNode>cloneNode</code></dt>
268 wakaba 1.22 <dd class=ed>
269     <p>A future version of the specification is expected to define the
270     behavior of the <a href="#cloneNode"><code>cloneNode</code></a> method
271     for those kinds of nodes. In addition, it might revise behavior of
272     the method for <a href="#Entity"><code>Entity</code></a>,
273     <a href="#Notation"><code>Notation</code></a>, and/or
274     <a href="#DocumentType"><code>DocumentType</code></a> nodes.</p>
275     </dd>
276     <!--
277 wakaba 1.20 <dd class=ed>@@ If Attr and AttributeDefinition is inconsistent, then ...</dd>
278 wakaba 1.22 -->
279 wakaba 1.20 <dt><code id=compareDocumentPosition>compareDocumentPosition</code></dt>
280 wakaba 1.22 <dd class=ed>
281     <p>A future version of the specification is expected to define the
282     behavior of the method
283     for those kinds of nodes. In addition, it might revise behavior of
284     the method for <a href="#Entity"><code>Entity</code></a>,
285     <a href="#Notation"><code>Notation</code></a>, and/or
286     <a href="#DocumentType"><code>DocumentType</code></a> nodes.</p>
287     </dd>
288 wakaba 1.20 <dt><code id=isDefaultNamespace>isDefaultNamespace</code></dt>
289     <dd><p>When invoked, the method <em class=rfc2119>MUST</em> return
290     <code>false</code>.</p></dd>
291 wakaba 1.19 <dt><code id=isEqualNode>isEqualNode</code></dt>
292     <dd><p>For the <a href="#isEqualNode"><code>isEqualNode</code></a> method,
293     following items are added to the list of conditions for equality:</p>
294    
295     <ul>
296     <li>
297     <p>If the nodes are <a href="#DocumentType"><code>DocumentType</code></a>
298     and at least one of them has the support for the feature
299     <a href="#feature-XDoctype"><code>http://suika.fam.cx/www/2006/feature/XDoctype</code></a>:</p>
300     <ul>
301     <li>they are equal according to <abbr>DOM</abbr> level 3 definition
302     <span class=ed>@@ ref</span>, and
303     <li>either:
304     <ul><!--
305     <li>both of them does not support the feature
306     <a href="#feature-XDoctype"><code>http://suika.fam.cx/www/2006/feature/XDoctype</code></a>,</li>-->
307     <li>exactly one of them support the feature
308     <a href="#feature-XDoctype"><code>http://suika.fam.cx/www/2006/feature/XDoctype</code></a>
309     and the <code>length</code> attribute of the <code>NamedNodeMap</code>
310     object in the <a href="#elementTypes"><code>elementTypes</code></a>
311     attribute of it is equal to <code>0</code>, or</li>
312     <li>both of them support the feature
313     <a href="#feature-XDoctype"><code>http://suika.fam.cx/www/2006/feature/XDoctype</code></a>
314     and the values of the
315     <a href="#elementTypes"><code>elementTypes</code></a> attributes are
316     equal (equality of the
317     <a href="#elementTypes"><code>elementTypes</code></a> attribute is same
318     as that for the <code>attributes</code> attribute).</li>
319     </ul>
320     </li>
321     </ul>
322     </li>
323    
324     <li><p>If the nodes are
325     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>,
326     the values of the
327     <a href="#attributeDefinitions"><code>attributeDefinitions</code></a>
328     attributes are equal (equality of the
329     <a href="#attributeDefinitions"><code>attributeDefinitions</code></a>
330     attribute is same as that for the <code>attributes</code> attribute).</p></li>
331    
332     <li><p>If the nodes are
333     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>,
334     the values of the <a href="#declaredType"><code>declaredType</code></a> and
335     the <a href="#defaultType"><code>defaultType</code></a> attributes are
336     equal respectively.</p></li>
337    
338     <li><p>If the nodes are
339     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>,
340     the values of the <code>DOMStringList</code> objects in the
341     <a href="#allowedTokens"><code>allowedTokens</code></a> attributes
342     are equal, i.e. their <code>length</code> attribute values are equal and
343     each string exists in a list is contained in another list (their indeces
344     may be different), with an additional constraint that the number of the
345     items that are equal to a string in a list is equal to the number
346     of the items equal to the string in another list.</p></li>
347     </ul></dd>
348 wakaba 1.20 <dt><code id=lookupNamespaceURI>lookupNamespaceURI</code> and
349     <code id=lookupPrefix>lookupPrefix</code></dt>
350     <dd><p>When invoked, the methods <em class=rfc2119>MUST</em> return
351     <code>null</code>.</p></dd>
352 wakaba 1.15 <dt><code id=nodeName>nodeName</code></dt>
353     <dd>
354     <p>If the node is an
355     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>:
356     On getting, the attribute <em class=rfc2119>MUST</em> return the
357     name of the element type definition represented by the node.</p>
358    
359     <p>If the node is an
360     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>:
361     On getting, the attribute <em class=rfc2119>MUST</em> return the
362     name of the attribute definition represented by the node.</p>
363     </dd>
364 wakaba 1.14 <dt><code id=nodeType>nodeType</code></dt>
365     <dd>
366     <p>On getting, the attribute <em class=rfc2119>MUST</em> return
367     <a href="#ELEMENT_TYPE_DEFINITION_NODE"><code>ELEMENT_TYPE_DEFINITION_NODE</code></a>
368     (if the node is an
369     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>) or
370     <a href="#ATTRIBUTE_DEFINITION_NODE"><code>ATTRIBUTE_DEFINITION_NODE</code></a>
371     (if the node is an
372     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>).</p>
373    
374     <!-- NodeType -->
375     <p>Two constants are added to the <code id=NodeType>NodeType</code>
376     definition group of the <a href="#Node"><code>Node</code></a> interface as
377     following:</p>
378     <table>
379     <thead>
380     <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
381     </thead>
382     <tbody>
383     <tr>
384     <th scope=row><dfn id=ELEMENT_TYPE_DEFINITION_NODE class=dom-const><code>ELEMENT_TYPE_DEFINITION_NODE</code></dfn>
385     <td><code>81001</code><td>The node is an
386     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>.</tr>
387     <tr>
388     <th scope=row><dfn id=ATTRIBUTE_DEFINITION_NODE class=dom-const><code>ATTRIBUTE_DEFINITION_NODE</code></dfn>
389     <td><code>81002</code><td>The node is an
390     <a href="#ElementTypeDefinition"><code>AttributeDefinition</code></a>.</tr>
391     </tbody>
392     </table>
393     </dd>
394 wakaba 1.15 <dt><code id=nodeValue>nodeValue</code> and
395     <code id=textContent>textContent</code></dt>
396     <dd>
397     <p>If the node is an
398     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>:
399 wakaba 1.21 On getting, the attributes <em class=rfc2119>MUST</em> return
400     <code>null</code>.</p>
401 wakaba 1.15
402     <div class="note memo">
403     <p>Thus, on setting the attributes does nothing
404     <span class=ed>[DOM3]</span>.</p>
405     </div>
406    
407     <p>On setting, the <a href="#textContent"><code>textContent</code></a>
408     attribute <em class=rfc2119>MUST NOT</em> raise a
409     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>.
410     <span class=ed>@@ I forgot why this requirement is necessary.</span></p>
411    
412 wakaba 1.21 <p>If the node is an
413     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>:
414     The attribute <em class=rfc2119>MUST</em> behave as if the node
415     were <code>Attr</code> <span class=ed>[DOM3]</span>.</p></dd>
416 wakaba 1.20 <dt><code id=normalize>normalize</code></dt>
417     <dd><p>When a <a href="#DocumentType"><code>DocumentType</code></a> is
418     normalized, any nodes in the <code>NamedNodeMap</code> object in the
419     <a href="#elementTypes"><code>elementTypes</code></a> attribute
420     <em class=rfc2119>MUST</em> be normalized as well.</p>
421    
422     <p>When an
423     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node
424     is normalized, any nodes in the <code>NamedNodeMap</code> object in the
425     <a href="#attributeDefinitions"><code>attributeDefinitions</code></a>
426     attribute <em class=rfc2119>MUST</em> be normalized as well.</p></dd>
427 wakaba 1.14 </dl>
428    
429     </div>
430    
431 wakaba 1.20 <div class=section id=section-document>
432     <h3>Modifications to the <code id=Document>Document</code> Interface</h3>
433    
434 wakaba 1.22 <!--
435 wakaba 1.20 <p>If an attempt is made to adopt an
436     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> or
437     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node,
438     the <code id=adoptNode>adoptNode</code> method <em class=rfc2119>MUST</em>
439     raise a <code>NOT_SUPPORTED_ERR</code> exception <span class=ed>@@
440     ref</span>.</p>
441 wakaba 1.22 -->
442    
443     <div class=ed>
444     <p>Future version of the specification is expected to define what should
445     be done if <code>adoptNode</code> or <code>importNode</code> method have to
446     adopt or import an
447     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> or
448     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node.
449     In addition it might revise behavior of those methods for
450     <a href="#Entity"><code>Entity</code></a>,
451     <a href="#Notation"><code>Notation</code></a>, and/or
452     <a href="#DocumentType"><code>DocumentType</code></a> nodes.
453     Behavior of <code>normalizeDocument</code> method for these kinds of
454     nodes might also be defined in some day.</p>
455     </div>
456    
457 wakaba 1.20 </div>
458    
459 wakaba 1.4 <div class=section id=section-documentxdoctype>
460 wakaba 1.7 <h3>The <code>DocumentXDoctype</code> Interface</h3>
461 wakaba 1.4
462 wakaba 1.22 <p>The <a href="#Document"><code>Document</code></a> nodes
463     <em class=rfc2119>MUST</em> also implement the
464     <a href="#DocumentXDoctype"><code>DocumentXDoctype</code></a> interface.</p>
465    
466     <p>An instance of the
467     <a href="#DocumentXDoctype"><code>DocumentXDoctype</code></a>
468     interface <em class=rfc2119>MUST</em> be able to be obtained by using
469     binding$B!>(Bspecific casting methods on an instance of the
470     <a href="#Document"><code>Document</code></a> interface (if such
471     casting methods are available) or by using the method <code>getFeature</code>
472     with parameter values
473     <a href="#feature-XDoctype"><code>http://suika.fam.cx/www/2006/feature/XDoctype</code></a>
474     and <a href="#feature-XDoctype-3.0"><code>3.0</code></a> respectively (if the
475     <a href="#Document"><code>Document</code></a> node supports the
476     feature <code>Core</code> version <code>3.0</code>
477     <span class=ed>[DOM3]</span>).</p>
478    
479 wakaba 1.15 <p>The <a href="#DocumentXDoctype"><code>DocumentXDoctype</code></a> interface
480     <em class=rfc2119>MUST</em> be implemented as following:</p>
481 wakaba 1.4 <pre class=idl><code>interface <dfn id=DocumentXDoctype><code>DocumentXDoctype</code></dfn> {
482 wakaba 1.5 DocumentType <a href="#createDocumentTypeDefinition">createDocumentTypeDefinition</a>
483     (in DOMString <a href="#createDocumentTypeDefinition-name"><var>name</var></a>)
484     raises (DOMException);
485 wakaba 1.12 <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#createElementTypeDefinition">createElementTypeDefinition</a>
486 wakaba 1.5 (in DOMString <a href="#createElementTypeDefinition-name"><var>name</var></a>)
487     raises (DOMException);
488 wakaba 1.12 <a href="#AttributeDefinition">AttributeDefinition</a> <a href="#createAttributeDefinition">createAttributeDefinition</a>
489 wakaba 1.5 (in DOMString <a href="#createAttributeDefinition-name"><var>name</var></a>)
490     raises (DOMException);
491 wakaba 1.12 <a href="#Entity">Entity</a> <a href="#createGeneralEntity">createGeneralEntityDefinition</a>
492 wakaba 1.5 (in DOMString <a href="#createGeneralEntity-name"><var>name</var></a>)
493     raises (DOMException);
494 wakaba 1.12 <a href="#Notation">Notation</a> <a href="#createNotation">createNotation</a>
495 wakaba 1.5 (in DOMString <a href="#createNotation-name"><var>name</var></a>)
496     raises (DOMException);
497 wakaba 1.4 }</code></pre>
498    
499 wakaba 1.5 <dl>
500     <dt><dfn id=createDocumentTypeDefinition class=dom-method><code>createDocumentTypeDefinition</code></dfn>,
501     method</dt>
502     <dd>
503     <p>This method creates a <code>DocumentType</code> node with the specified
504     name, belonging to the document.</p>
505     <p>The <dfn id=createDocumentTypeDefinition-name class=dom-param><var>name</var></dfn>
506     parameter is the name of the document type.</p>
507    
508     <p>When invoked, the method <em class=rfc2119>MUST</em> create and
509     return a <code>DocumentType</code> node with the following attributes:</p>
510     <dl>
511     <dt><code>attributes</code>, <code>parentNode</code></dt>
512     <dd><code>null</code>.</dd>
513     <dt><code>elementTypes</code>, <code>generalEntities</code>, and
514     <code>notations</code></dt>
515     <dd>Empty <code>NamedNodeMap</code> objects.</dd>
516     <dt><code>entities</code></dt>
517     <dd>The same value as the <code>generalEntities</code> attribute.</dd>
518     <dt><code>childNodes</code></dt>
519     <dd>An empty <code>NodeList</code> object.</dd>
520     <dt><code>internalSubset</code>, <code>publicId</code>, and
521     <code>systemId</code></dt>
522     <dd>Empty strings.</dd>
523     <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
524     <dd><code>false</code>.</dd>
525     <dt><code>nodeName</code></dt>
526     <dd><a href="#createDocumentTypeDefinition-name"><var>name</var></a>.</dd>
527     <dt><code>ownerDocument</code></dt>
528     <dd>The <code>Document</code> over which the method is invoked.</dd>
529     </dl>
530     <p>In addition, the method <em class=rfc2119>MUST</em> be marked as
531     containing five general entity declarations: <code>amp</code>,
532     <code>lt</code>, <code>gt</code>, <code>quot</code>, and
533     <code>apos</code>.</p>
534     </dd>
535     <dt><dfn id=createElementTypeDefinition class=dom-method><code>createElementTypeDefinition</code></dfn>,
536     method</dt>
537     <dd>
538     <p>This method creates a <code>ElementTypeDefinition</code> node with the
539     specified name, belonging to the document.</p>
540     <p>The <dfn id=createElementTypeDefinition-name class=dom-param><var>name</var></dfn>
541     parameter is the name of the element type defined by the element
542     type definition.</p>
543 wakaba 1.6
544     <p>When invoked, the method <em class=rfc2119>MUST</em> create and
545     return an
546     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
547     node with the following attributes:</p>
548     <dl>
549     <dt><a href="#attributeDefinitions"><code>attributeDefinitions</code></a></dt>
550     <dd>An empty <code>NamedNodeMap</code> object.</dd>
551     <dt><code>attributes</code>, <code>parentNode</code></dt>
552     <dd><code>null</code>.</dd>
553     <dt><code>childNodes</code></dt>
554     <dd>An empty <code>NodeList</code> object.</dd>
555     <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
556     <dd><code>false</code>.</dd>
557     <dt><code>nodeName</code></dt>
558     <dd><a href="#createElementTypeDefinition-name"><var>name</var></a>.</dd>
559     <dt><code>ownerDocument</code></dt>
560     <dd>The <code>Document</code> node over which the method is invoked.</dd>
561     <dt><a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a></dt>
562     <dd><code>null</code>.</dd>
563     <dt class=ed>@@ Ensure all attributes are defined</dt>
564     </dl>
565 wakaba 1.5 </dd>
566     <dt><dfn id=createAttributeDefinition class=dom-method><code>createAttributeDefinition</code></dfn>,
567     method</dt>
568     <dd>
569     <p>This method creates a <code>AttributeDefinition</code> node with the
570     specified name, belonging to the document.</p>
571     <p>The <dfn id=createAttributeDefinition-name class=dom-param><var>name</var></dfn>
572     parameter is the name of the attribute defined by the attribute
573     definition.</p>
574 wakaba 1.6
575     <p>When invoked, the method <em class=rfc2119>MUST</em> create and
576     return an
577     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
578     node with the following attributes:</p>
579     <dl>
580     <dt><code>allowedTokens</code></dt>
581     <dd>An empty <code>DOMStringList</code> object.</dd>
582     <dt><code>attributes</code>,
583     <a href="#ownerElementTypeDefinition"><code>ownerElementTypeDefinition</code></a>,
584     and <code>parentNode</code></dt>
585     <dd><code>null</code>.</dd>
586     <dt><code>childNodes</code></dt>
587     <dd>An empty <code>NodeList</code> object.</dd>
588     <dt><code>declaredType</code></dt>
589     <dd><a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</dd>
590     <dt><code>defaultType</code></dt>
591     <dd><a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</dd>
592     <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
593     <dd><code>false</code>.</dd>
594     <dt><code>nodeName</code></dt>
595     <dd><a href="#createAttributeDefinition-name"><var>name</var></a>.</dd>
596     <dt><code>ownerDocument</code></dt>
597     <dd>The <code>Document</code> node over which the method is invoked.</dd>
598     <dt class=ed>@@ Ensure all attributes are defined</dt>
599     </dl>
600    
601     <div class=ed>
602     <p>@@ Should we keep these statements?:
603     However, if the &lt;cfg::cfg|xml-id> configuration
604     parameter is set to <code>true</code> and the <var>name</var>
605     is <code>xml:id</code>, then the [CODE(DOMa)@en[[[declaredType]]]]
606     attribute is set to <code>ID_ATTR</code>.
607     [CODE(DOMa)@en[[[defaultType]]]]?</p>
608     </div>
609 wakaba 1.5 </dd>
610     <dt><dfn id=createGeneralEntity class=dom-method><code>createGeneralEntity</code></dfn>,
611     method</dt>
612     <dd>
613 wakaba 1.7 <p>This method creates a <a href="#Entity"><code>Entity</code></a> node
614     with the specified name, which represents a general entity, belonging to
615     the document.</p>
616 wakaba 1.5 <p>The <dfn id=createGeneralEntity-name class=dom-param><var>name</var></dfn>
617     parameter is the name of the general entity.</p>
618 wakaba 1.7
619     <p>When invoked, the method <em class=rfc2119>MUST</em> create and return
620     an <a href="#Entity"><code>Entity</code></a> node with the following
621     attributes:</p>
622     <dl>
623     <dt><code>attributes</code>, <code>notationName</code>,
624     <a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a>,
625     and <code>parentNode</code></dt>
626     <dd><code>null</code>.</dd>
627     <dt><code>childNodes</code></dt>
628     <dd>An empty <code>NodeList</code> object.</dd>
629     <dt><code>manakaiDeclarationBaseURI</code>,
630     <code>manakaiEntityBaseURI</code>, and
631     <code>manakaiEntityURI</code> <span class=ed>@@ ref</span></dt>
632     <dd>No explicit value is set.</dd>
633 wakaba 1.19 <dt><a href="#hasReplacementTree"><code>hasReplacementTree</code></a> and
634 wakaba 1.7 <code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
635     <dd><code>false</code>.</dd>
636     <dt><code>nodeName</code></dt>
637     <dd><a href="#createGeneralEntity-name"><var>name</var></a>.</dd>
638     <dd>
639     <div class="note memo">
640     <p>It is not an error for
641     <a href="#createGeneralEntity-name"><var>name</var></a> matching
642     to the name of one of predefined general parsed entities in
643     <abbr>XML</abbr> or <abbr>HTML</abbr>. For example,
644     <a href="#createGeneralEntity-name"><var>name</var></a> might be
645     <code>amp</code>, resulting in an
646     <a href="#Entity"><code>Entity</code></a> node
647     with its <code>nodeName</code> attribute set to <code>amp</code>.</p>
648     </div>
649     </dd>
650     <dt><code>ownerDocument</code></dt>
651     <dd>The <code>Document</code> node over which the method is invoked.</dd>
652     <dt><code>publicId</code>, and <code>systemId</code></dt>
653     <dd><code>null</code>.</dd>
654     <dd class=ed>@@ publicId and systemId should be empty string?</dd>
655     <dt class=ed>@@ Ensure all attributes are defined</dd>
656     </dl>
657 wakaba 1.5 </dd>
658     <dt><dfn id=createNotation class=dom-method><code>createNotation</code></dfn>,
659     method</dt>
660     <dd>
661     <p>This method creates a <code>Notation</code> node with the
662     specified name, belonging to the document.</p>
663     <p>The <dfn id=createNotation-name class=dom-param><var>name</var></dfn>
664     parameter is the name of the notation.</p>
665 wakaba 1.7
666     <p>When invoked, the method <em class=rfc2119>MUST</em> create and return
667     a <code>Notation</code> node with the following attributes:</p>
668     <dl>
669     <dt><code>attributes</code>,
670     <a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a>,
671     and <code>parentNode</code></dt>
672     <dd><code>null</code>.</dd>
673     <dt><code>childNodes</code></dt>
674     <dd>An empty <code>NodeList</code> object.</dd>
675     <dt><code>manakaiDeclarationBaseURI</code></dt>
676     <dd>No explicit value is set.</dd>
677     <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
678     <dd><code>false</code>.</dd>
679     <dt><code>nodeName</code></dt>
680     <dd><a href="#createNotation-name"><var>name</var></a>.</dd>
681     <dt><code>ownerDocument</code></dt>
682     <dd>The <code>Document</code> node over which the method is invoked.</dd>
683     <dt><code>publicId</code> and <code>systemId</code></dt>
684     <dd><code>null</code>.</dd>
685     <dd class=ed>@@ publicId and systemId should be empty string?</dd>
686     <dt class=ed>@@ Ensure all attributes are defined</dt>
687     </dl>
688 wakaba 1.5 </dd>
689     </dl>
690 wakaba 1.4
691 wakaba 1.7 <p>These methods <em class=rfc2119>MUST</em> raise an
692     <code>INVALID_CHARACTER_ERR</code> exception <span class=ed>@@ ref</span>
693     if <var>name</var> is <em>not</em> a legal <code>Name</code> according to
694     the <abbr>XML</abbr> version in use, as specified in the
695     <code>xmlVersion</code> attribute of the <code>Document</code> node.</p>
696    
697     <div class="note memo">
698     <p>Non$B!>(B<abbr>XML</abbr> case is intentionally left unspecified for now,
699     since <abbr>DOM3</abbr> specification <span class=ed>@@ ref</span> does not
700     define it for <code>Document</code> methods.</p>
701    
702     <p><var>name</var> does not have to be a namespace qualified name.</p>
703     </div>
704 wakaba 1.4
705     </div>
706    
707 wakaba 1.16
708     <div class=section id=section-documenttype>
709     <h3>Modifications to the <code id=DocumentType>DocumentType</code>
710     Interface</h3>
711    
712     <p>A <a href="#DocumentType"><code>DocumentType</code></a> interface
713     <em class=rfc2119>MAY</em> contain zero or more
714     <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
715     nodes in the <code>NodeList</code> object contained in the
716     <code>childNodes</code> attribute of the
717     <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
718    
719     <p>If the <a href="#DocumentType"><code>DocumentType</code></a> node is created
720     during the process to create a <abbr>DOM</abbr> from an <abbr>XML</abbr>
721     document, the <code>NodeList</code> object in the <code>childNodes</code>
722     object <em class=rfc2119>MUST</em> contains the
723     <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
724     nodes representing the processing instructions in the document type
725     definition of the document processed <span class=ed>@@ ref</span> by
726     the <abbr>XML</abbr> processor. If the
727     <a href="#DocumentType"><code>DocumentType</code></a> node is marked
728     as read$B!>(Bonly, then all the child nodes <em class=rfc2119>MUST</em>
729     also be marked as read$B!>(Bonly.</p>
730    
731     <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is created
732     from a document type declaration information item <span class=ed>@@ ref</span>,
733     the <code>NodeList</code> object in the <code>childNodes</code> attribute
734     of the node <em class=rfc2119>MUST</em> contain the
735     <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
736     created from the processing instruction information items in the list in the
737     [children] property of the document type declaration item in the same
738     order.</p>
739    
740     <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is mapped to
741     a document type declaration information item, the list in the [children]
742     property <em class=rfc2119>MUST</em> contain the processng instruction
743     information items created from the
744     <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
745     in the <code>NodeList</code> object in the <code>childNodes</code> attribute
746     of the <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
747    
748     <p>The implementation of the
749     <a href="#DocumentType"><code>DocumentType</code></a> interface
750     <em class=rfc2119>MUST</em> be modified as following:</p>
751     <pre class=idl><code>// Modifications to the DocumentType interface
752     attribute DOMString <a href="#publicId">publicId</a>;
753     attribute DOMString <a href="#systemId">systemId</a>;
754    
755     attribute DOMString <a href="#internalSubset">internalSubset</a>;
756     </code></pre>
757    
758     <p>The <code id=publicId>publicId</code> attribute and the
759     <code id=systemId>systemId</code> attribute of
760     <a href="#DocumentType"><code>DocumentType</code></a>,
761     <a href="#Entity"><code>Entity</code></a>, and
762     <a href="#Notation"><code>Notation</code></a> interfaces are no longer
763     read$B!>(Bonly.</p>
764    
765     <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
766     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
767     exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.
768     Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the value
769     associated to the attribute. No normalization, relative reference resolution,
770     or lexical validation is performed. <span class=ed>@@ If the new
771     value is <code>null</code>, ...</span></p>
772    
773     <div class="note memo">
774     <p>Setting an invalid identifier might make the node unserializable.
775     Setting a public identifier while leaveing system identifier unspecified
776     would also make the <a href="#DocumentType"><code>DocumentType</code></a>
777     or <a href="#Entity"><code>Entity</code></a> node unserializable.</p>
778     </div>
779    
780     <div class=ed>
781     <p>ISSUE: In HTML5, Firefox 1.5, and Opera 9, not specifying public or system identifier results in empty strings.</p>
782     </div>
783    
784     <p>The <code id=internalSubset>internalSubset</code> attribute of the
785     <a href="#DocumentType"><code>DocumentType</code></a> interface is no longer
786     read$B!>(Bonly.</p>
787    
788     <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
789     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
790     exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.
791     Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the value
792     associated to the attribute. No normalization, or lexical validation is
793     performed. <span class=ed>@@ If the new value is <code>null</code>,
794     ...</span></p>
795    
796     </div>
797    
798 wakaba 1.4 <div class=section id=section-documenttypedefinition>
799 wakaba 1.7 <h3>The <code>DocumentTypeDefinition</code> Interface</h3>
800 wakaba 1.4
801 wakaba 1.22 <p>The <a href="#DocumentType"><code>DocumentType</code></a> nodes
802     <em class=rfc2119>MUST</em> also implement the
803     <a href="#DocumentTypeDefinition"><code>DocumentTypeDefinition</code></a>
804     interface.</p>
805    
806     <p>An instance of the
807     <a href="#DocumentTypeDefinition"><code>DocumentTypeDefinition</code></a>
808     interface <em class=rfc2119>MUST</em> be able to be obtained by using
809     binding$B!>(Bspecific casting methods on an instance of the
810     <a href="#DocumentType"><code>DocumentType</code></a> interface (if such
811     casting methods are available) or by using the method <code>getFeature</code>
812     with parameter values
813     <a href="#feature-XDoctype"><code>http://suika.fam.cx/www/2006/feature/XDoctype</code></a>
814     and <a href="#feature-XDoctype-3.0"><code>3.0</code></a> respectively (if the
815     <a href="#DocumentType"><code>DocumentType</code></a> node supports the
816     feature <code>Core</code> version <code>3.0</code>
817     <span class=ed>[DOM3]</span>).</p>
818    
819 wakaba 1.17 <div class="note memo">
820     <p>This interface is a separated interface from the
821     <a href="#DocumentType"><code>DocumentType</code></a>, not a set of extensions
822     to the <a href="#DocumentType"><code>DocumentType</code></a>,
823     for the historical reason.</p>
824 wakaba 1.22
825     <p class=ed>Should the interface be merged with
826     <a href="#DocumentType"><code>DocumentType</code></a>?</p>
827 wakaba 1.17 </div>
828    
829 wakaba 1.15 <p>The
830     <a href="#DocumentTypeDefinition"><code>DocumentTypeDefinition</code></a>
831     interface <em class=rfc2119>MUST</em> be implemented as following:</p>
832 wakaba 1.4 <pre class=idl><code>interface <dfn id=DocumentTypeDefinition><code>DocumentTypeDefinition</code></dfn> {
833 wakaba 1.8 readonly attribute NamedNodeMap <a href="#elementTypes">elementTypes</a>;
834     readonly attribute NamedNodeMap <a href="#generalEntities">generalEntities</a>;
835     readonly attribute NamedNodeMap <a href="#notations">notations</a>;
836    
837 wakaba 1.13 <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#getElementTypeDefinitionNode">getElementTypeDefinitionNode</a>
838     (in DOMString <a href="#getElementTypeDefinitionNode-name"><var>name</var></a>);
839     <a href="#Entity">Entity</a> <a href="#getGeneralEntityNode">getGeneralEntityNode</a>
840     (in DOMString <a href="#getGeneralEntityNode-name"><var>name</var></a>);
841     <a href="#Notation">Notation</a> <a href="#getNotationNode">getNotationNode</a>
842     (in DOMString <a href="#getNotationNode-name"><var>name</var></a>);
843    
844     void <a href="#setElementTypeDefinitionNode">setElementTypeDefinitionNode</a>
845     (in DOMString <a href="#setElementTypeDefinitionNode-node"><var>node</var></a>)
846     raises (DOMException);
847     void <a href="#setGeneralEntityNode">setGeneralEntityNode</a>
848     (in DOMString <a href="#setGeneralEntityNode-node"><var>node</var></a>)
849     raises (DOMException);
850     void <a href="#setNotationNode">setNotationNode</a>
851     (in DOMString <a href="#setNotationNode-node"><var>node</var></a>)
852     raises (DOMException);
853 wakaba 1.4 }</code></pre>
854    
855 wakaba 1.8 <dl>
856     <dt><dfn id=elementTypes class=dom-attr><code>elementTypes</code></dfn> of
857     type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
858 wakaba 1.22 <dd><p>A <a href="#live">live</a> <code>NamedNodeMap</code> object that
859     contains all the element type definitions belonging to the
860     <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
861 wakaba 1.8
862     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
863     <code>NamedNodeMap</code> object that contains all the
864     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
865     nodes belonging to the <code>DocumentType</code> node. The
866     <code>NamedNodeMap</code> object <em class=rfc2119>MUST</em> be read$B!>(Bonly
867     if and only if the node is read$B!>(Bonly. The <code>NamedNodeMap</code>
868 wakaba 1.22 object <em class=rfc2119>MUST</em> be <a href="#live">live</a>.</p>
869 wakaba 1.8
870     <p>If the <code>DocumentType</code> node is created during the process
871     to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, the following
872     requirements are applied: The <code>NamedNodeMap</code> object in the
873     <a href="#elementTypes"><code>elementType</code></a> attribute
874     <em class=rfc2119>MUST</em> be so transformed that the object contains
875     the <code>ElementTypeDefinition</code> nodes for the element types
876     whose name is presented as the <code>Name</code> of the element type or
877     attribute definition list declarations processed by the <abbr>XML</abbr>
878 wakaba 1.21 processor. If there are more than one element type declarations for an
879 wakaba 1.8 element type, then the declarations other than the first one
880     <em class=rfc2119>MUST</em> be ignored for the purpose of constructing the
881     <code>NamedNodeMap</code> object.</p></dd>
882     <dt><dfn id=generalEntities class=dom-attr><code>generalEntities</code></dfn>
883     of type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
884 wakaba 1.22 <dd><p>A <a href="#live">live</a> <code>NamedNodeMap</code> object that
885     contains all the general entities belonging to the
886     <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
887 wakaba 1.8
888     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
889     same value as the <code>entities</code> attribute (defined in the
890 wakaba 1.22 <a href="#DocumentType"><code>DocumentType</code></a> interface) of the same
891     node.</p>
892 wakaba 1.8
893     <div class="note memo">
894     <p>This attribute is part of the interface for historical reason.</p>
895     </div></dd>
896     <!--
897 wakaba 1.4 All entities declared in the document type definition
898     contained in or referenced from the document entity
899     might not be exposed through this collection, depending
900     on the information provided by the XML processor for
901     the DOM implementation. In particular, it might not
902     contain any entity if entity references are expanded
903     at the parse time. An implementation [['''MUST NOT''']]
904     expose an [CODE(DOMi)@en[[[Entity]]]] node whose [CODE(DOMa)@en[[[nodeName]]]]
905     is equal to the name of one of five predefined general entities in
906     XML through the collection as the result of parsing of an XML
907     document that has no error. Duplicate entity declarations are also discarded.
908    
909     The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
910     object that contains all the [CODE(DOMi)@en[[[Entity]]]] nodes
911     representing general entities belong to the node. The returned
912     [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
913     the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
914     and therefore any change of read-only flag on the node is immediately
915     reflected by that of the object.
916 wakaba 1.8 -->
917     <dt><dfn id=notations class=dom-attr><code>notations</code></dfn> of type
918     <code>notations</code>, read$B!>(Bonly</code>
919 wakaba 1.22 <dd><p>A <a href="#live">live</a> <code>NamedNodeMap</code> object that
920     contains all the notations belonging to the
921     <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
922 wakaba 1.8
923     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
924     same value as the <code>notations</code> attribute (defined in the
925 wakaba 1.22 <a href="#DocumentType"><code>DocumentType</code></a> interface) of the same
926     node.</p>
927 wakaba 1.8
928     <div class="note memo">
929     <p>This attribute is part of the interface for historical reason.</p>
930     <p>Implementations are not required to implement the
931 wakaba 1.22 <code>notations</code> attribute twice (for
932     <a href="#DocumentType"><code>DocumentType</code></a> and
933     <a href="#DocumentTypeDefinition"><code>DocumentTypeDefinition</code></a>
934     interfaces); they share exactly same definition.</p>
935 wakaba 1.8 </div></dd>
936     <!--
937 wakaba 1.4 If the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node is
938     created from an XML document, duplicate notation declarations, if any, in DTD
939     [['''MUST NOT''']] result in a node in the [CODE(DOMi)@en[[[NamedNodeMap]]]]
940     object and only the first declaration [['''MUST''']] be
941     made available as a [CODE(DOMi)@en[[[Notation]]]] node.
942    
943     ;; This definition is based on one for the
944     [CODE(DOMa)@en[[[notations]]]] attribute of the
945     [CODE(DOMi)@en[[[DocumentType]]]] interface in DOM XML module.
946     Since duplication is violation to the Validity Constraint,
947     XML parsers might vary on how notations are notified to
948     the application. In particular, [CODE(InfoProp)@en[[[notations]]]]
949     property of the document information item in XML Information Set
950     is so defined that in case ''any'' notation is declared for
951     multiple times then the property has no value.
952    
953     The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
954     object that contains all the [CODE(DOMi)@en[[[Notation]]]] nodes
955     representing notations belong to the node. The returned
956     [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
957     the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
958     and therefore any change of read-only flag on the node is immediately
959     reflected by that of the object.
960 wakaba 1.8 -->
961 wakaba 1.20 <dt><dfn id=getElementTypeDefinitionNode class=dom-method><code>getElementTypeDefinitionNode</code></dfn>,
962     method</dt>
963     <dd><p>Returns the
964     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node
965     with the specified name.</p>
966    
967     <p>The
968     <dfn id=getElementTypeDefinitionNode-name class=dom-param><var>name</var></dfn>
969     parameter is the name of the element type.</p>
970    
971     <p>When invoked, the method <em class=rfc2119>MUST</em> return the
972     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node,
973     whose <a href="#nodeName"><code>nodeName</code></a> is equal to
974     <a href="#getElementTypeDefinitionNode-name"><var>name</var></a>, in the
975     <code>NamedNodeMap</code> object in the
976     <a href="#elementTypes"><code>elementTypes</code></a> attribute of the
977     node. If there is no such node, it <em class=rfc2119>MUST</em> return
978     <code>null</code>.</p></dd>
979     <dt><dfn id=getElementTypeDefinitionNode class=dom-method><code>getElementTypeDefinitionNode</code></dfn>,
980     method</dt>
981     <dd><p>Returns the
982     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node
983     with the specified name.</p>
984    
985     <p>The
986     <dfn id=getElementTypeDefinitionNode-name class=dom-param><var>name</var></dfn>
987     parameter is the name of the element type.</p>
988    
989     <p>When invoked, the method <em class=rfc2119>MUST</em> return the
990     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node,
991     whose <a href="#nodeName"><code>nodeName</code></a> is equal to
992     <a href="#getElementTypeDefinitionNode-name"><var>name</var></a>, in the
993     <code>NamedNodeMap</code> object in the
994     <a href="#elementTypes"><code>elementTypes</code></a> attribute of the
995     node. If there is no such node, it <em class=rfc2119>MUST</em> return
996     <code>null</code>.</p></dd>
997     <dt><dfn id=getGeneralEntityNode class=dom-method><code>getGeneralEntityNode</code></dfn>,
998     method</dt>
999     <dd><p>Returns the <a href="#Entity"><code>Entity</code></a> node
1000     with the specified name.</p>
1001    
1002     <p>The <dfn id=getEntityNode-name class=dom-param><var>name</var></dfn>
1003     parameter is the name of the general entity.</p>
1004    
1005     <p>When invoked, the method <em class=rfc2119>MUST</em> return the
1006     <a href="#Entity"><code>Entity</code></a> node,
1007     whose <a href="#nodeName"><code>nodeName</code></a> is equal to
1008     <a href="#getEntityNode-name"><var>name</var></a>, in the
1009     <code>NamedNodeMap</code> object in the
1010     <a href="#entities"><code>entities</code></a> attribute of the
1011     node. If there is no such node, it <em class=rfc2119>MUST</em> return
1012     <code>null</code>.</p></dd>
1013     <dt><dfn id=getNotationNode class=dom-method><code>getNotationNode</code></dfn>,
1014     method</dt>
1015     <dd><p>Returns the <a href="#Notation"><code>Notation>/code></a> node
1016     with the specified name.</p>
1017 wakaba 1.4
1018 wakaba 1.20 <p>The
1019     <dfn id=getNotationNode-name class=dom-param><var>name</var></dfn>
1020     parameter is the name of the notation.</p>
1021    
1022     <p>When invoked, the method <em class=rfc2119>MUST</em> return the
1023     <a href="#Notation"><code>Notation</code></a> node,
1024     whose <a href="#nodeName"><code>nodeName</code></a> is equal to
1025     <a href="#getNotationNode-name"><var>name</var></a>, in the
1026     <code>NamedNodeMap</code> object in the
1027     <a href="#notations"><code>notations</code></a> attribute of the
1028     node. If there is no such node, it <em class=rfc2119>MUST</em> return
1029     <code>null</code>.</p></dd>
1030     <dt><dfn id=setElementTypeDefinitionNode class=dom-method><code>setElementTypeDefinitionNode</code></dfn>,
1031     method</dt>
1032     <dd class=ed>@@</dd>
1033     <dt><dfn id=setGeneralEntityNode class=dom-method><code>setGeneralEntityNode</code></dfn>,
1034     method</dt>
1035     <dd class=ed>@@</dd>
1036     <dt><dfn id=setNotationNode class=dom-method><code>setNotationNode</code></dfn>,
1037     method</dt>
1038     <dd class=ed>@@</dd>
1039 wakaba 1.8 </dl>
1040 wakaba 1.4
1041 wakaba 1.8 <div class=ed>
1042     <p>A future version of this interface might define the
1043     <code>parameterEntities</code> and getter/setter for parameter entities.
1044     </div>
1045 wakaba 1.4
1046     </div>
1047    
1048     <div class=section id=section-elementtypedefinition>
1049 wakaba 1.7 <h3>The <code>ElementTypeDefinition</code> Interface</h3>
1050 wakaba 1.4
1051 wakaba 1.17 <p>The nodes of type
1052     <a href="#ELEMENT_TYPE_DEFINITION_NODE"><code>ELEMENT_TYPE_DEFINITION_NODE</code></a>
1053 wakaba 1.21 represents an element type definition. Such a node
1054     <em class=rfc2119>MUST</em> implement the
1055 wakaba 1.17 <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
1056     interface, which extends the <a href="#Node"><code>Node</code></a>
1057     interface.</p>
1058    
1059     <p>An element type definition represents a definition of the element type.
1060     It is corresponding to the element type declaration in <abbr>DTD</abbr>.
1061     However, an
1062     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node
1063     does not represent the element type definition in <abbr>DTD</abbr> itself.
1064     Even if there are more than one element type declarations for an element type
1065     in <abbr>DTD</abbr>, the result <abbr>DOM</abbr> will contain only an
1066     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
1067     node for that element type. In addition, if there are attribute definition
1068     declarations for an element type, even when there is no element type
1069     declaration for that element type, the <abbr>DOM</abbr> will contain an
1070     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
1071     node for that element type.</p>
1072    
1073 wakaba 1.21 <p>An <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
1074     node cannot be a child of any node. An
1075     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node
1076     cannot have any child node.</p>
1077    
1078 wakaba 1.15 <p>The <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
1079     interface <em class=rfc2119>MUST</em> be implemented as following:</p>
1080 wakaba 1.10 <pre class=idl><code>interface <dfn id=ElementTypeDefinition><code>ElementTypeDefinition</code></dfn> : <a href="#Node">Node</a> {
1081 wakaba 1.19 readonly attribute <a href="#DocumentType">DocumentType</a> <a href="#ownerDocumentTypeDefinition">ownerDocumentTypeDefinition</a>;
1082 wakaba 1.10
1083 wakaba 1.21 readonly attribute NamedNodeMap <a href="#attributeDefinitions">attributeDefinitions</a>;
1084     <a href="#AttributeDefinition">AttributeDefinition</a> <a href="#getAttributeDefinitionNode">getAttributeDefinitionNode</a>
1085     (in DOMString <a href="#getAttributeDefinitionNode-name"><var>name</var></a>);
1086     void <a href="#setAttributeDefinitionNode">setAttributeDefinitionNode</a>
1087     (in <a href="#AttributeDefinition">AttributeDefinition</a> <a href="#setAttributeDefinitionNode-name"><var>node</var></a>)
1088     raises (DOMException);
1089 wakaba 1.4 }</code></pre>
1090    
1091 wakaba 1.19 <dl>
1092     <dt><dfn id=ownerDocumentTypeDefinition class=dom-attr><code>ownerDocumentTypeDefinition</code></dfn>
1093     of type <a href="#DocumentType"><code>DocumentType</code></a>, read$B!>(Bonly</dt>
1094     <dd><p>The
1095     <a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a>
1096     attribute of
1097     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>,
1098     <a href="#Entity"><code>Entity</code></a>, and
1099     <a href="#Notation"><code>Notation</code></a> interface contains the
1100     <a href="#DocumentType"><code>DocumentType</code></a> node to which the node
1101     is attached.</p>
1102    
1103     <p>On getting, the attribute <em class=rfc2119>MUST</em> return a
1104     <a href="#DocumentType"><code>DocumentType</code></a> node. It
1105     <em class=rfc2119>MUST</em> be such a node that whose
1106     <a href="#elementTypes"><code>elementTypes</code></a> (for an
1107     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
1108     node), <a href="#entities"><code>entities</code></a> (for an
1109     <a href="#Entity"><code>Entity</code></a> node), or
1110     <a href="#notations"><code>notations</code></a> (for a
1111     <a href="#Notation"><code>Notation</code></a> node) attribute contains the
1112     <code>NamedNodeMap</code> object that contains the node. If there is no such
1113     a <a href="#DocumentType"><code>DocumentType</code></a> node,
1114     then <code>null</code> <em class=rfc2119>MUST</em> be returned.</p></dd>
1115 wakaba 1.21 <dt><dfn id=attributeDefinitions class=dom-attr><code>attributeDefinitions</code></dfn>
1116     of type NamedNodeMap, read$B!>(Bonly</dt>
1117 wakaba 1.22 <dd><p>A <a href="#live">live</a> <code>NamedNodeMap</code> object that
1118     contains all the attribute definitions belonging to the
1119 wakaba 1.21 <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
1120     node.</p>
1121    
1122     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
1123     <code>NamedNodeMap</code> object that contains all the
1124     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
1125     belonging to the
1126     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node.
1127     The <code>NamedNodeMap</code> object <em class=rfc2119>MUST</em> be
1128     read$B!>(Bonly if and only if the node is read$B!>(Bonly. The
1129 wakaba 1.22 <code>NamedNodeMap</code> object <em class=rfc2119>MUST</em> be
1130     <a href="#live">live</a>.</p>
1131 wakaba 1.21
1132     <p>If the
1133     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node
1134     is created during the process to create a <abbr>DOM</abbr> from an
1135     <abbr>XML</abbr> document, the following requirements are applied: The
1136     <code>NamedNodeMap</code> object in the
1137     <a href="#attributeDefinitions"><code>attributeDefinitions</code></a>
1138     attribute <em class=rfc2119>MUST</em> be so transformed that the object
1139     contains the
1140     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
1141     corresponding to the attribute definitions in the attribute definition
1142     list declarations processed by the <abbr>XML</abbr> processor and
1143     associated to the element type represented by the node. If there are more
1144     than one attribute definitions for an attribute, then the definitions other
1145     than the first one <em class=rfc2119>MUST</em> be ignored for the purpose
1146     of constructing the <code>NamedNodeMap</code> object.</p></dd>
1147     <dt><dfn id=getAttributeDefinitionNode class=dom-method><code>getAttributeDefinitionNode</code></dfn>,
1148     method</dt>
1149     <dd><p>Return the
1150     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
1151     with the specified name.</p>
1152    
1153     <p>The
1154     <dfn id=getAttributeDefinitionNode-name class=dom-param><var>name</var></dfn>
1155     parameter is the name of the attribute.</p>
1156    
1157     <p>When invoked, the method <em class=rfc2119>MUST</em> return the
1158     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node,
1159     whose <a href="#nodeName"><code>nodeName</code></a> attribute value is
1160     equal to <a href="#getAttributeDefinitionNode-name"><var>name</var></a>,
1161     in the <code>NamedNodeMap</code> in the
1162     <a href="#attributeDefinitions"><code>attributeDefinitions</code></a>
1163     attribute of the node. If there is no such node, it
1164     <em class=rfc2119>MUST</em> return <code>null</code>.</p></dd>
1165     <dt><dfn id=setAttributeDefinitionNode class=dom-method><code>setAttributeDefinitionNode</code></dfn>,
1166     method</dt>
1167     <dd class=ed>@@</dd>
1168 wakaba 1.19 </dl>
1169 wakaba 1.20
1170     <div class=ed>
1171     <p>A future version of the specification might define a set of attributes
1172     and methods for representing and accessing to the content model of the
1173     element type.</p>
1174     </div>
1175 wakaba 1.4 </div>
1176    
1177     <div class=section id=section-attributedefinition>
1178 wakaba 1.7 <h3>The <code>AttributeDefinition</code> Interface</h3>
1179 wakaba 1.4
1180 wakaba 1.17 <p>The nodes of type
1181     <a href="#ATTRIBUTE_DEFINITION_NODE"><code>ATTRIBUTE_DEFINITION_NODE</code></a>
1182 wakaba 1.21 represents an attribute definition. Such a node
1183     <em class=rfc2119>MUST</em> implement the
1184 wakaba 1.17 <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> interface,
1185     which extends the <a href="#Node"><code>Node</code></a> interface.</p>
1186    
1187     <p>An attribute definition represents a definition of the attribute
1188     associated to an element type. It is corresponding to the attribute definition
1189     in the attribute list declaration in <abbr>DTD</abbr>. However, an
1190     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node does
1191     not represent the attribute definition in <abbr>DTD</abbr> itself. Even if
1192     there are more than one attribute definitions for an attribute of an element
1193     type in <abbr>DTD</abbr>, the result <abbr>DOM</abbr> will contain only an
1194     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node for
1195     that attribute.</p>
1196    
1197 wakaba 1.21 <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
1198     node cannot be a child of any node. An
1199     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
1200     can have zero or more child nodes of same kinds as those allowed for
1201     <code>Attr</code> nodes <span class=ed>[DOM3]</span>.</p>
1202    
1203 wakaba 1.15 <p>The <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
1204     interface <em class=rfc2119>MUST</em> be implemented as following:</p>
1205 wakaba 1.10 <pre class=idl><code>interface <dfn id=AttributeDefinition><code>AttributeDefinition</code></dfn> : <a href="#Node">Node</a> {
1206 wakaba 1.9 <span class=comment>// <a href="#DeclaredValueType">DeclaredValueType</a></span>
1207     const unsigned short <a href="#NO_TYPE_ATTR">NO_TYPE_ATTR</a> = 0;
1208     const unsigned short <a href="#CDATA_ATTR">CDATA_ATTR</a> = 1;
1209     const unsigned short <a href="#ID_ATTR">ID_ATTR</a> = 2;
1210     const unsigned short <a href="#IDREF_ATTR">IDREF_ATTR</a> = 3;
1211     const unsigned short <a href="#IDREFS_ATTR">IDREFS_ATTR</a> = 4;
1212     const unsigned short <a href="#ENTITY_ATTR">ENTITY_ATTR</a> = 5;
1213     const unsigned short <a href="#ENTITIES_ATTR">ENTITIES_ATTR</a> = 6;
1214     const unsigned short <a href="#NMTOKEN_ATTR">NMTOKEN_ATTR</a> = 7;
1215     const unsigned short <a href="#NMTOKENS_ATTR">NMTOKENS_ATTR</a> = 8;
1216     const unsigned short <a href="#NOTATION_ATTR">NOTATION_ATTR</a> = 9;
1217     const unsigned short <a href="#ENUMERATION_ATTR">ENUMERATION_ATTR</a> = 10;
1218     const unsigned short <a href="#UNKNOWN_ATTR">UNKNOWN_ATTR</a> = 11;
1219 wakaba 1.17
1220     <span class=comment>// <a href="#DefaultValueType">DefaultValueType</a></span>
1221     const unsigned short <a href="#UNKNOWN_DEFAULT">UNKNOWN_DEFAULT</a> = 0;
1222     const unsigned short <a href="#FIXED_DEFAULT">FIXED_DEFAULT</a> = 1;
1223     const unsigned short <a href="#REQUIRED_DEFAULT">REQUIRED_DEFAULT</a> = 2;
1224     const unsigned short <a href="#IMPLIED_DEFAULT">IMPLIED_DEFAULT</a> = 3;
1225     const unsigned short <a href="#EXPLICIT_DEFAULT">EXPLICIT_DEFAULT</a> = 4;
1226 wakaba 1.4
1227 wakaba 1.10 readonly attribute <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#ownerElementTypeDefinition">ownerElementTypeDefinition</a>;
1228    
1229     readonly attribute unsigned short <a href="#declaredType">declaredType</a>;
1230 wakaba 1.21 readonly attribute DOMStringList <a href="#allowedTokens">allowedTokens</a>;
1231 wakaba 1.10 readonly attribute unsigned short <a href="#defaultType">defaultType</a>;
1232 wakaba 1.4 }</code></pre>
1233    
1234 wakaba 1.11 <dl>
1235     <dt><dfn id=ownerElementTypeDefinition class=dom-attr><code>ownerElementTypeDefinition</code></dfn>
1236     of type
1237     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>,
1238     read$B!>(Bonly</dt>
1239     <dd><p>The
1240     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> to
1241     which the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
1242     node belongs.</p>
1243    
1244     <p>On getting, the attribute <em class=rfc2119>MUST</em> return an
1245     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node.
1246     It <em class=rfc2119>MUST</em> be such a node that whose
1247     <a href="#attributeDefinitons"><code>attributeDefinitions</code></a>
1248     attribute contains the <code>NamedNodeMap</code> object that contains
1249     the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
1250     node. If there is no such an
1251     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node,
1252     then <code>null</code> <em class=rfc2119>MUST</em> be returned.</p>
1253     <dt><dfn id=declaredType class=dom-attr><code>declaredType</code></dfn> of type
1254     <code>unsigned short</code></dt>
1255     <dd><p>The declared type <span class=ed>@@ ref</span> of the attribute.
1256     It is expected that this attribute contains a value from the definition group
1257     <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>.</p>
1258    
1259     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
1260     value associated to this attribute.</p>
1261    
1262     <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
1263     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
1264     exception if the
1265     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
1266     is read$B!>(Bonly <span class=ed>@@ ref</span>. Otherwise, it
1267     <em class=rfc2119>MUST</em> set the specified value as the value
1268     associated to this attribute.</p>
1269    
1270     <p>If the <code>AttributeDefinition</code> node is created during the process
1271     to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, an
1272     appropriate value from the
1273     <a href="#DeclaredValueType"><code>DeclaredValueType</code></a> constant
1274     group <em class=rfc2119>MUST</em> be set to the attribute.</p>
1275    
1276     <!-- DeclaredValueType -->
1277 wakaba 1.9 <p>The definition group
1278     <dfn id=DeclaredValueType><code>DeclaredValueType</code></dfn> contains
1279 wakaba 1.11 integers indicating the declared type of attributes. The definition
1280     group contains the following constants:</p>
1281 wakaba 1.9
1282     <table>
1283     <thead>
1284     <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
1285     </thead>
1286     <tbody>
1287     <tr>
1288     <th scope=row><dfn id=NO_TYPE_ATTR class=dom-const><code>NO_TYPE_ATTR</code>
1289     <td><code>0</code><td>No value <span class=ed>[INFOSET]</span>.</tr>
1290     <tr>
1291     <th scope=row><dfn id=CDATA_ATTR class=dom-const><code>CDATA_ATTR</code>
1292     <td><code>1</code><td><code>CDATA</code> <span class=ed>[XML]</span>.</tr>
1293     <tr>
1294     <th scope=row><dfn id=ID_ATTR class=dom-const><code>ID_ATTR</code>
1295     <td><code>2</code><td><code>ID</code> <span class=ed>[XML]</span>.</tr>
1296     <tr>
1297     <th scope=row><dfn id=IDREF_ATTR class=dom-const><code>IDREF_ATTR</code>
1298     <td><code>3</code><td><code>IDREF</code> <span class=ed>[XML]</span>.</tr>
1299     <tr>
1300     <th scope=row><dfn id=IDREFS_ATTR class=dom-const><code>IDREFS_ATTR</code>
1301     <td><code>4</code><td><code>IDREFS</code> <span class=ed>[XML]</span>.</tr>
1302     <tr>
1303     <th scope=row><dfn id=ENTITY_ATTR class=dom-const><code>ENTITY_ATTR</code>
1304     <td><code>5</code><td><code>ENTITY</code> <span class=ed>[XML]</span>.</tr>
1305     <tr>
1306     <th scope=row><dfn id=ENTITIES_ATTR class=dom-const><code>ENTITIES_ATTR</code>
1307     <td><code>6</code><td><code>ENTITIES</code> <span class=ed>[XML]</span>.</tr>
1308     <tr>
1309     <th scope=row><dfn id=NMTOKEN_ATTR class=dom-const><code>NMTOKEN_ATTR</code>
1310     <td><code>7</code><td><code>NMTOKEN</code> <span class=ed>[XML]</span>.</tr>
1311     <tr>
1312     <th scope=row><dfn id=NMTOKENS_ATTR class=dom-const><code>NMTOKENS_ATTR</code>
1313     <td><code>8</code><td><code>NMTOKENS</code> <span class=ed>[XML]</span>.</tr>
1314     <tr>
1315     <th scope=row><dfn id=NOTATION_ATTR class=dom-const><code>NOTATION_ATTR</code>
1316     <td><code>9</code><td><code>NOTATION</code> <span class=ed>[XML]</span>.</tr>
1317     <tr>
1318     <th scope=row><dfn id=ENUMERATION_ATTR class=dom-const><code>ENUMERATION_ATTR</code>
1319     <td><code>10</code><td>Enumeration <span class=ed>[XML]</span>.</tr>
1320     <tr>
1321     <th scope=row><dfn id=UNKNOWN_ATTR class=dom-const><code>UNKNOWN_ATTR</code>
1322     <td><code>11</code><td>Unknown, because no declaration for the attribute
1323     has been read but the [all declaration processed] property
1324     <span class=ed>[INFOSET]</span> would be false.</tr>
1325     </tbody>
1326     </table>
1327    
1328     <p>If no attribute type information is available, or if the source
1329     of the information does not distinguish <q>no value</q> and <q>unknown</q>
1330     <span class=ed>[INFOSET]</span>, then the value
1331     <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>
1332     <em class=rfc2119>MUST</em> be used.</p>
1333    
1334     <div class="note memo">
1335     <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
1336     created by the
1337     <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
1338     method has its <a href="#declaredType"><code>declaredType</code></a> attribute
1339     set to <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</p>
1340     </div>
1341    
1342     <p>If the source of the information does not distinguish <q>no value</q>
1343 wakaba 1.11 and/or <q>unknown</q> <span class=ed>[INFOSET]</span> and
1344 wakaba 1.9 <code>CDATA</code> <span class=ed>[XML]</span>, then the value
1345     <a href="#CDATA_ATTR"><code>CDATA_ATTR</code></a> <em class=rfc2119>MUST</em>
1346     be used.</p>
1347    
1348     <p>In Perl binding <span class=ed>[PERLBINDING]</span>, the
1349     <code>Attr</code> nodes <em class=rfc2119>MUST</em> implement the
1350     <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>
1351 wakaba 1.11 definition group.</p>
1352 wakaba 1.4
1353 wakaba 1.11 </dd>
1354 wakaba 1.21 <dt><dfn id=allowedTokens class=dom-attr><code>allowedTokens</code></dfn> of
1355     type <code>DOMStringList</code>, read$B!>(Bonly</dt>
1356     <dd><p>The list of allowed attribute values.</p>
1357    
1358     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
1359     <code>DOMStringList</code> object associated to this attribute. The object
1360     <em class=rfc2119>MAY</em> contain zero or more ordered strings, consist of
1361     zero or more characters respectively, possibly with duplications. The
1362     object <em class=rfc2119>MUST</em> be read$B!>(Bonly if and only if the node
1363     is read$B!>(Bonly.</p>
1364    
1365     <p>If the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
1366     node is created during the process to create a <abbr>DOM</abbr> from an
1367     <abbr>XML</abbr> document, the object <em class=rfc2119>MUST</em> contain
1368     the names or name tokens allowed for the attribute defined by the node.
1369     If the document is well$B!>(Bformed, the object will be empty unless
1370     the <a href="#declaredType"><code>declaredType</code></a> is
1371     <a href="#ENUMERATION_ATTR"><code>ENUMERATION_ATTR</code></a> or
1372     <a href="#NOTATION_ATTR"><code>NOTATION_ATTR</code></a>.</p>
1373    
1374     <p>If the <a href="#declaredType"><code>declaredType</code></a> is different
1375     from <a href="#ENUMERATION_ATTR"><code>ENUMERATION_ATTR</code></a> or
1376     <a href="#NOTATION_ATTR"><code>NOTATION_ATTR</code></a>, this attribute
1377     <em class=rfc2119>MUST</em> be ignored for the purpose of serializing
1378     into (part of) <abbr>XML</abbr> document.</p>
1379    
1380     <div class="note memo">
1381     <p>When serializing the node it should be noted that the object might
1382     be empty, might contain duplications, and might contain strings that are
1383     not names or name tokens.</p>
1384     </div></dd>
1385 wakaba 1.10 <dt><dfn id=defaultType class=dom-attr><code>defaultType</code></dfn> of
1386     type <code>unsigned short</code></dt>
1387     <dd><p>The type of the default for the attribute. It is expected that this
1388     attribute contains a value from the definition group
1389     <a href="#DefaultValueType"><code>DefaultValueType</code></a>.</p>
1390    
1391     <p>On getting, the attribute <em class=rfc2119>MUST</em> return
1392     the value associated to this attribute.</p>
1393    
1394     <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
1395     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
1396     exception if the
1397     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
1398     is read$B!>(Bonly <span class=ed>@@ ref</span>. Otherwise, it
1399     <em class=rfc2119>MUST</em> set the specified value as the value
1400     associated to this attribute.</p>
1401    
1402 wakaba 1.12 <p>If the
1403     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node is
1404     created during the process to create a <abbr>DOM</abbr> from an
1405     <abbr>XML</abbr> document, an appropriate value from the
1406 wakaba 1.11 <a href="#DefaultValueType"><code>DefaultValueType</code></a> definition
1407     group <em class=rfc2119>MUST</em> be set to the attribute.</p>
1408    
1409     <!-- DefaultValueType -->
1410     <p>The definition group
1411     <dfn id=DefaultValueType><code>DefaultValueType</code></dfn>
1412     contains integers indicating the type of the default for the attribute.
1413     The definition group contains the following constans:</p>
1414    
1415     <table>
1416     <thead>
1417     <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
1418     </thead>
1419     <tbody>
1420     <tr>
1421     <th scope=row><dfn id=UNKNOWN_DEFAULT class=dom-const><code>UNKNOWN_DEFAULT</code></dfn>
1422     <td><code>0</code><td>Unknown.</tr>
1423     <tr>
1424     <th scope=row><dfn id=FIXED_DEFAULT class=dom-const><code>FIXED_DEFAULT</code></dfn>
1425     <td><code>1</code><td>Provided explicitly and fixed
1426     <span class=ed>@@ ref</span> to that value.</tr>
1427     <tr>
1428     <th scope=row><dfn id=REQUIRED_DEFAULT class=dom-const><code>REQUIRED_DEFAULT</code></dfn>
1429     <td><code>2</code><td>No default value and the attribute have to be
1430     explicitly specified.</tr>
1431     <tr>
1432     <th scope=row><dfn id=IMPLIED_DEFAULT class=dom-const><code>IMPLIED_DEFAULT</code></dfn>
1433     <td><code>3</code><td>Implied <span class=ed>@@ ref</span>.</tr>
1434     <tr>
1435     <th scope=row><dfn id=EXPLICIT_DEFAULT class=dom-const><code>EXPLICIT_DEFAULT</code></dfn>
1436     <td><code>4</code><td>Provided explicitly.</tr>
1437     </tbody>
1438     </table>
1439    
1440     <p>If the source of the default type does not distinguish
1441     implied and unknown default types, then the value
1442     <a href="#IMPLIED_DEFAULT"><code>IMPLIED_DEFAULT</code></a>
1443     <em class=rfc2119>MUST</em> be used.</p>
1444    
1445     <div class="note memo">
1446     <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
1447     node created by the
1448     <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
1449     method has its <a href="#defaultType"><code>defaultType</code></a>
1450     attribute set to
1451     <a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</p>
1452     </div></dd>
1453 wakaba 1.10 </dl>
1454 wakaba 1.4
1455 wakaba 1.3 </div>
1456    
1457 wakaba 1.19 <div class=section id=section-entity>
1458     <h3>Modifications to the <code id=Entity>Entity</code> Interface</h3>
1459    
1460     <p>The implementation of the <a href="#Entity"><code>Entity</code></a>
1461     interface <em class=rfc2119>MUST</em> be modified as following:</p>
1462     <pre class=idl><code>// Modifications to the Entity interface
1463     attribute DOMString <a href="#publicId">publicId</a>;
1464     attribute DOMString <a href="#systemId">systemId</a>;
1465     attribute DOMString <a href="#notationName">notationName</a>;
1466    
1467     // Additions to the Entity interface
1468     attribute DOMString <a href="#hasReplacementTree">hasReplacementTree</a>;
1469     readonly attribute <a href="#DocumentType">DocumentType</a> <a href="#ownerDocumentTypeDefinition">ownerDocumentTypeDefinition</a>;
1470 wakaba 1.20
1471     attribute boolean <a href="#isExternallyDeclared">isExternallyDeclared</a>;
1472 wakaba 1.19 </code></pre>
1473    
1474     <p>The <code id=notationName>notationName</code> attribute of the
1475     <a href="#Entity"><code>Entity</code></a> interface is no longer
1476     read$B!>(Bonly.</p>
1477    
1478     <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
1479     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
1480     exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.
1481     Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the value
1482     associated to the attribute. No lexical validation is performed. The new
1483     value <em class=rfc2119>MAY</em> be <code>null</code>.</p>
1484    
1485     <dl>
1486     <dt><dfn id=hasReplacementTree class=dom-attr><code>hasReplacementTree</code></dfn>
1487     of type boolean</dt>
1488     <dd><p>Whether the structure of the replacement text of the entity
1489     is available via the <code>NodeList</code> object in the
1490     <code>childNodes</code> attribute of the entity.</p>
1491    
1492     <p>On getting, the attribute <em class=rfc2119>MUST</em> return
1493     the value associated to this attribute.</p>
1494    
1495     <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
1496     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
1497     exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.
1498     Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the
1499     value associated to this attribute.</p>
1500    
1501     <div class="note memo">
1502     <p>The attribute can be set to <code>false</code> even if the
1503     <a href="#Entity"><code>Entity</code></a> node has any child node.
1504     If the attribute is set to <code>false</code>, then any child node of
1505     the <a href="#Entity"><code>Entity</code></a> node ought to be ignored,
1506     say, for the purpose of serialization.</p>
1507     </div>
1508    
1509     <p>When an <code>EntityReference</code> node is created by cloning
1510     the replacement subtree of the <a href="#Entity"><code>Entity</code></a>
1511     node, if the attribute is set to <code>false</code>, then any descendant
1512     of the node <em class=rfc2119>MUST</em> be ignored.</p>
1513    
1514     <p>If the <a href="#Entity"><code>Entity</code></a> node is created during
1515     the process to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document,
1516     the following requirements are applied: If the entity is an unparsed
1517     entity, then the attribute <em class=rfc2119>MUST</em> be set to
1518     <code>false</code>. Otherwise, if the entity is an external entity whose
1519     replacement text is not available, or whose replacement text is not converted
1520     to a replacement tree, then the attribute <em class=rfc2119>MUST</em> be set
1521     to <code>false</code>. Otherwise, the attribute
1522     <em class=rfc2119>MUST</em> be set to <code>true</code>.</p>
1523    
1524     <div class="note memo">
1525     <p>An <a href="#Entity"><code>Entity</code></a> node created by the
1526     <a href="#createGeneralEntity"><code>createGeneralEntity</code></a> method
1527     has its <a href="#hasReplacementTree"><code>hasReplacementTree</code></a>
1528     attribute set to <code>false</code>.</p>
1529     </div></dd>
1530 wakaba 1.20 <dt><dfn id=isExternallyDeclared class=dom-attr><code>isExternallyDeclared</code></dfn>
1531     of type boolean</dt>
1532     <dd><p>Whether the entity is declared by an external entity declaration or
1533     not. If the value is <code>true</code>, the entity is declared in an entity
1534     declaration in the external subset entity or in an external parameter entity.
1535     If the value is <code>false</code>, the entity is declared in an entity
1536     declaration in the internal subset, or the node is created in memory.</p>
1537    
1538     <p>On getting, the attribute <em class=rfc2119>MUST</em> return
1539     the value associated to this attribute.</p>
1540    
1541     <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
1542     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
1543     exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.
1544     Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the
1545     value associated to this attribute.</p>
1546    
1547     <p>If the <a href="#Entity"><code>Entity</code></a> node is created during
1548     the process to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document,
1549     the following requirements are applied: If the entity is an unparsed
1550     entity, then the attribute <em class=rfc2119>MUST</em> be set to
1551     <code>false</code>. Otherwise, i.e. the entity is a parsed entity, then the
1552     attribute <em class=rfc2119>MUST</em> be set to the value of whether the
1553     entity is declared by an external markup declaration or not.</p></dd>
1554 wakaba 1.19 </dl>
1555 wakaba 1.1 </div>
1556 wakaba 1.3
1557 wakaba 1.19 <div class=section id=section-notation>
1558     <h3>Modifications to the <code id=Notation>Notation</code> Interface</h3>
1559 wakaba 1.3
1560 wakaba 1.19 <p>The implementation of the <a href="#Notation"><code>Notation</code></a>
1561     interface <em class=rfc2119>MUST</em> be modified as following:</p>
1562     <pre class=idl><code>// Modifications to the Notation interface
1563     attribute DOMString <a href="#publicId">publicId</a>;
1564     attribute DOMString <a href="#systemId">systemId</a>;
1565 wakaba 1.1
1566 wakaba 1.19 // Addition to the Notation interface
1567     readonly attribute <a href="#DocumentType">DocumentType</a> <a href="#ownerDocumentTypeDefinition">ownerDocumentTypeDefinition</a>;
1568     </code></pre>
1569     </div>
1570    
1571     </div>
1572 wakaba 1.1
1573     <div id="references" class="section reference">
1574     <h2>References</h2>
1575    
1576     <div id="normative-references" class="section normative reference">
1577     <h3>Normative References</h3>
1578    
1579     <dl>
1580     <dt id=ref-DOM3CORE>DOM3CORE</dt>
1581     <dd class=ed>@@ W3C DOM Level 3 Core</dd>
1582     <dt id=ref-DOMDTDEF>DOMDTDEF</dt>
1583     <dd class=ed>@@ manakai's extension to DOM for document type definitions</dd>
1584     <dt id="ref-KEYWORDS">KEYWORDS</dt>
1585     <dd><cite><a href="urn:ietf:rfc:2119">Key words for use in
1586     <abbr>RFCs</abbr> to Indicate Requirement Levels</a></cite>,
1587     <abbr title="Internet Engineering Task Force">IETF</abbr>
1588     <a href="urn:ietf:bcp:14"><abbr title="Best Current Practice">BCP</abbr>
1589     14</a>, <abbr title="Request for Comments">RFC</abbr> 2119,
1590     <time datetime=1997-03>March 1997</time>.
1591     <em>This</em> version of the specification is referenced.</dd>
1592     <dt id=ref-INFOSET>INFOSET</dt>
1593     <dd class=ed>@@</dd>
1594     <dt id=ref-XML10">XML10</dt>
1595     <dd><cite><a href="http://www.w3.org/TR/2006/REC-xml-20060816">Extensible
1596     Markup Language (<abbr>XML</abbr>) 1.0 (Fourth Edition)</a></cite>,
1597     <abbr>W3C</abbr> Recommendation, <time datetime=2006-08-16>16 August
1598     2006</time>, edited in place <time datetime=2006-09-29>29 September
1599     2006</time>. Tje latest version of the specification is available at
1600     <code class=uri>&lt;<a href="http://www.w3.org/TR/xml">http://www.w3.org/TR/xml</a>&gt;</code>.
1601     <em>This</em> version of the specification is referenced.</dd>
1602     <dt id=ref-XML11>XML11</dt>
1603     <dd class=ed>@@</dd>
1604     </dl>
1605     </div>
1606    
1607     <div id="informative-references" class="section informative reference">
1608     <h3>Non$B!>(Bnormative References</h3>
1609    
1610     <dl class=ed>
1611     <dt id=ref-CSS>CSS</dt>
1612     <dd><cite><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719">Cascading
1613     Style Sheets Level 2 Revision 1 (<abbr>CSS</abbr> 2.1)
1614     Specification</a></cite>,
1615     <abbr title="World Wide Web Consortium">W3C</abbr> Candidate
1616     Recommendation, <time datetime=2007-07-19>19 July 2007</time>.
1617     Work in progress. The latest version of the specification is
1618     available at
1619     <code class=URI>&lt;<a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a>></code>.</dd>
1620     <dt id=ref-CSSOM>CSSOM</dt>
1621     <dd><cite><a href="http://dev.w3.org/cvsweb/~checkout~/csswg/cssom/Overview.html?rev=1.55&amp;content-type=text/html;%20charset=utf-8">Cascading
1622     Style Sheets Object Model (<abbr>CSSOM</abbr>)</a></cite>,
1623     <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
1624     <time datetime=2007-06-18>18 June 2007</time>. Work in progress.
1625     The latest Editor's Draft of the specification is available at
1626     <code class=URI>&lt;<a href="http://dev.w3.org/csswg/cssom/Overview.html">http://dev.w3.org/csswg/cssom/Overview.html</a>></code>.</dd>
1627     <dt id=ref-HTML5>HTML5</dt>
1628     <dd><cite><a href="http://whatwg.org/html5"><abbr>HTML</abbr> 5</a></cite>,
1629     <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>
1630     Working Draft. Work in progress.</dd>
1631     <dt id=ref-SAPI>SAPI</dt>
1632     <dd><cite><a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/selectors-api/Overview.html?rev=1.28&amp;content-type=text/html;%20charset=utf-8">Selectors <abbr>API</abbr></a></cite>,
1633     <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
1634     <time datetime=2007-08-29>29 August 2007</time>. Work in progress.
1635     The latest Editor's Draft of the specification is available at
1636     <code class=URI>&lt;<a href="http://dev.w3.org/2006/webapi/selectors-api/Overview.html">http://dev.w3.org/2006/webapi/selectors-api/Overview.html</a>></code>.
1637     The latest published version of the specification is available at
1638     <code class=URI>&lt;<a href="http://www.w3.org/TR/selectors-api/">http://www.w3.org/TR/selectors-api/</a>></code>.</dd>
1639     <dt id=XBL2>XBL2</dt>
1640     <dd><cite><a href="http://www.mozilla.org/projects/xbl/xbl2.html"><abbr>XBL</abbr>
1641     2.0</a></cite>, Mozilla.org, <time datetime=2007-03-15>15 Mar 2007</time>.
1642     Work in progress. The latest
1643     <abbr title="World Wide Web Consortium">W3C</abbr>$B!>(Bpublished
1644     version of the specification is available at
1645     <code class=URI>&lt;<a href="http://www.w3.org/TR/xbl/">http://www.w3.org/TR/xbl/</a>></code>.</dd>
1646     <dt id=ref-XML5>XML5</dt>
1647     <dd class=ed>@@</dd>
1648     </dl>
1649     </div>
1650    
1651     </div>
1652    
1653     </body>
1654     </html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24