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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by wakaba, Sun Dec 2 05:32:03 2007 UTC revision 1.13 by wakaba, Mon Dec 3 11:57:22 2007 UTC
# Line 10  Line 10 
10    
11  <div class="header">  <div class="header">
12  <h1>DOM Document Type Definition Module</h1>  <h1>DOM Document Type Definition Module</h1>
13  <h2>Working Draft <time datetime=2007-12-01>1 December 2007</time></h2>  <h2>Working Draft <time datetime=2007-12-03>3 December 2007</time></h2>
14    
15  <dl class="versions-uri">  <dl class="versions-uri">
16  <dt>This Version</dt>  <dt>This Version</dt>
# Line 125  raised is undefined.</p> Line 125  raised is undefined.</p>
125  interface.</p>  interface.</p>
126    
127  <p class=ed>@@ ref to DOM Binding Spec</p>  <p class=ed>@@ ref to DOM Binding Spec</p>
128    
129    <p>If the <code>strictErrorChecking</code> attribute of the
130    <code>Document</code> node is <code>false</code>, the methods are
131    not required to raise exceptions <span class=ed>[DOM3]</span>.</p>
132  </div>  </div>
133    
134  <div class=section id=dom-dtdef>  <div class=section id=dom-dtdef>
# Line 139  consists of three interfaces:</p> Line 143  consists of three interfaces:</p>
143  <li><a href="#AttributeDefinition"><code>AttributeDefinition</code></a></li>  <li><a href="#AttributeDefinition"><code>AttributeDefinition</code></a></li>
144  </ul>  </ul>
145    
146  <p>In addition, it adds methods, attributes, and/or constants to interfaces  <p>In addition, it modifies interfaces
147  <a href="#Node"><code>Node</code></a>,  <a href="#Node"><code>Node</code></a>,
148    <a href="#DocumentType"><code>DocumentType</code></a>,
149  <a href="#Entity"><code>Entity</code></a>,  <a href="#Entity"><code>Entity</code></a>,
150  <a href="#EntityReference"><code>EntityReference</code></a>, and  <a href="#EntityReference"><code>EntityReference</code></a>,
151  <a href="#Notation"><code>Notation</code></a>.  <a href="#Notation"><code>Notation</code></a>, and
152  It modifies semantics of some of methods and attributes in  <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>.</p>
 <a href="#Node"><code>Node</code></a> and  
 <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>  
 interfaces, for the support of new interfaces.</p>  
