10 May, 2000


Arnaud Le Hors, W3C
Robert S. Sutor, IBM Research (for DOM Level 1)

Several of the following term definitions have been borrowed or modified from similar definitions in other W3C or standards documents. See the links within the definitions for more information.

16-bit unit
The base unit of a DOMString. This indicates that indexing on a DOMString occurs in units of 16 bits. This must not be misunderstood to mean that a DOMString can store arbitrary 16-bit units. A DOMString is a character string encoded in UTF-16; this means that the restrictions of UTF-16 as well as the other relevant restrictions on character strings must be maintained. A single character, for example in the form of a numeric character reference, may correspond to one or two 16-bit units.
For more information, see [Unicode] and [ISO/IEC 10646].
An ancestor node of any node A is any node above A in a tree model of a document, where "above" means "toward the root."
An API is an application programming interface, a set of functions or methods used to access some functionality.
A child is an immediate descendant node of a node.
client application
A [client] application is any software that uses the Document Object Model programming interfaces provided by the hosting implementation to accomplish useful work. Some examples of client applications are scripts within an HTML or XML document.
COM is Microsoft's Component Object Model [COM], a technology for building applications from binary software components.
content model
The content model is a simple grammar governing the allowed types of the child elements and the order in which they appear. See Element Content in XML [XML].
A contextspecifies an access pattern (or path): a set of interfaces which give you a way to interact with a model. For example, imagine a model with different colored arcs connecting data nodes. A context might be a sheet of colored acetate that is placed over the model allowing you a partial view of the total information in the model.
A convenience method is an operation on an object that could be accomplished by a program consisting of more basic operations on the object. Convenience methods are usually provided to make the API easier and simpler to use or to allow specific programs to create more optimized implementations for common operations. A similar definition holds for a convenience property.
cooked model
A model for a document that represents the document after it has been manipulated in some way. For example, any combination of any of the following transformations would create a cooked model:
  1. Expansion of internal text entities.
  2. Expansion of external entities.
  3. Model augmentation with style-specified generated text.
  4. Execution of style-specified reordering.
  5. Execution of scripts.
