### [What is the Document Object Model?][1]

> The Document Object Model (DOM) is an **application programming interface** (API) for valid HTML and well-formed XML documents. It defines the **logical structure** of documents and **the way a document is accessed and manipulated**. [...] Nevertheless, **XML presents this data as documents**, and the DOM may be used to manage this data.

In other words, the DOM is not a string, but HTML/XML may represent the DOM as a string.

### DOM specs

- [DOM Level 1][2]
- [DOM Level 2 Core][3]
- [DOM Level 2 Views][4] (Obsolete)
- [DOM Level 2 Events][5]
- [DOM Level 2 Style][6]
- [DOM Level 2 Traversal and Range][7]
- [DOM Level 2 HTML][8]
- [DOM Level 3 Core][9]
- [DOM Level 3 Load and Save][10]
- [DOM Level 3 Validation][11]
- [DOM Level 3 Events][12]
- [DOM Level 3 XPath][13]
- [DOM Level 4 Core][14]

### Useful references

- [Quirks mode compatibility tables][15]
- [MSXML DOM Reference][16]
- [Gecko DOM Reference][17]
- [The DOM in .NET][18]
- [Document Object Model Wikipedia Article][19]

  [1]: http://www.w3.org/TR/DOM-Level-2-Core/introduction.html
  [2]: http://www.w3.org/TR/REC-DOM-Level-1/
  [3]: http://www.w3.org/TR/DOM-Level-2-Core/
  [4]: http://www.w3.org/TR/DOM-Level-2-Views/
  [5]: http://www.w3.org/TR/DOM-Level-2-Events/
  [6]: http://www.w3.org/TR/DOM-Level-2-Style/
  [7]: http://www.w3.org/TR/DOM-Level-2-Traversal-Range/
  [8]: http://www.w3.org/TR/DOM-Level-2-HTML/
  [9]: http://www.w3.org/TR/DOM-Level-3-Core/
  [10]: http://www.w3.org/TR/DOM-Level-3-LS/
  [11]: http://www.w3.org/TR/DOM-Level-3-Val/
  [12]: http://www.w3.org/TR/DOM-Level-3-Events/
  [13]: http://www.w3.org/TR/DOM-Level-3-XPath/
  [14]: http://www.w3.org/TR/domcore/
  [15]: http://www.quirksmode.org/compatibility.html
  [16]: http://msdn.microsoft.com/en-us/library/ms766487.aspx
  [17]: https://developer.mozilla.org/en/gecko_dom_reference
  [18]: http://msdn.microsoft.com/en-us/library/hf9hbf87.aspx
  [19]: http://en.wikipedia.org/wiki/Document_Object_Model