153    
154  <div class=section id=features>  <div class=section id=features>
155  <h3>Feature Name</h3>  <h3>Feature Name</h3>
# Line 173  aforementioned cases.</p> Line 175  aforementioned cases.</p>
175  </div>  </div>
176    
177  <div class=section id=section-documentxdoctype>  <div class=section id=section-documentxdoctype>
178  <h2>The <code>DocumentXDoctype</code> Interface</h2>  <h3>The <code>DocumentXDoctype</code> Interface</h3>
179    
180  <pre class=idl><code>interface <dfn id=DocumentXDoctype><code>DocumentXDoctype</code></dfn> {  <pre class=idl><code>interface <dfn id=DocumentXDoctype><code>DocumentXDoctype</code></dfn> {
181    DocumentType <a href="#createDocumentTypeDefinition">createDocumentTypeDefinition</a>    DocumentType <a href="#createDocumentTypeDefinition">createDocumentTypeDefinition</a>
182      (in DOMString <a href="#createDocumentTypeDefinition-name"><var>name</var></a>)      (in DOMString <a href="#createDocumentTypeDefinition-name"><var>name</var></a>)
183      raises (DOMException);      raises (DOMException);
184    ElementTypeDefinition <a href="#createElementTypeDefinition">createElementTypeDefinition</a>    <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#createElementTypeDefinition">createElementTypeDefinition</a>
185      (in DOMString <a href="#createElementTypeDefinition-name"><var>name</var></a>)      (in DOMString <a href="#createElementTypeDefinition-name"><var>name</var></a>)
186      raises (DOMException);      raises (DOMException);
187    AttributeDefinition <a href="#createAttributeDefinition">createAttributeDefinition</a>    <a href="#AttributeDefinition">AttributeDefinition</a> <a href="#createAttributeDefinition">createAttributeDefinition</a>
188      (in DOMString <a href="#createAttributeDefinition-name"><var>name</var></a>)      (in DOMString <a href="#createAttributeDefinition-name"><var>name</var></a>)
189      raises (DOMException);      raises (DOMException);
190    Entity <a href="#createGeneralEntity">createGeneralEntityDefinition</a>    <a href="#Entity">Entity</a> <a href="#createGeneralEntity">createGeneralEntityDefinition</a>
191      (in DOMString <a href="#createGeneralEntity-name"><var>name</var></a>)      (in DOMString <a href="#createGeneralEntity-name"><var>name</var></a>)
192      raises (DOMException);      raises (DOMException);
193    Notation <a href="#createNotation">createNotation</a>    <a href="#Notation">Notation</a> <a href="#createNotation">createNotation</a>
194      (in DOMString <a href="#createNotation-name"><var>name</var></a>)      (in DOMString <a href="#createNotation-name"><var>name</var></a>)
195      raises (DOMException);      raises (DOMException);
196  }</code></pre>  }</code></pre>
# Line 239  method</dt> Line 241  method</dt>
241      <p>The <dfn id=createElementTypeDefinition-name class=dom-param><var>name</var></dfn>      <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      parameter is the name of the element type defined by the element
243      type definition.</p>      type definition.</p>
244    
245        <p>When invoked, the method <em class=rfc2119>MUST</em> create and
246        return an
247        <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
248        node with the following attributes:</p>
249        <dl>
250        <dt><a href="#attributeDefinitions"><code>attributeDefinitions</code></a></dt>
251          <dd>An empty <code>NamedNodeMap</code> object.</dd>
252        <dt><code>attributes</code>, <code>parentNode</code></dt>
253          <dd><code>null</code>.</dd>
254        <dt><code>childNodes</code></dt>
255          <dd>An empty <code>NodeList</code> object.</dd>
256        <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
257          <dd><code>false</code>.</dd>
258        <dt><code>nodeName</code></dt>
259          <dd><a href="#createElementTypeDefinition-name"><var>name</var></a>.</dd>
260        <dt><code>ownerDocument</code></dt>
261          <dd>The <code>Document</code> node over which the method is invoked.</dd>
262        <dt><a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a></dt>
263          <dd><code>null</code>.</dd>
264        <dt class=ed>@@ Ensure all attributes are defined</dt>
265        </dl>
266    </dd>    </dd>
267  <dt><dfn id=createAttributeDefinition class=dom-method><code>createAttributeDefinition</code></dfn>,  <dt><dfn id=createAttributeDefinition class=dom-method><code>createAttributeDefinition</code></dfn>,
268  method</dt>  method</dt>
# Line 248  method</dt> Line 272  method</dt>
272      <p>The <dfn id=createAttributeDefinition-name class=dom-param><var>name</var></dfn>      <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      parameter is the name of the attribute defined by the attribute
274      definition.</p>      definition.</p>
275    
276        <p>When invoked, the method <em class=rfc2119>MUST</em> create and
277        return an
278        <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
279        node with the following attributes:</p>
280        <dl>
281        <dt><code>allowedTokens</code></dt>
282          <dd>An empty <code>DOMStringList</code> object.</dd>
283        <dt><code>attributes</code>,
284        <a href="#ownerElementTypeDefinition"><code>ownerElementTypeDefinition</code></a>,
285        and <code>parentNode</code></dt>
286          <dd><code>null</code>.</dd>
287        <dt><code>childNodes</code></dt>
288          <dd>An empty <code>NodeList</code> object.</dd>
289        <dt><code>declaredType</code></dt>
290          <dd><a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</dd>
291        <dt><code>defaultType</code></dt>
292          <dd><a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</dd>
293        <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
294          <dd><code>false</code>.</dd>
295        <dt><code>nodeName</code></dt>
296          <dd><a href="#createAttributeDefinition-name"><var>name</var></a>.</dd>
297        <dt><code>ownerDocument</code></dt>
298          <dd>The <code>Document</code> node over which the method is invoked.</dd>
299        <dt class=ed>@@ Ensure all attributes are defined</dt>
300        </dl>
301    
302        <div class=ed>
303        <p>@@ Should we keep these statements?:
304    However, if the &lt;cfg::cfg|xml-id> configuration
305    parameter is set to <code>true</code> and the <var>name</var>
306    is <code>xml:id</code>, then the [CODE(DOMa)@en[[[declaredType]]]]
307    attribute is set to <code>ID_ATTR</code>.
308    [CODE(DOMa)@en[[[defaultType]]]]?</p>
309        </div>
310    </dd>    </dd>
311  <dt><dfn id=createGeneralEntity class=dom-method><code>createGeneralEntity</code></dfn>,  <dt><dfn id=createGeneralEntity class=dom-method><code>createGeneralEntity</code></dfn>,
312  method</dt>  method</dt>
313    <dd>    <dd>
314      <p>This method creates a <code>Entity</code> node with the      <p>This method creates a <a href="#Entity"><code>Entity</code></a> node
315      specified name, which represents a general entity, belonging to the      with the specified name, which represents a general entity, belonging to
316      document.</p>      the document.</p>
317      <p>The <dfn id=createGeneralEntity-name class=dom-param><var>name</var></dfn>      <p>The <dfn id=createGeneralEntity-name class=dom-param><var>name</var></dfn>
318      parameter is the name of the general entity.</p>      parameter is the name of the general entity.</p>
319    
320        <p>When invoked, the method <em class=rfc2119>MUST</em> create and return
321        an <a href="#Entity"><code>Entity</code></a> node with the following
322        attributes:</p>
323        <dl>
324        <dt><code>attributes</code>, <code>notationName</code>,
325        <a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a>,
326        and <code>parentNode</code></dt>
327          <dd><code>null</code>.</dd>
328        <dt><code>childNodes</code></dt>
329          <dd>An empty <code>NodeList</code> object.</dd>
330        <dt><code>manakaiDeclarationBaseURI</code>,
331        <code>manakaiEntityBaseURI</code>, and
332        <code>manakaiEntityURI</code> <span class=ed>@@ ref</span></dt>
333          <dd>No explicit value is set.</dd>
334        <dt><code>manakaiHasReplacementTree</code> and
335        <code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
336          <dd><code>false</code>.</dd>
337        <dt><code>nodeName</code></dt>
338          <dd><a href="#createGeneralEntity-name"><var>name</var></a>.</dd>
339          <dd>
340            <div class="note memo">
341              <p>It is not an error for
342              <a href="#createGeneralEntity-name"><var>name</var></a> matching
343              to the name of one of predefined general parsed entities in
344              <abbr>XML</abbr> or <abbr>HTML</abbr>.  For example,
345              <a href="#createGeneralEntity-name"><var>name</var></a> might be
346              <code>amp</code>, resulting in an
347              <a href="#Entity"><code>Entity</code></a> node
348              with its <code>nodeName</code> attribute set to <code>amp</code>.</p>
349            </div>
350          </dd>
351        <dt><code>ownerDocument</code></dt>
352          <dd>The <code>Document</code> node over which the method is invoked.</dd>
353        <dt><code>publicId</code>, and <code>systemId</code></dt>
354          <dd><code>null</code>.</dd>
355          <dd class=ed>@@ publicId and systemId should be empty string?</dd>
356        <dt class=ed>@@ Ensure all attributes are defined</dd>
357        </dl>
358    </dd>    </dd>
359  <dt><dfn id=createNotation class=dom-method><code>createNotation</code></dfn>,  <dt><dfn id=createNotation class=dom-method><code>createNotation</code></dfn>,
360  method</dt>  method</dt>
# Line 265  method</dt> Line 363  method</dt>
363      specified name, belonging to the document.</p>      specified name, belonging to the document.</p>
364      <p>The <dfn id=createNotation-name class=dom-param><var>name</var></dfn>      <p>The <dfn id=createNotation-name class=dom-param><var>name</var></dfn>
365      parameter is the name of the notation.</p>      parameter is the name of the notation.</p>
366    
367        <p>When invoked, the method <em class=rfc2119>MUST</em> create and return
368        a <code>Notation</code> node with the following attributes:</p>
369        <dl>
370        <dt><code>attributes</code>,
371        <a href="#ownerDocumentTypeDefinition"><code>ownerDocumentTypeDefinition</code></a>,
372        and <code>parentNode</code></dt>
373          <dd><code>null</code>.</dd>
374        <dt><code>childNodes</code></dt>
375          <dd>An empty <code>NodeList</code> object.</dd>
376        <dt><code>manakaiDeclarationBaseURI</code></dt>
377          <dd>No explicit value is set.</dd>
378        <dt><code>manakaiReadOnly</code> <span class=ed>[manakai]</span></dt>
379          <dd><code>false</code>.</dd>
380        <dt><code>nodeName</code></dt>
381          <dd><a href="#createNotation-name"><var>name</var></a>.</dd>
382        <dt><code>ownerDocument</code></dt>
383          <dd>The <code>Document</code> node over which the method is invoked.</dd>
384        <dt><code>publicId</code> and <code>systemId</code></dt>
385          <dd><code>null</code>.</dd>
386          <dd class=ed>@@ publicId and systemId should be empty string?</dd>
387        <dt class=ed>@@ Ensure all attributes are defined</dt>
388        </dl>
389    </dd>    </dd>
390  </dl>  </dl>
391    
392  <pre class=ed>  <p>These methods <em class=rfc2119>MUST</em> raise an
393    <code>INVALID_CHARACTER_ERR</code> exception <span class=ed>@@ ref</span>
394  [8]  if <var>name</var> is <em>not</em> a legal <code>Name</code> according to
395  The [CODE(DOMm)@en[[[createElementTypeDefinition]]]]  the <abbr>XML</abbr> version in use, as specified in the
396  method [['''MUST''']] create an  <code>xmlVersion</code> attribute of the <code>Document</code> node.</p>
397  [CODE(DOMi)@en[[[ElementTypeDefinition]]]]  
398  object with the following attribute values:  <div class="note memo">
399  - [CODE(DOMa)@en[[[attributeDefinitions]]]]:  <p>Non$B!>(B<abbr>XML</abbr> case is intentionally left unspecified for now,
400  An empty [CODE(DOMi)@en[[[NamedNodeMap]]]].  since <abbr>DOM3</abbr> specification <span class=ed>@@ ref</span> does not
401  - [CODE(DOMa)@en[[[attributes]]]],  define it for <code>Document</code> methods.</p>
 [CODE(DOMa)@en[[[parentNode]]]]: [CODE(DOM)@en[[[null]]]].  
 - [CODE(DOMa)@en[[[childNodes]]]]: An empty  
 [CODE(DOMi)@en[[[NodeList]]]].  
 - [CODE(DOMa)@en[[[manakaiReadOnly]]]]:  
 [CODE(IDL)@en[[[false]]]].  
 - [CODE(DOMa)@en[[[nodeName]]]]: [CODE(DOMp)@en[[[name]]]].  
 - [CODE(DOMa)@en[[[ownerDocument]]]]: The  
 [CODE(DOMi)@en[[[Document]]]] node on which the method  
 is invoked.  
 - [CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]]:  
 [CODE(IDL)@en[[[null]]]].  
   
 @@ Ensure all attributes are defined  
   
 [9] The [CODE(DOMm)@en[[[createAttributeDefinition]]]]  
 method [['''MUST''']] create an  
 [CODE(DOMi)@en[[[AttributeDefinition]]]]  
 object with the following attribute values:  
 - [CODE(DOMa)@en[[[allowedTokens]]]]:  
 An empty [CODE(DOMi)@en[[[DOMStringList]]]].  
 - [CODE(DOMa)@en[[[attributes]]]],  
 [CODE(DOMa)@en[[[parentNode]]]]: [CODE(DOM)@en[[[null]]]].  
 - [CODE(DOMa)@en[[[childNodes]]]]: An empty  
 [CODE(DOMi)@en[[[NodeList]]]].  
 - [CODE(DOMa)@en[[[declaredType]]]]:  
 [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]].  
 - [CODE(DOMa)@en[[[defaultType]]]]:  
 [CODE(DOMc)@en[[[UNKNOWN_DEFAULT]]]].  
 - [CODE(DOMa)@en[[[manakaiReadOnly]]]]:  
 [CODE(IDL)@en[[[false]]]].  
 - [CODE(DOMa)@en[[[nodeName]]]]: [CODE(DOMp)@en[[[name]]]].  
 - [CODE(DOMa)@en[[[ownerDocument]]]]: The  
 [CODE(DOMi)@en[[[Document]]]] node on which the method  
 is invoked.  
 - [CODE(DOMa)@en[[[ownerElementTypeDefinition]]]]:  
 [CODE(IDL)@en[[[null]]]].  
   
 @@ Ensure all attributes are defined  
   
 @@ Should we keep these statements?:  
 However, if the <cfg::cfg|xml-id> configuration  
 parameter is set to <DOM::true> and the <P::name>  
 is <XA::xml:id>, then the [CODE(DOMa)@en[[[declaredType]]]]  
 attribute is set to  
 <C::AttributeDefinition.ID_ATTR>.  
 [CODE(DOMa)@en[[[defaultType]]]]?  
   
 [11] The [CODE(DOMm)@en[[[createGeneralEntity]]]]  
 method [['''MUST''']] create an [CODE(DOMi)@en[[[Entity]]]]  
 node with the following attribute values:  
 - [CODE(DOMa)@en[[[attributes]]]],  
 [CODE(DOMa)@en[[[parentNode]]]]: [CODE(DOM)@en[[[null]]]].  
 - [CODE(DOMa)@en[[[childNodes]]]]: An empty  
 [CODE(DOMi)@en[[[NodeList]]]].  
 - [CODE(DOMa)@en[[[manakaiDeclarationBaseURI]]]]:  
 No explicit value is set.  
 - [CODE(DOMa)@en[[[manakaiEntityBaseURI]]]]:  
 No explicit value is set.  
 - [CODE(DOMa)@en[[[manakaiEntityURI]]]]:  
 No explicit value is set.  
 - [CODE(DOMa)@en[[[manakaiHasReplacementTree]]]]:  
 [CODE(IDL)@en[[[false]]]].  
 - [CODE(DOMa)@en[[[manakaiReadOnly]]]]:  
 [CODE(IDL)@en[[[false]]]].  
 - [CODE(DOMa)@en[[[nodeName]]]]: [CODE(DOMp)@en[[[name]]]].  
 - [CODE(DOMa)@en[[[notationName]]]]: [CODE(DOM)@en[[[null]]]].  
 - [CODE(DOMa)@en[[[ownerDocument]]]]: The  
 [CODE(DOMi)@en[[[Document]]]] node on which the method  
 is invoked.  
 - [CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]]:  
 [CODE(IDL)@en[[[null]]]].  
 - [CODE(DOMa)@en[[[publicId]]]]: [CODE(DOM)@en[[[null]]]].  
 - [CODE(DOMa)@en[[[systemId]]]]: [CODE(DOM)@en[[[null]]]].  
   
 @@ Ensure all attributes are defined  
   
 @@ publicId and systemId should be empty string?  
   
 [13] The [CODE(DOMm)@en[[[createNotation]]]]  
 method [['''MUST''']] create a [CODE(DOMi)@en[[[Notation]]]]  
 node with the following attribute values:  
 - [CODE(DOMa)@en[[[attributes]]]],  
 [CODE(DOMa)@en[[[parentNode]]]]: [CODE(DOM)@en[[[null]]]].  
 - [CODE(DOMa)@en[[[childNodes]]]]: An empty  
 [CODE(DOMi)@en[[[NodeList]]]].  
 - [CODE(DOMa)@en[[[manakaiDeclarationBaseURI]]]]:  
 No explicit value is set.  
 - [CODE(DOMa)@en[[[manakaiReadOnly]]]]:  
 [CODE(IDL)@en[[[false]]]].  
 - [CODE(DOMa)@en[[[nodeName]]]]: [CODE(DOMp)@en[[[name]]]].  
 - [CODE(DOMa)@en[[[ownerDocument]]]]: The  
 [CODE(DOMi)@en[[[Document]]]] node on which the method  
 is invoked.  
 - [CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]]:  
 [CODE(IDL)@en[[[null]]]].  
 - [CODE(DOMa)@en[[[publicId]]]]: [CODE(DOM)@en[[[null]]]].  
 - [CODE(DOMa)@en[[[systemId]]]]: [CODE(DOM)@en[[[null]]]].  
   
 @@ Ensure all attributes are defined  
   
 [7]  
 These method [['''MUST''']] raise an  
 [CODE(DOMi)@en[[[INVALID_CHARACTER_ERR]]]]  
 [CODE(DOMi)@en[[[DOMException]]]]  
 if the [CODE(DOMp)@en[[[name]]]] is not a legal  
 name according to the XML version in use as  
 specified in the [CODE(DOMa)@en[[[xmlVersion]]]]  
 attribute of the [CODE(DOMi)@en[[[Document]]]] node.  
   
 ;; Non-XML case is intentionally left unspecified for now  
 since DOM3 does not define it.  
   
 ;; [CODE(DOMp)@en[[[name]]]] does not have to  
 be a namespace qualified name.  
   
 ;; Note also that it is not an error for the  
 [CODE(DOMp)@en[[[name]]]] parameter value  
 to match to the name of one of predefined general  
 parsed entities in XML or HTML.  
   
 ;; If the [CODE(DOMa)@en[[[strictErrorChecking]]]] attribute  
 is set to [CODE(IDL)@en[[[false]]]], then the implementation  
 is not required to raise this exception.  
