/[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.4 - (show annotations) (download) (as text)
Sun Dec 2 05:00:26 2007 UTC (16 years, 5 months ago) by wakaba
Branch: MAIN
Changes since 1.3: +596 -0 lines
File MIME type: text/html
Definitions copied from wiki

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24