/[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.13 - (show annotations) (download) (as text)
Mon Dec 3 11:57:22 2007 UTC (16 years, 11 months ago) by wakaba
Branch: MAIN
Changes since 1.12: +52 -9 lines
File MIME type: text/html
publicId, systemId, internalSubset; IDL definitions for DocumentTypeDefinition methods

1 <!DOCTYPE html>
2 <html lang="en" class="formal-specification status-work-in-progress">
3 <head>
4 <title>DOM Document Type Definition Module</title>
5 <link rel="stylesheet" href="http://suika.fam.cx/www/style/html/spec">
6 <link rel="stylesheet" href="http://suika.fam.cx/www/style/def/dom">
7 <link rel="license" href="http://suika.fam.cx/c/gnu/fdl">
8 </head>
9 <body class="has-abstract">
10
11 <div class="header">
12 <h1>DOM Document Type Definition Module</h1>
13 <h2>Working Draft <time datetime=2007-12-03>3 December 2007</time></h2>
14
15 <dl class="versions-uri">
16 <dt>This Version</dt>
17 <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 <dt>Latest Version</dt>
20 <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 <dt>Latest Working Draft</dt>
23 <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 <!-- <dt>Previous Version</dt> -->
26 <dt>Version History</dt>
27 <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 <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 <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
89 <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 </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
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
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 </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 <p>In addition, it modifies interfaces
147 <a href="#Node"><code>Node</code></a>,
148 <a href="#DocumentType"><code>DocumentType</code></a>,
149 <a href="#Entity"><code>Entity</code></a>,
150 <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
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 </div>
176
177 <div class=section id=section-documentxdoctype>
178 <h3>The <code>DocumentXDoctype</code> Interface</h3>
179
180 <pre class=idl><code>interface <dfn id=DocumentXDoctype><code>DocumentXDoctype</code></dfn> {
181 DocumentType <a href="#createDocumentTypeDefinition">createDocumentTypeDefinition</a>
182 (in DOMString <a href="#createDocumentTypeDefinition-name"><var>name</var></a>)
183 raises (DOMException);
184 <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#createElementTypeDefinition">createElementTypeDefinition</a>
185 (in DOMString <a href="#createElementTypeDefinition-name"><var>name</var></a>)
186 raises (DOMException);
187 <a href="#AttributeDefinition">AttributeDefinition</a> <a href="#createAttributeDefinition">createAttributeDefinition</a>
188 (in DOMString <a href="#createAttributeDefinition-name"><var>name</var></a>)
189 raises (DOMException);
190 <a href="#Entity">Entity</a> <a href="#createGeneralEntity">createGeneralEntityDefinition</a>
191 (in DOMString <a href="#createGeneralEntity-name"><var>name</var></a>)
192 raises (DOMException);
193 <a href="#Notation">Notation</a> <a href="#createNotation">createNotation</a>
194 (in DOMString <a href="#createNotation-name"><var>name</var></a>)
195 raises (DOMException);
196 }</code></pre>
197
198 <div class=ed>@@ cast definition</div>
199
200 <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
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 </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
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 </dd>
311 <dt><dfn id=createGeneralEntity class=dom-method><code>createGeneralEntity</code></dfn>,
312 method</dt>
313 <dd>
314 <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 <p>The <dfn id=createGeneralEntity-name class=dom-param><var>name</var></dfn>
318 parameter is the name of the general entity.</p>
319
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 </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
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 </dd>
390 </dl>
391
392 <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
406 </div>
407
408 <div class=section id=section-documenttypedefinition>
409 <h3>The <code>DocumentTypeDefinition</code> Interface</h3>
410
411 <pre class=idl><code>interface <dfn id=DocumentTypeDefinition><code>DocumentTypeDefinition</code></dfn> {
412 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 <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#getElementTypeDefinitionNode">getElementTypeDefinitionNode</a>
417 (in DOMString <a href="#getElementTypeDefinitionNode-name"><var>name</var></a>);
418 <a href="#Entity">Entity</a> <a href="#getGeneralEntityNode">getGeneralEntityNode</a>
419 (in DOMString <a href="#getGeneralEntityNode-name"><var>name</var></a>);
420 <a href="#Notation">Notation</a> <a href="#getNotationNode">getNotationNode</a>
421 (in DOMString <a href="#getNotationNode-name"><var>name</var></a>);
422
423 void <a href="#setElementTypeDefinitionNode">setElementTypeDefinitionNode</a>
424 (in DOMString <a href="#setElementTypeDefinitionNode-node"><var>node</var></a>)
425 raises (DOMException);
426 void <a href="#setGeneralEntityNode">setGeneralEntityNode</a>
427 (in DOMString <a href="#setGeneralEntityNode-node"><var>node</var></a>)
428 raises (DOMException);
429 void <a href="#setNotationNode">setNotationNode</a>
430 (in DOMString <a href="#setNotationNode-node"><var>node</var></a>)
431 raises (DOMException);
432 }</code></pre>
433
434 <pre class=ed>
435 [1] In an implementation that supports the
436 [CODE(URI)@en[[[http://suika.fam.cx/www/2006/feature/XDoctype]]]]
437 feature, a [CODE(DOMi)@en[[[DocumentType]]]] node
438 must implement the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]
439 interface. See [[DOM XML Document Type Definition]>>3] for
440 details.
441 </pre>
442
443 <dl>
444 <dt><dfn id=elementTypes class=dom-attr><code>elementTypes</code></dfn> of
445 type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
446 <dd><p>A live <code>NamedNodeMap</code> object that contains all the element
447 type definitions belonging to the <code>DocumentType</code> node.</p>
448
449 <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
450 <code>NamedNodeMap</code> object that contains all the
451 <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
452 nodes belonging to the <code>DocumentType</code> node. The
453 <code>NamedNodeMap</code> object <em class=rfc2119>MUST</em> be read$B!>(Bonly
454 if and only if the node is read$B!>(Bonly. The <code>NamedNodeMap</code>
455 object <em class=rfc2119>MUST</em> be live and the same object
456 <em class=rfc2119>MUST</em> be returned for any invocation.</p>
457
458 <p>If the <code>DocumentType</code> node is created during the process
459 to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, the following
460 requirements are applied: The <code>NamedNodeMap</code> object in the
461 <a href="#elementTypes"><code>elementType</code></a> attribute
462 <em class=rfc2119>MUST</em> be so transformed that the object contains
463 the <code>ElementTypeDefinition</code> nodes for the element types
464 whose name is presented as the <code>Name</code> of the element type or
465 attribute definition list declarations processed by the <abbr>XML</abbr>
466 processor. If there is more than one element type declarations for an
467 element type, then the declarations other than the first one
468 <em class=rfc2119>MUST</em> be ignored for the purpose of constructing the
469 <code>NamedNodeMap</code> object.</p></dd>
470 <dt><dfn id=generalEntities class=dom-attr><code>generalEntities</code></dfn>
471 of type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
472 <dd><p>A live <code>NamedNodeMap</code> object that contains all the general
473 entities belonging to the <code>DocumentType</code> node.</p>
474
475 <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
476 same value as the <code>entities</code> attribute (defined in the
477 <code>DocumentType</code> interface) of the same node.</p>
478
479 <div class="note memo">
480 <p>This attribute is part of the interface for historical reason.</p>
481 </div></dd>
482 <!--
483 All entities declared in the document type definition
484 contained in or referenced from the document entity
485 might not be exposed through this collection, depending
486 on the information provided by the XML processor for
487 the DOM implementation. In particular, it might not
488 contain any entity if entity references are expanded
489 at the parse time. An implementation [['''MUST NOT''']]
490 expose an [CODE(DOMi)@en[[[Entity]]]] node whose [CODE(DOMa)@en[[[nodeName]]]]
491 is equal to the name of one of five predefined general entities in
492 XML through the collection as the result of parsing of an XML
493 document that has no error. Duplicate entity declarations are also discarded.
494
495 The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
496 object that contains all the [CODE(DOMi)@en[[[Entity]]]] nodes
497 representing general entities belong to the node. The returned
498 [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
499 the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
500 and therefore any change of read-only flag on the node is immediately
501 reflected by that of the object.
502 -->
503 <dt><dfn id=notations class=dom-attr><code>notations</code></dfn> of type
504 <code>notations</code>, read$B!>(Bonly</code>
505 <dd><p>A live <code>NamedNodeMap</code> object that contains all the
506 notations belonging to the <code>DocumentType</code> node.</p>
507
508 <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
509 same value as the <code>notations</code> attribute (defined in the
510 <code>DocumentType</code> interface) of the same node.</p>
511
512 <div class="note memo">
513 <p>This attribute is part of the interface for historical reason.</p>
514 <p>Implementations are not required to implement the
515 <code>notations</code> attribute twice (for <code>DocumentType</code>
516 and <code>DocumentTypeDefinition</code> interfaces); they share exactly
517 same definition.</p>
518 </div></dd>
519 <!--
520 If the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node is
521 created from an XML document, duplicate notation declarations, if any, in DTD
522 [['''MUST NOT''']] result in a node in the [CODE(DOMi)@en[[[NamedNodeMap]]]]
523 object and only the first declaration [['''MUST''']] be
524 made available as a [CODE(DOMi)@en[[[Notation]]]] node.
525
526 ;; This definition is based on one for the
527 [CODE(DOMa)@en[[[notations]]]] attribute of the
528 [CODE(DOMi)@en[[[DocumentType]]]] interface in DOM XML module.
529 Since duplication is violation to the Validity Constraint,
530 XML parsers might vary on how notations are notified to
531 the application. In particular, [CODE(InfoProp)@en[[[notations]]]]
532 property of the document information item in XML Information Set
533 is so defined that in case ''any'' notation is declared for
534 multiple times then the property has no value.
535
536 The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
537 object that contains all the [CODE(DOMi)@en[[[Notation]]]] nodes
538 representing notations belong to the node. The returned
539 [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
540 the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
541 and therefore any change of read-only flag on the node is immediately
542 reflected by that of the object.
543 -->
544
545 <dt class=ed>@@ other members...
546 </dl>
547
548 <div class=ed>
549 <p>A future version of this interface might define the
550 <code>parameterEntities</code> and getter/setter for parameter entities.
551 </div>
552
553 </div>
554
555 <div class=section id=section-elementtypedefinition>
556 <h3>The <code>ElementTypeDefinition</code> Interface</h3>
557
558 <pre class=idl><code>interface <dfn id=ElementTypeDefinition><code>ElementTypeDefinition</code></dfn> : <a href="#Node">Node</a> {
559 readonly attribute <a href="#ownerDocumentTypeDefinition">ownerDocumentTypeDefinition</a>;
560
561 <span class=ed>@@ more</span>
562 }</code></pre>
563
564 <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
565
566 [3] The getter of the [CODE(DOMa)@en[[[attributes]]]] attribute
567 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
568 [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
569
570 [4] The getter of the [CODE(DOMa)@en[[[baseURI]]]] attribute
571 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
572 [['''MUST''']] return the [CODE(DOMa)@en[[[baseURI]]]]
573 of the [CDOE(DOMa)@en[[[ownerDocument]]]] of the
574 [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object.
575 Note that it might be [CODE(IDL)@en[[[null]]]].
576
577 [1] The getter of the [CODE(DOMa)@en[[[nodeName]]]] attribute
578 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
579 [['''MUST''']] return the name of the element type.
580
581 [2] The getters of the [CODE(DOMa)@en[[[nodeValue]]]]
582 and [CODE(DOMa)@en[[[textContent]]]] attributes
583 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
584 object [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
585
586 ;; Thus, the setter of these attributes do nothing.
587
588 The setter of the [CODE(DOMa)@en[[[textContent]]]]
589 attribute of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
590 object [['''MUST NOT''']] throw a
591 [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]].
592
593 ** The [CODE(DOMi)@en[ElementTypeDefinition]] Interface
594
595 [5] The
596 [DFN@en[[CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]] attribute]]
597 of the [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
598 interface is defined in [[manakai//DOM Extensions]>>50].</pre>
599 </div>
600
601 <div class=section id=section-attributedefinition>
602 <h3>The <code>AttributeDefinition</code> Interface</h3>
603
604 <pre class=idl><code>interface <dfn id=AttributeDefinition><code>AttributeDefinition</code></dfn> : <a href="#Node">Node</a> {
605 <span class=comment>// <a href="#DeclaredValueType">DeclaredValueType</a></span>
606 const unsigned short <a href="#NO_TYPE_ATTR">NO_TYPE_ATTR</a> = 0;
607 const unsigned short <a href="#CDATA_ATTR">CDATA_ATTR</a> = 1;
608 const unsigned short <a href="#ID_ATTR">ID_ATTR</a> = 2;
609 const unsigned short <a href="#IDREF_ATTR">IDREF_ATTR</a> = 3;
610 const unsigned short <a href="#IDREFS_ATTR">IDREFS_ATTR</a> = 4;
611 const unsigned short <a href="#ENTITY_ATTR">ENTITY_ATTR</a> = 5;
612 const unsigned short <a href="#ENTITIES_ATTR">ENTITIES_ATTR</a> = 6;
613 const unsigned short <a href="#NMTOKEN_ATTR">NMTOKEN_ATTR</a> = 7;
614 const unsigned short <a href="#NMTOKENS_ATTR">NMTOKENS_ATTR</a> = 8;
615 const unsigned short <a href="#NOTATION_ATTR">NOTATION_ATTR</a> = 9;
616 const unsigned short <a href="#ENUMERATION_ATTR">ENUMERATION_ATTR</a> = 10;
617 const unsigned short <a href="#UNKNOWN_ATTR">UNKNOWN_ATTR</a> = 11;
618
619 readonly attribute <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#ownerElementTypeDefinition">ownerElementTypeDefinition</a>;
620
621 readonly attribute unsigned short <a href="#declaredType">declaredType</a>;
622 readonly attribute unsigned short <a href="#defaultType">defaultType</a>;
623
624 <span class=ed>...</span>
625 }</code></pre>
626
627 <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
628
629 [3] The getter of the [CODE(DOMa)@en[[[attributes]]]] attribute
630 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
631 [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
632
633 [9] The getter of the [CODE(DOMa)@en[[[baseURI]]]] attribute
634 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
635 [['''MUST''']] return the [CODE(DOMa)@en[[[baseURI]]]]
636 of the [CDOE(DOMa)@en[[[ownerDocument]]]] of the
637 [CODE(DOMi)@en[[[AttributeDefinition]]]] object.
638 Note that it might be [CODE(IDL)@en[[[null]]]].
639
640 [1] The getter of the [CODE(DOMa)@en[[[nodeName]]]] attribute
641 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
642 [['''MUST''']] return the name of the attribute.
643
644 [2] The getter of the [CODE(DOMa)@en[[[nodeValue]]]] attribute
645 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
646 [['''MUST''']] return the normalized default value
647 of the attribute.
648
649 @@
650
651 [4] The getter of the [CODE(DOMa)@en[[[textContent]]]]
652 attribute of an [CODE(DOMi)@en[[[AttributeDefinition]]]]
653 object [['''MUST''']] behave as if it were an
654 [CODE(DOMi)@en[[[Attr]]]] object.
655
656 The setter of the [CODE(DOMa)@en[[[textContent]]]] attribute
657 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
658 [['''MUST''']] behave as if the following algorithm
659 is performed:
660 = If the [CODE(DOMi)@en[[[AttributeDefinition]]]]
661 object is read-only, then throw an
662 [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]].
663 = Remove any child node the node has.
664 = If the new value is not empty and not [CODE(IDL)@en[[[null]]]],
665 then create a [CODE(DOMi)@en[[[Text]]]] node
666 whose [CODE(DOMa)@en[[[data]]]] is the new value
667 and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]].
668 </pre>
669
670 <dl>
671 <dt><dfn id=ownerElementTypeDefinition class=dom-attr><code>ownerElementTypeDefinition</code></dfn>
672 of type
673 <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>,
674 read$B!>(Bonly</dt>
675 <dd><p>The
676 <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> to
677 which the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
678 node belongs.</p>
679
680 <p>On getting, the attribute <em class=rfc2119>MUST</em> return an
681 <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node.
682 It <em class=rfc2119>MUST</em> be such a node that whose
683 <a href="#attributeDefinitons"><code>attributeDefinitions</code></a>
684 attribute contains the <code>NamedNodeMap</code> object that contains
685 the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
686 node. If there is no such an
687 <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node,
688 then <code>null</code> <em class=rfc2119>MUST</em> be returned.</p>
689 <dt><dfn id=declaredType class=dom-attr><code>declaredType</code></dfn> of type
690 <code>unsigned short</code></dt>
691 <dd><p>The declared type <span class=ed>@@ ref</span> of the attribute.
692 It is expected that this attribute contains a value from the definition group
693 <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>.</p>
694
695 <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
696 value associated to this attribute.</p>
697
698 <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
699 <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
700 exception if the
701 <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
702 is read$B!>(Bonly <span class=ed>@@ ref</span>. Otherwise, it
703 <em class=rfc2119>MUST</em> set the specified value as the value
704 associated to this attribute.</p>
705
706 <p>If the <code>AttributeDefinition</code> node is created during the process
707 to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, an
708 appropriate value from the
709 <a href="#DeclaredValueType"><code>DeclaredValueType</code></a> constant
710 group <em class=rfc2119>MUST</em> be set to the attribute.</p>
711
712 <!-- DeclaredValueType -->
713 <p>The definition group
714 <dfn id=DeclaredValueType><code>DeclaredValueType</code></dfn> contains
715 integers indicating the declared type of attributes. The definition
716 group contains the following constants:</p>
717
718 <table>
719 <thead>
720 <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
721 </thead>
722 <tbody>
723 <tr>
724 <th scope=row><dfn id=NO_TYPE_ATTR class=dom-const><code>NO_TYPE_ATTR</code>
725 <td><code>0</code><td>No value <span class=ed>[INFOSET]</span>.</tr>
726 <tr>
727 <th scope=row><dfn id=CDATA_ATTR class=dom-const><code>CDATA_ATTR</code>
728 <td><code>1</code><td><code>CDATA</code> <span class=ed>[XML]</span>.</tr>
729 <tr>
730 <th scope=row><dfn id=ID_ATTR class=dom-const><code>ID_ATTR</code>
731 <td><code>2</code><td><code>ID</code> <span class=ed>[XML]</span>.</tr>
732 <tr>
733 <th scope=row><dfn id=IDREF_ATTR class=dom-const><code>IDREF_ATTR</code>
734 <td><code>3</code><td><code>IDREF</code> <span class=ed>[XML]</span>.</tr>
735 <tr>
736 <th scope=row><dfn id=IDREFS_ATTR class=dom-const><code>IDREFS_ATTR</code>
737 <td><code>4</code><td><code>IDREFS</code> <span class=ed>[XML]</span>.</tr>
738 <tr>
739 <th scope=row><dfn id=ENTITY_ATTR class=dom-const><code>ENTITY_ATTR</code>
740 <td><code>5</code><td><code>ENTITY</code> <span class=ed>[XML]</span>.</tr>
741 <tr>
742 <th scope=row><dfn id=ENTITIES_ATTR class=dom-const><code>ENTITIES_ATTR</code>
743 <td><code>6</code><td><code>ENTITIES</code> <span class=ed>[XML]</span>.</tr>
744 <tr>
745 <th scope=row><dfn id=NMTOKEN_ATTR class=dom-const><code>NMTOKEN_ATTR</code>
746 <td><code>7</code><td><code>NMTOKEN</code> <span class=ed>[XML]</span>.</tr>
747 <tr>
748 <th scope=row><dfn id=NMTOKENS_ATTR class=dom-const><code>NMTOKENS_ATTR</code>
749 <td><code>8</code><td><code>NMTOKENS</code> <span class=ed>[XML]</span>.</tr>
750 <tr>
751 <th scope=row><dfn id=NOTATION_ATTR class=dom-const><code>NOTATION_ATTR</code>
752 <td><code>9</code><td><code>NOTATION</code> <span class=ed>[XML]</span>.</tr>
753 <tr>
754 <th scope=row><dfn id=ENUMERATION_ATTR class=dom-const><code>ENUMERATION_ATTR</code>
755 <td><code>10</code><td>Enumeration <span class=ed>[XML]</span>.</tr>
756 <tr>
757 <th scope=row><dfn id=UNKNOWN_ATTR class=dom-const><code>UNKNOWN_ATTR</code>
758 <td><code>11</code><td>Unknown, because no declaration for the attribute
759 has been read but the [all declaration processed] property
760 <span class=ed>[INFOSET]</span> would be false.</tr>
761 </tbody>
762 </table>
763
764 <p>If no attribute type information is available, or if the source
765 of the information does not distinguish <q>no value</q> and <q>unknown</q>
766 <span class=ed>[INFOSET]</span>, then the value
767 <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>
768 <em class=rfc2119>MUST</em> be used.</p>
769
770 <div class="note memo">
771 <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
772 created by the
773 <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
774 method has its <a href="#declaredType"><code>declaredType</code></a> attribute
775 set to <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</p>
776 </div>
777
778 <p>If the source of the information does not distinguish <q>no value</q>
779 and/or <q>unknown</q> <span class=ed>[INFOSET]</span> and
780 <code>CDATA</code> <span class=ed>[XML]</span>, then the value
781 <a href="#CDATA_ATTR"><code>CDATA_ATTR</code></a> <em class=rfc2119>MUST</em>
782 be used.</p>
783
784 <p>In Perl binding <span class=ed>[PERLBINDING]</span>, the
785 <code>Attr</code> nodes <em class=rfc2119>MUST</em> implement the
786 <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>
787 definition group.</p>
788
789 </dd>
790 <dt><dfn id=defaultType class=dom-attr><code>defaultType</code></dfn> of
791 type <code>unsigned short</code></dt>
792 <dd><p>The type of the default for the attribute. It is expected that this
793 attribute contains a value from the definition group
794 <a href="#DefaultValueType"><code>DefaultValueType</code></a>.</p>
795
796 <p>On getting, the attribute <em class=rfc2119>MUST</em> return
797 the value associated to this attribute.</p>
798
799 <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
800 <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
801 exception if the
802 <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
803 is read$B!>(Bonly <span class=ed>@@ ref</span>. Otherwise, it
804 <em class=rfc2119>MUST</em> set the specified value as the value
805 associated to this attribute.</p>
806
807 <p>If the
808 <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node is
809 created during the process to create a <abbr>DOM</abbr> from an
810 <abbr>XML</abbr> document, an appropriate value from the
811 <a href="#DefaultValueType"><code>DefaultValueType</code></a> definition
812 group <em class=rfc2119>MUST</em> be set to the attribute.</p>
813
814 <!-- DefaultValueType -->
815 <p>The definition group
816 <dfn id=DefaultValueType><code>DefaultValueType</code></dfn>
817 contains integers indicating the type of the default for the attribute.
818 The definition group contains the following constans:</p>
819
820 <table>
821 <thead>
822 <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
823 </thead>
824 <tbody>
825 <tr>
826 <th scope=row><dfn id=UNKNOWN_DEFAULT class=dom-const><code>UNKNOWN_DEFAULT</code></dfn>
827 <td><code>0</code><td>Unknown.</tr>
828 <tr>
829 <th scope=row><dfn id=FIXED_DEFAULT class=dom-const><code>FIXED_DEFAULT</code></dfn>
830 <td><code>1</code><td>Provided explicitly and fixed
831 <span class=ed>@@ ref</span> to that value.</tr>
832 <tr>
833 <th scope=row><dfn id=REQUIRED_DEFAULT class=dom-const><code>REQUIRED_DEFAULT</code></dfn>
834 <td><code>2</code><td>No default value and the attribute have to be
835 explicitly specified.</tr>
836 <tr>
837 <th scope=row><dfn id=IMPLIED_DEFAULT class=dom-const><code>IMPLIED_DEFAULT</code></dfn>
838 <td><code>3</code><td>Implied <span class=ed>@@ ref</span>.</tr>
839 <tr>
840 <th scope=row><dfn id=EXPLICIT_DEFAULT class=dom-const><code>EXPLICIT_DEFAULT</code></dfn>
841 <td><code>4</code><td>Provided explicitly.</tr>
842 </tbody>
843 </table>
844
845 <p>If the source of the default type does not distinguish
846 implied and unknown default types, then the value
847 <a href="#IMPLIED_DEFAULT"><code>IMPLIED_DEFAULT</code></a>
848 <em class=rfc2119>MUST</em> be used.</p>
849
850 <div class="note memo">
851 <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
852 node created by the
853 <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
854 method has its <a href="#defaultType"><code>defaultType</code></a>
855 attribute set to
856 <a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</p>
857 </div></dd>
858 </dl>
859
860 </div>
861
862 <div class=section id=section-documenttype>
863 <h3>Modifications to the <code id=DocumentType>DocumentType</code>
864 Interface</h3>
865
866 <p>A <a href="#DocumentType"><code>DocumentType</code></a> interface
867 <em class=rfc2119>MAY</em> contain zero or more
868 <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
869 nodes in the <code>NodeList</code> object contained in the
870 <code>childNodes</code> attribute of the
871 <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
872
873 <p>If the <a href="#DocumentType"><code>DocumentType</code></a> node is created
874 during the process to create a <abbr>DOM</abbr> from an <abbr>XML</abbr>
875 document, the <code>NodeList</code> object in the <code>childNodes</code>
876 object <em class=rfc2119>MUST</em> contains the
877 <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
878 nodes representing the processing instructions in the document type
879 definition of the document processed <span class=ed>@@ ref</span> by
880 the <abbr>XML</abbr> processor. If the
881 <a href="#DocumentType"><code>DocumentType</code></a> node is marked
882 as read$B!>(Bonly, then all the child nodes <em class=rfc2119>MUST</em>
883 also be marked as read$B!>(Bonly.</p>
884
885 <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is created
886 from a document type declaration information item <span class=ed>@@ ref</span>,
887 the <code>NodeList</code> object in the <code>childNodes</code> attribute
888 of the node <em class=rfc2119>MUST</em> contain the
889 <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
890 created from the processing instruction information items in the list in the
891 [children] property of the document type declaration item in the same
892 order.</p>
893
894 <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is mapped to
895 a document type declaration information item, the list in the [children]
896 property <em class=rfc2119>MUST</em> contain the processng instruction
897 information items created from the
898 <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
899 in the <code>NodeList</code> object in the <code>childNodes</code> attribute
900 of the <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
901
902 <pre class=idl><code>// Modifications to the DocumentType interface
903 attribute DOMString <a href="#publicId">publicId</a>;
904 attribute DOMString <a href="#systemId">systemId</a>;
905
906 attribute DOMString <a href="#internalSubset">internalSubset</a>;
907 </code></pre>
908
909 <p>The <code id=publicId>publicId</code> attribute and the
910 <code id=systemId>systemId</code> attribute of
911 <a href="#DocumentType"><code>DocumentType</code></a>,
912 <a href="#Entity"><code>Entity</code></a>, and
913 <a href="#Notation"><code>Notation</code></a> interfaces are no longer
914 read$B!>(Bonly.</p>
915
916 <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
917 <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
918 exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.
919 Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the value
920 associated to the attribute. No normalization, relative reference resolution,
921 or lexical validation is performed. <span class=ed>@@ If the new
922 value is <code>null</code>, ...</span></p>
923
924 <div class="note memo">
925 <p>Setting an invalid identifier might make the node unserializable.
926 Setting a public identifier while leaveing system identifier unspecified
927 would also make the <a href="#DocumentType"><code>DocumentType</code></a>
928 or <a href="#Entity"><code>Entity</code></a> node unserializable.</p>
929 </div>
930
931 <div class=ed>
932 <p>ISSUE: In HTML5, Firefox 1.5, and Opera 9, not specifying public or system identifier results in empty strings.</p>
933 </div>
934
935 <p>The <code id=internalSubset>internalSubset</code> attribute of the
936 <a href="#DocumentType"><code>DocumentType</code></a> interface is no longer
937 read$B!>(Bonly.</p>
938
939 <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
940 <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
941 exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.
942 Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the value
943 associated to the attribute. No normalization, or lexical validation is
944 performed. <span class=ed>@@ If the new value is <code>null</code>,
945 ...</span></p>
946
947 </div>
948
949 </div>
950
951
952
953
954
955 <div id="references" class="section reference">
956 <h2>References</h2>
957
958 <div id="normative-references" class="section normative reference">
959 <h3>Normative References</h3>
960
961 <dl>
962 <dt id=ref-DOM3CORE>DOM3CORE</dt>
963 <dd class=ed>@@ W3C DOM Level 3 Core</dd>
964 <dt id=ref-DOMDTDEF>DOMDTDEF</dt>
965 <dd class=ed>@@ manakai's extension to DOM for document type definitions</dd>
966 <dt id="ref-KEYWORDS">KEYWORDS</dt>
967 <dd><cite><a href="urn:ietf:rfc:2119">Key words for use in
968 <abbr>RFCs</abbr> to Indicate Requirement Levels</a></cite>,
969 <abbr title="Internet Engineering Task Force">IETF</abbr>
970 <a href="urn:ietf:bcp:14"><abbr title="Best Current Practice">BCP</abbr>
971 14</a>, <abbr title="Request for Comments">RFC</abbr> 2119,
972 <time datetime=1997-03>March 1997</time>.
973 <em>This</em> version of the specification is referenced.</dd>
974 <dt id=ref-INFOSET>INFOSET</dt>
975 <dd class=ed>@@</dd>
976 <dt id=ref-XML10">XML10</dt>
977 <dd><cite><a href="http://www.w3.org/TR/2006/REC-xml-20060816">Extensible
978 Markup Language (<abbr>XML</abbr>) 1.0 (Fourth Edition)</a></cite>,
979 <abbr>W3C</abbr> Recommendation, <time datetime=2006-08-16>16 August
980 2006</time>, edited in place <time datetime=2006-09-29>29 September
981 2006</time>. Tje latest version of the specification is available at
982 <code class=uri>&lt;<a href="http://www.w3.org/TR/xml">http://www.w3.org/TR/xml</a>&gt;</code>.
983 <em>This</em> version of the specification is referenced.</dd>
984 <dt id=ref-XML11>XML11</dt>
985 <dd class=ed>@@</dd>
986 </dl>
987 </div>
988
989 <div id="informative-references" class="section informative reference">
990 <h3>Non$B!>(Bnormative References</h3>
991
992 <dl class=ed>
993 <dt id=ref-CSS>CSS</dt>
994 <dd><cite><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719">Cascading
995 Style Sheets Level 2 Revision 1 (<abbr>CSS</abbr> 2.1)
996 Specification</a></cite>,
997 <abbr title="World Wide Web Consortium">W3C</abbr> Candidate
998 Recommendation, <time datetime=2007-07-19>19 July 2007</time>.
999 Work in progress. The latest version of the specification is
1000 available at
1001 <code class=URI>&lt;<a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a>></code>.</dd>
1002 <dt id=ref-CSSOM>CSSOM</dt>
1003 <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
1004 Style Sheets Object Model (<abbr>CSSOM</abbr>)</a></cite>,
1005 <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
1006 <time datetime=2007-06-18>18 June 2007</time>. Work in progress.
1007 The latest Editor's Draft of the specification is available at
1008 <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>
1009 <dt id=ref-HTML5>HTML5</dt>
1010 <dd><cite><a href="http://whatwg.org/html5"><abbr>HTML</abbr> 5</a></cite>,
1011 <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>
1012 Working Draft. Work in progress.</dd>
1013 <dt id=ref-SAPI>SAPI</dt>
1014 <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>,
1015 <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
1016 <time datetime=2007-08-29>29 August 2007</time>. Work in progress.
1017 The latest Editor's Draft of the specification is available at
1018 <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>.
1019 The latest published version of the specification is available at
1020 <code class=URI>&lt;<a href="http://www.w3.org/TR/selectors-api/">http://www.w3.org/TR/selectors-api/</a>></code>.</dd>
1021 <dt id=XBL2>XBL2</dt>
1022 <dd><cite><a href="http://www.mozilla.org/projects/xbl/xbl2.html"><abbr>XBL</abbr>
1023 2.0</a></cite>, Mozilla.org, <time datetime=2007-03-15>15 Mar 2007</time>.
1024 Work in progress. The latest
1025 <abbr title="World Wide Web Consortium">W3C</abbr>$B!>(Bpublished
1026 version of the specification is available at
1027 <code class=URI>&lt;<a href="http://www.w3.org/TR/xbl/">http://www.w3.org/TR/xbl/</a>></code>.</dd>
1028 <dt id=ref-XML5>XML5</dt>
1029 <dd class=ed>@@</dd>
1030 </dl>
1031 </div>
1032
1033 </div>
1034
1035 </body>
1036 </html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24