/[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.12 - (hide annotations) (download) (as text)
Mon Dec 3 11:04:29 2007 UTC (16 years, 11 months ago) by wakaba
Branch: MAIN
Changes since 1.11: +76 -18 lines
File MIME type: text/html
DocumentType section added

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.10 <h2>Working Draft <time datetime=2007-12-03>3 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     <div class="ed issue">...</div>
54    
55     </div>
56    
57     <div id="status" class="section">
58     <h2>Status of This Document</h2>
59    
60     <p class=section-info><em>This section describes the status of this document
61     at the time of its publication. Other documents
62     might supersede this document.</em></p>
63    
64     <p>This document is a working draft, produced as part of the
65     <a href="http://suika.fam.cx/www/manakai-core/doc/web/">manakai</a>
66     project. It might be updated, replaced, or obsoleted by
67     other documents at any time. It is inappropriate to
68     cite this document as other than <q>work in progress</q>.</p>
69    
70     <p>Comments on this document are welcome and
71     may be sent to the <a href="#author">author</a>.</p>
72    
73     <p>Translations of thie document might be available.
74     The English version of the document is the only
75     normative version.</p>
76     </div>
77    
78     <div id="introduction" class="section">
79     <h2>Introduction</h2>
80    
81     <p class=section-info>This section is <em>non$B!>(Bnormative</em>.</p>
82    
83 wakaba 1.2 <div class="issue ed">
84     <p>This is a work-in-progress specification for DOM Document Type
85     Definition module, as implemented by manakai and
86     <a href="http://suika.fam.cx/gate/2005/sw/DOM%20XML%20Document%20Type%20Definition">partially documented in the SuikaWiki</a>.</p>
87     </div>
88 wakaba 1.1
89 wakaba 1.3 <p>The <dfn id=term-dom-dtdef><abbr>DOM</abbr> Document Type Definition</dfn>
90     module is a set of <abbr>DOM</abbr> interfaces, including both new
91     interfaces and modifications to existing <abbr>DOM</abbr> interfaces,
92     over which <abbr>DOM</abbr> applications are able to access to the
93     definitions of the document type.</p>
94    
95     <p>Interfaces defined in this specification are partially modeled from
96     early drafts of <abbr>DOM</abbr> level 1 <span class=ed>@@ ref</span>,
97     <abbr>DOM</abbr> Abstract Schema level 3 <span class=ed>@@ ref</span>, and
98     <abbr>XML</abbr> Schema <abbr>API</abbr>, but are not compatible with
99     any of them as a whole.</p>
100 wakaba 1.1 </div>
101    
102     <div class="section" id="terminology">
103     <h2>Terminology</h2>
104    
105     <p>The key words <q><em class="rfc2119">MUST</em></q>,
106     <q><em class="rfc2119">MUST NOT</em></q>,
107     <q><em class="rfc2119">SHOULD</em></q>,
108     <q><em class="rfc2119">SHOULD NOT</em></q>, and
109     <q><em class=rfc2119>MAY</em></q> in this
110     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    
115     <!-- Strictly speaking the paragraph below is not part of terminology. -->
116     <p>All examples and notes in this specification are non$B!>(Bnormative,
117     as are all sections explicitly marked non$B!>(Bnormative. Everything
118     else in this specification is normative.</p>
119    
120     <p><span class=ed>Algorithm is normative but non-normative</span>.
121     In addition, the order in which <a href="#errors">errors</a> are
122     raised is undefined.</p>
123 wakaba 1.3
124     <p class=ed><var>A</var> object is an object implementing <var>A</var>
125     interface.</p>
126    
127     <p class=ed>@@ ref to DOM Binding Spec</p>
128 wakaba 1.12
129     <p>If the <code>strictErrorChecking</code> attribute of the
130     <code>Document</code> node is <code>false</code>, the methods are
131     not required to raise exceptions <span class=ed>[DOM3]</span>.</p>
132 wakaba 1.3 </div>
133    
134     <div class=section id=dom-dtdef>
135     <h2><abbr>DOM</abbr> Document Type Definition Module</h2>
136    
137     <p>The <abbr>DOM</abbr> Document Type Definition module, version 3.0,
138     consists of three interfaces:</p>
139     <ul>
140     <li><a href="#DocumentXDoctype"><code>DocumentXDoctype</code></a></li>
141     <li><a href="#DocumentTypeDefinition"><code>DocumentTypeDefinition</code></a></li>
142     <li><a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a></li>
143     <li><a href="#AttributeDefinition"><code>AttributeDefinition</code></a></li>
144     </ul>
145    
146 wakaba 1.12 <p>In addition, it modifies interfaces
147 wakaba 1.3 <a href="#Node"><code>Node</code></a>,
148 wakaba 1.12 <a href="#DocumentType"><code>DocumentType</code></a>,
149 wakaba 1.3 <a href="#Entity"><code>Entity</code></a>,
150 wakaba 1.12 <a href="#EntityReference"><code>EntityReference</code></a>,
151     <a href="#Notation"><code>Notation</code></a>, and
152     <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>.</p>
153 wakaba 1.3
154     <div class=section id=features>
155     <h3>Feature Name</h3>
156    
157     <p>In a <abbr>DOM</abbr> implementation that supports the version 3.0 of
158     the <abbr>DOM</abbr> Document Type Definition module, the
159     <code>hasFeature</code> method of a <code>DOMImplementation</code> object
160     <em class=rfc2119>MUST</em> return <code>true</code> when the parameters are
161     set to <code>http://suika.fam.cx/www/2006/feature/XDoctype</code> and
162     <code>3.0</code> respectively.</p>
163    
164     <p>In such an implementation, the <code>getFeature</code> method of a
165     <code>Document</code> object <em class=rfc2119>MUST</em> return the (at least
166     conceptually) same object implementing the
167     <a href="#DocumentXDoctype"><code>DocumentXDoctype</code></a> interface when
168     the parameters are set to
169     <code>http://suika.fam.cx/www/2006/feature/XDoctype</code> and
170     <code>3.0</code> respectively. Likewise, any method that takes one or more
171     feature names with or without version number, including the methods
172     <code>hasFeature</code> and <code>getFeature</code>,
173     <em class=rfc2119>MUST</em> behave in a manner consistent with the
174     aforementioned cases.</p>
175 wakaba 1.4 </div>
176    
177     <div class=section id=section-documentxdoctype>
178 wakaba 1.7 <h3>The <code>DocumentXDoctype</code> Interface</h3>
179 wakaba 1.4
180     <pre class=idl><code>interface <dfn id=DocumentXDoctype><code>DocumentXDoctype</code></dfn> {
181 wakaba 1.5 DocumentType <a href="#createDocumentTypeDefinition">createDocumentTypeDefinition</a>
182     (in DOMString <a href="#createDocumentTypeDefinition-name"><var>name</var></a>)
183     raises (DOMException);
184 wakaba 1.12 <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#createElementTypeDefinition">createElementTypeDefinition</a>
185 wakaba 1.5 (in DOMString <a href="#createElementTypeDefinition-name"><var>name</var></a>)
186     raises (DOMException);
187 wakaba 1.12 <a href="#AttributeDefinition">AttributeDefinition</a> <a href="#createAttributeDefinition">createAttributeDefinition</a>
188 wakaba 1.5 (in DOMString <a href="#createAttributeDefinition-name"><var>name</var></a>)
189     raises (DOMException);
190 wakaba 1.12 <a href="#Entity">Entity</a> <a href="#createGeneralEntity">createGeneralEntityDefinition</a>
191 wakaba 1.5 (in DOMString <a href="#createGeneralEntity-name"><var>name</var></a>)
192     raises (DOMException);
193 wakaba 1.12 <a href="#Notation">Notation</a> <a href="#createNotation">createNotation</a>
194 wakaba 1.5 (in DOMString <a href="#createNotation-name"><var>name</var></a>)
195     raises (DOMException);
196 wakaba 1.4 }</code></pre>
197    
198 wakaba 1.5 <div class=ed>@@ cast definition</div>
199 wakaba 1.4
200 wakaba 1.5 <dl>
201     <dt><dfn id=createDocumentTypeDefinition class=dom-method><code>createDocumentTypeDefinition</code></dfn>,
202     method</dt>
203     <dd>
204     <p>This method creates a <code>DocumentType</code> node with the specified
205     name, belonging to the document.</p>
206     <p>The <dfn id=createDocumentTypeDefinition-name class=dom-param><var>name</var></dfn>
207     parameter is the name of the document type.</p>
208    
209     <p>When invoked, the method <em class=rfc2119>MUST</em> create and
210     return a <code>DocumentType</code> node with the following attributes:</p>
211     <dl>
212     <dt><code>attributes</code>, <code>parentNode</code></dt>
213     <dd><code>null</code>.</dd>
214     <dt><code>elementTypes</code>, <code>generalEntities</code>, and
215     <code>notations</code></dt>
216     <dd>Empty <code>NamedNodeMap</code> objects.</dd>
217     <dt><code>entities</code></dt>
218     <dd>The same value as the <code>generalEntities</code> attribute.</dd>
219     <dt><code>childNodes</code></dt>
220     <dd>An empty <code>NodeList</code> object.</dd>
221     <dt><code>internalSubset</code>, <code>publicId</code>, and
222     <code>systemId</code></dt>
223     <dd>Empty strings.</dd>
224     <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
225     <dd><code>false</code>.</dd>
226     <dt><code>nodeName</code></dt>
227     <dd><a href="#createDocumentTypeDefinition-name"><var>name</var></a>.</dd>
228     <dt><code>ownerDocument</code></dt>
229     <dd>The <code>Document</code> over which the method is invoked.</dd>
230     </dl>
231     <p>In addition, the method <em class=rfc2119>MUST</em> be marked as
232     containing five general entity declarations: <code>amp</code>,
233     <code>lt</code>, <code>gt</code>, <code>quot</code>, and
234     <code>apos</code>.</p>
235     </dd>
236     <dt><dfn id=createElementTypeDefinition class=dom-method><code>createElementTypeDefinition</code></dfn>,
237     method</dt>
238     <dd>
239     <p>This method creates a <code>ElementTypeDefinition</code> node with the
240     specified name, belonging to the document.</p>
241     <p>The <dfn id=createElementTypeDefinition-name class=dom-param><var>name</var></dfn>
242     parameter is the name of the element type defined by the element
243     type definition.</p>
244 wakaba 1.6
245     <p>When invoked, the method <em class=rfc2119>MUST</em> create and
246     return an
247     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
248     node with the following attributes:</p>
249     <dl>
250     <dt><a href="#attributeDefinitions"><code>attributeDefinitions</code></a></dt>
251     <dd>An empty <code>NamedNodeMap</code> object.</dd>
252     <dt><code>attributes</code>, <code>parentNode</code></dt>
253     <dd><code>null</code>.</dd>
254     <dt><code>childNodes</code></dt>
255     <dd>An empty <code>NodeList</code> object.</dd>
256     <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
257     <dd><code>false</code>.</dd>
258     <dt><code>nodeName</code></dt>
259     <dd><a href="#createElementTypeDefinition-name"><var>name</var></a>.</dd>
260     <dt><code>ownerDocument</code></dt>
261     <dd>The <code>Document</code> node over which the method is invoked.</dd>
262     <dt><a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a></dt>
263     <dd><code>null</code>.</dd>
264     <dt class=ed>@@ Ensure all attributes are defined</dt>
265     </dl>
266 wakaba 1.5 </dd>
267     <dt><dfn id=createAttributeDefinition class=dom-method><code>createAttributeDefinition</code></dfn>,
268     method</dt>
269     <dd>
270     <p>This method creates a <code>AttributeDefinition</code> node with the
271     specified name, belonging to the document.</p>
272     <p>The <dfn id=createAttributeDefinition-name class=dom-param><var>name</var></dfn>
273     parameter is the name of the attribute defined by the attribute
274     definition.</p>
275 wakaba 1.6
276     <p>When invoked, the method <em class=rfc2119>MUST</em> create and
277     return an
278     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
279     node with the following attributes:</p>
280     <dl>
281     <dt><code>allowedTokens</code></dt>
282     <dd>An empty <code>DOMStringList</code> object.</dd>
283     <dt><code>attributes</code>,
284     <a href="#ownerElementTypeDefinition"><code>ownerElementTypeDefinition</code></a>,
285     and <code>parentNode</code></dt>
286     <dd><code>null</code>.</dd>
287     <dt><code>childNodes</code></dt>
288     <dd>An empty <code>NodeList</code> object.</dd>
289     <dt><code>declaredType</code></dt>
290     <dd><a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</dd>
291     <dt><code>defaultType</code></dt>
292     <dd><a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</dd>
293     <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
294     <dd><code>false</code>.</dd>
295     <dt><code>nodeName</code></dt>
296     <dd><a href="#createAttributeDefinition-name"><var>name</var></a>.</dd>
297     <dt><code>ownerDocument</code></dt>
298     <dd>The <code>Document</code> node over which the method is invoked.</dd>
299     <dt class=ed>@@ Ensure all attributes are defined</dt>
300     </dl>
301    
302     <div class=ed>
303     <p>@@ Should we keep these statements?:
304     However, if the &lt;cfg::cfg|xml-id> configuration
305     parameter is set to <code>true</code> and the <var>name</var>
306     is <code>xml:id</code>, then the [CODE(DOMa)@en[[[declaredType]]]]
307     attribute is set to <code>ID_ATTR</code>.
308     [CODE(DOMa)@en[[[defaultType]]]]?</p>
309     </div>
310 wakaba 1.5 </dd>
311     <dt><dfn id=createGeneralEntity class=dom-method><code>createGeneralEntity</code></dfn>,
312     method</dt>
313     <dd>
314 wakaba 1.7 <p>This method creates a <a href="#Entity"><code>Entity</code></a> node
315     with the specified name, which represents a general entity, belonging to
316     the document.</p>
317 wakaba 1.5 <p>The <dfn id=createGeneralEntity-name class=dom-param><var>name</var></dfn>
318     parameter is the name of the general entity.</p>
319 wakaba 1.7
320     <p>When invoked, the method <em class=rfc2119>MUST</em> create and return
321     an <a href="#Entity"><code>Entity</code></a> node with the following
322     attributes:</p>
323     <dl>
324     <dt><code>attributes</code>, <code>notationName</code>,
325     <a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a>,
326     and <code>parentNode</code></dt>
327     <dd><code>null</code>.</dd>
328     <dt><code>childNodes</code></dt>
329     <dd>An empty <code>NodeList</code> object.</dd>
330     <dt><code>manakaiDeclarationBaseURI</code>,
331     <code>manakaiEntityBaseURI</code>, and
332     <code>manakaiEntityURI</code> <span class=ed>@@ ref</span></dt>
333     <dd>No explicit value is set.</dd>
334     <dt><code>manakaiHasReplacementTree</code> and
335     <code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
336     <dd><code>false</code>.</dd>
337     <dt><code>nodeName</code></dt>
338     <dd><a href="#createGeneralEntity-name"><var>name</var></a>.</dd>
339     <dd>
340     <div class="note memo">
341     <p>It is not an error for
342     <a href="#createGeneralEntity-name"><var>name</var></a> matching
343     to the name of one of predefined general parsed entities in
344     <abbr>XML</abbr> or <abbr>HTML</abbr>. For example,
345     <a href="#createGeneralEntity-name"><var>name</var></a> might be
346     <code>amp</code>, resulting in an
347     <a href="#Entity"><code>Entity</code></a> node
348     with its <code>nodeName</code> attribute set to <code>amp</code>.</p>
349     </div>
350     </dd>
351     <dt><code>ownerDocument</code></dt>
352     <dd>The <code>Document</code> node over which the method is invoked.</dd>
353     <dt><code>publicId</code>, and <code>systemId</code></dt>
354     <dd><code>null</code>.</dd>
355     <dd class=ed>@@ publicId and systemId should be empty string?</dd>
356     <dt class=ed>@@ Ensure all attributes are defined</dd>
357     </dl>
358 wakaba 1.5 </dd>
359     <dt><dfn id=createNotation class=dom-method><code>createNotation</code></dfn>,
360     method</dt>
361     <dd>
362     <p>This method creates a <code>Notation</code> node with the
363     specified name, belonging to the document.</p>
364     <p>The <dfn id=createNotation-name class=dom-param><var>name</var></dfn>
365     parameter is the name of the notation.</p>
366 wakaba 1.7
367     <p>When invoked, the method <em class=rfc2119>MUST</em> create and return
368     a <code>Notation</code> node with the following attributes:</p>
369     <dl>
370     <dt><code>attributes</code>,
371     <a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a>,
372     and <code>parentNode</code></dt>
373     <dd><code>null</code>.</dd>
374     <dt><code>childNodes</code></dt>
375     <dd>An empty <code>NodeList</code> object.</dd>
376     <dt><code>manakaiDeclarationBaseURI</code></dt>
377     <dd>No explicit value is set.</dd>
378     <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
379     <dd><code>false</code>.</dd>
380     <dt><code>nodeName</code></dt>
381     <dd><a href="#createNotation-name"><var>name</var></a>.</dd>
382     <dt><code>ownerDocument</code></dt>
383     <dd>The <code>Document</code> node over which the method is invoked.</dd>
384     <dt><code>publicId</code> and <code>systemId</code></dt>
385     <dd><code>null</code>.</dd>
386     <dd class=ed>@@ publicId and systemId should be empty string?</dd>
387     <dt class=ed>@@ Ensure all attributes are defined</dt>
388     </dl>
389 wakaba 1.5 </dd>
390     </dl>
391 wakaba 1.4
392 wakaba 1.7 <p>These methods <em class=rfc2119>MUST</em> raise an
393     <code>INVALID_CHARACTER_ERR</code> exception <span class=ed>@@ ref</span>
394     if <var>name</var> is <em>not</em> a legal <code>Name</code> according to
395     the <abbr>XML</abbr> version in use, as specified in the
396     <code>xmlVersion</code> attribute of the <code>Document</code> node.</p>
397    
398     <div class="note memo">
399     <p>Non$B!>(B<abbr>XML</abbr> case is intentionally left unspecified for now,
400     since <abbr>DOM3</abbr> specification <span class=ed>@@ ref</span> does not
401     define it for <code>Document</code> methods.</p>
402    
403     <p><var>name</var> does not have to be a namespace qualified name.</p>
404     </div>
405 wakaba 1.4
406     </div>
407    
408     <div class=section id=section-documenttypedefinition>
409 wakaba 1.7 <h3>The <code>DocumentTypeDefinition</code> Interface</h3>
410 wakaba 1.4
411     <pre class=idl><code>interface <dfn id=DocumentTypeDefinition><code>DocumentTypeDefinition</code></dfn> {
412 wakaba 1.8 readonly attribute NamedNodeMap <a href="#elementTypes">elementTypes</a>;
413     readonly attribute NamedNodeMap <a href="#generalEntities">generalEntities</a>;
414     readonly attribute NamedNodeMap <a href="#notations">notations</a>;
415    
416     <span class=ed>more members come here...</span>
417 wakaba 1.4 }</code></pre>
418    
419     <pre class=ed>
420     [1] In an implementation that supports the
421     [CODE(URI)@en[[[http://suika.fam.cx/www/2006/feature/XDoctype]]]]
422     feature, a [CODE(DOMi)@en[[[DocumentType]]]] node
423     must implement the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]
424     interface. See [[DOM XML Document Type Definition]>>3] for
425     details.
426 wakaba 1.8 </pre>
427 wakaba 1.4
428 wakaba 1.8 <dl>
429     <dt><dfn id=elementTypes class=dom-attr><code>elementTypes</code></dfn> of
430     type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
431     <dd><p>A live <code>NamedNodeMap</code> object that contains all the element
432     type definitions belonging to the <code>DocumentType</code> node.</p>
433    
434     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
435     <code>NamedNodeMap</code> object that contains all the
436     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
437     nodes belonging to the <code>DocumentType</code> node. The
438     <code>NamedNodeMap</code> object <em class=rfc2119>MUST</em> be read$B!>(Bonly
439     if and only if the node is read$B!>(Bonly. The <code>NamedNodeMap</code>
440     object <em class=rfc2119>MUST</em> be live and the same object
441     <em class=rfc2119>MUST</em> be returned for any invocation.</p>
442    
443     <p>If the <code>DocumentType</code> node is created during the process
444     to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, the following
445     requirements are applied: The <code>NamedNodeMap</code> object in the
446     <a href="#elementTypes"><code>elementType</code></a> attribute
447     <em class=rfc2119>MUST</em> be so transformed that the object contains
448     the <code>ElementTypeDefinition</code> nodes for the element types
449     whose name is presented as the <code>Name</code> of the element type or
450     attribute definition list declarations processed by the <abbr>XML</abbr>
451     processor. If there is more than one element type declarations for an
452     element type, then the declarations other than the first one
453     <em class=rfc2119>MUST</em> be ignored for the purpose of constructing the
454     <code>NamedNodeMap</code> object.</p></dd>
455     <dt><dfn id=generalEntities class=dom-attr><code>generalEntities</code></dfn>
456     of type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
457     <dd><p>A live <code>NamedNodeMap</code> object that contains all the general
458     entities belonging to the <code>DocumentType</code> node.</p>
459    
460     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
461     same value as the <code>entities</code> attribute (defined in the
462     <code>DocumentType</code> interface) of the same node.</p>
463    
464     <div class="note memo">
465     <p>This attribute is part of the interface for historical reason.</p>
466     </div></dd>
467     <!--
468 wakaba 1.4 All entities declared in the document type definition
469     contained in or referenced from the document entity
470     might not be exposed through this collection, depending
471     on the information provided by the XML processor for
472     the DOM implementation. In particular, it might not
473     contain any entity if entity references are expanded
474     at the parse time. An implementation [['''MUST NOT''']]
475     expose an [CODE(DOMi)@en[[[Entity]]]] node whose [CODE(DOMa)@en[[[nodeName]]]]
476     is equal to the name of one of five predefined general entities in
477     XML through the collection as the result of parsing of an XML
478     document that has no error. Duplicate entity declarations are also discarded.
479    
480     The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
481     object that contains all the [CODE(DOMi)@en[[[Entity]]]] nodes
482     representing general entities belong to the node. The returned
483     [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
484     the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
485     and therefore any change of read-only flag on the node is immediately
486     reflected by that of the object.
487 wakaba 1.8 -->
488     <dt><dfn id=notations class=dom-attr><code>notations</code></dfn> of type
489     <code>notations</code>, read$B!>(Bonly</code>
490     <dd><p>A live <code>NamedNodeMap</code> object that contains all the
491     notations belonging to the <code>DocumentType</code> node.</p>
492    
493     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
494     same value as the <code>notations</code> attribute (defined in the
495     <code>DocumentType</code> interface) of the same node.</p>
496    
497     <div class="note memo">
498     <p>This attribute is part of the interface for historical reason.</p>
499     <p>Implementations are not required to implement the
500     <code>notations</code> attribute twice (for <code>DocumentType</code>
501     and <code>DocumentTypeDefinition</code> interfaces); they share exactly
502     same definition.</p>
503     </div></dd>
504     <!--
505 wakaba 1.4 If the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node is
506     created from an XML document, duplicate notation declarations, if any, in DTD
507     [['''MUST NOT''']] result in a node in the [CODE(DOMi)@en[[[NamedNodeMap]]]]
508     object and only the first declaration [['''MUST''']] be
509     made available as a [CODE(DOMi)@en[[[Notation]]]] node.
510    
511     ;; This definition is based on one for the
512     [CODE(DOMa)@en[[[notations]]]] attribute of the
513     [CODE(DOMi)@en[[[DocumentType]]]] interface in DOM XML module.
514     Since duplication is violation to the Validity Constraint,
515     XML parsers might vary on how notations are notified to
516     the application. In particular, [CODE(InfoProp)@en[[[notations]]]]
517     property of the document information item in XML Information Set
518     is so defined that in case ''any'' notation is declared for
519     multiple times then the property has no value.
520    
521     The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
522     object that contains all the [CODE(DOMi)@en[[[Notation]]]] nodes
523     representing notations belong to the node. The returned
524     [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
525     the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
526     and therefore any change of read-only flag on the node is immediately
527     reflected by that of the object.
528 wakaba 1.8 -->
529 wakaba 1.4
530 wakaba 1.8 <dt class=ed>@@ other members...
531     </dl>
532 wakaba 1.4
533 wakaba 1.8 <div class=ed>
534     <p>A future version of this interface might define the
535     <code>parameterEntities</code> and getter/setter for parameter entities.
536     </div>
537 wakaba 1.4
538     </div>
539    
540     <div class=section id=section-elementtypedefinition>
541 wakaba 1.7 <h3>The <code>ElementTypeDefinition</code> Interface</h3>
542 wakaba 1.4
543 wakaba 1.10 <pre class=idl><code>interface <dfn id=ElementTypeDefinition><code>ElementTypeDefinition</code></dfn> : <a href="#Node">Node</a> {
544     readonly attribute <a href="#ownerDocumentTypeDefinition">ownerDocumentTypeDefinition</a>;
545    
546     <span class=ed>@@ more</span>
547 wakaba 1.4 }</code></pre>
548    
549     <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
550    
551     [3] The getter of the [CODE(DOMa)@en[[[attributes]]]] attribute
552     of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
553     [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
554    
555     [4] The getter of the [CODE(DOMa)@en[[[baseURI]]]] attribute
556     of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
557     [['''MUST''']] return the [CODE(DOMa)@en[[[baseURI]]]]
558     of the [CDOE(DOMa)@en[[[ownerDocument]]]] of the
559     [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object.
560     Note that it might be [CODE(IDL)@en[[[null]]]].
561    
562     [1] The getter of the [CODE(DOMa)@en[[[nodeName]]]] attribute
563     of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
564     [['''MUST''']] return the name of the element type.
565    
566     [2] The getters of the [CODE(DOMa)@en[[[nodeValue]]]]
567     and [CODE(DOMa)@en[[[textContent]]]] attributes
568     of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
569     object [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
570    
571     ;; Thus, the setter of these attributes do nothing.
572    
573     The setter of the [CODE(DOMa)@en[[[textContent]]]]
574     attribute of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
575     object [['''MUST NOT''']] throw a
576     [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]].
577    
578     ** The [CODE(DOMi)@en[ElementTypeDefinition]] Interface
579    
580     [5] The
581     [DFN@en[[CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]] attribute]]
582     of the [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
583     interface is defined in [[manakai//DOM Extensions]>>50].</pre>
584     </div>
585    
586     <div class=section id=section-attributedefinition>
587 wakaba 1.7 <h3>The <code>AttributeDefinition</code> Interface</h3>
588 wakaba 1.4
589 wakaba 1.10 <pre class=idl><code>interface <dfn id=AttributeDefinition><code>AttributeDefinition</code></dfn> : <a href="#Node">Node</a> {
590 wakaba 1.9 <span class=comment>// <a href="#DeclaredValueType">DeclaredValueType</a></span>
591     const unsigned short <a href="#NO_TYPE_ATTR">NO_TYPE_ATTR</a> = 0;
592     const unsigned short <a href="#CDATA_ATTR">CDATA_ATTR</a> = 1;
593     const unsigned short <a href="#ID_ATTR">ID_ATTR</a> = 2;
594     const unsigned short <a href="#IDREF_ATTR">IDREF_ATTR</a> = 3;
595     const unsigned short <a href="#IDREFS_ATTR">IDREFS_ATTR</a> = 4;
596     const unsigned short <a href="#ENTITY_ATTR">ENTITY_ATTR</a> = 5;
597     const unsigned short <a href="#ENTITIES_ATTR">ENTITIES_ATTR</a> = 6;
598     const unsigned short <a href="#NMTOKEN_ATTR">NMTOKEN_ATTR</a> = 7;
599     const unsigned short <a href="#NMTOKENS_ATTR">NMTOKENS_ATTR</a> = 8;
600     const unsigned short <a href="#NOTATION_ATTR">NOTATION_ATTR</a> = 9;
601     const unsigned short <a href="#ENUMERATION_ATTR">ENUMERATION_ATTR</a> = 10;
602     const unsigned short <a href="#UNKNOWN_ATTR">UNKNOWN_ATTR</a> = 11;
603 wakaba 1.4
604 wakaba 1.10 readonly attribute <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#ownerElementTypeDefinition">ownerElementTypeDefinition</a>;
605    
606     readonly attribute unsigned short <a href="#declaredType">declaredType</a>;
607     readonly attribute unsigned short <a href="#defaultType">defaultType</a>;
608    
609 wakaba 1.9 <span class=ed>...</span>
610 wakaba 1.4 }</code></pre>
611    
612     <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
613    
614     [3] The getter of the [CODE(DOMa)@en[[[attributes]]]] attribute
615     of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
616     [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
617    
618     [9] The getter of the [CODE(DOMa)@en[[[baseURI]]]] attribute
619     of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
620     [['''MUST''']] return the [CODE(DOMa)@en[[[baseURI]]]]
621     of the [CDOE(DOMa)@en[[[ownerDocument]]]] of the
622     [CODE(DOMi)@en[[[AttributeDefinition]]]] object.
623     Note that it might be [CODE(IDL)@en[[[null]]]].
624    
625     [1] The getter of the [CODE(DOMa)@en[[[nodeName]]]] attribute
626     of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
627     [['''MUST''']] return the name of the attribute.
628    
629     [2] The getter of the [CODE(DOMa)@en[[[nodeValue]]]] attribute
630     of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
631     [['''MUST''']] return the normalized default value
632     of the attribute.
633    
634     @@
635    
636     [4] The getter of the [CODE(DOMa)@en[[[textContent]]]]
637     attribute of an [CODE(DOMi)@en[[[AttributeDefinition]]]]
638     object [['''MUST''']] behave as if it were an
639     [CODE(DOMi)@en[[[Attr]]]] object.
640    
641     The setter of the [CODE(DOMa)@en[[[textContent]]]] attribute
642     of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
643     [['''MUST''']] behave as if the following algorithm
644     is performed:
645     = If the [CODE(DOMi)@en[[[AttributeDefinition]]]]
646     object is read-only, then throw an
647     [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]].
648     = Remove any child node the node has.
649     = If the new value is not empty and not [CODE(IDL)@en[[[null]]]],
650     then create a [CODE(DOMi)@en[[[Text]]]] node
651     whose [CODE(DOMa)@en[[[data]]]] is the new value
652     and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]].
653 wakaba 1.9 </pre>
654 wakaba 1.4
655 wakaba 1.11 <dl>
656     <dt><dfn id=ownerElementTypeDefinition class=dom-attr><code>ownerElementTypeDefinition</code></dfn>
657     of type
658     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>,
659     read$B!>(Bonly</dt>
660     <dd><p>The
661     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> to
662     which the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
663     node belongs.</p>
664    
665     <p>On getting, the attribute <em class=rfc2119>MUST</em> return an
666     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node.
667     It <em class=rfc2119>MUST</em> be such a node that whose
668     <a href="#attributeDefinitons"><code>attributeDefinitions</code></a>
669     attribute contains the <code>NamedNodeMap</code> object that contains
670     the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
671     node. If there is no such an
672     <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node,
673     then <code>null</code> <em class=rfc2119>MUST</em> be returned.</p>
674     <dt><dfn id=declaredType class=dom-attr><code>declaredType</code></dfn> of type
675     <code>unsigned short</code></dt>
676     <dd><p>The declared type <span class=ed>@@ ref</span> of the attribute.
677     It is expected that this attribute contains a value from the definition group
678     <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>.</p>
679    
680     <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
681     value associated to this attribute.</p>
682    
683     <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
684     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
685     exception if the
686     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
687     is read$B!>(Bonly <span class=ed>@@ ref</span>. Otherwise, it
688     <em class=rfc2119>MUST</em> set the specified value as the value
689     associated to this attribute.</p>
690    
691     <p>If the <code>AttributeDefinition</code> node is created during the process
692     to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, an
693     appropriate value from the
694     <a href="#DeclaredValueType"><code>DeclaredValueType</code></a> constant
695     group <em class=rfc2119>MUST</em> be set to the attribute.</p>
696    
697     <!-- DeclaredValueType -->
698 wakaba 1.9 <p>The definition group
699     <dfn id=DeclaredValueType><code>DeclaredValueType</code></dfn> contains
700 wakaba 1.11 integers indicating the declared type of attributes. The definition
701     group contains the following constants:</p>
702 wakaba 1.9
703     <table>
704     <thead>
705     <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
706     </thead>
707     <tbody>
708     <tr>
709     <th scope=row><dfn id=NO_TYPE_ATTR class=dom-const><code>NO_TYPE_ATTR</code>
710     <td><code>0</code><td>No value <span class=ed>[INFOSET]</span>.</tr>
711     <tr>
712     <th scope=row><dfn id=CDATA_ATTR class=dom-const><code>CDATA_ATTR</code>
713     <td><code>1</code><td><code>CDATA</code> <span class=ed>[XML]</span>.</tr>
714     <tr>
715     <th scope=row><dfn id=ID_ATTR class=dom-const><code>ID_ATTR</code>
716     <td><code>2</code><td><code>ID</code> <span class=ed>[XML]</span>.</tr>
717     <tr>
718     <th scope=row><dfn id=IDREF_ATTR class=dom-const><code>IDREF_ATTR</code>
719     <td><code>3</code><td><code>IDREF</code> <span class=ed>[XML]</span>.</tr>
720     <tr>
721     <th scope=row><dfn id=IDREFS_ATTR class=dom-const><code>IDREFS_ATTR</code>
722     <td><code>4</code><td><code>IDREFS</code> <span class=ed>[XML]</span>.</tr>
723     <tr>
724     <th scope=row><dfn id=ENTITY_ATTR class=dom-const><code>ENTITY_ATTR</code>
725     <td><code>5</code><td><code>ENTITY</code> <span class=ed>[XML]</span>.</tr>
726     <tr>
727     <th scope=row><dfn id=ENTITIES_ATTR class=dom-const><code>ENTITIES_ATTR</code>
728     <td><code>6</code><td><code>ENTITIES</code> <span class=ed>[XML]</span>.</tr>
729     <tr>
730     <th scope=row><dfn id=NMTOKEN_ATTR class=dom-const><code>NMTOKEN_ATTR</code>
731     <td><code>7</code><td><code>NMTOKEN</code> <span class=ed>[XML]</span>.</tr>
732     <tr>
733     <th scope=row><dfn id=NMTOKENS_ATTR class=dom-const><code>NMTOKENS_ATTR</code>
734     <td><code>8</code><td><code>NMTOKENS</code> <span class=ed>[XML]</span>.</tr>
735     <tr>
736     <th scope=row><dfn id=NOTATION_ATTR class=dom-const><code>NOTATION_ATTR</code>
737     <td><code>9</code><td><code>NOTATION</code> <span class=ed>[XML]</span>.</tr>
738     <tr>
739     <th scope=row><dfn id=ENUMERATION_ATTR class=dom-const><code>ENUMERATION_ATTR</code>
740     <td><code>10</code><td>Enumeration <span class=ed>[XML]</span>.</tr>
741     <tr>
742     <th scope=row><dfn id=UNKNOWN_ATTR class=dom-const><code>UNKNOWN_ATTR</code>
743     <td><code>11</code><td>Unknown, because no declaration for the attribute
744     has been read but the [all declaration processed] property
745     <span class=ed>[INFOSET]</span> would be false.</tr>
746     </tbody>
747     </table>
748    
749     <p>If no attribute type information is available, or if the source
750     of the information does not distinguish <q>no value</q> and <q>unknown</q>
751     <span class=ed>[INFOSET]</span>, then the value
752     <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>
753     <em class=rfc2119>MUST</em> be used.</p>
754    
755     <div class="note memo">
756     <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
757     created by the
758     <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
759     method has its <a href="#declaredType"><code>declaredType</code></a> attribute
760     set to <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</p>
761     </div>
762    
763     <p>If the source of the information does not distinguish <q>no value</q>
764 wakaba 1.11 and/or <q>unknown</q> <span class=ed>[INFOSET]</span> and
765 wakaba 1.9 <code>CDATA</code> <span class=ed>[XML]</span>, then the value
766     <a href="#CDATA_ATTR"><code>CDATA_ATTR</code></a> <em class=rfc2119>MUST</em>
767     be used.</p>
768    
769     <p>In Perl binding <span class=ed>[PERLBINDING]</span>, the
770     <code>Attr</code> nodes <em class=rfc2119>MUST</em> implement the
771     <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>
772 wakaba 1.11 definition group.</p>
773 wakaba 1.4
774 wakaba 1.11 </dd>
775 wakaba 1.10 <dt><dfn id=defaultType class=dom-attr><code>defaultType</code></dfn> of
776     type <code>unsigned short</code></dt>
777     <dd><p>The type of the default for the attribute. It is expected that this
778     attribute contains a value from the definition group
779     <a href="#DefaultValueType"><code>DefaultValueType</code></a>.</p>
780    
781     <p>On getting, the attribute <em class=rfc2119>MUST</em> return
782     the value associated to this attribute.</p>
783    
784     <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
785     <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
786     exception if the
787     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
788     is read$B!>(Bonly <span class=ed>@@ ref</span>. Otherwise, it
789     <em class=rfc2119>MUST</em> set the specified value as the value
790     associated to this attribute.</p>
791    
792 wakaba 1.12 <p>If the
793     <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node is
794     created during the process to create a <abbr>DOM</abbr> from an
795     <abbr>XML</abbr> document, an appropriate value from the
796 wakaba 1.11 <a href="#DefaultValueType"><code>DefaultValueType</code></a> definition
797     group <em class=rfc2119>MUST</em> be set to the attribute.</p>
798    
799     <!-- DefaultValueType -->
800     <p>The definition group
801     <dfn id=DefaultValueType><code>DefaultValueType</code></dfn>
802     contains integers indicating the type of the default for the attribute.
803     The definition group contains the following constans:</p>
804    
805     <table>
806     <thead>
807     <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
808     </thead>
809     <tbody>
810     <tr>
811     <th scope=row><dfn id=UNKNOWN_DEFAULT class=dom-const><code>UNKNOWN_DEFAULT</code></dfn>
812     <td><code>0</code><td>Unknown.</tr>
813     <tr>
814     <th scope=row><dfn id=FIXED_DEFAULT class=dom-const><code>FIXED_DEFAULT</code></dfn>
815     <td><code>1</code><td>Provided explicitly and fixed
816     <span class=ed>@@ ref</span> to that value.</tr>
817     <tr>
818     <th scope=row><dfn id=REQUIRED_DEFAULT class=dom-const><code>REQUIRED_DEFAULT</code></dfn>
819     <td><code>2</code><td>No default value and the attribute have to be
820     explicitly specified.</tr>
821     <tr>
822     <th scope=row><dfn id=IMPLIED_DEFAULT class=dom-const><code>IMPLIED_DEFAULT</code></dfn>
823     <td><code>3</code><td>Implied <span class=ed>@@ ref</span>.</tr>
824     <tr>
825     <th scope=row><dfn id=EXPLICIT_DEFAULT class=dom-const><code>EXPLICIT_DEFAULT</code></dfn>
826     <td><code>4</code><td>Provided explicitly.</tr>
827     </tbody>
828     </table>
829    
830     <p>If the source of the default type does not distinguish
831     implied and unknown default types, then the value
832     <a href="#IMPLIED_DEFAULT"><code>IMPLIED_DEFAULT</code></a>
833     <em class=rfc2119>MUST</em> be used.</p>
834    
835     <div class="note memo">
836     <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
837     node created by the
838     <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
839     method has its <a href="#defaultType"><code>defaultType</code></a>
840     attribute set to
841     <a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</p>
842     </div></dd>
843 wakaba 1.10 </dl>
844 wakaba 1.12
845     </div>
846    
847     <div class=section id=section-documenttype>
848     <h3>Modifications to the <code id=DocumentType>DocumentType</code>
849     Interface</h3>
850    
851     <p>A <a href="#DocumentType"><code>DocumentType</code></a> interface
852     <em class=rfc2119>MAY</em> contain zero or more
853     <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
854     nodes in the <code>NodeList</code> object contained in the
855     <code>childNodes</code> attribute of the
856     <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
857    
858     <p>If the <a href="#DocumentType"><code>DocumentType</code></a> node is created
859     during the process to create a <abbr>DOM</abbr> from an <abbr>XML</abbr>
860     document, the <code>NodeList</code> object in the <code>childNodes</code>
861     object <em class=rfc2119>MUST</em> contains the
862     <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
863     nodes representing the processing instructions in the document type
864     definition of the document processed <span class=ed>@@ ref</span> by
865     the <abbr>XML</abbr> processor. If the
866     <a href="#DocumentType"><code>DocumentType</code></a> node is marked
867     as read$B!>(Bonly, then all the child nodes <em class=rfc2119>MUST</em>
868     also be marked as read$B!>(Bonly.</p>
869    
870     <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is created
871     from a document type declaration information item <span class=ed>@@ ref</span>,
872     the <code>NodeList</code> object in the <code>childNodes</code> attribute
873     of the node <em class=rfc2119>MUST</em> contain the
874     <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
875     created from the processing instruction information items in the list in the
876     [children] property of the document type declaration item in the same
877     order.</p>
878    
879     <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is mapped to
880     a document type declaration information item, the list in the [children]
881     property <em class=rfc2119>MUST</em> contain the processng instruction
882     information items created from the
883     <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
884     in the <code>NodeList</code> object in the <code>childNodes</code> attribute
885     of the <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
886    
887     <pre class=idl><code>// Modifications to the DocumentType interface
888     attribute DOMString <a href="#publicId">publicId</a>;
889     attribute DOMString <a href="#systemId">systemId</a>;
890     </code></pre>
891    
892     <p class=ed>
893     The publicId attribute and the systemId attribute of DocumentType, Entity, and Notation objects are now read-write.
894    
895     The setter MUST throw a NO_MODIFICATION_ALLOWED_ERR DOMException if the Node object is read-only. Otherwise, it MUST set the specified value to the attribute. No normalization, lexical validation, or relative reference resolving is performed. null, which represents no public or system identifier is provided, might be specified.
896    
897     Setting public or system identifier does never result in any lexical or logical structure of the document being changed. In particular, no external entity referenced by new identifier will be loaded.
898    
899     Setting an invalid or non-normalized identifier might make the object non-serializable. Setting a non-null public identifier to a DocumentType or Entity object that does not have non-null system identifier or setting null as the system identifier of a DocumentType or Entity object that does have non-null public identifier will make that object non-serializable.
900    
901     ISSUE: In HTML5, Firefox 1.5, and Opera 9, not specifying public or system identifier results in empty strings.
902     </pre>
903 wakaba 1.4
904 wakaba 1.3 </div>
905    
906 wakaba 1.1 </div>
907 wakaba 1.3
908    
909 wakaba 1.1
910    
911    
912     <div id="references" class="section reference">
913     <h2>References</h2>
914    
915     <div id="normative-references" class="section normative reference">
916     <h3>Normative References</h3>
917    
918     <dl>
919     <dt id=ref-DOM3CORE>DOM3CORE</dt>
920     <dd class=ed>@@ W3C DOM Level 3 Core</dd>
921     <dt id=ref-DOMDTDEF>DOMDTDEF</dt>
922     <dd class=ed>@@ manakai's extension to DOM for document type definitions</dd>
923     <dt id="ref-KEYWORDS">KEYWORDS</dt>
924     <dd><cite><a href="urn:ietf:rfc:2119">Key words for use in
925     <abbr>RFCs</abbr> to Indicate Requirement Levels</a></cite>,
926     <abbr title="Internet Engineering Task Force">IETF</abbr>
927     <a href="urn:ietf:bcp:14"><abbr title="Best Current Practice">BCP</abbr>
928     14</a>, <abbr title="Request for Comments">RFC</abbr> 2119,
929     <time datetime=1997-03>March 1997</time>.
930     <em>This</em> version of the specification is referenced.</dd>
931     <dt id=ref-INFOSET>INFOSET</dt>
932     <dd class=ed>@@</dd>
933     <dt id=ref-XML10">XML10</dt>
934     <dd><cite><a href="http://www.w3.org/TR/2006/REC-xml-20060816">Extensible
935     Markup Language (<abbr>XML</abbr>) 1.0 (Fourth Edition)</a></cite>,
936     <abbr>W3C</abbr> Recommendation, <time datetime=2006-08-16>16 August
937     2006</time>, edited in place <time datetime=2006-09-29>29 September
938     2006</time>. Tje latest version of the specification is available at
939     <code class=uri>&lt;<a href="http://www.w3.org/TR/xml">http://www.w3.org/TR/xml</a>&gt;</code>.
940     <em>This</em> version of the specification is referenced.</dd>
941     <dt id=ref-XML11>XML11</dt>
942     <dd class=ed>@@</dd>
943     </dl>
944     </div>
945    
946     <div id="informative-references" class="section informative reference">
947     <h3>Non$B!>(Bnormative References</h3>
948    
949     <dl class=ed>
950     <dt id=ref-CSS>CSS</dt>
951     <dd><cite><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719">Cascading
952     Style Sheets Level 2 Revision 1 (<abbr>CSS</abbr> 2.1)
953     Specification</a></cite>,
954     <abbr title="World Wide Web Consortium">W3C</abbr> Candidate
955     Recommendation, <time datetime=2007-07-19>19 July 2007</time>.
956     Work in progress. The latest version of the specification is
957     available at
958     <code class=URI>&lt;<a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a>></code>.</dd>
959     <dt id=ref-CSSOM>CSSOM</dt>
960     <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
961     Style Sheets Object Model (<abbr>CSSOM</abbr>)</a></cite>,
962     <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
963     <time datetime=2007-06-18>18 June 2007</time>. Work in progress.
964     The latest Editor's Draft of the specification is available at
965     <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>
966     <dt id=ref-HTML5>HTML5</dt>
967     <dd><cite><a href="http://whatwg.org/html5"><abbr>HTML</abbr> 5</a></cite>,
968     <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>
969     Working Draft. Work in progress.</dd>
970     <dt id=ref-SAPI>SAPI</dt>
971     <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>,
972     <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
973     <time datetime=2007-08-29>29 August 2007</time>. Work in progress.
974     The latest Editor's Draft of the specification is available at
975     <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>.
976     The latest published version of the specification is available at
977     <code class=URI>&lt;<a href="http://www.w3.org/TR/selectors-api/">http://www.w3.org/TR/selectors-api/</a>></code>.</dd>
978     <dt id=XBL2>XBL2</dt>
979     <dd><cite><a href="http://www.mozilla.org/projects/xbl/xbl2.html"><abbr>XBL</abbr>
980     2.0</a></cite>, Mozilla.org, <time datetime=2007-03-15>15 Mar 2007</time>.
981     Work in progress. The latest
982     <abbr title="World Wide Web Consortium">W3C</abbr>$B!>(Bpublished
983     version of the specification is available at
984     <code class=URI>&lt;<a href="http://www.w3.org/TR/xbl/">http://www.w3.org/TR/xbl/</a>></code>.</dd>
985     <dt id=ref-XML5>XML5</dt>
986     <dd class=ed>@@</dd>
987     </dl>
988     </div>
989    
990     </div>
991    
992     </body>
993     </html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24