DocumentTypeDefinition

DocumentTypeDefinition

The DocumentTypeDefinition Interface

manakai//DOM Extensions > DOM XML Document Type Definition module > New Interfaces > The DocumentTypeDefinition Interface

[1] In an implementation that supports the http://suika.fam.cx/www/2006/feature/XDoctype feature, a DocumentType node must implement the DocumentTypeDefinition interface. See DOM XML Document Type Definition (>>3) for details.

Children

[2] The elementTypes attribute of the DocumentTypeDefinition interface is a live NamedNodeMap object that contains all element types belongs to the DocumentTypeDefinition node. The type of the attribute is NamedNodeMap. The attribute is read-only.

What are contained in this collection depends on how the DocumentTypeDefinition node was created. If the node was created as the result of parsing of an XML document, it MUST contain all element types whose element type and / or attribute definition list declaration are encountered by and provided for the DOM implementation from the XML processor. Note that the XML processor might not provide a part of or entire such information depending on the configuration. If more than one declarations for an element type or an attribute is available at the time of the definition node construction, then declarations other than the first ones MUST be discarded.

The attribute MUST return the NamedNodeMap object that contains all the ElementTypeDefinition nodes belong to the node. The returned NamedNodeMap object MUST be read-only if and only if the node is read-only. Note that the NamedNodeMap object is live and therefore any change of read-only flag on the node is immediately reflected by that of the object.

[3] The generalEntities attribute of the DocumentTypeDefinition interface is a live NamedNodeMap object that contains all the general entities belong to the DocumentTypeDefinition node. The type of the attribute is NamedNodeMap. The attribute is read-only.

All entities declared in the document type definition contained in or referenced from the document entity might not be exposed through this collection, depending on the information provided by the XML processor for the DOM implementation. In particular, it might not contain any entity if entity references are expanded at the parse time. An implementation MUST NOT expose an Entity node whose nodeName is equal to the name of one of five predefined general entities in XML through the collection as the result of parsing of an XML document that has no error. Duplicate entity declarations are also discarded.

The attribute MUST return the NamedNodeMap object that contains all the Entity nodes representing general entities belong to the node. The returned NamedNodeMap object MUST be read-only if and only if the node is read-only. Note that the NamedNodeMap object is live and therefore any change of read-only flag on the node is immediately reflected by that of the object.

The attribute MUST return the same value as the entites attribute of the DocumentType interface on the same node.

[4] The notations attribute of the DocumentTypeDefinition interface is a live NamedNodeMap object that contains all the notations belong to the DocumentTypeDefinition node. The type of the attribute is NamedNodeMap. The attribute is read-only.

If the DocumentTypeDefinition node is created from an XML document, duplicate notation declarations, if any, in DTD MUST NOT result in a node in the NamedNodeMap object and only the first declaration MUST be made available as a Notation node.

This definition is based on one for the notations attribute of the DocumentType interface in DOM XML module. Since duplication is violation to the Validity Constraint, XML parsers might vary on how notations are notified to the application. In particular, notations property of the document information item in XML Information Set is so defined that in case any notation is declared for multiple times then the property has no value.

The attribute MUST return the NamedNodeMap object that contains all the Notation nodes representing notations belong to the node. The returned NamedNodeMap object MUST be read-only if and only if the node is read-only. Note that the NamedNodeMap object is live and therefore any change of read-only flag on the node is immediately reflected by that of the object.

A DOM implementation is not required to implement the notations attribute twice for the DocumentType and the DocumentTypeDefinition interfaces; the latter is defined to contain the same value as the former.

Open Issues (informative)

[5] A future version of the interface might define the parameterEntities attribute and getter/setter for parameter entities.

memo

[6] This interface is implemented by manakai; see <http://suika.fam.cx/gate/cvs/messaging/manakai/lib/Message/DOM/DocumentType.pm> for its source code.