402    
403  Otherwise, these method [['''MUST''']] return  <p><var>name</var> does not have to be a namespace qualified name.</p>
404  the newly created node.  </div>
 </pre>  
405    
406  </div>  </div>
407    
408  <div class=section id=section-documenttypedefinition>  <div class=section id=section-documenttypedefinition>
409  <h2>The <code>DocumentTypeDefinition</code> Interface</h2>  <h3>The <code>DocumentTypeDefinition</code> Interface</h3>
410    
411  <pre class=idl><code>interface <dfn id=DocumentTypeDefinition><code>DocumentTypeDefinition</code></dfn> {  <pre class=idl><code>interface <dfn id=DocumentTypeDefinition><code>DocumentTypeDefinition</code></dfn> {
412        readonly attribute NamedNodeMap <a href="#elementTypes">elementTypes</a>;
413      readonly attribute NamedNodeMap <a href="#generalEntities">generalEntities</a>;
414      readonly attribute NamedNodeMap <a href="#notations">notations</a>;
415    
416      <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#getElementTypeDefinitionNode">getElementTypeDefinitionNode</a>
417        (in DOMString <a href="#getElementTypeDefinitionNode-name"><var>name</var></a>);
418      <a href="#Entity">Entity</a> <a href="#getGeneralEntityNode">getGeneralEntityNode</a>
419        (in DOMString <a href="#getGeneralEntityNode-name"><var>name</var></a>);
420      <a href="#Notation">Notation</a> <a href="#getNotationNode">getNotationNode</a>
421        (in DOMString <a href="#getNotationNode-name"><var>name</var></a>);
422    
423      void <a href="#setElementTypeDefinitionNode">setElementTypeDefinitionNode</a>
424        (in DOMString <a href="#setElementTypeDefinitionNode-node"><var>node</var></a>)
425        raises (DOMException);
426      void <a href="#setGeneralEntityNode">setGeneralEntityNode</a>
427        (in DOMString <a href="#setGeneralEntityNode-node"><var>node</var></a>)
428        raises (DOMException);
429      void <a href="#setNotationNode">setNotationNode</a>
430        (in DOMString <a href="#setNotationNode-node"><var>node</var></a>)
431        raises (DOMException);
432  }</code></pre>  }</code></pre>
433    
434  <pre class=ed>  <pre class=ed>
# Line 422  feature, a [CODE(DOMi)@en[[[DocumentType Line 438  feature, a [CODE(DOMi)@en[[[DocumentType
438  must implement the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]  must implement the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]
439  interface.  See [[DOM XML Document Type Definition]>>3] for  interface.  See [[DOM XML Document Type Definition]>>3] for
440  details.  details.
441    </pre>
442    
443    <dl>
444  ** Children  <dt><dfn id=elementTypes class=dom-attr><code>elementTypes</code></dfn> of
445    type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
446  [2] The [DFN@en[[CODE(DOMa)@en[[[elementTypes]]]] attribute]]    <dd><p>A live <code>NamedNodeMap</code> object that contains all the element
447  of the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interface    type definitions belonging to the <code>DocumentType</code> node.</p>
448  is a live [CODE(DOMi)@en[[[NamedNodeMap]]]] object that  
449  contains all element types belongs to the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]    <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
450  node.  The type of the attribute is [CODE(DOMi)@en[[[NamedNodeMap]]]].    <code>NamedNodeMap</code> object that contains all the
451  The attribute is read-only.    <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>
452      nodes belonging to the <code>DocumentType</code> node.  The
453  What are contained in this collection depends on how    <code>NamedNodeMap</code> object <em class=rfc2119>MUST</em> be read$B!>(Bonly
454  the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node was created.  If the    if and only if the node is read$B!>(Bonly.  The <code>NamedNodeMap</code>
455  node was created as the result of parsing of an XML document,    object <em class=rfc2119>MUST</em> be live and the same object
456  it [['''MUST''']]  contain all element types whose element type and / or    <em class=rfc2119>MUST</em> be returned for any invocation.</p>
457  attribute definition list declaration are encountered by and provided for the DOM  
458  implementation from the XML processor.  Note that the XML processor might not    <p>If the <code>DocumentType</code> node is created during the process
459  provide a part of or entire such information depending on the configuration.    to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, the following
460  If more than one declarations for an element type or an attribute is available    requirements are applied:  The <code>NamedNodeMap</code> object in the
461  at the time of the definition node construction, then declarations other than    <a href="#elementTypes"><code>elementType</code></a> attribute
462  the first ones [['''MUST''']] be discarded.    <em class=rfc2119>MUST</em> be so transformed that the object contains
463      the <code>ElementTypeDefinition</code> nodes for the element types
464  The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]]    whose name is presented as the <code>Name</code> of the element type or
465  object that contains all the [CODE(DOMi)@en[[[ElementTypeDefinition]]]] nodes    attribute definition list declarations processed by the <abbr>XML</abbr>
466  belong to the node.  The returned [CODE(DOMi)@en[[[NamedNodeMap]]]] object    processor.  If there is more than one element type declarations for an
467  [['''MUST''']] be read-only if and only if the node is read-only.    element type, then the declarations other than the first one
468  Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live    <em class=rfc2119>MUST</em> be ignored for the purpose of constructing the
469  and therefore any change of read-only flag on the node is immediately    <code>NamedNodeMap</code> object.</p></dd>
470  reflected by that of the object.  <dt><dfn id=generalEntities class=dom-attr><code>generalEntities</code></dfn>
471    of type <code>NamedNodeMap</code>, read$B!>(Bonly</dt>
472  [3] The [DFN@en[[CODE(DOMa)@en[[[generalEntities]]]] attribute]]    <dd><p>A live <code>NamedNodeMap</code> object that contains all the general
473  of the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interface    entities belonging to the <code>DocumentType</code> node.</p>
474  is a live [CODE(DOMi)@en[[[NamedNodeMap]]]] object that contains all the    
475  general entities belong to the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node.    <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
476  The type of the attribute is [CODE(DOMi)@en[[[NamedNodeMap]]]].    same value as the <code>entities</code> attribute (defined in the
477  The attribute is read-only.    <code>DocumentType</code> interface) of the same node.</p>
478    
479      <div class="note memo">
480        <p>This attribute is part of the interface for historical reason.</p>
481      </div></dd>
482    <!--
483  All entities declared in the document type definition  All entities declared in the document type definition
484  contained in or referenced from the document entity  contained in or referenced from the document entity
485  might not be exposed through this collection, depending  might not be exposed through this collection, depending
# Line 478  representing general entities belong to Line 499  representing general entities belong to
499  the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live  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  and therefore any change of read-only flag on the node is immediately
501  reflected by that of the object.  reflected by that of the object.
502    -->
503  The attribute [['''MUST''']] return the same value as the  <dt><dfn id=notations class=dom-attr><code>notations</code></dfn> of type
504  [CODE(DOMa)@en[[[entites]]]] attribute of the  <code>notations</code>, read$B!>(Bonly</code>
505  [CODE(DOMi)@en[[[DocumentType]]]] interface on the same node.    <dd><p>A live <code>NamedNodeMap</code> object that contains all the
506      notations belonging to the <code>DocumentType</code> node.</p>
507  [4] The [DFN@en[[CODE(DOMa)@en[[[notations]]]] attribute]]    
508  of the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interface    <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
509  is a live [CODE(DOMi)@en[[[NamedNodeMap]]]] object that contains    same value as the <code>notations</code> attribute (defined in the
510  all the notations belong to the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]]    <code>DocumentType</code> interface) of the same node.</p>
511  node.  The type of the attribute is [CODE(DOMi)@en[[[NamedNodeMap]]]].  
512  The attribute is read-only.    <div class="note memo">
513        <p>This attribute is part of the interface for historical reason.</p>
514        <p>Implementations are not required to implement the
515        <code>notations</code> attribute twice (for <code>DocumentType</code>
516        and <code>DocumentTypeDefinition</code> interfaces); they share exactly
517        same definition.</p>
518      </div></dd>
519    <!--
520  If the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node is  If the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node is
521  created from an XML document, duplicate notation declarations, if any, in DTD  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]]]]  [['''MUST NOT''']] result in a node in the [CODE(DOMi)@en[[[NamedNodeMap]]]]
# Line 513  representing notations belong to the nod Line 540  representing notations belong to the nod
540  the node is read-only. Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live  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  and therefore any change of read-only flag on the node is immediately
542  reflected by that of the object.  reflected by that of the object.
543    -->
544    
545  A DOM implementation is not required to implement the  <dt class=ed>@@ other members...
546  [CODE(DOMa)@en[[[notations]]]] attribute twice  </dl>
 for the [CODE(DOMi)@en[[[DocumentType]]]] and  
 the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interfaces;  
 the latter is defined to contain the same value as the former.  
