REC-DOM-Level-1-19981001


Nota: Este documento es parte de una traducci�n al castellano de la Recomendaci�n del W3C "Document Object Model (DOM) Level 1" (m�s informaci�n). Puede consultar la versi�n original del mismo. Para cualquier comentario o correcci�n acerca de la traducci�n p�ngase en contacto con el traductor en jrpozo arroba conclase punto net. Gracias por su colaboraci�n.
V�ase el Aviso de copyright de la traducci�n.

�Qu� es el Modelo de Objetos del Documento?

Editores
Jonathan Robie, Texcel Research

Introducci�n

El Modelo de Objetos del Documento (DOM) es una interfaz de programaci�n de aplicaciones (API) para documentos HTML y XML. Define la estructura l�gica de los documentos y el modo en que se accede y manipula un documento. En la especificaci�n del DOM, el t�rmino "documento" se utiliza en un sentido amplio. XML se utiliza cada vez m�s como un medio para representar muchas clases diferentes de informaci�n que puede ser almacenada en sistemas diversos, y mucha de esta informaci�n se ver�a, en t�rminos tradicionales, m�s como datos que como documentos. Sin embargo, XML presenta estos datos como documentos, y se puede usar el DOM para manipular estos datos.

Con el Modelo de Objetos del Documento los programadores pueden construir documentos, navegar por su estructura, y a�adir, modificar o eliminar elementos y contenido. Se puede acceder a cualquier cosa que se encuentre en un documento HTML o XML, y se puede modificar, eliminar o a�adir usando el Modelo de Objetos del Documento, salvo algunas excepciones. En particular, a�n no se han especificado las interfaces DOM para los subconjuntos internos y externos de XML.

Siendo una especificaci�n del W3C, uno de los objetivos importantes del Modelo de Objetos del Documento es proporcionar un interfaz est�ndar de programaci�n que pueda utilizarse en una amplia variedad de entornos y aplicaciones. El DOM se ha dise�ado para ser utilizado en cualquier lenguaje de programaci�n. Para proporcionar una especificaci�n de las interfaces DOM precisa e independiente del lenguaje, hemos decidido definir las especificaciones en OMG IDL, seg�n se define en la especificaci�n CORBA 2.2. Adem�s de la especificaci�n OMG IDL, proporcionamos correspondencias con los lenguajes Java y ECMAScript (un lenguaje de scripts industrial basado en JavaScript y JScript). Nota: OMG IDL se usa �nicamente como un medio de especificar las interfaces independiente de la plataforma y del lenguaje. Se podr�an haber utilizado otros IDLs. En general, los IDLs se dise�an para entornos de computaci�n espec�ficos. El Modelo de Objetos del Documento puede implementarse en cualquier entorno de computaci�n, y no requiere las librer�as de enlazado de objetos (object binding runtimes) generalmente asociadas con tales IDLs.

Lo que el Modelo de Objetos del Documento es

El DOM es un API de programaci�n para documentos. Guarda una gran similitud con la estructura del documento al que modeliza. Por ejemplo, consid�rese esta tabla, tomada de un documento HTML:


      <TABLE>
      <TBODY> 
      <TR> 
      <TD>Shady Grove</TD>
      <TD>Aeolian</TD> 
      </TR> 
      <TR>
      <TD>Over the River, Charlie</TD>        
      <TD>Dorian</TD> 
      </TR> 
      </TBODY>
      </TABLE>
    

El DOM representa esta tabla de este modo:


Representaci�n del DOM de la tabla del ejemplo
Representaci�n del DOM de la tabla del ejemplo

En el DOM, los documentos tienen una estructura l�gica que es muy parecida a un �rbol. Para ser m�s precisos, es m�s bien como un "bosque" o una "arboleda", que puede contener m�s de un �rbol. Sin embargo, el DOM no especifica que los documentos deban ser implementados como un �rbol o un bosque, ni tampoco especifica c�mo deben implementarse las relaciones entre objetos. El DOM es un modelo l�gico que puede implementarse de cualquier manera que sea conveniente. En esta especificaci�n, usamos el t�rmino modelo de estructura para describir la representaci�n en forma de �rbol de un documento, evitando la utilizaci�n de t�rminos tales como "�rbol" o "bosque" para evitar la implicaci�n de una implementaci�n en particular. Una propiedad importante de los modelos de estructura del DOM es su isomorfismo estructural: si dos implementaciones cualesquiera del Modelo de Objetos del Documento se usan para crear una representaci�n del mismo documento, ambas crear�n el mismo modelo de estructura, con exactamente los mismos objetos y relaciones.

Se eligi� el nombre "Modelo de Objetos del Documento" porque es un "modelo de objetos" en el sentido tradicional del dise�o orientado a objetos: los documentos se modelizan usando objetos, y el modelo comprende no solamente la estructura de un documento, sino tambi�n el comportamiento de un documento y de los objetos de los cuales se compone. En otras palabras, los nodos del diagrama anterior no representan una estructura de datos, sino que representan objetos, los cuales pueden tener funciones e identidad. Como modelo de objetos, el DOM identifica:

Tradicionalmente, la estructura de los documentos SGML se ha representado mediante un modelo de datos abstractos, no con un modelo de objetos. En un modelo de datos abstractos, el modelo se centra en los datos. En los lenguajes de programaci�n orientados a objetos, los datos se encapsulan en objetos que ocultan los datos, protegi�ndolos de su manipulaci�n directa desde el exterior. Las funciones asociadas con estos objetos determinan c�mo pueden manipularse los objetos, y son parte del modelo de objetos.

