El modelo de objetos de documento (DOM) es una especificación de una interfaz para acceder a documentos HTML o XML. Se define por el World Wide Web Consortium.
Una implementación que cumple con esta especificación consiste en un conjunto de clases junto con sus métodos y atributos en términos de programación orientada hacia objetos. Permite que los programas informáticos cambien dinámicamente el contenido, la estructura y el diseño de un documento.
Designación
El término „Modelo de Objetos de Documentos“ es en realidad un misnomer, ya que DOM no se define como un modelo, sino como una interfaz para el acceso de datos definido y también es designado por el W3C. La redacción de la designación, por otro lado, hace hincapié en el modelo de objeto bien definido en el que se basa la interfaz, cuya validez es un requisito previo para la validez de la interfaz construida en ella. En un nivel superior de abstracción, una interfaz es también un modelo, a saber, para la forma en que se accede a los objetos o datos.
Historia
El DOM fue creado originalmente bajo la impresión de al menos dos desarrollos que han moldeado significativamente el mundo informático en el pasado reciente. Ambos se basan en la necesidad de poder acceder a los datos estructurados en documentos HTML y XML de manera sencilla y uniforme.
A mediados de los años 90, como la World Wide Web se hizo cada vez más popular, se inventó el lenguaje de scripting JavaScript, y los navegadores web populares desde entonces han incluido intérpretes que ejecutan dichos scripts. JavaScript definió formas rudimentarias para acceder al documento HTML y manejar eventos. Más tarde, diferentes fabricantes de navegadores inventaron diferentes modelos dinámicos HTML (DHTML) que permitieron un cambio más completo en la estructura y apariencia del documento mientras que el documento se muestra en el navegador. Por lo tanto, los primeros estándares DOM del W3C son intentos de fusionar, estandarizar y en última instancia sustituir las diversas técnicas patentadas JavaScript y DHTML que surgieron durante el tiempo de las guerras del navegador. Esto ha tenido éxito, por lo que DOM juega hoy un papel central en la programación JavaScript.
Al mismo tiempo, XML surgió como un formato de intercambio general para la representación legible por humanos de datos estructurados, tras el éxito del HTML. Procesar documentos XML requiere una interfaz de programación comprensible, potente y transversal. El DOM ofrece esto y también define interfaces adicionales para un manejo cómodo de documentos XML.
Fundamentos del DOM basados en un ejemplo
El siguiente código HTML define una tabla con el elemento de tabla y varios subelementos:
■table
– No.
Identificador
Primer nombre
„Nombre“
■/tr título
■/thead
– No.
Identificador
– No.
– No.
■/tr título
■/tbody
■/table
Procesamiento de un documento
En el primer paso, el programa lee un documento existente y se genera un objeto de documento. Sobre la base de este objeto, se puede acceder al contenido, estructura y presentación utilizando los métodos de la API.
En particular, el DOM permite
navegación entre los nodos individuales de un documento,
generar, mover y borrar nodos; y
leer, modificar y eliminar contenido de texto.
Al final del procesamiento, se puede generar un nuevo documento XML o HTML del objeto de documento mediante la llamada serialización.
Normalización de la DOM
El DOM ha sido un estándar del W3C desde 1998 y ha sido actualizado y ampliado varias veces desde entonces. Hay varias versiones (nivel) cada una con diferentes módulos:
DOM Nivel 0
Este nivel nunca fue especificado formalmente. Nivel 0 se refiere a las técnicas utilizables para JavaScript para acceder a documentos HTML. Estos fueron introducidos por navegadores web como Internet Explorer y Netscape Navigator antes de la estandarización de la DOM.
DOM Level 1
DOM Core define moverse en el árbol DOM, manipulando los nodos, incluyendo insertar nuevos elementos y definir atributos.
DOM HTML es la extensión para acceder a documentos HTML. Estándariza y completa la práctica ya común basada en las especificaciones JavaScript de Netscape y Microsoft JScript.
DOM Level 2
DOM Core: Incluye la extensión de soporte XML namespace
DOM HTML: Extension to XHTML documents, adaptation to DOM 2 Core
DOM Estilo y DOM CSS permiten la lectura dinámica, la adición y el cambio del formato o el diseño del documento a través de hojas de estilo, en particular Hojas de estilo cascada (CSS).
DOM Views permite el acceso a información de tipos específicos de reproducción del documento (por ejemplo, la representación gráfica en el navegador web). Esto se utiliza principalmente junto con DOM CSS para averiguar los valores reales de propiedades CSS de ciertos elementos (por ejemplo, ‘¿Qué color de fondo es este encabezamiento?’).
DOM Events estandariza el procesamiento de eventos en el documento, como acciones de usuario. Utilizado principalmente en conexión con JavaScript al mostrar documentos HTML en los navegadores web. Basado en los modelos del manejo de eventos del Netscape Navigator e Internet Explorer para documentos HTML.
DOM Traversal y DOM Range: Ejecutar a través del árbol de nodos utilizando ciertos criterios de selección, trabajar con áreas en el documento que incluyen ciertos elementos y nodos de texto
DOM Level 3
DOM 3 Core: Mejora integral, incluyendo una mejor gestión de excepciones y manejo de códigos de caracteres
DOM 3 Carga y Guardar permite la serialización de documentos o partes de documentos, así como analizar documentos XML en cadenas en objetos de documentos. Además, los documentos XML se pueden enviar y recuperar a través de HTTP, como es posible con la tecnología XMLHttpRequest más familiar.
DOM 3 XPath permite la selección de nodos basado en expresiones XPath.
DOM 3 Eventos amplía DOM 2 eventos, incluyendo eventos de teclado.
DOM 3 La validación le permite comprobar si el documento DOM sigue siendo válido después de un cambio dinámico (add o remover nodos).
DOM 3 Views and Formatting le permite acceder y cambiar dinámicamente el contenido, la estructura y el estilo.
DOM 3
