Modelo de objeto de documento

En informática , el modelo de objeto de documento (a menudo abreviado como DOM ), literalmente modelo de objeto del documento , es una forma de representación de documentos estructurada como un modelo orientado a objetos . Es el estándar oficial del W3C para la representación de documentos estructurados para ser neutrales tanto para el idioma como para la plataforma . También es la base para una amplia gama de interfaces de programación de aplicaciones , algunas de ellas estandarizadas por el W3C.

Historia

La historia del Modelo de objetos del documento está entrelazada con la historia de las "guerras de navegadores" de finales de la década de 1990 entre Netscape Navigator y Microsoft Internet Explorer , así como con la de JavaScript y JScript , los primeros lenguajes de secuencias de comandos que se implementaron ampliamente. en el motor de JavaScript del navegador web.

JavaScript fue lanzado por Netscape Communications en 1995 dentro de Netscape Navigator 2.0. El competidor de Netscape, Microsoft, lanzó Internet Explorer 3.0 al año siguiente con una nueva implementación de JavaScript llamada JScript. JavaScript y JScript permiten a los desarrolladores web crear páginas web con interactividad del lado del cliente . La funcionalidad limitada para detectar eventos generados por el usuario y editar el documento HTML en la primera generación de estos lenguajes se conoció como "DOM Level 0" o "Legacy DOM". No se ha desarrollado un estándar independiente para DOM Nivel 0, pero se ha descrito parcialmente en la especificación para HTML 4.

El DOM heredado estaba limitado en los tipos de elementos a los que podía acceder. Puede hacer referencia a elementos de formulario, vínculo e imagen con un nombre jerárquico que comience con el objeto del documento principal. Un nombre jerárquico podría hacer uso de los nombres o el índice secuencial de los elementos atravesados. Por ejemplo, puede acceder a un elemento de entrada de formulario como document.formName.inputNameo document.forms[0].elements[0].

El DOM heredado habilitaba la validación de formularios del lado del cliente y el popular efecto "vuelco".

En 1997, Netscape y Microsoft lanzaron la versión 4.0 de Netscape Navigator e Internet Explorer respectivamente, y agregaron compatibilidad con la función HTML dinámico (DHTML) que permite realizar cambios en un documento HTML cargado. DHTML requería extensiones para el objeto de documento rudimentario que estaba disponible en implementaciones DOM heredadas. Aunque las implementaciones DOM heredadas eran en gran medida compatibles, ya que JScript se basaba en JavaScript, cada fabricante de navegadores desarrolló extensiones DHTML DOM en paralelo y seguían siendo incompatibles. Estas versiones del DOM se conocen como el "DOM intermedio".

Después de la estandarización de ECMAScript , el grupo de trabajo DOM del W3C comenzó a redactar una especificación DOM estándar. La especificación completa, conocida como "DOM Nivel 1", se convirtió en una recomendación del W3C a fines de 1998. En 2005, gran parte del DOM del W3C estaba bien respaldado por navegadores comunes compatibles con ECMAScript, incluidos Microsoft Internet Explorer versión 6 (desde 2001), Opera , Safari y Gecko (como Mozilla, Firefox, SeaMonkey y Camino).

Descripción

Compatible de forma nativa con los navegadores para modificar elementos de un documento HTML , DOM es una forma de acceder y actualizar dinámicamente el contenido, la estructura y el estilo de los documentos. Para las numerosas incompatibilidades debidas al diferente tipo de gestión de DOM por parte de los distintos navegadores, el W3C ha establecido especificaciones estándar.

DOM no impone limitaciones a la estructura de datos de un documento. DOM le permite ver un documento bien formado en forma de árbol: la mayoría de los analizadores XML (como Xerces ) y los procesadores XSL (como Xalan ) se han desarrollado para utilizar la estructura de árbol. Esta implementación requiere que todo el contenido de un documento se analice y se guarde en la memoria. DOM se utiliza principalmente para recuperar información de documentos con una estructura no estándar, es decir, donde los elementos deben encontrarse al azar. Para las aplicaciones basadas en XML que usan un proceso de lectura y escritura para el análisis, DOM presenta una gran pérdida de memoria; para este tipo de aplicaciones se recomienda utilizar el modelo SAX .

Niveles

Las especificaciones DOM desarrolladas por W3C se dividen en niveles, cada uno de los cuales contiene módulos obligatorios u opcionales. Para reclamar pertenecer a un cierto 'nivel', una aplicación debe cumplir con todos los requisitos de ese nivel e inferior. La especificación DOM actual es el Nivel 2 , sin embargo, algunas de las especificaciones del Nivel 3 ya son recomendaciones del W3C.

Nivel 0 incluye todo lo que se proporciona a DOM para la creación de Nivel 1, por ejemplo : document.images,, document.formsy . Tenga en cuenta que esta no es una especificación convencional publicada por el W3C, sino que proporciona una referencia a lo que existía antes del proceso de estandarización.document.layersdocument.all Nivel 1 navegación de un documento DOM y manipulación de contenido. Nivel 2 Compatibilidad con espacios de nombres XML , vistas filtradas y eventos DOM . Nivel 3 consta de 6 especificaciones diferentes:
  1. el núcleo del Nivel 3;
  2. carga y guardado del Nivel 3;
  3. XPath de nivel 3;
  4. vistas y formato de nivel 3;
  5. requisitos de nivel 3;
  6. Validación de nivel 3, que mejora aún más DOM.

Ejemplo

Un ejemplo clásico de un árbol DOM es el generado por un navegador web en la interpretación de un documento HTML .

El siguiente documento HTML:

<!- ​​Mi documento -> < HTML > < HEAD > < TÍTULO > Mi documento </ TÍTULO > </ HEAD > < CUERPO > < H1 > Encabezado </ H1 > < P > Párrafo </ P > < P > Párrafo </ P > </ CUERPO > </ HTML >

tendría el siguiente árbol DOM:

Cabe señalar que en este ejemplo también los llamados caracteres en blanco (espacios, tabulaciones, etc.) se consideran elementos del árbol, aunque estos no son luego mostrados por el navegador (a menos que estén dentro de una preetiqueta ).

Artículos relacionados

  • Inspector de DOM
  • XHTML
  • Xerces

Especificaciones

Otros proyectos

Enlaces externos