A browser might only be able to provide access to a cooked model, while an editor might provide access to a cooked or the initial structure model (also known as the uncooked model) for a document.
CORBA is the Common Object Request Broker Architecture from the OMG [CORBA]. This architecture is a collection of objects and libraries that allow the creation of applications containing objects that make and receive requests and responses in a distributed environment.
A cursoris an object representation of a node. It may possess information about context and the path traversed to reach the node.
data model
A data model is a collection of descriptions of data structures and their contained fields, together with the operations or functions that manipulate them.
The deepest element is that element which is furthest from the root or document element in a tree model of the document.
When new releases of specifications are released, some older features may be marked as being deprecated. This means that new work should not use the features and that although they are supported in the current release, they may not be supported or available in future releases.
A descendant node of any node A is any node below A in a tree model of a document, where "above" means "toward the root."
DOM Level 0
The term "DOM Level 0" refers to a mix (not formally specified) of HTML document functionalities offered by Netscape Navigator version 3.0 and Microsoft Internet Explorer version 3.0. In some cases, attributes or methods have been included for reasons of backward compatibility with "DOM Level 0".
The programming language defined by the ECMA-262 standard [ECMAScript]. As stated in the standard, the originating technology for ECMAScript was JavaScript [JavaScript]. Note that in the ECMAScript binding, the word "property" is used in the same sense as the IDL term "attribute."
Each document contains one or more elements, the boundaries of which are either delimited by start-tags and end-tags, or, for empty elements by an empty-element tag. Each element has a type, identified by name, and may have a set of attributes. Each attribute has a name and a value. See Logical Structures in XML [XML].
event propagation, also known as event bubbling
This is the idea that an event can affect one object and a set of related objects. Any of the potentially affected objects can block the event or substitute a different one (upward event propagation). The event is broadcast from the node at which it originates to every parent node.
Two nodes are equivalent if they have the same node type and same node name. Also, if the nodes contain data, that must be the same. Finally, if the nodes have attributes the collection of attribute names must be the same and the attributes corresponding by name must be equivalent as nodes.
Two nodes are deeply equivalent if they are equivalent, their child node lists are equivalent NodeList objects, and their attributes are deeply equivalent.
Two NodeList objects are equivalent if they have the same length, and the nodes corresponding by index are deeply equivalent.
Two NamedNodeMap objects are equivalent if they have the same length, they have same collection of names, and the nodes corresponding by name in the maps are deeply equivalent.
Two DocumentType nodes are equivalent if they are equivalent as nodes, have the same names, and have equivalent entities and attributes NamedNodeMap objects.
information item
An information item is an abstract representation of some component of an XML document. See the [Infoset] for details.
hosting implementation
A [hosting] implementation is a software module that provides an implementation of the DOM interfaces so that a client application can use them. Some examples of hosting implementations are browsers, editors and document repositories.
The HyperText Markup Language (HTML) is a simple markup language used to create hypertext documents that are portable from one platform to another. HTML documents are SGML documents with generic semantics that are appropriate for representing information from a wide range of applications. [HTML4.0]
An Interface Definition Language (IDL) is used to define the interfaces for accessing and operating upon objects. Examples of IDLs are the Object Management Group's IDL [CORBA], Microsoft's IDL [MIDL], and Sun's Java IDL [JavaIDL].
Companies, organizations, and individuals that claim to support the Document Object Model as an API for their products.
In object-oriented programming, the ability to create new classes (or interfaces) that contain all the methods and properties of another class (or interface), plus additional methods and properties. If class (or interface) D inherits from class (or interface) B, then D is said to be derived from B. B is said to be a base class (or interface) for D. Some programming languages allow for multiple inheritance, that is, inheritance from more than one class or interface.
initial structure model
Also known as the raw structure model or the uncooked model, this represents the document before it has been modified by entity expansions, generated text, style-specified reordering, or the execution of scripts. In some implementations, this might correspond to the "initial parse tree" for the document, if it ever exists. Note that a given implementation might not be able to provide access to the initial structure model for a document, though an editor probably would.
An interface is a declaration of a set of methods with no information given about their implementation. In object systems that support interfaces and inheritance, interfaces can usually inherit from one another.
language binding
A programming language binding for an IDL specification is an implementation of the interfaces in the specification for the given language. For example, a Java language binding for the Document Object Model IDL specification would implement the concrete Java classes that provide the functionality exposed by the interfaces.
local name
A local name is the local part of a qualified name. This is called the local part in Namespaces in XML [Namespaces].
A method is an operation or function that is associated with an object and is allowed to manipulate the object's data.
A model is the actual data representation for the information at hand. Examples are the structural model and the style model representing the parse structure and the style information associated with a document. The model might be a tree, or a directed graph, or something else.
namespace prefix
A namespace prefix is a string that associates an element or attribute name with a namespace URI in XML. See namespace prefix in Namespaces in XML [Namespaces].
namespace URI
A namespace URI is a URI that identifies an XML namespace. This is called the namespace name in Namespaces in XML [Namespaces].
object model
An object model is a collection of descriptions of classes or interfaces, together with their member data, member functions, and class-static operations.
A parent is an immediate ancestor node of a node.
qualified name
A qualified name is the name of an element or attribute defined as the concatenation of a local name (as defined in this specification), optionally preceded by a namespace prefix and colon character. See Qualified Names in Namespaces in XML [Namespaces].
root node
The root node is the unique node that is not a child of any other node. All other nodes are children or other descendents of the root node. See Well-Formed XML Documents in XML [XML].
readonly node
A readonly node is a node that is immutable. This means its list of children, its content, and its attributes, when it is an element, cannot be changed in any way. However, a readonly node can possibly be moved, when it is not itself contained in a readonly node.
Two nodes are siblings if they have the same parent node.
string comparison
When string matching is required, it is to occur as though the comparison was between 2 sequences of code points from the Unicode 3.0 standard.
tag valid document
A document is tag valid if all begin and end tags are properly balanced and nested.
type valid document
A document is type valid if it conforms to an explicit DTD.
uncooked model
See initial structure model.
well-formed document
A document is well-formed if it is tag valid and entities are limited to single elements (i.e., single sub-trees).
Extensible Markup Language (XML) is an extremely simple dialect of SGML. The goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. [XML]
XML name
See XML name in the XML specification [XML].
XML namespace
An XML namespace is a collection of names, identified by a URI reference [RFC2396], which are used in XML documents as element types and attribute names. [Namespaces]