/[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.8 by wakaba, Sun Dec 2 10:20:25 2007 UTC revision 1.14 by wakaba, Tue Dec 4 10:27:26 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 172  feature names with or without version nu Line 174  feature names with or without version nu
174  aforementioned cases.</p>  aforementioned cases.</p>
175  </div>  </div>
176    
177    <div class=section id=section-node>
178    <h3>Modifications to the <code id=Node>Node</code> Interface</h3>
179    
180    <pre class=idl><code>// Additions to the Node interface
181    
182    // Additions to the NodeType definition group
183    const unsigned short <a href="#ELEMENT_TYPE_DEFINITION_NODE">ELEMENT_TYPE_DEFINITION_NODE</a> = 81001;
184    const unsigned short <a href="#ATTRIBUTE_DEFINITION_NODE">ATTRIBUTE_DEFINITION_NODE</a> = 81002;
185    </pre>
186    
187    <p>This specification adds two new types (subinterfaces) of
188    <a href="#Node"><code>Node</code></a>: element type definition (node type
189    <a href="#ELEMENT_TYPE_DEFINITION_NODE"><code>ELEMENT_TYPE_DEFINITION_NODE</code></a>,
190    interface
191    <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>) and
192    attribute definition (node type
193    <a href="#ATTRIBUTE_DEFINITION_NODE"><code>ATTRIBUTE_DEFINITION_NODE</code></a>,
194    interface
195    <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>).  For
196    these kinds of nodes, methods and attributes in the
197    <a href="#Node"><code>Node</code></a> interface must behave as following:</p>
198    
199    <dl>
200    <dt><code id=nodeType>nodeType</code></dt>
201      <dd>
202        <p>On getting, the attribute <em class=rfc2119>MUST</em> return
203        <a href="#ELEMENT_TYPE_DEFINITION_NODE"><code>ELEMENT_TYPE_DEFINITION_NODE</code></a>
204        (if the node is an
205        <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>) or
206        <a href="#ATTRIBUTE_DEFINITION_NODE"><code>ATTRIBUTE_DEFINITION_NODE</code></a>
207        (if the node is an
208        <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>).</p>
209    
210        <!-- NodeType -->
211    <p>Two constants are added to the <code id=NodeType>NodeType</code>
212    definition group of the <a href="#Node"><code>Node</code></a> interface as
213    following:</p>
214    <table>
215    <thead>
216    <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
217    </thead>
218    <tbody>
219    <tr>
220    <th scope=row><dfn id=ELEMENT_TYPE_DEFINITION_NODE class=dom-const><code>ELEMENT_TYPE_DEFINITION_NODE</code></dfn>
221    <td><code>81001</code><td>The node is an
222    <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>.</tr>
223    <tr>
224    <th scope=row><dfn id=ATTRIBUTE_DEFINITION_NODE class=dom-const><code>ATTRIBUTE_DEFINITION_NODE</code></dfn>
225    <td><code>81002</code><td>The node is an
226    <a href="#ElementTypeDefinition"><code>AttributeDefinition</code></a>.</tr>
227    </tbody>
228    </table>
229      </dd>
230    <dt class=ed>@@ ...</dt>
231    </dl>
232    
233    </div>
234    
235  <div class=section id=section-documentxdoctype>  <div class=section id=section-documentxdoctype>
236  <h3>The <code>DocumentXDoctype</code> Interface</h3>  <h3>The <code>DocumentXDoctype</code> Interface</h3>
237    
# Line 179  aforementioned cases.</p> Line 239  aforementioned cases.</p>
239    DocumentType <a href="#createDocumentTypeDefinition">createDocumentTypeDefinition</a>    DocumentType <a href="#createDocumentTypeDefinition">createDocumentTypeDefinition</a>
240      (in DOMString <a href="#createDocumentTypeDefinition-name"><var>name</var></a>)      (in DOMString <a href="#createDocumentTypeDefinition-name"><var>name</var></a>)
241      raises (DOMException);      raises (DOMException);
242    ElementTypeDefinition <a href="#createElementTypeDefinition">createElementTypeDefinition</a>    <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#createElementTypeDefinition">createElementTypeDefinition</a>
243      (in DOMString <a href="#createElementTypeDefinition-name"><var>name</var></a>)      (in DOMString <a href="#createElementTypeDefinition-name"><var>name</var></a>)
244      raises (DOMException);      raises (DOMException);
245    AttributeDefinition <a href="#createAttributeDefinition">createAttributeDefinition</a>    <a href="#AttributeDefinition">AttributeDefinition</a> <a href="#createAttributeDefinition">createAttributeDefinition</a>
246      (in DOMString <a href="#createAttributeDefinition-name"><var>name</var></a>)      (in DOMString <a href="#createAttributeDefinition-name"><var>name</var></a>)
247      raises (DOMException);      raises (DOMException);
248    Entity <a href="#createGeneralEntity">createGeneralEntityDefinition</a>    <a href="#Entity">Entity</a> <a href="#createGeneralEntity">createGeneralEntityDefinition</a>
249      (in DOMString <a href="#createGeneralEntity-name"><var>name</var></a>)      (in DOMString <a href="#createGeneralEntity-name"><var>name</var></a>)
250      raises (DOMException);      raises (DOMException);
251    Notation <a href="#createNotation">createNotation</a>    <a href="#Notation">Notation</a> <a href="#createNotation">createNotation</a>
252      (in DOMString <a href="#createNotation-name"><var>name</var></a>)      (in DOMString <a href="#createNotation-name"><var>name</var></a>)
253      raises (DOMException);      raises (DOMException);
254  }</code></pre>  }</code></pre>
# Line 399  since <abbr>DOM3</abbr> specification <s Line 459  since <abbr>DOM3</abbr> specification <s
459  define it for <code>Document</code> methods.</p>  define it for <code>Document</code> methods.</p>
460    
461  <p><var>name</var> does not have to be a namespace qualified name.</p>  <p><var>name</var> does not have to be a namespace qualified name.</p>
   
 <p>If the <code>strictErrorChecking</code> attribute of the  
 <code>Document</code> node is <code>false</code>, the methods are  
 not required to raise the exception <span class=ed>[DOM3]</span>.</p>  
