Document Object Model (DOM), a programming interface specification being developed by the World Wide Web Consortium (W3C), lets a programmer create and modify HTML pages and XML documents as full-fledged program objects. Currently, HTML (Hypertext Markup Language) and XML (Extensible Markup Language) are ways to express a document in terms of a data structure. As program objects, such documents will be able to have their contents and data "hidden" within the object, helping to ensure control over who can manipulate the document. As objects, documents can carry with them the object-oriented procedures called methods. DOM is a strategic and open effort to specify how to provide programming control over documents. It was inspired in part by the advent of the new HTML capabilities generally called dynamic HTML and as a way to encourage consistent browser behavior with Web pages and their elements.
The Document Object Model offers two levels of interface implementation: DOM Core, which supports XML and is the base for the next level, and DOM HTML, which extends the model to HTML documents. Here are some highlights:
- Any HTML or XML element (with the possibility of a few exceptions) will be individually addressable by programming.
- The specification will be language-independent. The specification, when available, will be described using the interface definition language (IDL) from the industry open standard CORBA.
- DOM is not to be confused with Microsoft's Component Object Model (COM) or Distributed Component Object Model (DCOM). COM and CORBA are language-independent ways to specifiy objects and could be used to create DOM objects (documents) just as specific languages like Java could.
Progress of the Document Object Model specification can be followed at the W3C Web site.