DOM Level 3 includes several new interfaces that support features, such as: The following sections describe the new interfaces that were introduced in DOM Level 3. 19.6.1 DOMStringList The DOMStringList interface models a simple utility class that contains an ordered list of DOMString objects. Table 19-16 describes the DOMStringList interface. Table 19-16. The DOMStringList interface Name | Type | Read-only | Attribute | | | length | unsigned long | | Methods | | | contains | boolean | | item | DOMString | | 19.6.1.1 NameList The NameList interface models an ordered collection of names and corresponding namespace URIs. One use of this interface is in modeling the linkage between namespace prefixes and namespace URIs. Table 19-17 describes the NameList interface. Table 19-17. The NameList interface Name | Type | Read-only | Attribute | | | length | unsigned long | | Methods | | | contains | boolean | | containsNS | boolean | | getName | DOMString | | getNamespaceURI | DOMString | | 19.6.1.2 DOMImplementationList The DOMImplementationList interface models a list of DOMImplementation objects, as shown in Table 19-18. Table 19-18. The DOMImplementationList interface Name | Type | Read-only | Attribute | | | length | unsigned long | | Method | | | item | DOMImplementation | | 19.6.1.3 DOMImplementationSource The DOMImplementationSource interface, shown in Table 19-19, allows a DOM client to dynamically select a particular DOM implementation from a list of available implementations based on a requested feature set. It also allows the client to retrieve a complete list of all DOMImplementation objects that are available at runtime. Table 19-19. The DOMImplementationSource interface Name | Type | Read-only | Methods | | | getDOMImplementation | DOMImplementation | | getDOMImplementationList | DOMImplementationList | | 19.6.1.4 TypeInfo One of the major enhancements provided by DOM Level 3 is the presence of type information within the DOM tree after a document has been parsed and validated . The TypeInfo interface, described in Table 19-20, provides a very simple interface that allows a DOM implementation to provide schema-independent type information for elements and attributes within the DOM tree. Table 19-20. The TypeInfo interface Name | Type | Read-only | Attributes | | | typeName | DOMString | | typeNamespace | DOMString | | Method | | | isDerivedFrom | boolean | | 19.6.1.5 UserDataHandler DOM Level 3 provides the ability for developers to attach their own user -defined data to any Node within a live DOM tree. The UserDataHandler interface is a callback interface that may be implemented by the developer when he wishes to receive notifications regarding operations that might be performed on various nodes (i.e., nodes are cloned, deleted, moved, and so forth). Its method is listed in Table 19-21. Table 19-21. The UserDataHandler interface Name | Type | Read-only | Method | | | handle | void | | 19.6.1.6 DOMError Prior to Level 3, all error handling within the DOM was done through the DOMException mechanism. Level 3 provides a new error handling facility that allows the developer to register a callback object (which implements the DOMErrorHandler interface) that will be notified when an error occurs during DOM operations. The DOMError interface describes an object that contains the details of such an error. The DOMError interface is described in Table 19-22. Table 19-22. The DOMError interface Name | Type | Read-only | Attributes | | | location | DOMLocator | | message | DOMString | | relatedData | DOMObject | | relatedException | DOMObject | | severity | unsigned short | | type | DOMString | | 19.6.1.7 DOMErrorHandler Unlike earlier DOM Levels, Level 3 allows a DOM developer to create a callback object that may receive notifications when errors occur during DOM processing. This is done by developing an object that implements the DOMErrorHandler interface. Then, when an error occurs during a DOM operation (such as a validity error during a node insert), the handleError( ) method will be called with detailed error information. Its method is listed in Table 19-23. Table 19-23. The DOMErrorHandler interface Name | Type | Read-only | Method | | | handleError | boolean | | 19.6.1.8 DOMLocator The DOMLocator interface, shown in Table 19-24, describes a location within a DOM document. It is primarily used by the new DOMError interface to provide detailed information about where a particular error has occurred. Table 19-24. The DOMLocator interface Name | Type | Read-only | Attributes | | | byteOffset | long | | columnNumber | long | | lineNumber | long | | relatedNode | Node | | utf16Offset | long | | uri | DOMString | | 19.6.1.9 DOMConfiguration The DOMConfiguration interface, shown in Table 19-25, provides a generic container for configuring various parameters that influence the processing of XML documents when they are first parsed or when they are reprocessed using the Document.normalizeDocument( ) method. For a complete list of parameters that are recognized by DOM Level 3 implementations, see the DOMConfiguration reference section in Chapter 25. Table 19-25. The DOMConfiguration interface Name | Type | Read-only | Attribute | | | parameterNames | DOMStringList | | Methods | | | canSetParameter | boolean | | getParameter | DOMUserData | | setParameter | void | | |