El Modelo de Objetos del Documento consiste actualmente de dos partes, el N�cleo del DOM y el DOM HTML. El N�cleo del DOM representa la funcionalidad usada para los documentos XML, y tambi�n sirve de base para el DOM HTML. Una implementaci�n conforme del DOM debe implementar todas las interfaces fundamentales del cap�tulo sobre el N�cleo con la sem�ntica definida. Adem�s, debe implementar o bien el DOM HTML o bien las interfaces extendidas (XML), o ambas, con la sem�ntica definida.

Lo que el Modelo de Objetos del Documento no es

Se ha incluido esta secci�n para dar una noci�n m�s precisa del DOM distingui�ndolo de otros sistemas que aparentemente pueden resultar similares a �l.


De d�nde vino el Modelo de Objetos del Documento

El DOM se origin� como una especificaci�n para permitir que los programas Java y los scripts de JavaScript fueran portables entre los navegadores web. El "HTML Din�mico" fue el ascendiente inmediato del Modelo de Objetos del Documento, y originalmente se pensaba en �l principalmente en t�rminos de navegadores. Sin embargo, cuando se form� el Grupo de Trabajo DOM en el W3C, tambi�n se unieron a �l compa��as de otros �mbitos, incluyendo los de la edici�n y archivo de documentos HTML y XML. Varias de estas compa��as hab�an trabajado con SGML antes de que se hubiera desarrollado el XML; como resultado de ello, el DOM ha recibido influencias de los "Groves" de SGML y del est�ndar HyTime. Algunas de estas compa��as tambi�n hab�an desarrollado sus propios modelos de objetos para documentos a fin de proporcionar un API para los editores o los archivos de documentos SGML/XML, y estos modelos de objetos tambi�n han influido en el DOM.

Las entidades y el n�cleo del DOM

En las interfaces fundamentales del DOM no hay objetos que representen entidades. Las referencias num�ricas de caracteres y las referencias a entidades predefinidas en HTML y en XML son reemplazadas por el car�cter individual que constituye la sustituci�n de la entidad. Por ejemplo, en:


        <p>This is a dog &amp; a cat</p>        
      
el "&amp;" ser� reemplazado por el car�cter "&", y el texto del elemento P formar� una �nica secuencia continua de caracteres. Debido a que las referencias num�ricas de caracteres y las entidades predefinidas no son reconocidas como tales en las secciones CDATA, ni en los elementos SCRIPT y STYLE de HTML, no son reemplazadas por el car�cter individual al que aparantemente se refieren. Si el ejemplo anterior estuviera contenido en una secci�n CDATA, el "&amp;" no ser�a reemplazado por "&"; y el <p> tampoco ser�a reconocido como una etiqueta inicial. La representaci�n de entidades generales, tanto internas como externas, est� definida dentro de las interfaces extendidas (XML) del Nivel 1 de la especificaci�n.

Nota: Cuando la representaci�n DOM de un documento sea serializada como texto XML o HTML, las aplicaciones necesitar�n comprobar cada car�cter de los datos de texto para ver si necesita ser convertido en una secuencia de escape usando una entidad num�rica o predefinida. De lo contrario se podr�a obtener HTML o XML inv�lido. Adem�s, las implementaciones deber�an ser conscientes del hecho de que la serializaci�n en una codificaci�n de caracteres ("charset") que no cubra completamente la ISO 10646 puede fallar si hay caracteres en el c�digo o en las secciones CDATA que no est�n presentes en esa codificaci�n.

Interfaces DOM e Implementaciones DOM

El DOM especifica interfaces que pueden utilizarse para manipular documentos XML o HTML. Es importante darse cuenta de que estas interfaces son una abstracci�n. Comparables a las "clases de base abstractas" de C++, constituyen un medio de especificar una forma de acceder y manipular la representaci�n interna que una aplicaci�n hace de un documento. Las interfaces no implican una implementaci�n concreta en particular. Cada aplicaci�n DOM es libre de mantener los documentos seg�n una representaci�n conveniente cualquiera, siempre y cuando soporte las interfaces mostradas en esta especificaci�n. Algunas implementaciones del DOM ser�n programas existentes que usen las interfaces del DOM para acceder a programas escritos mucho antes de que existiera la especificaci�n del DOM. Por tanto, el DOM se ha dise�ado para evitar dependencias de la implementaci�n. En particular,

  1. Los atributos definidos en el IDL no implican objetos concretos que deban tener miembros de datos espec�ficos - en las correspondencias con cada lenguaje, se transforman en pares de funciones get()/set(), no en un miembro de datos. (Los atributos de s�lo lectura s�lo tendr�n una funci�n get().)
  2. Las aplicaciones DOM pueden proporcionar interfaces adicionales y objetos que no se encuentren en esta especificaci�n y seguir siendo considerardas como conformes con el DOM.
  3. Debido a que especificamos interfaces, y no los objetos reales que deben ser creados, el DOM no puede saber a qu� constructores llamar� una implementaci�n. En general, los usuarios del DOM llamar�n a m�todos createXXX() de la clase Document para crear estructuras del documento, y las implementaciones del DOM crear�n sus propias representaciones internas de dichas estructuras en sus implementaciones de las funciones createXXX().

Limitaciones del Nivel 1

La especificaci�n del Nivel 1 del DOM se limita deliberadamente a aquellos m�todos necesarios para representar y manipular la estructura y el contenido de documentos. El plan para los futuros Niveles de la especificaci�n del DOM es proporcionar:

  1. Un modelo de estructura para el subconjunto interno y el subconjunto externo.
  2. Validaci�n contra un esquema.
  3. Control para representar documentos por medio de hojas de estilo.
  4. Control de acceso.
  5. Seguridad de hilos de proceso o threads.
  6. Eventos.