AllExperts > Encyclopedia 
Search      
Find out about volunteering to AllExperts

Document Object Model: Encyclopedia BETA


Free Encyclopedia
 Index · Browse A-Z  · Questions and Answers ·
Encyclopedia

Browse A-Z
ABCDEFGHIJKLMNOPQRSTUVWXYZNum


License
Disclaimer

 
 
 
 
Free Online Courses
12 Weeks to Weight Loss
Take Charge of Stress
Learn How to Bake
Budgeting 101
Deeper Faith
DIY Fashion Makeover

       MORE E-COURSES
 
   

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  Misc

Document Object Model

Document Object Model (DOM) is a description of how an HTML or XML document is represented in a tree structure. DOM provides an object oriented application programming interface that allows parsing HTML or XML into a well defined tree structure and operating on its contents.

Various interfaces were initially implemented by web browsers to manipulate elements in an HTML document through JavaScript. This prompted the World Wide Web Consortium (W3C) to come up with a series of standard specifications that defined the W3C Document Object Model (W3C DOM). The W3C specifications are platform and language independent. The previous vendor-specific interfaces were dubbed intermediate DOMs.

The tree-based implementation requires that the entire content of a document be parsed and stored in memory. Hence, DOM is best used for applications where the document elements have to be accessed and manipulated in an unpredictable sequence and repeatedly. If the application involves a sequential or one-time selective read or write per processed document, DOM presents a considerable overhead. The sequential SAX model is advantageous in such a case in terms of speed and memory consumption.

Levels

The W3C DOM specifications are divided into levels, each of which contains required and optional modules. To claim to support a level, an application must implement all the requirements of the claimed level and the underlying levels. An application may also support vendor-specific extensions if they don't conflict with the W3C standards. As of 2005, Level 1 and Level 2, and some modules of Level 3 are W3C Recommendations which means they have reached their final form.

; Level 0 : The application supports an intermediate DOM, which existed before the creation of DOM Level 1. Examples include the DHTML Object Model or the Netscape intermediate DOM. Level 0 is not a formal specification published by the W3C but rather a shorthand that refers to what existed before the standardization process.Level 1 : Navigation of DOM (HTML and XML) document (tree structure) and content manipulation (includes adding elements). HTML-specific elements are included as well.; Level 2 : XML namespace support, filtered views and events.Level 3 : Consists of 6 different specifications: :# DOM Level 3 Core;:# DOM Level 3 Load and Save; :# DOM Level 3 XPath; :# DOM Level 3 Views and Formatting; :# DOM Level 3 Requirements; and :# DOM Level 3 Validation, which further enhances the DOM.

Use in web browsers

DOM_Inspector.png

DOM Inspector inspecting Wikipedia's main page

Since each web browser used to exclusively support its own intermediate DOM, inter-operability problems were abundant. In order to be cross-browser compatible, i.e. support multiple browsers, large parts of Dynamic HTML code had to be rewritten for each browser to be supported. A common DOM promised to greatly simplify the development of complex web applications.

W3C DOM Level 1 has been a recommendation since 1 October, 1998. The standardization effort did not bring forth an immediate change, since non-conformant browsers such as Internet Explorer 4.x and Netscape 4.x were still widely used in 2000. As of 2005, large parts of W3C DOM are well supported by common JavaScript-enabled web browsers, including Microsoft Internet Explorer (version 5 (1999), ... version 6 (2001)), Gecko-based browsers (like Mozilla and Firefox), Opera and Safari. Web developers are starting to mostly or solely rely on W3C DOM, since it doesn't preclude from reaching a large audience.

The article Comparison of layout engines (DOM) shows which methods and attributes may be used safely given certain browser requirements.

Specifications

*Document Object Model (DOM) Level 1 Specification
*Level 2 Recommendations:
**Document Object Model (DOM) Level 2 Core Specification
**Document Object Model (DOM) Level 2 Views Specification
**Document Object Model (DOM) Level 2 Events Specification
**Document Object Model (DOM) Level 2 Style Specification
**Document Object Model (DOM) Level 2 Traversal and Range Specification
**Document Object Model (DOM) Level 2 HTML Specification
*Level 3 Recommendations:
**Document Object Model (DOM) Level 3 Core Specification
**Document Object Model (DOM) Level 3 Load and Save Specification
**Document Object Model (DOM) Level 3 Validation Specification
*Level 3 Working Group Notes:
**Document Object Model (DOM) Level 3 XPath Specification
**Document Object Model (DOM) Level 3 Views and Formatting Specification
**Document Object Model (DOM) Requirements

See also

*DOM Events
*SAX - A set of APIs for accessing and manipulating XML documents in a sequential manner.
*JDOM - A Java-based document object model for XML that integrates with DOM and SAX and uses parsers to build the document.
*Comparison of layout engines (DOM)
*AJAX - A methodology employing DOM in combination with techniques for retrieving data without reloading a page.

External links

*W3.org on DOM
*Technology Reports
*Tutorials
*What does your user agent claim to support?
*What does each DOM Level bring?
*About the W3C Document Object Model (MSDN)
*W3C DOM scripts and compatibility tables (Quirksmode)
*Gecko DOM Reference
*khtml Library API Documentation
*Interfaces for ...
**C++
**Java - W3C Document Object Model Level 2
**Lisp
**Pascal (Kylix)
**Perl
**PHP
**Python
**Ruby
**TCL



Email this page
About Us | Advertise on This Site | User Agreement | Privacy Policy | Kids' Privacy Policy | Help
About and About.com are registered trademarks of About, Inc. The About logo is a trademark of About, Inc. All rights reserved.
This is the "GNU Free Documentation License" reference article from the English Wikipedia. All text is available under the terms of the GNU Free Documentation License. See also our Disclaimer.