/[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.8 - (show annotations) (download) (as text)
Sun Dec 2 10:20:25 2007 UTC (16 years, 11 months ago) by wakaba
Branch: MAIN
Changes since 1.7: +71 -60 lines
File MIME type: text/html
all of already-documented part of DocumentTypeDefinition interface are now properly marked up

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 readonly attribute NamedNodeMap <a href="#elementTypes">elementTypes</a>;
415 readonly attribute NamedNodeMap <a href="#generalEntities">generalEntities</a>;
416 readonly attribute NamedNodeMap <a href="#notations">notations</a>;
417
418 <span class=ed>more members come here...</span>
419 }</code></pre>
420
421 <pre class=ed>
422 [1] In an implementation that supports the
423 [CODE(URI)@en[[[http://suika.fam.cx/www/2006/feature/XDoctype]]]]
424 feature, a [CODE(DOMi)@en[[[DocumentType]]]] node
425 must implement the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]
426 interface. See [[DOM XML Document Type Definition]>>3] for
427 details.
428 </pre>
429
430 <dl>
431 <dt><dfn id=elementTypes class=dom-attr><code>elementTypes</code></dfn> of
432 type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
433 <dd><p>A live <code>NamedNodeMap</code> object that contains all the element
434 type definitions belonging to the <code>DocumentType</code> node.</p>
435
436 <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
437 <code>NamedNodeMap</code> object that contains all the
438 <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
439 nodes belonging to the <code>DocumentType</code> node. The
440 <code>NamedNodeMap</code> object <em class=rfc2119>MUST</em> be read$B!>(Bonly
441 if and only if the node is read$B!>(Bonly. The <code>NamedNodeMap</code>
442 object <em class=rfc2119>MUST</em> be live and the same object
443 <em class=rfc2119>MUST</em> be returned for any invocation.</p>
444
445 <p>If the <code>DocumentType</code> node is created during the process
446 to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, the following
447 requirements are applied: The <code>NamedNodeMap</code> object in the
448 <a href="#elementTypes"><code>elementType</code></a> attribute
449 <em class=rfc2119>MUST</em> be so transformed that the object contains
450 the <code>ElementTypeDefinition</code> nodes for the element types
451 whose name is presented as the <code>Name</code> of the element type or
452 attribute definition list declarations processed by the <abbr>XML</abbr>
453 processor. If there is more than one element type declarations for an
454 element type, then the declarations other than the first one
455 <em class=rfc2119>MUST</em> be ignored for the purpose of constructing the
456 <code>NamedNodeMap</code> object.</p></dd>
457 <dt><dfn id=generalEntities class=dom-attr><code>generalEntities</code></dfn>
458 of type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
459 <dd><p>A live <code>NamedNodeMap</code> object that contains all the general
460 entities belonging to the <code>DocumentType</code> node.</p>
461
462 <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
463 same value as the <code>entities</code> attribute (defined in the
464 <code>DocumentType</code> interface) of the same node.</p>
465
466 <div class="note memo">
467 <p>This attribute is part of the interface for historical reason.</p>
468 </div></dd>
469 <!--
470 All entities declared in the document type definition
471 contained in or referenced from the document entity
472 might not be exposed through this collection, depending
473 on the information provided by the XML processor for
474 the DOM implementation. In particular, it might not
475 contain any entity if entity references are expanded
476 at the parse time. An implementation [['''MUST NOT''']]
477 expose an [CODE(DOMi)@en[[[Entity]]]] node whose [CODE(DOMa)@en[[[nodeName]]]]
478 is equal to the name of one of five predefined general entities in
479 XML through the collection as the result of parsing of an XML
480 document that has no error. Duplicate entity declarations are also discarded.
481
482 The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
483 object that contains all the [CODE(DOMi)@en[[[Entity]]]] nodes
484 representing general entities belong to the node. The returned
485 [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
486 the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
487 and therefore any change of read-only flag on the node is immediately
488 reflected by that of the object.
489 -->
490 <dt><dfn id=notations class=dom-attr><code>notations</code></dfn> of type
491 <code>notations</code>, read$B!>(Bonly</code>
492 <dd><p>A live <code>NamedNodeMap</code> object that contains all the
493 notations belonging to the <code>DocumentType</code> node.</p>
494
495 <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
496 same value as the <code>notations</code> attribute (defined in the
497 <code>DocumentType</code> interface) of the same node.</p>
498
499 <div class="note memo">
500 <p>This attribute is part of the interface for historical reason.</p>
501 <p>Implementations are not required to implement the
502 <code>notations</code> attribute twice (for <code>DocumentType</code>
503 and <code>DocumentTypeDefinition</code> interfaces); they share exactly
504 same definition.</p>
505 </div></dd>
506 <!--
507 If the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node is
508 created from an XML document, duplicate notation declarations, if any, in DTD
509 [['''MUST NOT''']] result in a node in the [CODE(DOMi)@en[[[NamedNodeMap]]]]
510 object and only the first declaration [['''MUST''']] be
511 made available as a [CODE(DOMi)@en[[[Notation]]]] node.
512
513 ;; This definition is based on one for the
514 [CODE(DOMa)@en[[[notations]]]] attribute of the
515 [CODE(DOMi)@en[[[DocumentType]]]] interface in DOM XML module.
516 Since duplication is violation to the Validity Constraint,
517 XML parsers might vary on how notations are notified to
518 the application. In particular, [CODE(InfoProp)@en[[[notations]]]]
519 property of the document information item in XML Information Set
520 is so defined that in case ''any'' notation is declared for
521 multiple times then the property has no value.
522
523 The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]
524 object that contains all the [CODE(DOMi)@en[[[Notation]]]] nodes
525 representing notations belong to the node. The returned
526 [CODE(DOMi)@en[[[NamedNodeMap]]]] object [['''MUST''']] be read-only if and only if
527 the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live
528 and therefore any change of read-only flag on the node is immediately
529 reflected by that of the object.
530 -->
531
532 <dt class=ed>@@ other members...
533 </dl>
534
535 <div class=ed>
536 <p>A future version of this interface might define the
537 <code>parameterEntities</code> and getter/setter for parameter entities.
538 </div>
539
540 </div>
541
542 <div class=section id=section-elementtypedefinition>
543 <h3>The <code>ElementTypeDefinition</code> Interface</h3>
544
545 <pre class=idl><code>interface <dfn id=ElementTypeDefinition><code>ElementTypeDefinition</code></dfn> {
546
547 }</code></pre>
548
549 <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
550
551 [3] The getter of the [CODE(DOMa)@en[[[attributes]]]] attribute
552 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
553 [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
554
555 [4] The getter of the [CODE(DOMa)@en[[[baseURI]]]] attribute
556 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
557 [['''MUST''']] return the [CODE(DOMa)@en[[[baseURI]]]]
558 of the [CDOE(DOMa)@en[[[ownerDocument]]]] of the
559 [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object.
560 Note that it might be [CODE(IDL)@en[[[null]]]].
561
562 [1] The getter of the [CODE(DOMa)@en[[[nodeName]]]] attribute
563 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] object
564 [['''MUST''']] return the name of the element type.
565
566 [2] The getters of the [CODE(DOMa)@en[[[nodeValue]]]]
567 and [CODE(DOMa)@en[[[textContent]]]] attributes
568 of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
569 object [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
570
571 ;; Thus, the setter of these attributes do nothing.
572
573 The setter of the [CODE(DOMa)@en[[[textContent]]]]
574 attribute of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
575 object [['''MUST NOT''']] throw a
576 [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]].
577
578 ** The [CODE(DOMi)@en[ElementTypeDefinition]] Interface
579
580 [5] The
581 [DFN@en[[CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]] attribute]]
582 of the [CODE(DOMi)@en[[[ElementTypeDefinition]]]]
583 interface is defined in [[manakai//DOM Extensions]>>50].</pre>
584 </div>
585
586 <div class=section id=section-attributedefinition>
587 <h3>The <code>AttributeDefinition</code> Interface</h3>
588
589 <pre class=idl><code>interface <dfn id=AttributeDefinition><code>AttributeDefinition</code></dfn> {
590
591 }</code></pre>
592
593 <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
594
595 [3] The getter of the [CODE(DOMa)@en[[[attributes]]]] attribute
596 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
597 [['''MUST''']] return [CODE(IDL)@en[[[null]]]].
598
599 [9] The getter of the [CODE(DOMa)@en[[[baseURI]]]] attribute
600 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
601 [['''MUST''']] return the [CODE(DOMa)@en[[[baseURI]]]]
602 of the [CDOE(DOMa)@en[[[ownerDocument]]]] of the
603 [CODE(DOMi)@en[[[AttributeDefinition]]]] object.
604 Note that it might be [CODE(IDL)@en[[[null]]]].
605
606 [1] The getter of the [CODE(DOMa)@en[[[nodeName]]]] attribute
607 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
608 [['''MUST''']] return the name of the attribute.
609
610 [2] The getter of the [CODE(DOMa)@en[[[nodeValue]]]] attribute
611 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
612 [['''MUST''']] return the normalized default value
613 of the attribute.
614
615 @@
616
617 [4] The getter of the [CODE(DOMa)@en[[[textContent]]]]
618 attribute of an [CODE(DOMi)@en[[[AttributeDefinition]]]]
619 object [['''MUST''']] behave as if it were an
620 [CODE(DOMi)@en[[[Attr]]]] object.
621
622 The setter of the [CODE(DOMa)@en[[[textContent]]]] attribute
623 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
624 [['''MUST''']] behave as if the following algorithm
625 is performed:
626 = If the [CODE(DOMi)@en[[[AttributeDefinition]]]]
627 object is read-only, then throw an
628 [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]].
629 = Remove any child node the node has.
630 = If the new value is not empty and not [CODE(IDL)@en[[[null]]]],
631 then create a [CODE(DOMi)@en[[[Text]]]] node
632 whose [CODE(DOMa)@en[[[data]]]] is the new value
633 and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]].
634
635 ** Definition groups
636
637 [6] The
638 [DFN@en[definition group [CODE(DOM)@en[[[DeclaredValueType]]]]]]
639 contains integers indicating the type of
640 attribute value:
641 ,[CODE(DOMc)@en[[[NO_TYPE_ATTR]]]],[CODE(IDL)[[[0]]]],The attribute value type corresponding to [[no value]] in XML Information Set.
642 ,[CODE(DOMc)@en[[[CDATA_ATTR]]]],[CODE(IDL)[[[1]]]],The attribute value type is [CODE(XML)@en[[[CDATA]]]].
643 ,[CODE(DOMc)@en[[[ID_ATTR]]]],[CODE(IDL)[[[2]]]],The attribute value type is [CODE(XML)@en[[[ID]]]].
644 ,[CODE(DOMc)@en[[[IDREF_ATTR]]]],[CODE(IDL)[[[3]]]],The attribute value type is [CODE(XML)@en[[[IDREF]]]].
645 ,[CODE(DOMc)@en[[[IDREFS_ATTR]]]],[CODE(IDL)[[[4]]]],The attribute value type is [CODE(XML)@en[[[IDREFS]]]].
646 ,[CODE(DOMc)@en[[[ENTITY_ATTR]]]],[CODE(IDL)[[[5]]]],The attribute value type is [CODE(XML)@en[[[ENTITY]]]].
647 ,[CODE(DOMc)@en[[[ENTITIES_ATTR]]]],[CODE(IDL)[[[6]]]],The attribute value type is [CODE(XML)@en[[[ENTITIES]]]].
648 ,[CODE(DOMc)@en[[[NMTOKEN_ATTR]]]],[CODE(IDL)[[[7]]]],The attribute value type is [CODE(XML)@en[[[NMTOKEN]]]].
649 ,[CODE(DOMc)@en[[[NMTOKENS_ATTR]]]],[CODE(IDL)[[[8]]]],The attribute value type is [CODE(XML)@en[[[NMTOKENS]]]].
650 ,[CODE(DOMc)@en[[[NOTATION_ATTR]]]],[CODE(IDL)[[[9]]]],The attribute value type is [CODE(XML)@en[[[NOTATION]]]].
651 ,[CODE(DOMc)@en[[[ENUMERATION_ATTR]]]],[CODE(IDL)[[[10]]]],The attribute value is enumeration type.
652 ,[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."
653
654 The type of these constants are
655 [CODE(IDL)@en[[[unsigned]] [[short]]]].
656
657 If no attribute type information is provided,
658 or if the source of that information does not
659 distinguish [[no value]] and [[unknown]] as in
660 XML Information Set, then the
661 [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]] value
662 [['''MUST''']] be used.
663
664 ;; A newly created [CODE(DOMi)@en[[[AttributeDefinition]]]]
665 object by [CODE(DOMm)@en[[[createAttributeDefinition]]]]
666 method has [CODE(DOMa)@en[[[declaredType]]]] attribute
667 set to [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]].
668
669 If the source of the attribute type information
670 does not distinguish [[no value]] and / or [[unknown]]
671 and [CODE(XML)@en[[[CDATA]]]], then the
672 [CODE(DOMc)@en[[[CDATA_ATTR]]]] value [['''MUST''']]
673 be used.
674
675 [11]
676 In Perl binding, the objects implementing the
677 [CODE(DOMi)@en[[[Attr]]]] interface [['''MUST''']]
678 also implement the [CODE(DOM)@en[[[DeclaredValueType]]]]
679 constant group.
680
681 [7] The
682 [DFN@en[definition group [CODE(DOM)@en[[[DefaultValueType]]]]]]
683 contains integers indicating the type of
684 default attribute value:
685 ,[CODE(DOMc)@en[[[UNKNOWN_DEFAULT]]]],[CODE(IDL)[[[0]]]],The default value is unknown.
686 ,[CODE(DOMc)@en[[[FIXED_DEFAULT]]]],[CODE(IDL)[[[1]]]],The default value is provided and the attribute is [CODE(XML)@en[#[[FIXED]]]] to that value.
687 ,[CODE(DOMc)@en[[[REQUIRED_DEFAULT]]]],[CODE(IDL)[[[2]]]],An attribute specification is [CODE(XML)@en[#[[REQUIRED]]]] for the attribute.
688 ,[CODE(DOMc)@en[[[IMPLIED_DEFAULT]]]],[CODE(IDL)[[[3]]]],The default value is [CODE(XML)@en[#[[IMPLIED]]]].
689 ,[CODE(DOMc)@en[[[EXPLICIT_DEFAULT]]]],[CODE(IDL)[[[4]]]],The default value is provided but the attribute is not fixed to it.
690
691 The type of these constants are
692 [CODE(IDL)@en[[[unsigned]] [[short]]]].
693
694 If the source of the attribute default value type
695 does not distinguish the [CODE(XML)@en[#[[IMPLIED]]]]
696 default and unknown default, then the
697 [CODE(DOMc)@en[[[IMPLIED_DEFAULT]]]] value
698 [['''MUST''']] be used.
699
700 ;; A newly created [CODE(DOMi)@en[[[AttributeDefinition]]]]
701 object by [CODE(DOMm)@en[[[createAttributeDefinition]]]]
702 method has [CODE(DOMa)@en[[[declaredType]]]] attribute
703 set to [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]].
704
705 ** Tree-relationship Attributes
706
707 [10]
708 The
709 [DFN@en[[CODE(DOMa)@en[[[ownerElementTypeDefinition]]]] attribute]]
710 of the [CODE(DOMi)@en[[[AttributeDefinition]]]] interface
711 is read-only and of type
712 [CODE(DOMi)@en[[[ElementTypeDefinition]]]].
713 It is the [CODE(DOMi)@en[[[ElementTypeDefinition]]]] node
714 which the [CODE(DOMi)@en[[[AttributeDefinition]]]] node
715 belong to.
716
717 If the [CODE(DOMi)@en[[[AttributeDefinition]]]] node
718 is included in the [CODE(DOMa)@en[[[attributeDefinitions]]]]
719 list of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] node,
720 then the attribute [['''MUST''']] return the
721 [CODE(DOMi)@en[[[ElementTypeDefinition]]]] node.
722 Otherwise, it [['''MUST''']] return [CODE(DOM)@en[[[null]]]].
723
724 ;; This attribute is analogue to the
725 [CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]] attribute
726 for [CODE(DOMi)@en[[[ElementTypeDefinition]]]],
727 [CODE(DOMi)@en[[[Entity]]]], and [CODE(DOMi)@en[[[Notation]]]]
728 nodes, or the [CODE(DOMa)@en[[[ownerElement]]]]
729 attribute for [CODE(DOMi)@en[[[Attr]]]] nodes.
730
731 ** Attributes
732
733 [5]
734 The [DFN@en[[CODE(DOMa)@en[[[declaredType]]]] attribute]]
735 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
736 represents the type of the attribute value.
737
738 This attribute is read-write.
739 The type of the attribute is
740 [CODE(IDL)@en[[[unsigned]] [[short]]]]. It is expected
741 that this attribute has a value from the definition group
742 [CODE(DOM)@en[[[DeclaredValueType]]]].
743
744 The getter [['''MUST''']] return a value associated
745 to this attribute.
746
747 The setter [['''MUST''']]
748 throw a [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]]
749 [CODE(DOMi)@en[[[DOMException]]]] if the
750 [CODE(DOMi)@en[[[AttributeDefinition]]]] object is read-only.
751 Otherwise, the setter [['''MUST''']] set the specified
752 value as the value associated to this attribute.
753
754 If a parser create an [CODE(DOMi)@en[[[AttributeDefinition]]]]
755 object, then it [['''MUST''']] set a value
756 from the [CODE(DOM)@en[[[DeclaredValueType]]]]
757 definition group.
758
759 [8]
760 The [DFN@en[[CODE(DOMa)@en[[[defaultType]]]] attribute]]
761 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object
762 represents the type of the attribute default value.
763
764 This attribute is read-write.
765 The type of the attribute is
766 [CODE(IDL)@en[[[unsigned]] [[short]]]]. It is expected
767 that this attribute has a value from the definition group
768 [CODE(DOM)@en[[[DefaultValueType]]]].
769
770 The getter [['''MUST''']] return a value associated
771 to this attribute.
772
773 The setter [['''MUST''']]
774 throw a [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]]
775 [CODE(DOMi)@en[[[DOMException]]]] if the
776 [CODE(DOMi)@en[[[AttributeDefinition]]]] object is read-only.
777 Otherwise, the setter [['''MUST''']] set the specified
778 value as the value associated to this attribute.
779
780 If a parser create an [CODE(DOMi)@en[[[AttributeDefinition]]]]
781 object, then it [['''MUST''']] set a value
782 from the [CODE(DOM)@en[[[DefaultValueType]]]]
783 definition group.</pre>
784 </div>
785
786 </div>
787
788
789
790
791
792 <div id="references" class="section reference">
793 <h2>References</h2>
794
795 <div id="normative-references" class="section normative reference">
796 <h3>Normative References</h3>
797
798 <dl>
799 <dt id=ref-DOM3CORE>DOM3CORE</dt>
800 <dd class=ed>@@ W3C DOM Level 3 Core</dd>
801 <dt id=ref-DOMDTDEF>DOMDTDEF</dt>
802 <dd class=ed>@@ manakai's extension to DOM for document type definitions</dd>
803 <dt id="ref-KEYWORDS">KEYWORDS</dt>
804 <dd><cite><a href="urn:ietf:rfc:2119">Key words for use in
805 <abbr>RFCs</abbr> to Indicate Requirement Levels</a></cite>,
806 <abbr title="Internet Engineering Task Force">IETF</abbr>
807 <a href="urn:ietf:bcp:14"><abbr title="Best Current Practice">BCP</abbr>
808 14</a>, <abbr title="Request for Comments">RFC</abbr> 2119,
809 <time datetime=1997-03>March 1997</time>.
810 <em>This</em> version of the specification is referenced.</dd>
811 <dt id=ref-INFOSET>INFOSET</dt>
812 <dd class=ed>@@</dd>
813 <dt id=ref-XML10">XML10</dt>
814 <dd><cite><a href="http://www.w3.org/TR/2006/REC-xml-20060816">Extensible
815 Markup Language (<abbr>XML</abbr>) 1.0 (Fourth Edition)</a></cite>,
816 <abbr>W3C</abbr> Recommendation, <time datetime=2006-08-16>16 August
817 2006</time>, edited in place <time datetime=2006-09-29>29 September
818 2006</time>. Tje latest version of the specification is available at
819 <code class=uri>&lt;<a href="http://www.w3.org/TR/xml">http://www.w3.org/TR/xml</a>&gt;</code>.
820 <em>This</em> version of the specification is referenced.</dd>
821 <dt id=ref-XML11>XML11</dt>
822 <dd class=ed>@@</dd>
823 </dl>
824 </div>
825
826 <div id="informative-references" class="section informative reference">
827 <h3>Non$B!>(Bnormative References</h3>
828
829 <dl class=ed>
830 <dt id=ref-CSS>CSS</dt>
831 <dd><cite><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719">Cascading
832 Style Sheets Level 2 Revision 1 (<abbr>CSS</abbr> 2.1)
833 Specification</a></cite>,
834 <abbr title="World Wide Web Consortium">W3C</abbr> Candidate
835 Recommendation, <time datetime=2007-07-19>19 July 2007</time>.
836 Work in progress. The latest version of the specification is
837 available at
838 <code class=URI>&lt;<a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a>></code>.</dd>
839 <dt id=ref-CSSOM>CSSOM</dt>
840 <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
841 Style Sheets Object Model (<abbr>CSSOM</abbr>)</a></cite>,
842 <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
843 <time datetime=2007-06-18>18 June 2007</time>. Work in progress.
844 The latest Editor's Draft of the specification is available at
845 <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>
846 <dt id=ref-HTML5>HTML5</dt>
847 <dd><cite><a href="http://whatwg.org/html5"><abbr>HTML</abbr> 5</a></cite>,
848 <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>
849 Working Draft. Work in progress.</dd>
850 <dt id=ref-SAPI>SAPI</dt>
851 <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>,
852 <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
853 <time datetime=2007-08-29>29 August 2007</time>. Work in progress.
854 The latest Editor's Draft of the specification is available at
855 <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>.
856 The latest published version of the specification is available at
857 <code class=URI>&lt;<a href="http://www.w3.org/TR/selectors-api/">http://www.w3.org/TR/selectors-api/</a>></code>.</dd>
858 <dt id=XBL2>XBL2</dt>
859 <dd><cite><a href="http://www.mozilla.org/projects/xbl/xbl2.html"><abbr>XBL</abbr>
860 2.0</a></cite>, Mozilla.org, <time datetime=2007-03-15>15 Mar 2007</time>.
861 Work in progress. The latest
862 <abbr title="World Wide Web Consortium">W3C</abbr>$B!>(Bpublished
863 version of the specification is available at
864 <code class=URI>&lt;<a href="http://www.w3.org/TR/xbl/">http://www.w3.org/TR/xbl/</a>></code>.</dd>
865 <dt id=ref-XML5>XML5</dt>
866 <dd class=ed>@@</dd>
867 </dl>
868 </div>
869
870 </div>
871
872 </body>
873 </html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24