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> |
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 |
** Definition groups |
<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 |
|
<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> |