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> |
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> |
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> |
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> |
401 |
define it for <code>Document</code> methods.</p> |
define it for <code>Document</code> methods.</p> |
402 |
|
|
403 |
<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> |
|
404 |
</div> |
</div> |
405 |
|
|
406 |
</div> |
</div> |
409 |
<h3>The <code>DocumentTypeDefinition</code> Interface</h3> |
<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 |
|
<span class=ed>more members come here...</span> |
417 |
}</code></pre> |
}</code></pre> |
418 |
|
|
419 |
<pre class=ed> |
<pre class=ed> |
423 |
must implement the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] |
must implement the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] |
424 |
interface. See [[DOM XML Document Type Definition]>>3] for |
interface. See [[DOM XML Document Type Definition]>>3] for |
425 |
details. |
details. |
426 |
|
</pre> |
427 |
|
|
428 |
|
<dl> |
429 |
** Children |
<dt><dfn id=elementTypes class=dom-attr><code>elementTypes</code></dfn> of |
430 |
|
type <code>NamedNodeMap</code>, read$B!>(Bonly</dt> |
431 |
[2] The [DFN@en[[CODE(DOMa)@en[[[elementTypes]]]] attribute]] |
<dd><p>A live <code>NamedNodeMap</code> object that contains all the element |
432 |
of the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interface |
type definitions belonging to the <code>DocumentType</code> node.</p> |
433 |
is a live [CODE(DOMi)@en[[[NamedNodeMap]]]] object that |
|
434 |
contains all element types belongs to the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] |
<p>On getting, the attribute <em class=rfc2119>MUST</em> return the |
435 |
node. The type of the attribute is [CODE(DOMi)@en[[[NamedNodeMap]]]]. |
<code>NamedNodeMap</code> object that contains all the |
436 |
The attribute is read-only. |
<a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> |
437 |
|
nodes belonging to the <code>DocumentType</code> node. The |
438 |
What are contained in this collection depends on how |
<code>NamedNodeMap</code> object <em class=rfc2119>MUST</em> be read$B!>(Bonly |
439 |
the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node was created. If the |
if and only if the node is read$B!>(Bonly. The <code>NamedNodeMap</code> |
440 |
node was created as the result of parsing of an XML document, |
object <em class=rfc2119>MUST</em> be live and the same object |
441 |
it [['''MUST''']] contain all element types whose element type and / or |
<em class=rfc2119>MUST</em> be returned for any invocation.</p> |
442 |
attribute definition list declaration are encountered by and provided for the DOM |
|
443 |
implementation from the XML processor. Note that the XML processor might not |
<p>If the <code>DocumentType</code> node is created during the process |
444 |
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 |
445 |
If more than one declarations for an element type or an attribute is available |
requirements are applied: The <code>NamedNodeMap</code> object in the |
446 |
at the time of the definition node construction, then declarations other than |
<a href="#elementTypes"><code>elementType</code></a> attribute |
447 |
the first ones [['''MUST''']] be discarded. |
<em class=rfc2119>MUST</em> be so transformed that the object contains |
448 |
|
the <code>ElementTypeDefinition</code> nodes for the element types |
449 |
The attribute [['''MUST''']] return the [CODE(DOMi)@en[[[NamedNodeMap]]]] |
whose name is presented as the <code>Name</code> of the element type or |
450 |
object that contains all the [CODE(DOMi)@en[[[ElementTypeDefinition]]]] nodes |
attribute definition list declarations processed by the <abbr>XML</abbr> |
451 |
belong to the node. The returned [CODE(DOMi)@en[[[NamedNodeMap]]]] object |
processor. If there is more than one element type declarations for an |
452 |
[['''MUST''']] be read-only if and only if the node is read-only. |
element type, then the declarations other than the first one |
453 |
Note that the [CODE(DOMi)@en[[[NamedNodeMap]]]] object is live |
<em class=rfc2119>MUST</em> be ignored for the purpose of constructing the |
454 |
and therefore any change of read-only flag on the node is immediately |
<code>NamedNodeMap</code> object.</p></dd> |
455 |
reflected by that of the object. |
<dt><dfn id=generalEntities class=dom-attr><code>generalEntities</code></dfn> |
456 |
|
of type <code>NamedNodeMap</code>, read$B!>(Bonly</dt> |
457 |
[3] The [DFN@en[[CODE(DOMa)@en[[[generalEntities]]]] attribute]] |
<dd><p>A live <code>NamedNodeMap</code> object that contains all the general |
458 |
of the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interface |
entities belonging to the <code>DocumentType</code> node.</p> |
459 |
is a live [CODE(DOMi)@en[[[NamedNodeMap]]]] object that contains all the |
|
460 |
general entities belong to the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node. |
<p>On getting, the attribute <em class=rfc2119>MUST</em> return the |
461 |
The type of the attribute is [CODE(DOMi)@en[[[NamedNodeMap]]]]. |
same value as the <code>entities</code> attribute (defined in the |
462 |
The attribute is read-only. |
<code>DocumentType</code> interface) of the same node.</p> |
463 |
|
|
464 |
|
<div class="note memo"> |
465 |
|
<p>This attribute is part of the interface for historical reason.</p> |
466 |
|
</div></dd> |
467 |
|
<!-- |
468 |
All entities declared in the document type definition |
All entities declared in the document type definition |
469 |
contained in or referenced from the document entity |
contained in or referenced from the document entity |
470 |
might not be exposed through this collection, depending |
might not be exposed through this collection, depending |
484 |
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 |
485 |
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 |
486 |
reflected by that of the object. |
reflected by that of the object. |
487 |
|
--> |
488 |
The attribute [['''MUST''']] return the same value as the |
<dt><dfn id=notations class=dom-attr><code>notations</code></dfn> of type |
489 |
[CODE(DOMa)@en[[[entites]]]] attribute of the |
<code>notations</code>, read$B!>(Bonly</code> |
490 |
[CODE(DOMi)@en[[[DocumentType]]]] interface on the same node. |
<dd><p>A live <code>NamedNodeMap</code> object that contains all the |
491 |
|
notations belonging to the <code>DocumentType</code> node.</p> |
492 |
[4] The [DFN@en[[CODE(DOMa)@en[[[notations]]]] attribute]] |
|
493 |
of the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] interface |
<p>On getting, the attribute <em class=rfc2119>MUST</em> return the |
494 |
is a live [CODE(DOMi)@en[[[NamedNodeMap]]]] object that contains |
same value as the <code>notations</code> attribute (defined in the |
495 |
all the notations belong to the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] |
<code>DocumentType</code> interface) of the same node.</p> |
496 |
node. The type of the attribute is [CODE(DOMi)@en[[[NamedNodeMap]]]]. |
|
497 |
The attribute is read-only. |
<div class="note memo"> |
498 |
|
<p>This attribute is part of the interface for historical reason.</p> |
499 |
|
<p>Implementations are not required to implement the |
500 |
|
<code>notations</code> attribute twice (for <code>DocumentType</code> |
501 |
|
and <code>DocumentTypeDefinition</code> interfaces); they share exactly |
502 |
|
same definition.</p> |
503 |
|
</div></dd> |
504 |
|
<!-- |
505 |
If the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node is |
If the [CODE(DOMi)@en[[[DocumentTypeDefinition]]]] node is |
506 |
created from an XML document, duplicate notation declarations, if any, in DTD |
created from an XML document, duplicate notation declarations, if any, in DTD |
507 |
[['''MUST NOT''']] result in a node in the [CODE(DOMi)@en[[[NamedNodeMap]]]] |
[['''MUST NOT''']] result in a node in the [CODE(DOMi)@en[[[NamedNodeMap]]]] |
525 |
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 |
526 |
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 |
527 |
reflected by that of the object. |
reflected by that of the object. |
528 |
|
--> |
529 |
|
|
530 |
A DOM implementation is not required to implement the |
<dt class=ed>@@ other members... |
531 |
[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. |
|
532 |
|
|
533 |
|
<div class=ed> |
534 |
|
<p>A future version of this interface might define the |
535 |
|
<code>parameterEntities</code> and getter/setter for parameter entities. |
536 |
|
</div> |
537 |
|
|
|
** 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> |
|
538 |
</div> |
</div> |
539 |
|
|
540 |
<div class=section id=section-elementtypedefinition> |
<div class=section id=section-elementtypedefinition> |
541 |
<h3>The <code>ElementTypeDefinition</code> Interface</h3> |
<h3>The <code>ElementTypeDefinition</code> Interface</h3> |
542 |
|
|
543 |
<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> { |
544 |
|
readonly attribute <a href="#ownerDocumentTypeDefinition">ownerDocumentTypeDefinition</a>; |
545 |
|
|
546 |
|
<span class=ed>@@ more</span> |
547 |
}</code></pre> |
}</code></pre> |
548 |
|
|
549 |
<pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members |
<pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members |
586 |
<div class=section id=section-attributedefinition> |
<div class=section id=section-attributedefinition> |
587 |
<h3>The <code>AttributeDefinition</code> Interface</h3> |
<h3>The <code>AttributeDefinition</code> Interface</h3> |
588 |
|
|
589 |
<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> { |
590 |
|
<span class=comment>// <a href="#DeclaredValueType">DeclaredValueType</a></span> |
591 |
|
const unsigned short <a href="#NO_TYPE_ATTR">NO_TYPE_ATTR</a> = 0; |
592 |
|
const unsigned short <a href="#CDATA_ATTR">CDATA_ATTR</a> = 1; |
593 |
|
const unsigned short <a href="#ID_ATTR">ID_ATTR</a> = 2; |
594 |
|
const unsigned short <a href="#IDREF_ATTR">IDREF_ATTR</a> = 3; |
595 |
|
const unsigned short <a href="#IDREFS_ATTR">IDREFS_ATTR</a> = 4; |
596 |
|
const unsigned short <a href="#ENTITY_ATTR">ENTITY_ATTR</a> = 5; |
597 |
|
const unsigned short <a href="#ENTITIES_ATTR">ENTITIES_ATTR</a> = 6; |
598 |
|
const unsigned short <a href="#NMTOKEN_ATTR">NMTOKEN_ATTR</a> = 7; |
599 |
|
const unsigned short <a href="#NMTOKENS_ATTR">NMTOKENS_ATTR</a> = 8; |
600 |
|
const unsigned short <a href="#NOTATION_ATTR">NOTATION_ATTR</a> = 9; |
601 |
|
const unsigned short <a href="#ENUMERATION_ATTR">ENUMERATION_ATTR</a> = 10; |
602 |
|
const unsigned short <a href="#UNKNOWN_ATTR">UNKNOWN_ATTR</a> = 11; |
603 |
|
|
604 |
|
readonly attribute <a href="#ElementTypeDefinition">ElementTypeDefinition</a> <a href="#ownerElementTypeDefinition">ownerElementTypeDefinition</a>; |
605 |
|
|
606 |
|
readonly attribute unsigned short <a href="#declaredType">declaredType</a>; |
607 |
|
readonly attribute unsigned short <a href="#defaultType">defaultType</a>; |
608 |
|
|
609 |
|
<span class=ed>...</span> |
610 |
}</code></pre> |
}</code></pre> |
611 |
|
|
612 |
<pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members |
<pre class=ed>** Modifications to [CODE(DOMi)@en[[[Node]]]] members |
650 |
then create a [CODE(DOMi)@en[[[Text]]]] node |
then create a [CODE(DOMi)@en[[[Text]]]] node |
651 |
whose [CODE(DOMa)@en[[[data]]]] is the new value |
whose [CODE(DOMa)@en[[[data]]]] is the new value |
652 |
and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]]. |
and append it to the [CODE(DOMi)@en[[[AttributeDefinition]]]]. |
653 |
|
</pre> |
654 |
|
|
655 |
|
<dl> |
656 |
|
<dt><dfn id=ownerElementTypeDefinition class=dom-attr><code>ownerElementTypeDefinition</code></dfn> |
657 |
|
of type |
658 |
|
<a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a>, |
659 |
|
read$B!>(Bonly</dt> |
660 |
|
<dd><p>The |
661 |
|
<a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> to |
662 |
|
which the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> |
663 |
|
node belongs.</p> |
664 |
|
|
665 |
|
<p>On getting, the attribute <em class=rfc2119>MUST</em> return an |
666 |
|
<a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node. |
667 |
|
It <em class=rfc2119>MUST</em> be such a node that whose |
668 |
|
<a href="#attributeDefinitons"><code>attributeDefinitions</code></a> |
669 |
|
attribute contains the <code>NamedNodeMap</code> object that contains |
670 |
|
the <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> |
671 |
|
node. If there is no such an |
672 |
|
<a href="#ElementTypeDefinition"><code>ElementTypeDefinition</code></a> node, |
673 |
|
then <code>null</code> <em class=rfc2119>MUST</em> be returned.</p> |
674 |
|
<dt><dfn id=declaredType class=dom-attr><code>declaredType</code></dfn> of type |
675 |
|
<code>unsigned short</code></dt> |
676 |
|
<dd><p>The declared type <span class=ed>@@ ref</span> of the attribute. |
677 |
|
It is expected that this attribute contains a value from the definition group |
678 |
|
<a href="#DeclaredValueType"><code>DeclaredValueType</code></a>.</p> |
679 |
|
|
680 |
|
<p>On getting, the attribute <em class=rfc2119>MUST</em> return the |
681 |
|
value associated to this attribute.</p> |
682 |
|
|
683 |
|
<p>On setting, the attribute <em class=rfc2119>MUST</em> raise a |
684 |
|
<code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span> |
685 |
|
exception if the |
686 |
|
<a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node |
687 |
|
is read$B!>(Bonly <span class=ed>@@ ref</span>. Otherwise, it |
688 |
|
<em class=rfc2119>MUST</em> set the specified value as the value |
689 |
|
associated to this attribute.</p> |
690 |
|
|
691 |
|
<p>If the <code>AttributeDefinition</code> node is created during the process |
692 |
|
to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> document, an |
693 |
|
appropriate value from the |
694 |
|
<a href="#DeclaredValueType"><code>DeclaredValueType</code></a> constant |
695 |
|
group <em class=rfc2119>MUST</em> be set to the attribute.</p> |
696 |
|
|
697 |
|
<!-- DeclaredValueType --> |
698 |
|
<p>The definition group |
699 |
|
<dfn id=DeclaredValueType><code>DeclaredValueType</code></dfn> contains |
700 |
|
integers indicating the declared type of attributes. The definition |
701 |
|
group contains the following constants:</p> |
702 |
|
|
703 |
|
<table> |
704 |
|
<thead> |
705 |
|
<tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr> |
706 |
|
</thead> |
707 |
|
<tbody> |
708 |
|
<tr> |
709 |
|
<th scope=row><dfn id=NO_TYPE_ATTR class=dom-const><code>NO_TYPE_ATTR</code> |
710 |
|
<td><code>0</code><td>No value <span class=ed>[INFOSET]</span>.</tr> |
711 |
|
<tr> |
712 |
|
<th scope=row><dfn id=CDATA_ATTR class=dom-const><code>CDATA_ATTR</code> |
713 |
|
<td><code>1</code><td><code>CDATA</code> <span class=ed>[XML]</span>.</tr> |
714 |
|
<tr> |
715 |
|
<th scope=row><dfn id=ID_ATTR class=dom-const><code>ID_ATTR</code> |
716 |
|
<td><code>2</code><td><code>ID</code> <span class=ed>[XML]</span>.</tr> |
717 |
|
<tr> |
718 |
|
<th scope=row><dfn id=IDREF_ATTR class=dom-const><code>IDREF_ATTR</code> |
719 |
|
<td><code>3</code><td><code>IDREF</code> <span class=ed>[XML]</span>.</tr> |
720 |
|
<tr> |
721 |
|
<th scope=row><dfn id=IDREFS_ATTR class=dom-const><code>IDREFS_ATTR</code> |
722 |
|
<td><code>4</code><td><code>IDREFS</code> <span class=ed>[XML]</span>.</tr> |
723 |
|
<tr> |
724 |
|
<th scope=row><dfn id=ENTITY_ATTR class=dom-const><code>ENTITY_ATTR</code> |
725 |
|
<td><code>5</code><td><code>ENTITY</code> <span class=ed>[XML]</span>.</tr> |
726 |
|
<tr> |
727 |
|
<th scope=row><dfn id=ENTITIES_ATTR class=dom-const><code>ENTITIES_ATTR</code> |
728 |
|
<td><code>6</code><td><code>ENTITIES</code> <span class=ed>[XML]</span>.</tr> |
729 |
|
<tr> |
730 |
|
<th scope=row><dfn id=NMTOKEN_ATTR class=dom-const><code>NMTOKEN_ATTR</code> |
731 |
|
<td><code>7</code><td><code>NMTOKEN</code> <span class=ed>[XML]</span>.</tr> |
732 |
|
<tr> |
733 |
|
<th scope=row><dfn id=NMTOKENS_ATTR class=dom-const><code>NMTOKENS_ATTR</code> |
734 |
|
<td><code>8</code><td><code>NMTOKENS</code> <span class=ed>[XML]</span>.</tr> |
735 |
|
<tr> |
736 |
|
<th scope=row><dfn id=NOTATION_ATTR class=dom-const><code>NOTATION_ATTR</code> |
737 |
|
<td><code>9</code><td><code>NOTATION</code> <span class=ed>[XML]</span>.</tr> |
738 |
|
<tr> |
739 |
|
<th scope=row><dfn id=ENUMERATION_ATTR class=dom-const><code>ENUMERATION_ATTR</code> |
740 |
|
<td><code>10</code><td>Enumeration <span class=ed>[XML]</span>.</tr> |
741 |
|
<tr> |
742 |
|
<th scope=row><dfn id=UNKNOWN_ATTR class=dom-const><code>UNKNOWN_ATTR</code> |
743 |
|
<td><code>11</code><td>Unknown, because no declaration for the attribute |
744 |
|
has been read but the [all declaration processed] property |
745 |
|
<span class=ed>[INFOSET]</span> would be false.</tr> |
746 |
|
</tbody> |
747 |
|
</table> |
748 |
|
|
749 |
|
<p>If no attribute type information is available, or if the source |
750 |
|
of the information does not distinguish <q>no value</q> and <q>unknown</q> |
751 |
|
<span class=ed>[INFOSET]</span>, then the value |
752 |
|
<a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a> |
753 |
|
<em class=rfc2119>MUST</em> be used.</p> |
754 |
|
|
755 |
|
<div class="note memo"> |
756 |
|
<p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node |
757 |
|
created by the |
758 |
|
<a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a> |
759 |
|
method has its <a href="#declaredType"><code>declaredType</code></a> attribute |
760 |
|
set to <a href="#NO_TYPE_ATTR"><code>NO_TYPE_ATTR</code></a>.</p> |
761 |
|
</div> |
762 |
|
|
763 |
|
<p>If the source of the information does not distinguish <q>no value</q> |
764 |
|
and/or <q>unknown</q> <span class=ed>[INFOSET]</span> and |
765 |
|
<code>CDATA</code> <span class=ed>[XML]</span>, then the value |
766 |
|
<a href="#CDATA_ATTR"><code>CDATA_ATTR</code></a> <em class=rfc2119>MUST</em> |
767 |
|
be used.</p> |
768 |
|
|
769 |
|
<p>In Perl binding <span class=ed>[PERLBINDING]</span>, the |
770 |
|
<code>Attr</code> nodes <em class=rfc2119>MUST</em> implement the |
771 |
|
<a href="#DeclaredValueType"><code>DeclaredValueType</code></a> |
772 |
|
definition group.</p> |
773 |
|
|
774 |
|
</dd> |
775 |
|
<dt><dfn id=defaultType class=dom-attr><code>defaultType</code></dfn> of |
776 |
|
type <code>unsigned short</code></dt> |
777 |
|
<dd><p>The type of the default for the attribute. It is expected that this |
778 |
|
attribute contains a value from the definition group |
779 |
|
<a href="#DefaultValueType"><code>DefaultValueType</code></a>.</p> |
780 |
|
|
781 |
|
<p>On getting, the attribute <em class=rfc2119>MUST</em> return |
782 |
|
the value associated to this attribute.</p> |
783 |
|
|
784 |
|
<p>On setting, the attribute <em class=rfc2119>MUST</em> raise a |
785 |
|
<code>NO_MODIFICATION_ALLOWED_ERR</code> <span class=ed>@@ ref</span> |
786 |
|
exception if the |
787 |
|
<a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node |
788 |
|
is read$B!>(Bonly <span class=ed>@@ ref</span>. Otherwise, it |
789 |
|
<em class=rfc2119>MUST</em> set the specified value as the value |
790 |
|
associated to this attribute.</p> |
791 |
|
|
792 |
|
<p>If the |
793 |
|
<a href="#AttributeDefinition"><code>AttributeDefinition</code></a> node is |
794 |
|
created during the process to create a <abbr>DOM</abbr> from an |
795 |
|
<abbr>XML</abbr> document, an appropriate value from the |
796 |
|
<a href="#DefaultValueType"><code>DefaultValueType</code></a> definition |
797 |
|
group <em class=rfc2119>MUST</em> be set to the attribute.</p> |
798 |
|
|
799 |
|
<!-- DefaultValueType --> |
800 |
|
<p>The definition group |
801 |
|
<dfn id=DefaultValueType><code>DefaultValueType</code></dfn> |
802 |
|
contains integers indicating the type of the default for the attribute. |
803 |
|
The definition group contains the following constans:</p> |
804 |
|
|
805 |
|
<table> |
806 |
|
<thead> |
807 |
|
<tr><th scope=col>Name<th scope=col>Value<th scope=col>Description</tr> |
808 |
|
</thead> |
809 |
|
<tbody> |
810 |
|
<tr> |
811 |
|
<th scope=row><dfn id=UNKNOWN_DEFAULT class=dom-const><code>UNKNOWN_DEFAULT</code></dfn> |
812 |
|
<td><code>0</code><td>Unknown.</tr> |
813 |
|
<tr> |
814 |
|
<th scope=row><dfn id=FIXED_DEFAULT class=dom-const><code>FIXED_DEFAULT</code></dfn> |
815 |
|
<td><code>1</code><td>Provided explicitly and fixed |
816 |
|
<span class=ed>@@ ref</span> to that value.</tr> |
817 |
|
<tr> |
818 |
|
<th scope=row><dfn id=REQUIRED_DEFAULT class=dom-const><code>REQUIRED_DEFAULT</code></dfn> |
819 |
|
<td><code>2</code><td>No default value and the attribute have to be |
820 |
|
explicitly specified.</tr> |
821 |
|
<tr> |
822 |
|
<th scope=row><dfn id=IMPLIED_DEFAULT class=dom-const><code>IMPLIED_DEFAULT</code></dfn> |
823 |
|
<td><code>3</code><td>Implied <span class=ed>@@ ref</span>.</tr> |
824 |
|
<tr> |
825 |
|
<th scope=row><dfn id=EXPLICIT_DEFAULT class=dom-const><code>EXPLICIT_DEFAULT</code></dfn> |
826 |
|
<td><code>4</code><td>Provided explicitly.</tr> |
827 |
|
</tbody> |
828 |
|
</table> |
829 |
|
|
830 |
|
<p>If the source of the default type does not distinguish |
831 |
|
implied and unknown default types, then the value |
832 |
|
<a href="#IMPLIED_DEFAULT"><code>IMPLIED_DEFAULT</code></a> |
833 |
|
<em class=rfc2119>MUST</em> be used.</p> |
834 |
|
|
835 |
|
<div class="note memo"> |
836 |
|
<p>An <a href="#AttributeDefinition"><code>AttributeDefinition</code></a> |
837 |
|
node created by the |
838 |
|
<a href="#createAttributeDefinition"><code>createAttributeDefinition</code></a> |
839 |
|
method has its <a href="#defaultType"><code>defaultType</code></a> |
840 |
|
attribute set to |
841 |
|
<a href="#UNKNOWN_DEFAULT"><code>UNKNOWN_DEFAULT</code></a>.</p> |
842 |
|
</div></dd> |
843 |
|
</dl> |
844 |
|
|
845 |
|
</div> |
846 |
|
|
847 |
** Definition groups |
<div class=section id=section-documenttype> |
848 |
|
<h3>Modifications to the <code id=DocumentType>DocumentType</code> |
849 |
|
Interface</h3> |
850 |
|
|
851 |
|
<p>A <a href="#DocumentType"><code>DocumentType</code></a> interface |
852 |
|
<em class=rfc2119>MAY</em> contain zero or more |
853 |
|
<a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> |
854 |
|
nodes in the <code>NodeList</code> object contained in the |
855 |
|
<code>childNodes</code> attribute of the |
856 |
|
<a href="#DocumentType"><code>DocumentType</code></a> node.</p> |
857 |
|
|
858 |
|
<p>If the <a href="#DocumentType"><code>DocumentType</code></a> node is created |
859 |
|
during the process to create a <abbr>DOM</abbr> from an <abbr>XML</abbr> |
860 |
|
document, the <code>NodeList</code> object in the <code>childNodes</code> |
861 |
|
object <em class=rfc2119>MUST</em> contains the |
862 |
|
<a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> |
863 |
|
nodes representing the processing instructions in the document type |
864 |
|
definition of the document processed <span class=ed>@@ ref</span> by |
865 |
|
the <abbr>XML</abbr> processor. If the |
866 |
|
<a href="#DocumentType"><code>DocumentType</code></a> node is marked |
867 |
|
as read$B!>(Bonly, then all the child nodes <em class=rfc2119>MUST</em> |
868 |
|
also be marked as read$B!>(Bonly.</p> |
869 |
|
|
870 |
|
<p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is created |
871 |
|
from a document type declaration information item <span class=ed>@@ ref</span>, |
872 |
|
the <code>NodeList</code> object in the <code>childNodes</code> attribute |
873 |
|
of the node <em class=rfc2119>MUST</em> contain the |
874 |
|
<a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes |
875 |
|
created from the processing instruction information items in the list in the |
876 |
|
[children] property of the document type declaration item in the same |
877 |
|
order.</p> |
878 |
|
|
879 |
|
<p>If a <a href="#DocumentType"><code>DocumentType</code></a> node is mapped to |
880 |
|
a document type declaration information item, the list in the [children] |
881 |
|
property <em class=rfc2119>MUST</em> contain the processng instruction |
882 |
|
information items created from the |
883 |
|
<a href="#ProcessingInstruction"><code>ProcessingInstruction</code></a> nodes |
884 |
|
in the <code>NodeList</code> object in the <code>childNodes</code> attribute |
885 |
|
of the <a href="#DocumentType"><code>DocumentType</code></a> node.</p> |
886 |
|
|
887 |
|
<pre class=idl><code>// Modifications to the DocumentType interface |
888 |
|
attribute DOMString <a href="#publicId">publicId</a>; |
889 |
|
attribute DOMString <a href="#systemId">systemId</a>; |
890 |
|
</code></pre> |
891 |
|
|
892 |
|
<p class=ed> |
893 |
|
The publicId attribute and the systemId attribute of DocumentType, Entity, and Notation objects are now read-write. |
894 |
|
|
895 |
|
The setter MUST throw a NO_MODIFICATION_ALLOWED_ERR DOMException if the Node object is read-only. Otherwise, it MUST set the specified value to the attribute. No normalization, lexical validation, or relative reference resolving is performed. null, which represents no public or system identifier is provided, might be specified. |
896 |
|
|
897 |
|
Setting public or system identifier does never result in any lexical or logical structure of the document being changed. In particular, no external entity referenced by new identifier will be loaded. |
898 |
|
|
899 |
|
Setting an invalid or non-normalized identifier might make the object non-serializable. Setting a non-null public identifier to a DocumentType or Entity object that does not have non-null system identifier or setting null as the system identifier of a DocumentType or Entity object that does have non-null public identifier will make that object non-serializable. |
900 |
|
|
901 |
|
ISSUE: In HTML5, Firefox 1.5, and Opera 9, not specifying public or system identifier results in empty strings. |
902 |
|
</pre> |
903 |
|
|
|
[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> |
|
904 |
</div> |
</div> |
905 |
|
|
906 |
</div> |
</div> |