/[suikacvs]/markup/xml/domdtdef/domdtdef-work.en.html
Suika

Contents of /markup/xml/domdtdef/domdtdef-work.en.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13 - (hide annotations) (download) (as text)
Mon Dec 3 11:57:22 2007 UTC (16 years, 11 months ago) by wakaba
Branch: MAIN
Changes since 1.12: +52 -9 lines
File MIME type: text/html
publicId, systemId, internalSubset; IDL definitions for DocumentTypeDefinition methods

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24