462  </div>  </div>
463    
464  </div>  </div>
# Line 415  not required to raise the exception <spa Line 471  not required to raise the exception <spa
471    readonly attribute NamedNodeMap <a href="#generalEntities">generalEntities</a>;    readonly attribute NamedNodeMap <a href="#generalEntities">generalEntities</a>;
472    readonly attribute NamedNodeMap <a href="#notations">notations</a>;    readonly attribute NamedNodeMap <a href="#notations">notations</a>;
473    
474    <span class=ed>more members come here...</span>    <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#getElementTypeDefinitionNode">getElementTypeDefinitionNode</a>
475        (in DOMString <a href="#getElementTypeDefinitionNode-name"><var>name</var></a>);
476      <a href="#Entity">Entity</a> <a href="#getGeneralEntityNode">getGeneralEntityNode</a>
477        (in DOMString <a href="#getGeneralEntityNode-name"><var>name</var></a>);
478      <a href="#Notation">Notation</a> <a href="#getNotationNode">getNotationNode</a>
479        (in DOMString <a href="#getNotationNode-name"><var>name</var></a>);
480    
481      void <a href="#setElementTypeDefinitionNode">setElementTypeDefinitionNode</a>
482        (in DOMString <a href="#setElementTypeDefinitionNode-node"><var>node</var></a>)
483        raises (DOMException);
484      void <a href="#setGeneralEntityNode">setGeneralEntityNode</a>
485        (in DOMString <a href="#setGeneralEntityNode-node"><var>node</var></a>)
486        raises (DOMException);
487      void <a href="#setNotationNode">setNotationNode</a>
488        (in DOMString <a href="#setNotationNode-node"><var>node</var></a>)
489        raises (DOMException);
490  }</code></pre>  }</code></pre>
491    
492  <pre class=ed>  <pre class=ed>
# Line 542  reflected by that of the object. Line 613  reflected by that of the object.
613  <div class=section id=section-elementtypedefinition>  <div class=section id=section-elementtypedefinition>
614  <h3>The <code>ElementTypeDefinition</code> Interface</h3>  <h3>The <code>ElementTypeDefinition</code> Interface</h3>
615    
616  <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> {
617        readonly attribute <a href="#ownerDocumentTypeDefinition">ownerDocumentTypeDefinition</a>;
618    
619      <span class=ed>@@ more</span>
620  }</code></pre>  }</code></pre>
621    
622  <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members  <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
# Line 586  interface is defined in [[manakai//DOM E Line 659  interface is defined in [[manakai//DOM E
659  <div class=section id=section-attributedefinition>  <div class=section id=section-attributedefinition>
660  <h3>The <code>AttributeDefinition</code> Interface</h3>  <h3>The <code>AttributeDefinition</code> Interface</h3>
661    
662  <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> {
663      <span class=comment>// <a href="#DeclaredValueType">DeclaredValueType</a></span>
664      const unsigned short <a href="#NO_TYPE_ATTR">NO_TYPE_ATTR</a> = 0;
665      const unsigned short <a href="#CDATA_ATTR">CDATA_ATTR</a> = 1;
666      const unsigned short <a href="#ID_ATTR">ID_ATTR</a> = 2;
667      const unsigned short <a href="#IDREF_ATTR">IDREF_ATTR</a> = 3;
668      const unsigned short <a href="#IDREFS_ATTR">IDREFS_ATTR</a> = 4;
669      const unsigned short <a href="#ENTITY_ATTR">ENTITY_ATTR</a> = 5;
670      const unsigned short <a href="#ENTITIES_ATTR">ENTITIES_ATTR</a> = 6;
671      const unsigned short <a href="#NMTOKEN_ATTR">NMTOKEN_ATTR</a> = 7;
672      const unsigned short <a href="#NMTOKENS_ATTR">NMTOKENS_ATTR</a> = 8;
673      const unsigned short <a href="#NOTATION_ATTR">NOTATION_ATTR</a> = 9;
674      const unsigned short <a href="#ENUMERATION_ATTR">ENUMERATION_ATTR</a> = 10;
675      const unsigned short <a href="#UNKNOWN_ATTR">UNKNOWN_ATTR</a> = 11;
676        
677      readonly attribute <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#ownerElementTypeDefinition">ownerElementTypeDefinition</a>;
678    
679      readonly attribute unsigned short <a href="#declaredType">declaredType</a>;
680      readonly attribute unsigned short <a href="#defaultType">defaultType</a>;
681    
682      <span class=ed>...</span>
683  }</code></pre>  }</code></pre>
684    
685  <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members  <pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members
# Line 631  object is read-only, then throw an Line 723  object is read-only, then throw an
723  then create a [CODE(DOMi)@en[[[Text]]]] node  then create a [CODE(DOMi)@en[[[Text]]]] node
724  whose [CODE(DOMa)@en[[[data]]]] is the new value  whose [CODE(DOMa)@en[[[data]]]] is the new value
725  and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]].  and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]].
726    </pre>
727    
728    <dl>
729    <dt><dfn id=ownerElementTypeDefinition class=dom-attr><code>ownerElementTypeDefinition</code></dfn>
730    of type
731    <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>,
732    read$B!>(Bonly</dt>
733      <dd><p>The
734      <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> to
735      which the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
736      node belongs.</p>
737    
738      <p>On getting, the attribute <em class=rfc2119>MUST</em> return an
739      <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node.
740      It <em class=rfc2119>MUST</em> be such a node that whose
741      <a href="#attributeDefinitons"><code>attributeDefinitions</code></a>
742      attribute contains the <code>NamedNodeMap</code> object that contains
743      the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
744      node.  If there is no such an
745      <a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node,
746      then <code>null</code> <em class=rfc2119>MUST</em> be returned.</p>
747    <dt><dfn id=declaredType class=dom-attr><code>declaredType</code></dfn> of type
748    <code>unsigned short</code></dt>
749      <dd><p>The declared type <span class=ed>@@ ref</span> of the attribute.
750      It is expected that this attribute contains a value from the definition group
751      <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>.</p>
752    
753      <p>On getting, the attribute <em class=rfc2119>MUST</em> return the
754      value associated to this attribute.</p>
755    
756      <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
757      <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
758      exception if the
759      <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
760      is read$B!>(Bonly <span class=ed>@@ ref</span>.  Otherwise, it
761      <em class=rfc2119>MUST</em> set the specified value as the value
762      associated to this attribute.</p>
763    
764      <p>If the <code>AttributeDefinition</code> node is created during the process
765      to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, an
766      appropriate value from the
767      <a href="#DeclaredValueType"><code>DeclaredValueType</code></a> constant
768      group <em class=rfc2119>MUST</em> be set to the attribute.</p>
769    
770      <!-- DeclaredValueType -->
771    <p>The definition group
772    <dfn id=DeclaredValueType><code>DeclaredValueType</code></dfn> contains
773    integers indicating the declared type of attributes.  The definition
774    group contains the following constants:</p>
775    
776    <table>
777    <thead>
778    <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
779    </thead>
780    <tbody>
781    <tr>
782    <th scope=row><dfn id=NO_TYPE_ATTR class=dom-const><code>NO_TYPE_ATTR</code>
783    <td><code>0</code><td>No value <span class=ed>[INFOSET]</span>.</tr>
784    <tr>
785    <th scope=row><dfn id=CDATA_ATTR class=dom-const><code>CDATA_ATTR</code>
786    <td><code>1</code><td><code>CDATA</code> <span class=ed>[XML]</span>.</tr>
787    <tr>
788    <th scope=row><dfn id=ID_ATTR class=dom-const><code>ID_ATTR</code>
789    <td><code>2</code><td><code>ID</code> <span class=ed>[XML]</span>.</tr>
790    <tr>
791    <th scope=row><dfn id=IDREF_ATTR class=dom-const><code>IDREF_ATTR</code>
792    <td><code>3</code><td><code>IDREF</code> <span class=ed>[XML]</span>.</tr>
793    <tr>
794    <th scope=row><dfn id=IDREFS_ATTR class=dom-const><code>IDREFS_ATTR</code>
795    <td><code>4</code><td><code>IDREFS</code> <span class=ed>[XML]</span>.</tr>
796    <tr>
797    <th scope=row><dfn id=ENTITY_ATTR class=dom-const><code>ENTITY_ATTR</code>
798    <td><code>5</code><td><code>ENTITY</code> <span class=ed>[XML]</span>.</tr>
799    <tr>
800    <th scope=row><dfn id=ENTITIES_ATTR class=dom-const><code>ENTITIES_ATTR</code>
801    <td><code>6</code><td><code>ENTITIES</code> <span class=ed>[XML]</span>.</tr>
802    <tr>
803    <th scope=row><dfn id=NMTOKEN_ATTR class=dom-const><code>NMTOKEN_ATTR</code>
804    <td><code>7</code><td><code>NMTOKEN</code> <span class=ed>[XML]</span>.</tr>
805    <tr>
806    <th scope=row><dfn id=NMTOKENS_ATTR class=dom-const><code>NMTOKENS_ATTR</code>
807    <td><code>8</code><td><code>NMTOKENS</code> <span class=ed>[XML]</span>.</tr>
808    <tr>
809    <th scope=row><dfn id=NOTATION_ATTR class=dom-const><code>NOTATION_ATTR</code>
810    <td><code>9</code><td><code>NOTATION</code> <span class=ed>[XML]</span>.</tr>
811    <tr>
812    <th scope=row><dfn id=ENUMERATION_ATTR class=dom-const><code>ENUMERATION_ATTR</code>
813    <td><code>10</code><td>Enumeration <span class=ed>[XML]</span>.</tr>
814    <tr>
815    <th scope=row><dfn id=UNKNOWN_ATTR class=dom-const><code>UNKNOWN_ATTR</code>
816    <td><code>11</code><td>Unknown, because no declaration for the attribute
817    has been read but the [all declaration processed] property
818    <span class=ed>[INFOSET]</span> would be false.</tr>
819    </tbody>
820    </table>
821    
822    <p>If no attribute type information is available, or if the source
823    of the information does not distinguish <q>no value</q> and <q>unknown</q>
824    <span class=ed>[INFOSET]</span>, then the value
825    <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>
826    <em class=rfc2119>MUST</em> be used.</p>
827    
828    <div class="note memo">
829    <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
830    created by the
831    <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
832    method has its <a href="#declaredType"><code>declaredType</code></a> attribute
833    set to <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</p>
834    </div>
835    
836    <p>If the source of the information does not distinguish <q>no value</q>
837    and/or <q>unknown</q> <span class=ed>[INFOSET]</span> and
838    <code>CDATA</code> <span class=ed>[XML]</span>, then the value
839    <a href="#CDATA_ATTR"><code>CDATA_ATTR</code></a> <em class=rfc2119>MUST</em>
840    be used.</p>
841    
842    <p>In Perl binding <span class=ed>[PERLBINDING]</span>, the
843    <code>Attr</code> nodes <em class=rfc2119>MUST</em> implement the
844    <a href="#DeclaredValueType"><code>DeclaredValueType</code></a>
845    definition group.</p>
846    
847      </dd>
848    <dt><dfn id=defaultType class=dom-attr><code>defaultType</code></dfn> of
849    type <code>unsigned short</code></dt>
850      <dd><p>The type of the default for the attribute.  It is expected that this
851      attribute contains a value from the definition group
852      <a href="#DefaultValueType"><code>DefaultValueType</code></a>.</p>
853    
854      <p>On getting, the attribute <em class=rfc2119>MUST</em> return
855      the value associated to this attribute.</p>
856    
857      <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
858      <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
859      exception if the
860      <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node
861      is read$B!>(Bonly <span class=ed>@@ ref</span>.  Otherwise, it
862      <em class=rfc2119>MUST</em> set the specified value as the value
863      associated to this attribute.</p>
864    
865      <p>If the
866      <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node is
867      created during the process to create a <abbr>DOM</abbr> from an
868      <abbr>XML</abbr> document, an appropriate value from the
869      <a href="#DefaultValueType"><code>DefaultValueType</code></a> definition
870      group <em class=rfc2119>MUST</em> be set to the attribute.</p>
871    
872      <!-- DefaultValueType -->
873      <p>The definition group
874      <dfn id=DefaultValueType><code>DefaultValueType</code></dfn>
875      contains integers indicating the type of the default for the attribute.
876      The definition group contains the following constans:</p>
877    
878      <table>
879      <thead>
880      <tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr>
881      </thead>
882      <tbody>
883      <tr>
884      <th scope=row><dfn id=UNKNOWN_DEFAULT class=dom-const><code>UNKNOWN_DEFAULT</code></dfn>
885      <td><code>0</code><td>Unknown.</tr>
886      <tr>
887      <th scope=row><dfn id=FIXED_DEFAULT class=dom-const><code>FIXED_DEFAULT</code></dfn>
888      <td><code>1</code><td>Provided explicitly and fixed
889      <span class=ed>@@ ref</span> to that value.</tr>
890      <tr>
891      <th scope=row><dfn id=REQUIRED_DEFAULT class=dom-const><code>REQUIRED_DEFAULT</code></dfn>
892      <td><code>2</code><td>No default value and the attribute have to be
893      explicitly specified.</tr>
894      <tr>
895      <th scope=row><dfn id=IMPLIED_DEFAULT class=dom-const><code>IMPLIED_DEFAULT</code></dfn>
896      <td><code>3</code><td>Implied <span class=ed>@@ ref</span>.</tr>
897      <tr>
898      <th scope=row><dfn id=EXPLICIT_DEFAULT class=dom-const><code>EXPLICIT_DEFAULT</code></dfn>
899      <td><code>4</code><td>Provided explicitly.</tr>
900      </tbody>
901      </table>
902    
903      <p>If the source of the default type does not distinguish
904      implied and unknown default types, then the value
905      <a href="#IMPLIED_DEFAULT"><code>IMPLIED_DEFAULT</code></a>
906      <em class=rfc2119>MUST</em> be used.</p>
907    
908      <div class="note memo">
909      <p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a>
910      node created by the
911      <a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a>
912      method has its <a href="#defaultType"><code>defaultType</code></a>
913      attribute set to
914      <a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</p>
915      </div></dd>
916    </dl>
917    
918    </div>
919    
920    <div class=section id=section-documenttype>
921    <h3>Modifications to the <code id=DocumentType>DocumentType</code>
922    Interface</h3>
923    
924    <p>A <a href="#DocumentType"><code>DocumentType</code></a> interface
925    <em class=rfc2119>MAY</em> contain zero or more
926    <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
927    nodes in the <code>NodeList</code> object contained in the
928    <code>childNodes</code> attribute of the
929    <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
930    
931    <p>If the <a href="#DocumentType"><code>DocumentType</code></a> node is created
932    during the process to create a <abbr>DOM</abbr> from an <abbr>XML</abbr>
933    document, the <code>NodeList</code> object in the <code>childNodes</code>
934    object <em class=rfc2119>MUST</em> contains the
935    <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a>
936    nodes representing the processing instructions in the document type
937    definition of the document processed <span class=ed>@@ ref</span> by
938    the <abbr>XML</abbr> processor.  If the
939    <a href="#DocumentType"><code>DocumentType</code></a> node is marked
940    as read$B!>(Bonly, then all the child nodes <em class=rfc2119>MUST</em>
941    also be marked as read$B!>(Bonly.</p>
942    
943    <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is created
944    from a document type declaration information item <span class=ed>@@ ref</span>,
945    the <code>NodeList</code> object in the <code>childNodes</code> attribute
946    of the node <em class=rfc2119>MUST</em> contain the
947    <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
948    created from the processing instruction information items in the list in the
949    [children] property of the document type declaration item in the same
950    order.</p>
951    
952    <p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is mapped to
953    a document type declaration information item, the list in the [children]
954    property <em class=rfc2119>MUST</em> contain the processng instruction
955    information items created from the
956    <a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes
957    in the <code>NodeList</code> object in the <code>childNodes</code> attribute
958    of the <a href="#DocumentType"><code>DocumentType</code></a> node.</p>
959    
960    <pre class=idl><code>// Modifications to the DocumentType interface
961      attribute DOMString <a href="#publicId">publicId</a>;
962      attribute DOMString <a href="#systemId">systemId</a>;
963    
964      attribute DOMString <a href="#internalSubset">internalSubset</a>;
965    </code></pre>
966    
967    <p>The <code id=publicId>publicId</code> attribute and the
968    <code id=systemId>systemId</code> attribute of
969    <a href="#DocumentType"><code>DocumentType</code></a>,
970    <a href="#Entity"><code>Entity</code></a>, and
971    <a href="#Notation"><code>Notation</code></a> interfaces are no longer
972    read$B!>(Bonly.</p>
973    
974    <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
975    <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
976    exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.  
977    Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the value
978    associated to the attribute.  No normalization, relative reference resolution,
979    or lexical validation is performed. <span class=ed>@@ If the new
980    value is <code>null</code>, ...</span></p>
981    
982    <div class="note memo">
983    <p>Setting an invalid identifier might make the node unserializable.
984    Setting a public identifier while leaveing system identifier unspecified
985    would also make the <a href="#DocumentType"><code>DocumentType</code></a>
986    or <a href="#Entity"><code>Entity</code></a> node unserializable.</p>
987    </div>
988    
989    <div class=ed>
990    <p>ISSUE: In HTML5, Firefox 1.5, and Opera 9, not specifying public or system identifier results in empty strings.</p>
991    </div>
992    
993  ** Definition groups  <p>The <code id=internalSubset>internalSubset</code> attribute of the
994    <a href="#DocumentType"><code>DocumentType</code></a> interface is no longer
995    read$B!>(Bonly.</p>
996    
997    <p>On setting, the attribute <em class=rfc2119>MUST</em> raise a
998    <code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span>
999    exception if the node is read$B!>(Bonly <span class=ed>@@ ref</span>.  
1000    Otherwise, it <em class=rfc2119>MUST</em> set the specified value as the value
1001    associated to the attribute.  No normalization, or lexical validation is
1002    performed. <span class=ed>@@ If the new value is <code>null</code>,
1003    ...</span></p>
1004    
 [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>  
1005  </div>  </div>
1006    
1007  </div>  </div>

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.14

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24