547    
548    <div class=ed>
549    <p>A future version of this interface might define the
550    <code>parameterEntities</code> and getter/setter for parameter entities.
551    </div>
552    
 ** Open Issues (informative)  
   
 [5] A future version of the interface might define the  
 [CODE(DOMa)@en[[[parameterEntities]]]] attribute and  
 getter/setter for parameter entities.  
 </pre>  
553  </div>  </div>
554    
555  <div class=section id=section-elementtypedefinition>  <div class=section id=section-elementtypedefinition>
556  <h2>The <code>ElementTypeDefinition</code> Interface</h2>  <h3>The <code>ElementTypeDefinition</code> Interface</h3>
557    
558  <pre class=idl><code>interface <dfn id=ElementTypeDefinition><code>ElementTypeDefinition</code></dfn> {  <pre class=idl><code>interface <dfn id=ElementTypeDefinition><code>ElementTypeDefinition</code></dfn> : <a href="#Node">Node</a> {
559        readonly attribute <a href="#ownerDocumentTypeDefinition">ownerDocumentTypeDefinition</a>;
560    
561      <span class=ed>@@ more</span>
562  }</code></pre>  }</code></pre>
563    
564  <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members  <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
# Line 574  interface is defined in [[manakai//DOM E Line 599  interface is defined in [[manakai//DOM E
599  </div>  </div>
600    
601  <div class=section id=section-attributedefinition>  <div class=section id=section-attributedefinition>
602  <h2>The <code>AttributeDefinition</code> Interface</h2>  <h3>The <code>AttributeDefinition</code> Interface</h3>
603    
604  <pre class=idl><code>interface <dfn id=AttributeDefinition><code>AttributeDefinition</code></dfn> {  <pre class=idl><code>interface <dfn id=AttributeDefinition><code>AttributeDefinition</code></dfn> : <a href="#Node">Node</a> {
605      <span class=comment>// <a href="#DeclaredValueType">DeclaredValueType</a></span>
606      const unsigned short <a href="#NO_TYPE_ATTR">NO_TYPE_ATTR</a> = 0;
607      const unsigned short <a href="#CDATA_ATTR">CDATA_ATTR</a> = 1;
608      const unsigned short <a href="#ID_ATTR">ID_ATTR</a> = 2;
609      const unsigned short <a href="#IDREF_ATTR">IDREF_ATTR</a> = 3;
610      const unsigned short <a href="#IDREFS_ATTR">IDREFS_ATTR</a> = 4;
611      const unsigned short <a href="#ENTITY_ATTR">ENTITY_ATTR</a> = 5;
612      const unsigned short <a href="#ENTITIES_ATTR">ENTITIES_ATTR</a> = 6;
613      const unsigned short <a href="#NMTOKEN_ATTR">NMTOKEN_ATTR</a> = 7;
614      const unsigned short <a href="#NMTOKENS_ATTR">NMTOKENS_ATTR</a> = 8;
615      const unsigned short <a href="#NOTATION_ATTR">NOTATION_ATTR</a> = 9;
616      const unsigned short <a href="#ENUMERATION_ATTR">ENUMERATION_ATTR</a> = 10;
617      const unsigned short <a href="#UNKNOWN_ATTR">UNKNOWN_ATTR</a> = 11;
618        
619      readonly attribute <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#ownerElementTypeDefinition">ownerElementTypeDefinition</a>;
620    
621      readonly attribute unsigned short <a href="#declaredType">declaredType</a>;
622      readonly attribute unsigned short <a href="#defaultType">defaultType</a>;
623    
624      <span class=ed>...</span>
625  }</code></pre>  }</code></pre>
626    
627  <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members  <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
# Line 621  object is read-only, then throw an Line 665  object is read-only, then throw an
665  then create a [CODE(DOMi)@en[[[Text]]]] node  then create a [CODE(DOMi)@en[[[Text]]]] node
666  whose [CODE(DOMa)@en[[[data]]]] is the new value  whose [CODE(DOMa)@en[[[data]]]] is the new value
667  and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]].  and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]].
668    </pre>
669    
670    <dl>
671    <dt><dfn id=ownerElementTypeDefinition class=dom-attr><code>ownerElementTypeDefinition</code></dfn>
672    of type
673    <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>,
674    read$B!>(Bonly</dt>
675      <dd><p>The
676      <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> to
677      which the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
678      node belongs.</p>
679    
680      <p>On getting, the attribute <em class=rfc2119>MUST</em> return an
681      <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node.
682      It <em class=rfc2119>MUST</em> be such a node that whose
683      <a href="#attributeDefinitons"><code>attributeDefinitions</code></a>
684      attribute contains the <code>NamedNodeMap</code> object that contains
685      the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
686      node.  If there is no such an
687      <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node,
688      then <code>null</code> <em class=rfc2119>MUST</em> be returned.</p>
689    <dt><dfn id=declaredType class=dom-attr><code>declaredType</code></dfn> of type
690    <code>unsigned short</code></dt>
691      <dd><p>The declared type <span class=ed>@@ ref</span> of the attribute.
692      It is expected that this attribute contains a value from the definition group
693      <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>.</p>
694    
695      <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
696      value associated to this attribute.</p>
697    
698      <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
699      <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
700      exception if the
701      <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
702      is read$B!>(Bonly <span class=ed>@@ ref</span>.  Otherwise, it
703      <em class=rfc2119>MUST</em> set the specified value as the value
704      associated to this attribute.</p>
705    
706      <p>If the <code>AttributeDefinition</code> node is created during the process
707      to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, an
708      appropriate value from the
709      <a href="#DeclaredValueType"><code>DeclaredValueType</code></a> constant
710      group <em class=rfc2119>MUST</em> be set to the attribute.</p>
711    
712      <!-- DeclaredValueType -->
713    <p>The definition group
714    <dfn id=DeclaredValueType><code>DeclaredValueType</code></dfn> contains
715    integers indicating the declared type of attributes.  The definition
716    group contains the following constants:</p>
717    
718    <table>
719    <thead>
720    <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
721    </thead>
722    <tbody>
723    <tr>
724    <th scope=row><dfn id=NO_TYPE_ATTR class=dom-const><code>NO_TYPE_ATTR</code>
725    <td><code>0</code><td>No value <span class=ed>[INFOSET]</span>.</tr>
726    <tr>
727    <th scope=row><dfn id=CDATA_ATTR class=dom-const><code>CDATA_ATTR</code>
728    <td><code>1</code><td><code>CDATA</code> <span class=ed>[XML]</span>.</tr>
729    <tr>
730    <th scope=row><dfn id=ID_ATTR class=dom-const><code>ID_ATTR</code>
731    <td><code>2</code><td><code>ID</code> <span class=ed>[XML]</span>.</tr>
732    <tr>
733    <th scope=row><dfn id=IDREF_ATTR class=dom-const><code>IDREF_ATTR</code>
734    <td><code>3</code><td><code>IDREF</code> <span class=ed>[XML]</span>.</tr>
735    <tr>
736    <th scope=row><dfn id=IDREFS_ATTR class=dom-const><code>IDREFS_ATTR</code>
737    <td><code>4</code><td><code>IDREFS</code> <span class=ed>[XML]</span>.</tr>
738    <tr>
739    <th scope=row><dfn id=ENTITY_ATTR class=dom-const><code>ENTITY_ATTR</code>
740    <td><code>5</code><td><code>ENTITY</code> <span class=ed>[XML]</span>.</tr>
741    <tr>
742    <th scope=row><dfn id=ENTITIES_ATTR class=dom-const><code>ENTITIES_ATTR</code>
743    <td><code>6</code><td><code>ENTITIES</code> <span class=ed>[XML]</span>.</tr>
744    <tr>
745    <th scope=row><dfn id=NMTOKEN_ATTR class=dom-const><code>NMTOKEN_ATTR</code>
746    <td><code>7</code><td><code>NMTOKEN</code> <span class=ed>[XML]</span>.</tr>
747    <tr>
748    <th scope=row><dfn id=NMTOKENS_ATTR class=dom-const><code>NMTOKENS_ATTR</code>
749    <td><code>8</code><td><code>NMTOKENS</code> <span class=ed>[XML]</span>.</tr>
750    <tr>
751    <th scope=row><dfn id=NOTATION_ATTR class=dom-const><code>NOTATION_ATTR</code>
752    <td><code>9</code><td><code>NOTATION</code> <span class=ed>[XML]</span>.</tr>
753    <tr>
754    <th scope=row><dfn id=ENUMERATION_ATTR class=dom-const><code>ENUMERATION_ATTR</code>
755    <td><code>10</code><td>Enumeration <span class=ed>[XML]</span>.</tr>
756    <tr>
757    <th scope=row><dfn id=UNKNOWN_ATTR class=dom-const><code>UNKNOWN_ATTR</code>
758    <td><code>11</code><td>Unknown, because no declaration for the attribute
759    has been read but the [all declaration processed] property
760    <span class=ed>[INFOSET]</span> would be false.</tr>
761    </tbody>
762    </table>
763    
764    <p>If no attribute type information is available, or if the source
765    of the information does not distinguish <q>no value</q> and <q>unknown</q>
766    <span class=ed>[INFOSET]</span>, then the value
767    <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>
768    <em class=rfc2119>MUST</em> be used.</p>
769    
770    <div class="note memo">
771    <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
772    created by the
773    <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
774    method has its <a href="#declaredType"><code>declaredType</code></a> attribute
775    set to <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</p>
776    </div>
777    
778    <p>If the source of the information does not distinguish <q>no value</q>
779    and/or <q>unknown</q> <span class=ed>[INFOSET]</span> and
780    <code>CDATA</code> <span class=ed>[XML]</span>, then the value
781    <a href="#CDATA_ATTR"><code>CDATA_ATTR</code></a> <em class=rfc2119>MUST</em>
782    be used.</p>
783    
784    <p>In Perl binding <span class=ed>[PERLBINDING]</span>, the
785    <code>Attr</code> nodes <em class=rfc2119>MUST</em> implement the
786    <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>
787    definition group.</p>
788    
789      </dd>
790    <dt><dfn id=defaultType class=dom-attr><code>defaultType</code></dfn> of
791    type <code>unsigned short</code></dt>
792      <dd><p>The type of the default for the attribute.  It is expected that this
793      attribute contains a value from the definition group
794      <a href="#DefaultValueType"><code>DefaultValueType</code></a>.</p>
795    
796      <p>On getting, the attribute <em class=rfc2119>MUST</em> return
797      the value associated to this attribute.</p>
798    
799      <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
800      <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
801      exception if the
802      <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
803      is read$B!>(Bonly <span class=ed>@@ ref</span>.  Otherwise, it
804      <em class=rfc2119>MUST</em> set the specified value as the value
805      associated to this attribute.</p>
806    
807      <p>If the
808      <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node is
809      created during the process to create a <abbr>DOM</abbr> from an
810      <abbr>XML</abbr> document, an appropriate value from the
811      <a href="#DefaultValueType"><code>DefaultValueType</code></a> definition
812      group <em class=rfc2119>MUST</em> be set to the attribute.</p>
813    
814      <!-- DefaultValueType -->
815      <p>The definition group
816      <dfn id=DefaultValueType><code>DefaultValueType</code></dfn>
817      contains integers indicating the type of the default for the attribute.
818      The definition group contains the following constans:</p>
819    
820      <table>
821      <thead>
822      <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
823      </thead>
824      <tbody>
825      <tr>
826      <th scope=row><dfn id=UNKNOWN_DEFAULT class=dom-const><code>UNKNOWN_DEFAULT</code></dfn>
827      <td><code>0</code><td>Unknown.</tr>
828      <tr>
829      <th scope=row><dfn id=FIXED_DEFAULT class=dom-const><code>FIXED_DEFAULT</code></dfn>
830      <td><code>1</code><td>Provided explicitly and fixed
831      <span class=ed>@@ ref</span> to that value.</tr>
832      <tr>
833      <th scope=row><dfn id=REQUIRED_DEFAULT class=dom-const><code>REQUIRED_DEFAULT</code></dfn>
834      <td><code>2</code><td>No default value and the attribute have to be
835      explicitly specified.</tr>
836      <tr>
837      <th scope=row><dfn id=IMPLIED_DEFAULT class=dom-const><code>IMPLIED_DEFAULT</code></dfn>
838      <td><code>3</code><td>Implied <span class=ed>@@ ref</span>.</tr>
839      <tr>
840      <th scope=row><dfn id=EXPLICIT_DEFAULT class=dom-const><code>EXPLICIT_DEFAULT</code></dfn>
841      <td><code>4</code><td>Provided explicitly.</tr>
842      </tbody>
843      </table>
844    
845      <p>If the source of the default type does not distinguish
846      implied and unknown default types, then the value
847      <a href="#IMPLIED_DEFAULT"><code>IMPLIED_DEFAULT</code></a>
848      <em class=rfc2119>MUST</em> be used.</p>
849    
850      <div class="note memo">
851      <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
852      node created by the
853      <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
854      method has its <a href="#defaultType"><code>defaultType</code></a>
855      attribute set to
856      <a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</p>
857      </div></dd>
858    </dl>
859    
860    </div>
861    
862  ** Definition groups  <div class=section id=section-documenttype>
863    <h3>Modifications to the <code id=DocumentType>DocumentType</code>
864    Interface</h3>
865    
866    <p>A <a href="#DocumentType"><code>DocumentType</code></a> interface
867    <em class=rfc2119>MAY</em> contain zero or more
868    <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
869    nodes in the <code>NodeList</code> object contained in the
870    <code>childNodes</code> attribute of the
871    <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
872    
873    <p>If the <a href="#DocumentType"><code>DocumentType</code></a> node is created
874    during the process to create a <abbr>DOM</abbr> from an <abbr>XML</abbr>
875    document, the <code>NodeList</code> object in the <code>childNodes</code>
876    object <em class=rfc2119>MUST</em> contains the
877    <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
878    nodes representing the processing instructions in the document type
879    definition of the document processed <span class=ed>@@ ref</span> by
880    the <abbr>XML</abbr> processor.  If the
881    <a href="#DocumentType"><code>DocumentType</code></a> node is marked
882    as read$B!>(Bonly, then all the child nodes <em class=rfc2119>MUST</em>
883    also be marked as read$B!>(Bonly.</p>
884    
885    <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is created
886    from a document type declaration information item <span class=ed>@@ ref</span>,
887    the <code>NodeList</code> object in the <code>childNodes</code> attribute
888    of the node <em class=rfc2119>MUST</em> contain the
889    <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
890    created from the processing instruction information items in the list in the
891    [children] property of the document type declaration item in the same
892    order.</p>
893    
894    <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is mapped to
895    a document type declaration information item, the list in the [children]
896    property <em class=rfc2119>MUST</em> contain the processng instruction
897    information items created from the
898    <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
899    in the <code>NodeList</code> object in the <code>childNodes</code> attribute
900    of the <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
901    
902    <pre class=idl><code>// Modifications to the DocumentType interface
903      attribute DOMString <a href="#publicId">publicId</a>;
904      attribute DOMString <a href="#systemId">systemId</a>;
905    
906      attribute DOMString <a href="#internalSubset">internalSubset</a>;
907    </code></pre>
908    
909    <p>The <code id=publicId>publicId</code> attribute and the
910    <code id=systemId>systemId</code> attribute of
911    <a href="#DocumentType"><code>DocumentType</code></a>,
912    <a href="#Entity"><code>Entity</code></a>, and
913    <a href="#Notation"><code>Notation</code></a> interfaces are no longer
914    read$B!>(Bonly.</p>
915    
916    <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
917    <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
918    exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.  
919    Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the value
920    associated to the attribute.  No normalization, relative reference resolution,
921    or lexical validation is performed. <span class=ed>@@ If the new
922    value is <code>null</code>, ...</span></p>
923    
924    <div class="note memo">
925    <p>Setting an invalid identifier might make the node unserializable.
926    Setting a public identifier while leaveing system identifier unspecified
927    would also make the <a href="#DocumentType"><code>DocumentType</code></a>
928    or <a href="#Entity"><code>Entity</code></a> node unserializable.</p>
929    </div>
930    
931    <div class=ed>
932    <p>ISSUE: In HTML5, Firefox 1.5, and Opera 9, not specifying public or system identifier results in empty strings.</p>
933    </div>
934    
935    <p>The <code id=internalSubset>internalSubset</code> attribute of the
936    <a href="#DocumentType"><code>DocumentType</code></a> interface is no longer
937    read$B!>(Bonly.</p>
938    
939    <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
940    <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
941    exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.  
942    Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the value
943    associated to the attribute.  No normalization, or lexical validation is
944    performed. <span class=ed>@@ If the new value is <code>null</code>,
945    ...</span></p>
946    
 [6] The  
 [DFN@en[definition group [CODE(DOM)@en[[[DeclaredValueType]]]]]]  
 contains integers indicating the type of  
 attribute value:  
 ,[CODE(DOMc)@en[[[NO_TYPE_ATTR]]]],[CODE(IDL)[[[0]]]],The attribute value type corresponding to [[no value]] in XML Information Set.  
 ,[CODE(DOMc)@en[[[CDATA_ATTR]]]],[CODE(IDL)[[[1]]]],The attribute value type is [CODE(XML)@en[[[CDATA]]]].  
 ,[CODE(DOMc)@en[[[ID_ATTR]]]],[CODE(IDL)[[[2]]]],The attribute value type is [CODE(XML)@en[[[ID]]]].  
 ,[CODE(DOMc)@en[[[IDREF_ATTR]]]],[CODE(IDL)[[[3]]]],The attribute value type is [CODE(XML)@en[[[IDREF]]]].  
 ,[CODE(DOMc)@en[[[IDREFS_ATTR]]]],[CODE(IDL)[[[4]]]],The attribute value type is [CODE(XML)@en[[[IDREFS]]]].  
 ,[CODE(DOMc)@en[[[ENTITY_ATTR]]]],[CODE(IDL)[[[5]]]],The attribute value type is [CODE(XML)@en[[[ENTITY]]]].  
 ,[CODE(DOMc)@en[[[ENTITIES_ATTR]]]],[CODE(IDL)[[[6]]]],The attribute value type is [CODE(XML)@en[[[ENTITIES]]]].  
 ,[CODE(DOMc)@en[[[NMTOKEN_ATTR]]]],[CODE(IDL)[[[7]]]],The attribute value type is [CODE(XML)@en[[[NMTOKEN]]]].  
 ,[CODE(DOMc)@en[[[NMTOKENS_ATTR]]]],[CODE(IDL)[[[8]]]],The attribute value type is [CODE(XML)@en[[[NMTOKENS]]]].  
 ,[CODE(DOMc)@en[[[NOTATION_ATTR]]]],[CODE(IDL)[[[9]]]],The attribute value type is [CODE(XML)@en[[[NOTATION]]]].  
 ,[CODE(DOMc)@en[[[ENUMERATION_ATTR]]]],[CODE(IDL)[[[10]]]],The attribute value is enumeration type.  
 ,[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."  
   
 The type of these constants are  
 [CODE(IDL)@en[[[unsigned]] [[short]]]].  
   
 If no attribute type information is provided,  
 or if the source of that information does not  
 distinguish [[no value]] and [[unknown]] as in  
 XML Information Set, then the  
 [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]] value  
 [['''MUST''']] be used.  
   
 ;; A newly created [CODE(DOMi)@en[[[AttributeDefinition]]]]  
 object by [CODE(DOMm)@en[[[createAttributeDefinition]]]]  
 method has [CODE(DOMa)@en[[[declaredType]]]] attribute  
 set to [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]].  
   
 If the source of the attribute type information  
 does not distinguish [[no value]] and / or [[unknown]]  
 and [CODE(XML)@en[[[CDATA]]]], then the  
 [CODE(DOMc)@en[[[CDATA_ATTR]]]] value [['''MUST''']]  
 be used.  
   
 [11]  
 In Perl binding, the objects implementing the  
 [CODE(DOMi)@en[[[Attr]]]] interface [['''MUST''']]  
 also implement the [CODE(DOM)@en[[[DeclaredValueType]]]]  
 constant group.  
   
 [7] The  
 [DFN@en[definition group [CODE(DOM)@en[[[DefaultValueType]]]]]]  
 contains integers indicating the type of  
 default attribute value:  
 ,[CODE(DOMc)@en[[[UNKNOWN_DEFAULT]]]],[CODE(IDL)[[[0]]]],The default value is unknown.  
 ,[CODE(DOMc)@en[[[FIXED_DEFAULT]]]],[CODE(IDL)[[[1]]]],The default value is provided and the attribute is [CODE(XML)@en[#[[FIXED]]]] to that value.  
 ,[CODE(DOMc)@en[[[REQUIRED_DEFAULT]]]],[CODE(IDL)[[[2]]]],An attribute specification is [CODE(XML)@en[#[[REQUIRED]]]] for the attribute.  
 ,[CODE(DOMc)@en[[[IMPLIED_DEFAULT]]]],[CODE(IDL)[[[3]]]],The default value is [CODE(XML)@en[#[[IMPLIED]]]].  
 ,[CODE(DOMc)@en[[[EXPLICIT_DEFAULT]]]],[CODE(IDL)[[[4]]]],The default value is provided but the attribute is not fixed to it.  
   
 The type of these constants are  
 [CODE(IDL)@en[[[unsigned]] [[short]]]].  
   
 If the source of the attribute default value type  
 does not distinguish the [CODE(XML)@en[#[[IMPLIED]]]]  
 default and unknown default, then the  
 [CODE(DOMc)@en[[[IMPLIED_DEFAULT]]]] value  
 [['''MUST''']] be used.  
   
 ;; A newly created [CODE(DOMi)@en[[[AttributeDefinition]]]]  
 object by [CODE(DOMm)@en[[[createAttributeDefinition]]]]  
 method has [CODE(DOMa)@en[[[declaredType]]]] attribute  
 set to [CODE(DOMc)@en[[[NO_TYPE_ATTR]]]].  
   
 ** Tree-relationship Attributes  
   
 [10]  
 The  
 [DFN@en[[CODE(DOMa)@en[[[ownerElementTypeDefinition]]]] attribute]]  
 of the [CODE(DOMi)@en[[[AttributeDefinition]]]] interface  
 is read-only and of type  
 [CODE(DOMi)@en[[[ElementTypeDefinition]]]].  
 It is the [CODE(DOMi)@en[[[ElementTypeDefinition]]]] node  
 which the [CODE(DOMi)@en[[[AttributeDefinition]]]] node  
 belong to.  
   
 If the [CODE(DOMi)@en[[[AttributeDefinition]]]] node  
 is included in the [CODE(DOMa)@en[[[attributeDefinitions]]]]  
 list of an [CODE(DOMi)@en[[[ElementTypeDefinition]]]] node,  
 then the attribute [['''MUST''']] return the  
 [CODE(DOMi)@en[[[ElementTypeDefinition]]]] node.  
 Otherwise, it [['''MUST''']] return [CODE(DOM)@en[[[null]]]].  
   
 ;; This attribute is analogue to the  
 [CODE(DOMa)@en[[[ownerDocumentTypeDefinition]]]] attribute  
 for [CODE(DOMi)@en[[[ElementTypeDefinition]]]],  
 [CODE(DOMi)@en[[[Entity]]]], and [CODE(DOMi)@en[[[Notation]]]]  
 nodes, or the [CODE(DOMa)@en[[[ownerElement]]]]  
 attribute for [CODE(DOMi)@en[[[Attr]]]] nodes.  
   
 ** Attributes  
   
 [5]  
 The [DFN@en[[CODE(DOMa)@en[[[declaredType]]]] attribute]]  
 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object  
 represents the type of the attribute value.  
   
 This attribute is read-write.  
 The type of the attribute is  
 [CODE(IDL)@en[[[unsigned]] [[short]]]].  It is expected  
 that this attribute has a value from the definition group  
 [CODE(DOM)@en[[[DeclaredValueType]]]].  
   
 The getter [['''MUST''']] return a value associated  
 to this attribute.  
   
 The setter [['''MUST''']]  
 throw a [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]]  
 [CODE(DOMi)@en[[[DOMException]]]] if the  
 [CODE(DOMi)@en[[[AttributeDefinition]]]] object is read-only.  
 Otherwise, the setter [['''MUST''']] set the specified  
 value as the value associated to this attribute.  
   
 If a parser create an [CODE(DOMi)@en[[[AttributeDefinition]]]]  
 object, then it [['''MUST''']] set a value  
 from the [CODE(DOM)@en[[[DeclaredValueType]]]]  
 definition group.  
   
 [8]  
 The [DFN@en[[CODE(DOMa)@en[[[defaultType]]]] attribute]]  
 of an [CODE(DOMi)@en[[[AttributeDefinition]]]] object  
 represents the type of the attribute default value.  
   
 This attribute is read-write.  
 The type of the attribute is  
 [CODE(IDL)@en[[[unsigned]] [[short]]]].  It is expected  
 that this attribute has a value from the definition group  
 [CODE(DOM)@en[[[DefaultValueType]]]].  
   
 The getter [['''MUST''']] return a value associated  
 to this attribute.  
   
 The setter [['''MUST''']]  
 throw a [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]]  
 [CODE(DOMi)@en[[[DOMException]]]] if the  
 [CODE(DOMi)@en[[[AttributeDefinition]]]] object is read-only.  
 Otherwise, the setter [['''MUST''']] set the specified  
 value as the value associated to this attribute.  
   
 If a parser create an [CODE(DOMi)@en[[[AttributeDefinition]]]]  
 object, then it [['''MUST''']] set a value  
 from the [CODE(DOM)@en[[[DefaultValueType]]]]  
 definition group.</pre>  
947  </div>  </div>
948    
949  </div>  </div>

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.13

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24