/[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.7 - (show annotations) (download) (as text)
Sun Dec 2 09:47:05 2007 UTC (16 years, 5 months ago) by wakaba
Branch: MAIN
Changes since 1.6: +86 -88 lines
File MIME type: text/html
DocumentXDoctype v1

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-01>1 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 </div>
129
130 <div class=section id=dom-dtdef>
131 <h2><abbr>DOM</abbr> Document Type Definition Module</h2>
132
133 <p>The <abbr>DOM</abbr> Document Type Definition module, version 3.0,
134 consists of three interfaces:</p>
135 <ul>
136 <li><a href="#DocumentXDoctype"><code>DocumentXDoctype</code></a></li>
137 <li><a href="#DocumentTypeDefinition"><code>DocumentTypeDefinition</code></a></li>
138 <li><a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a></li>
139 <li><a href="#AttributeDefinition"><code>AttributeDefinition</code></a></li>
140 </ul>
141
142 <p>In addition, it adds methods, attributes, and/or constants to interfaces
143 <a href="#Node"><code>Node</code></a>,
144 <a href="#Entity"><code>Entity</code></a>,
145 <a href="#EntityReference"><code>EntityReference</code></a>, and
146 <a href="#Notation"><code>Notation</code></a>.
147 It modifies semantics of some of methods and attributes in
148 <a href="#Node"><code>Node</code></a> and
149 <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
150 interfaces, for the support of new interfaces.</p>
151
152 <div class=section id=features>
153 <h3>Feature Name</h3>
154
155 <p>In a <abbr>DOM</abbr> implementation that supports the version 3.0 of
156 the <abbr>DOM</abbr> Document Type Definition module, the
157 <code>hasFeature</code> method of a <code>DOMImplementation</code> object
158 <em class=rfc2119>MUST</em> return <code>true</code> when the parameters are
159 set to <code>http://suika.fam.cx/www/2006/feature/XDoctype</code> and
160 <code>3.0</code> respectively.</p>
161
162 <p>In such an implementation, the <code>getFeature</code> method of a
163 <code>Document</code> object <em class=rfc2119>MUST</em> return the (at least
164 conceptually) same object implementing the
165 <a href="#DocumentXDoctype"><code>DocumentXDoctype</code></a> interface when
166 the parameters are set to
167 <code>http://suika.fam.cx/www/2006/feature/XDoctype</code> and
168 <code>3.0</code> respectively. Likewise, any method that takes one or more
169 feature names with or without version number, including the methods
170 <code>hasFeature</code> and <code>getFeature</code>,
171 <em class=rfc2119>MUST</em> behave in a manner consistent with the
172 aforementioned cases.</p>
173 </div>
174
175 <div class=section id=section-documentxdoctype>
176 <h3>The <code>DocumentXDoctype</code> Interface</h3>
177
178 <pre class=idl><code>interface <dfn id=DocumentXDoctype><code>DocumentXDoctype</code></dfn> {
179 DocumentType <a href="#createDocumentTypeDefinition">createDocumentTypeDefinition</a>
180 (in DOMString <a href="#createDocumentTypeDefinition-name"><var>name</var></a>)
181 raises (DOMException);
182 ElementTypeDefinition <a href="#createElementTypeDefinition">createElementTypeDefinition</a>
183 (in DOMString <a href="#createElementTypeDefinition-name"><var>name</var></a>)
184 raises (DOMException);
185 AttributeDefinition <a href="#createAttributeDefinition">createAttributeDefinition</a>
186 (in DOMString <a href="#createAttributeDefinition-name"><var>name</var></a>)
187 raises (DOMException);
188 Entity <a href="#createGeneralEntity">createGeneralEntityDefinition</a>
189 (in DOMString <a href="#createGeneralEntity-name"><var>name</var></a>)
190 raises (DOMException);
191 Notation <a href="#createNotation">createNotation</a>
192 (in DOMString <a href="#createNotation-name"><var>name</var></a>)
193 raises (DOMException);
194 }</code></pre>
195
196 <div class=ed>@@ cast definition</div>
197
198 <dl>
199 <dt><dfn id=createDocumentTypeDefinition class=dom-method><code>createDocumentTypeDefinition</code></dfn>,
200 method</dt>
201 <dd>
202 <p>This method creates a <code>DocumentType</code> node with the specified
203 name, belonging to the document.</p>
204 <p>The <dfn id=createDocumentTypeDefinition-name class=dom-param><var>name</var></dfn>
205 parameter is the name of the document type.</p>
206
207 <p>When invoked, the method <em class=rfc2119>MUST</em> create and
208 return a <code>DocumentType</code> node with the following attributes:</p>
209 <dl>
210 <dt><code>attributes</code>, <code>parentNode</code></dt>
211 <dd><code>null</code>.</dd>
212 <dt><code>elementTypes</code>, <code>generalEntities</code>, and
213 <code>notations</code></dt>
214 <dd>Empty <code>NamedNodeMap</code> objects.</dd>
215 <dt><code>entities</code></dt>
216 <dd>The same value as the <code>generalEntities</code> attribute.</dd>
217 <dt><code>childNodes</code></dt>
218 <dd>An empty <code>NodeList</code> object.</dd>
219 <dt><code>internalSubset</code>, <code>publicId</code>, and
220 <code>systemId</code></dt>
221 <dd>Empty strings.</dd>
222 <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
223 <dd><code>false</code>.</dd>
224 <dt><code>nodeName</code></dt>
225 <dd><a href="#createDocumentTypeDefinition-name"><var>name</var></a>.</dd>
226 <dt><code>ownerDocument</code></dt>
227 <dd>The <code>Document</code> over which the method is invoked.</dd>
228 </dl>
229 <p>In addition, the method <em class=rfc2119>MUST</em> be marked as
230 containing five general entity declarations: <code>amp</code>,
231 <code>lt</code>, <code>gt</code>, <code>quot</code>, and
232 <code>apos</code>.</p>
233 </dd>
234 <dt><dfn id=createElementTypeDefinition class=dom-method><code>createElementTypeDefinition</code></dfn>,
235 method</dt>
236 <dd>
237 <p>This method creates a <code>ElementTypeDefinition</code> node with the
238 specified name, belonging to the document.</p>
239 <p>The <dfn id=createElementTypeDefinition-name class=dom-param><var>name</var></dfn>
240 parameter is the name of the element type defined by the element
241 type definition.</p>
242
243 <p>When invoked, the method <em class=rfc2119>MUST</em> create and
244 return an
245 <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
246 node with the following attributes:</p>
247 <dl>
248 <dt><a href="#attributeDefinitions"><code>attributeDefinitions</code></a></dt>
249 <dd>An empty <code>NamedNodeMap</code> object.</dd>
250 <dt><code>attributes</code>, <code>parentNode</code></dt>
251 <dd><code>null</code>.</dd>
252 <dt><code>childNodes</code></dt>
253 <dd>An empty <code>NodeList</code> object.</dd>
254 <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
255 <dd><code>false</code>.</dd>
256 <dt><code>nodeName</code></dt>
257 <dd><a href="#createElementTypeDefinition-name"><var>name</var></a>.</dd>
258 <dt><code>ownerDocument</code></dt>
259 <dd>The <code>Document</code> node over which the method is invoked.</dd>
260 <dt><a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a></dt>
261 <dd><code>null</code>.</dd>
262 <dt class=ed>@@ Ensure all attributes are defined</dt>
263 </dl>
264 </dd>
265 <dt><dfn id=createAttributeDefinition class=dom-method><code>createAttributeDefinition</code></dfn>,
266 method</dt>
267 <dd>
268 <p>This method creates a <code>AttributeDefinition</code> node with the
269 specified name, belonging to the document.</p>
270 <p>The <dfn id=createAttributeDefinition-name class=dom-param><var>name</var></dfn>
271 parameter is the name of the attribute defined by the attribute
272 definition.</p>
273
274 <p>When invoked, the method <em class=rfc2119>MUST</em> create and
275 return an
276 <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
277 node with the following attributes:</p>
278 <dl>
279 <dt><code>allowedTokens</code></dt>
280 <dd>An empty <code>DOMStringList</code> object.</dd>
281 <dt><code>attributes</code>,
282 <a href="#ownerElementTypeDefinition"><code>ownerElementTypeDefinition</code></a>,
283 and <code>parentNode</code></dt>
284 <dd><code>null</code>.</dd>
285 <dt><code>childNodes</code></dt>
286 <dd>An empty <code>NodeList</code> object.</dd>
287 <dt><code>declaredType</code></dt>
288 <dd><a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</dd>
289 <dt><code>defaultType</code></dt>
290 <dd><a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</dd>
291 <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
292 <dd><code>false</code>.</dd>
293 <dt><code>nodeName</code></dt>
294 <dd><a href="#createAttributeDefinition-name"><var>name</var></a>.</dd>
295 <dt><code>ownerDocument</code></dt>
296 <dd>The <code>Document</code> node over which the method is invoked.</dd>
297 <dt class=ed>@@ Ensure all attributes are defined</dt>
298 </dl>
299
300 <div class=ed>
301 <p>@@ Should we keep these statements?:
302 However, if the &lt;cfg::cfg|xml-id> configuration
303 parameter is set to <code>true</code> and the <var>name</var>
304 is <code>xml:id</code>, then the [CODE(DOMa)@en[[[declaredType]]]]
305 attribute is set to <code>ID_ATTR</code>.
306 [CODE(DOMa)@en[[[defaultType]]]]?</p>
307 </div>
308 </dd>
309 <dt><dfn id=createGeneralEntity class=dom-method><code>createGeneralEntity</code></dfn>,
310 method</dt>
311 <dd>
312 <p>This method creates a <a href="#Entity"><code>Entity</code></a> node
313 with the specified name, which represents a general entity, belonging to
314 the document.</p>
315 <p>The <dfn id=createGeneralEntity-name class=dom-param><var>name</var></dfn>
316 parameter is the name of the general entity.</p>
317
318 <p>When invoked, the method <em class=rfc2119>MUST</em> create and return
319 an <a href="#Entity"><code>Entity</code></a> node with the following
320 attributes:</p>
321 <dl>
322 <dt><code>attributes</code>, <code>notationName</code>,
323 <a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a>,
324 and <code>parentNode</code></dt>
325 <dd><code>null</code>.</dd>
326 <dt><code>childNodes</code></dt>
327 <dd>An empty <code>NodeList</code> object.</dd>
328 <dt><code>manakaiDeclarationBaseURI</code>,
329 <code>manakaiEntityBaseURI</code>, and
330 <code>manakaiEntityURI</code> <span class=ed>@@ ref</span></dt>
331 <dd>No explicit value is set.</dd>
332 <dt><code>manakaiHasReplacementTree</code> and
333 <code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
334 <dd><code>false</code>.</dd>
335 <dt><code>nodeName</code></dt>
336 <dd><a href="#createGeneralEntity-name"><var>name</var></a>.</dd>
337 <dd>
338 <div class="note memo">
339 <p>It is not an error for
340 <a href="#createGeneralEntity-name"><var>name</var></a> matching
341 to the name of one of predefined general parsed entities in
342 <abbr>XML</abbr> or <abbr>HTML</abbr>. For example,
343 <a href="#createGeneralEntity-name"><var>name</var></a> might be
344 <code>amp</code>, resulting in an
345 <a href="#Entity"><code>Entity</code></a> node
346 with its <code>nodeName</code> attribute set to <code>amp</code>.</p>
347 </div>
348 </dd>
349 <dt><code>ownerDocument</code></dt>
350 <dd>The <code>Document</code> node over which the method is invoked.</dd>
351 <dt><code>publicId</code>, and <code>systemId</code></dt>
352 <dd><code>null</code>.</dd>
353 <dd class=ed>@@ publicId and systemId should be empty string?</dd>
354 <dt class=ed>@@ Ensure all attributes are defined</dd>
355 </dl>
356 </dd>
357 <dt><dfn id=createNotation class=dom-method><code>createNotation</code></dfn>,
358 method</dt>
359 <dd>
360 <p>This method creates a <code>Notation</code> node with the
361 specified name, belonging to the document.</p>
362 <p>The <dfn id=createNotation-name class=dom-param><var>name</var></dfn>
363 parameter is the name of the notation.</p>
364
365 <p>When invoked, the method <em class=rfc2119>MUST</em> create and return
366 a <code>Notation</code> node with the following attributes:</p>
367 <dl>
368 <dt><code>attributes</code>,
369 <a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a>,
370 and <code>parentNode</code></dt>
371 <dd><code>null</code>.</dd>
372 <dt><code>childNodes</code></dt>
373 <dd>An empty <code>NodeList</code> object.</dd>
374 <dt><code>manakaiDeclarationBaseURI</code></dt>
375 <dd>No explicit value is set.</dd>
376 <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
377 <dd><code>false</code>.</dd>
378 <dt><code>nodeName</code></dt>
379 <dd><a href="#createNotation-name"><var>name</var></a>.</dd>
380 <dt><code>ownerDocument</code></dt>
381 <dd>The <code>Document</code> node over which the method is invoked.</dd>
382 <dt><code>publicId</code> and <code>systemId</code></dt>
383 <dd><code>null</code>.</dd>
384 <dd class=ed>@@ publicId and systemId should be empty string?</dd>
385 <dt class=ed>@@ Ensure all attributes are defined</dt>
386 </dl>
387 </dd>
388 </dl>
389
390 <p>These methods <em class=rfc2119>MUST</em> raise an
391 <code>INVALID_CHARACTER_ERR</code> exception <span class=ed>@@ ref</span>
392 if <var>name</var> is <em>not</em> a legal <code>Name</code> according to
393 the <abbr>XML</abbr> version in use, as specified in the
394 <code>xmlVersion</code> attribute of the <code>Document</code> node.</p>
395
396 <div class="note memo">
397 <p>Non$B!>(B<abbr>XML</abbr> case is intentionally left unspecified for now,
398 since <abbr>DOM3</abbr> specification <span class=ed>@@ ref</span> does not
399 define it for <code>Document</code> methods.</p>
400
401 <p><var>name</var> does not have to be a namespace qualified name.</p>
402
403 <p>If the <code>strictErrorChecking</code> attribute of the
404 <code>Document</code> node is <code>false</code>, the methods are
405 not required to raise the exception <span class=ed>[DOM3]</span>.</p>
406 </div>
407
408 </div>
409
410 <div class=section id=section-documenttypedefinition>
411 <h3>The <code>DocumentTypeDefinition</code> Interface</h3>
412
413 <pre class=idl><code>interface <dfn id=DocumentTypeDefinition><code>DocumentTypeDefinition</code></dfn> {
414
415 }</code></pre>
416
417 <pre class=ed>
418 [1] In an implementation that supports the
419 [CODE(URI)@en[[[http://suika.fam.cx/www/2006/feature/XDoctype]]]]
420 feature, a [CODE(DOMi)@en[[[DocumentType]]]] node
421 must implement the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]
422 interface. See [[DOM XML Document Type Definition]>>3] for
423 details.
424
425
426 ** Children
427
428 [2] The [DFN@en[[CODE(DOMa)@en[[[elementTypes]]]] attribute]]
429 of the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interface
430 is a live [CODE(DOMi)@en[[[NamedNodeMap]]]] object that
431 contains all element types belongs to the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]
432 node. The type of the attribute is [CODE(DOMi)@en[[[NamedNodeMap]]]].
433 The attribute is read-only.
434
435 What are contained in this collection depends on how
436 the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node was created. If the
437 node was created as the result of parsing of an XML document,
438 it [['''MUST''']] contain all element types whose element type and / or
439 attribute definition list declaration are encountered by and provided for the DOM
440 implementation from the XML processor. Note that the XML processor might not
441 provide a part of or entire such information depending on the configuration.
442 If more than one declarations for an element type or an attribute is available
443 at the time of the definition node construction, then declarations other than
444 the first ones [['''MUST''']] be discarded.
445
446 The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
447 object that contains all the [CODE(DOMi)@en[[[ElementTypeDefinition]]]] nodes
448 belong to the node. The returned [CODE(DOMi)@en[[[NamedNodeMap]]]] object
449 [['''MUST''']] be read-only if and only if the node is read-only.
450 Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
451 and therefore any change of read-only flag on the node is immediately
452 reflected by that of the object.
453
454 [3] The [DFN@en[[CODE(DOMa)@en[[[generalEntities]]]] attribute]]
455 of the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interface
456 is a live [CODE(DOMi)@en[[[NamedNodeMap]]]] object that contains all the
457 general entities belong to the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node.
458 The type of the attribute is [CODE(DOMi)@en[[[NamedNodeMap]]]].
459 The attribute is read-only.
460
461 All entities declared in the document type definition
462 contained in or referenced from the document entity
463 might not be exposed through this collection, depending
464 on the information provided by the XML processor for
465 the DOM implementation. In particular, it might not
466 contain any entity if entity references are expanded
467 at the parse time. An implementation [['''MUST NOT''']]
468 expose an [CODE(DOMi)@en[[[Entity]]]] node whose [CODE(DOMa)@en[[[nodeName]]]]
469 is equal to the name of one of five predefined general entities in
470 XML through the collection as the result of parsing of an XML
471 document that has no error. Duplicate entity declarations are also discarded.
472
473 The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
474 object that contains all the [CODE(DOMi)@en[[[Entity]]]] nodes
475 representing general entities belong to the node. The returned
476 [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
477 the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
478 and therefore any change of read-only flag on the node is immediately
479 reflected by that of the object.
480
481 The attribute [['''MUST''']] return the same value as the
482 [CODE(DOMa)@en[[[entites]]]] attribute of the
483 [CODE(DOMi)@en[[[DocumentType]]]] interface on the same node.
484
485 [4] The [DFN@en[[CODE(DOMa)@en[[[notations]]]] attribute]]
486 of the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interface
487 is a live [CODE(DOMi)@en[[[NamedNodeMap]]]] object that contains
488 all the notations belong to the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]
489 node. The type of the attribute is [CODE(DOMi)@en[[[NamedNodeMap]]]].
490 The attribute is read-only.
491
492 If the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node is
493 created from an XML document, duplicate notation declarations, if any, in DTD
494 [['''MUST NOT''']] result in a node in the [CODE(DOMi)@en[[[NamedNodeMap]]]]
495 object and only the first declaration [['''MUST''']] be
496 made available as a [CODE(DOMi)@en[[[Notation]]]] node.
497
498 ;; This definition is based on one for the
499 [CODE(DOMa)@en[[[notations]]]] attribute of the
500 [CODE(DOMi)@en[[[DocumentType]]]] interface in DOM XML module.
501 Since duplication is violation to the Validity Constraint,
502 XML parsers might vary on how notations are notified to
503 the application. In particular, [CODE(InfoProp)@en[[[notations]]]]
504 property of the document information item in XML Information Set
505 is so defined that in case ''any'' notation is declared for
506 multiple times then the property has no value.
507
508 The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
509 object that contains all the [CODE(DOMi)@en[[[Notation]]]] nodes
510 representing notations belong to the node. The returned
511 [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
512 the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
513 and therefore any change of read-only flag on the node is immediately
514 reflected by that of the object.
515
516 A DOM implementation is not required to implement the
517 [CODE(DOMa)@en[[[notations]]]] attribute twice
518 for the [CODE(DOMi)@en[[[DocumentType]]]] and
519 the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interfaces;
520 the latter is defined to contain the same value as the former.
521
522
523 ** Open Issues (informative)
524
525 [5] A future version of the interface might define the
526 [CODE(DOMa)@en[[[parameterEntities]]]] attribute and
527 getter/setter for parameter entities.
528 </pre>
529 </div>
530
531 <div class=section id=section-elementtypedefinition>
532 <h3>The <code>ElementTypeDefinition</code> Interface</h3>
533
534 <pre class=idl><code>interface <dfn id=ElementTypeDefinition><code>ElementTypeDefinition</code></dfn> {
535
536 }</code></pre>
537
538 <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
539
540 [3] The getter of the [CODE(DOMa)@en[[[attributes]]]] attribute
541 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
542 [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
543
544 [4] The getter of the [CODE(DOMa)@en[[[baseURI]]]] attribute
545 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
546 [['''MUST''']] return the [CODE(DOMa)@en[[[baseURI]]]]
547 of the [CDOE(DOMa)@en[[[ownerDocument]]]] of the
548 [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object.
549 Note that it might be [CODE(IDL)@en[[[null]]]].
550
551 [1] The getter of the [CODE(DOMa)@en[[[nodeName]]]] attribute
552 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
553 [['''MUST''']] return the name of the element type.
554
555 [2] The getters of the [CODE(DOMa)@en[[[nodeValue]]]]
556 and [CODE(DOMa)@en[[[textContent]]]] attributes
557 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
558 object [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
559
560 ;; Thus, the setter of these attributes do nothing.
561
562 The setter of the [CODE(DOMa)@en[[[textContent]]]]
563 attribute of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
564 object [['''MUST NOT''']] throw a
565 [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]].
566
567 ** The [CODE(DOMi)@en[ElementTypeDefinition]] Interface
568
569 [5] The
570 [DFN@en[[CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]] attribute]]
571 of the [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
572 interface is defined in [[manakai//DOM Extensions]>>50].</pre>
573 </div>
574
575 <div class=section id=section-attributedefinition>
576 <h3>The <code>AttributeDefinition</code> Interface</h3>
577
578 <pre class=idl><code>interface <dfn id=AttributeDefinition><code>AttributeDefinition</code></dfn> {
579
580 }</code></pre>
581
582 <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
583
584 [3] The getter of the [CODE(DOMa)@en[[[attributes]]]] attribute
585 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
586 [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
587
588 [9] The getter of the [CODE(DOMa)@en[[[baseURI]]]] attribute
589 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
590 [['''MUST''']] return the [CODE(DOMa)@en[[[baseURI]]]]
591 of the [CDOE(DOMa)@en[[[ownerDocument]]]] of the
592 [CODE(DOMi)@en[[[AttributeDefinition]]]] object.
593 Note that it might be [CODE(IDL)@en[[[null]]]].
594
595 [1] The getter of the [CODE(DOMa)@en[[[nodeName]]]] attribute
596 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
597 [['''MUST''']] return the name of the attribute.
598
599 [2] The getter of the [CODE(DOMa)@en[[[nodeValue]]]] attribute
600 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
601 [['''MUST''']] return the normalized default value
602 of the attribute.
603
604 @@
605
606 [4] The getter of the [CODE(DOMa)@en[[[textContent]]]]
607 attribute of an [CODE(DOMi)@en[[[AttributeDefinition]]]]
608 object [['''MUST''']] behave as if it were an
609 [CODE(DOMi)@en[[[Attr]]]] object.
610
611 The setter of the [CODE(DOMa)@en[[[textContent]]]] attribute
612 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
613 [['''MUST''']] behave as if the following algorithm
614 is performed:
615 = If the [CODE(DOMi)@en[[[AttributeDefinition]]]]
616 object is read-only, then throw an
617 [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]].
618 = Remove any child node the node has.
619 = If the new value is not empty and not [CODE(IDL)@en[[[null]]]],
620 then create a [CODE(DOMi)@en[[[Text]]]] node
621 whose [CODE(DOMa)@en[[[data]]]] is the new value
622 and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]].
623
624 ** Definition groups
625
626 [6] The
627 [DFN@en[definition group [CODE(DOM)@en[[[DeclaredValueType]]]]]]
628 contains integers indicating the type of
629 attribute value:
630 ,[CODE(DOMc)@en[[[NO_TYPE_ATTR]]]],[CODE(IDL)[[[0]]]],The attribute value type corresponding to [[no value]] in XML Information Set.
631 ,[CODE(DOMc)@en[[[CDATA_ATTR]]]],[CODE(IDL)[[[1]]]],The attribute value type is [CODE(XML)@en[[[CDATA]]]].
632 ,[CODE(DOMc)@en[[[ID_ATTR]]]],[CODE(IDL)[[[2]]]],The attribute value type is [CODE(XML)@en[[[ID]]]].
633 ,[CODE(DOMc)@en[[[IDREF_ATTR]]]],[CODE(IDL)[[[3]]]],The attribute value type is [CODE(XML)@en[[[IDREF]]]].
634 ,[CODE(DOMc)@en[[[IDREFS_ATTR]]]],[CODE(IDL)[[[4]]]],The attribute value type is [CODE(XML)@en[[[IDREFS]]]].
635 ,[CODE(DOMc)@en[[[ENTITY_ATTR]]]],[CODE(IDL)[[[5]]]],The attribute value type is [CODE(XML)@en[[[ENTITY]]]].
636 ,[CODE(DOMc)@en[[[ENTITIES_ATTR]]]],[CODE(IDL)[[[6]]]],The attribute value type is [CODE(XML)@en[[[ENTITIES]]]].
637 ,[CODE(DOMc)@en[[[NMTOKEN_ATTR]]]],[CODE(IDL)[[[7]]]],The attribute value type is [CODE(XML)@en[[[NMTOKEN]]]].
638 ,[CODE(DOMc)@en[[[NMTOKENS_ATTR]]]],[CODE(IDL)[[[8]]]],The attribute value type is [CODE(XML)@en[[[NMTOKENS]]]].
639 ,[CODE(DOMc)@en[[[NOTATION_ATTR]]]],[CODE(IDL)[[[9]]]],The attribute value type is [CODE(XML)@en[[[NOTATION]]]].
640 ,[CODE(DOMc)@en[[[ENUMERATION_ATTR]]]],[CODE(IDL)[[[10]]]],The attribute value is enumeration type.
641 ,[CODE(DOMc)@en[[[UNKNOWN_ATTR]]]],[CODE(IDL)[[[11]]]],"The attribute value type is unknown, because no declaration for the attribute has been read but not [CODE(InfoProp)@en[[[all declarations processed]]]] property would be false."
642
643 The type of these constants are
644 [CODE(IDL)@en[[[unsigned]] [[short]]]].
645
646 If no attribute type information is provided,
647 or if the source of that information does not
648 distinguish [[no value]] and [[unknown]] as in
649 XML Information Set, then the
650 [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]] value
651 [['''MUST''']] be used.
652
653 ;; A newly created [CODE(DOMi)@en[[[AttributeDefinition]]]]
654 object by [CODE(DOMm)@en[[[createAttributeDefinition]]]]
655 method has [CODE(DOMa)@en[[[declaredType]]]] attribute
656 set to [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]].
657
658 If the source of the attribute type information
659 does not distinguish [[no value]] and / or [[unknown]]
660 and [CODE(XML)@en[[[CDATA]]]], then the
661 [CODE(DOMc)@en[[[CDATA_ATTR]]]] value [['''MUST''']]
662 be used.
663
664 [11]
665 In Perl binding, the objects implementing the
666 [CODE(DOMi)@en[[[Attr]]]] interface [['''MUST''']]
667 also implement the [CODE(DOM)@en[[[DeclaredValueType]]]]
668 constant group.
669
670 [7] The
671 [DFN@en[definition group [CODE(DOM)@en[[[DefaultValueType]]]]]]
672 contains integers indicating the type of
673 default attribute value:
674 ,[CODE(DOMc)@en[[[UNKNOWN_DEFAULT]]]],[CODE(IDL)[[[0]]]],The default value is unknown.
675 ,[CODE(DOMc)@en[[[FIXED_DEFAULT]]]],[CODE(IDL)[[[1]]]],The default value is provided and the attribute is [CODE(XML)@en[#[[FIXED]]]] to that value.
676 ,[CODE(DOMc)@en[[[REQUIRED_DEFAULT]]]],[CODE(IDL)[[[2]]]],An attribute specification is [CODE(XML)@en[#[[REQUIRED]]]] for the attribute.
677 ,[CODE(DOMc)@en[[[IMPLIED_DEFAULT]]]],[CODE(IDL)[[[3]]]],The default value is [CODE(XML)@en[#[[IMPLIED]]]].
678 ,[CODE(DOMc)@en[[[EXPLICIT_DEFAULT]]]],[CODE(IDL)[[[4]]]],The default value is provided but the attribute is not fixed to it.
679
680 The type of these constants are
681 [CODE(IDL)@en[[[unsigned]] [[short]]]].
682
683 If the source of the attribute default value type
684 does not distinguish the [CODE(XML)@en[#[[IMPLIED]]]]
685 default and unknown default, then the
686 [CODE(DOMc)@en[[[IMPLIED_DEFAULT]]]] value
687 [['''MUST''']] be used.
688
689 ;; A newly created [CODE(DOMi)@en[[[AttributeDefinition]]]]
690 object by [CODE(DOMm)@en[[[createAttributeDefinition]]]]
691 method has [CODE(DOMa)@en[[[declaredType]]]] attribute
692 set to [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]].
693
694 ** Tree-relationship Attributes
695
696 [10]
697 The
698 [DFN@en[[CODE(DOMa)@en[[[ownerElementTypeDefinition]]]] attribute]]
699 of the [CODE(DOMi)@en[[[AttributeDefinition]]]] interface
700 is read-only and of type
701 [CODE(DOMi)@en[[[ElementTypeDefinition]]]].
702 It is the [CODE(DOMi)@en[[[ElementTypeDefinition]]]] node
703 which the [CODE(DOMi)@en[[[AttributeDefinition]]]] node
704 belong to.
705
706 If the [CODE(DOMi)@en[[[AttributeDefinition]]]] node
707 is included in the [CODE(DOMa)@en[[[attributeDefinitions]]]]
708 list of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] node,
709 then the attribute [['''MUST''']] return the
710 [CODE(DOMi)@en[[[ElementTypeDefinition]]]] node.
711 Otherwise, it [['''MUST''']] return [CODE(DOM)@en[[[null]]]].
712
713 ;; This attribute is analogue to the
714 [CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]] attribute
715 for [CODE(DOMi)@en[[[ElementTypeDefinition]]]],
716 [CODE(DOMi)@en[[[Entity]]]], and [CODE(DOMi)@en[[[Notation]]]]
717 nodes, or the [CODE(DOMa)@en[[[ownerElement]]]]
718 attribute for [CODE(DOMi)@en[[[Attr]]]] nodes.
719
720 ** Attributes
721
722 [5]
723 The [DFN@en[[CODE(DOMa)@en[[[declaredType]]]] attribute]]
724 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
725 represents the type of the attribute value.
726
727 This attribute is read-write.
728 The type of the attribute is
729 [CODE(IDL)@en[[[unsigned]] [[short]]]]. It is expected
730 that this attribute has a value from the definition group
731 [CODE(DOM)@en[[[DeclaredValueType]]]].
732
733 The getter [['''MUST''']] return a value associated
734 to this attribute.
735
736 The setter [['''MUST''']]
737 throw a [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]]
738 [CODE(DOMi)@en[[[DOMException]]]] if the
739 [CODE(DOMi)@en[[[AttributeDefinition]]]] object is read-only.
740 Otherwise, the setter [['''MUST''']] set the specified
741 value as the value associated to this attribute.
742
743 If a parser create an [CODE(DOMi)@en[[[AttributeDefinition]]]]
744 object, then it [['''MUST''']] set a value
745 from the [CODE(DOM)@en[[[DeclaredValueType]]]]
746 definition group.
747
748 [8]
749 The [DFN@en[[CODE(DOMa)@en[[[defaultType]]]] attribute]]
750 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
751 represents the type of the attribute default value.
752
753 This attribute is read-write.
754 The type of the attribute is
755 [CODE(IDL)@en[[[unsigned]] [[short]]]]. It is expected
756 that this attribute has a value from the definition group
757 [CODE(DOM)@en[[[DefaultValueType]]]].
758
759 The getter [['''MUST''']] return a value associated
760 to this attribute.
761
762 The setter [['''MUST''']]
763 throw a [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]]
764 [CODE(DOMi)@en[[[DOMException]]]] if the
765 [CODE(DOMi)@en[[[AttributeDefinition]]]] object is read-only.
766 Otherwise, the setter [['''MUST''']] set the specified
767 value as the value associated to this attribute.
768
769 If a parser create an [CODE(DOMi)@en[[[AttributeDefinition]]]]
770 object, then it [['''MUST''']] set a value
771 from the [CODE(DOM)@en[[[DefaultValueType]]]]
772 definition group.</pre>
773 </div>
774
775 </div>
776
777
778
779
780
781 <div id="references" class="section reference">
782 <h2>References</h2>
783
784 <div id="normative-references" class="section normative reference">
785 <h3>Normative References</h3>
786
787 <dl>
788 <dt id=ref-DOM3CORE>DOM3CORE</dt>
789 <dd class=ed>@@ W3C DOM Level 3 Core</dd>
790 <dt id=ref-DOMDTDEF>DOMDTDEF</dt>
791 <dd class=ed>@@ manakai's extension to DOM for document type definitions</dd>
792 <dt id="ref-KEYWORDS">KEYWORDS</dt>
793 <dd><cite><a href="urn:ietf:rfc:2119">Key words for use in
794 <abbr>RFCs</abbr> to Indicate Requirement Levels</a></cite>,
795 <abbr title="Internet Engineering Task Force">IETF</abbr>
796 <a href="urn:ietf:bcp:14"><abbr title="Best Current Practice">BCP</abbr>
797 14</a>, <abbr title="Request for Comments">RFC</abbr> 2119,
798 <time datetime=1997-03>March 1997</time>.
799 <em>This</em> version of the specification is referenced.</dd>
800 <dt id=ref-INFOSET>INFOSET</dt>
801 <dd class=ed>@@</dd>
802 <dt id=ref-XML10">XML10</dt>
803 <dd><cite><a href="http://www.w3.org/TR/2006/REC-xml-20060816">Extensible
804 Markup Language (<abbr>XML</abbr>) 1.0 (Fourth Edition)</a></cite>,
805 <abbr>W3C</abbr> Recommendation, <time datetime=2006-08-16>16 August
806 2006</time>, edited in place <time datetime=2006-09-29>29 September
807 2006</time>. Tje latest version of the specification is available at
808 <code class=uri>&lt;<a href="http://www.w3.org/TR/xml">http://www.w3.org/TR/xml</a>&gt;</code>.
809 <em>This</em> version of the specification is referenced.</dd>
810 <dt id=ref-XML11>XML11</dt>
811 <dd class=ed>@@</dd>
812 </dl>
813 </div>
814
815 <div id="informative-references" class="section informative reference">
816 <h3>Non$B!>(Bnormative References</h3>
817
818 <dl class=ed>
819 <dt id=ref-CSS>CSS</dt>
820 <dd><cite><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719">Cascading
821 Style Sheets Level 2 Revision 1 (<abbr>CSS</abbr> 2.1)
822 Specification</a></cite>,
823 <abbr title="World Wide Web Consortium">W3C</abbr> Candidate
824 Recommendation, <time datetime=2007-07-19>19 July 2007</time>.
825 Work in progress. The latest version of the specification is
826 available at
827 <code class=URI>&lt;<a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a>></code>.</dd>
828 <dt id=ref-CSSOM>CSSOM</dt>
829 <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
830 Style Sheets Object Model (<abbr>CSSOM</abbr>)</a></cite>,
831 <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
832 <time datetime=2007-06-18>18 June 2007</time>. Work in progress.
833 The latest Editor's Draft of the specification is available at
834 <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>
835 <dt id=ref-HTML5>HTML5</dt>
836 <dd><cite><a href="http://whatwg.org/html5"><abbr>HTML</abbr> 5</a></cite>,
837 <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>
838 Working Draft. Work in progress.</dd>
839 <dt id=ref-SAPI>SAPI</dt>
840 <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>,
841 <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
842 <time datetime=2007-08-29>29 August 2007</time>. Work in progress.
843 The latest Editor's Draft of the specification is available at
844 <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>.
845 The latest published version of the specification is available at
846 <code class=URI>&lt;<a href="http://www.w3.org/TR/selectors-api/">http://www.w3.org/TR/selectors-api/</a>></code>.</dd>
847 <dt id=XBL2>XBL2</dt>
848 <dd><cite><a href="http://www.mozilla.org/projects/xbl/xbl2.html"><abbr>XBL</abbr>
849 2.0</a></cite>, Mozilla.org, <time datetime=2007-03-15>15 Mar 2007</time>.
850 Work in progress. The latest
851 <abbr title="World Wide Web Consortium">W3C</abbr>$B!>(Bpublished
852 version of the specification is available at
853 <code class=URI>&lt;<a href="http://www.w3.org/TR/xbl/">http://www.w3.org/TR/xbl/</a>></code>.</dd>
854 <dt id=ref-XML5>XML5</dt>
855 <dd class=ed>@@</dd>
856 </dl>
857 </div>
858
859 </div>
860
861 </body>
862 </html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24