0 evaluări0% au considerat acest document util (0 voturi)
11 vizualizări39 pagini
Este documento presenta una visión general de las interfaces fundamentales del Modelo de Objetos del Documento (DOM). Describe la estructura jerárquica del DOM, las convenciones de nombres y tipos de datos, y la gestión de la memoria. Explica que el DOM representa documentos como una jerarquía de nodos y define interfaces para acceder y manipular estos nodos y sus contenidos.
Este documento presenta una visión general de las interfaces fundamentales del Modelo de Objetos del Documento (DOM). Describe la estructura jerárquica del DOM, las convenciones de nombres y tipos de datos, y la gestión de la memoria. Explica que el DOM representa documentos como una jerarquía de nodos y define interfaces para acceder y manipular estos nodos y sus contenidos.
Este documento presenta una visión general de las interfaces fundamentales del Modelo de Objetos del Documento (DOM). Describe la estructura jerárquica del DOM, las convenciones de nombres y tipos de datos, y la gestión de la memoria. Explica que el DOM representa documentos como una jerarquía de nodos y define interfaces para acceder y manipular estos nodos y sus contenidos.
(Ncleo), Nivel 1 Editores Mike Champion, ArborText (a partir del 20 de noviembre de 1997) Steve Byrne, JavaSoft (hasta el 19 de noviembre de 1997) Gavin Nicol, Inso EPS Lauren Wood, SoftQuad, Inc. Tabla de contenidos 1.1. Visin general de las Interfaces del Ncleo del DOM o 1.1.1. El Modelo de Estructura del DOM o 1.1.2. Gestin de Memoria o 1.1.3. Convenciones de Nombres o 1.1.4. La Herencia frente a las Visiones Planas del API o 1.1.5. El tipo DOMString o 1.1.6. Distincin entre maysculas y minsculas en el DOM 1.2. Interfaces Fundamentales 1.3. Interfaces Extendidas
1.1. Visin general de las Interfaces del Ncleo del DOM Esta seccin define un conjunto mnimo de objetos e interfaces para acceder y manipular objetos del documento. La funcionalidad especificada en esta seccin (la funcionalidad del Ncleo) debera ser suficiente para permitir a los desarrolladores de programas y a los autores de scripts web acceder y manipular contenido HTML y XML analizado dentro de productos conformes. El API del Ncleo del DOM permite tambin poblar un objeto Document usando nicamente llamadas al API DOM; la creacin del esqueleto del documento Document y su almacenamiento persistente se deja al producto que implementa el API DOM. 1.1.1. El Modelo de Estructura del DOM El DOM presenta los documentos como una jerarqua de objetos Node (nodos) que a su vez implementan otras interfaces ms especializadas. Algunos tipos de nodos pueden tener nodos hijos de varios tipos, mientras que otros son nodos hoja que no pueden tener nada bajo ellos en la estructura del documento. Los tipos de nodo, y los tipos de nodo que stos pueden tener como hijos, son los siguientes: Document -- Element (uno como mximo), ProcessingInstruction, Comment, DocumentType DocumentFragment - - Element, ProcessingInstruction, Comment, Text, CDATASection, EntityRef erence DocumentType -- sin hijos EntityReference - - Element, ProcessingInstruction, Comment, Text, CDATASection, EntityRef erence Element - - Element, Text, Comment, ProcessingInstruction, CDATASection, EntityRef erence Attr -- Text, EntityReference ProcessingInstruction -- sin hijos Comment -- sin hijos Text -- sin hijos CDATASection -- sin hijos Entity - - Element, ProcessingInstruction, Comment, Text, CDATASection, EntityRef erence Notation -- sin hijos El DOM especifica adems una interfaz NodeList para manejar listas ordenadas de Nodes, como los hijos de un Node o los elementos devueltos por el mtodo Element.getElementsByTagName, y tambin una interfaz NamedNodeMap para manejar listas no ordenadas de nodos referenciados por su atributo de nombre, como los atributos de un Element. En el DOM, NodeLists y NamedNodeMaps estn "vivos", es decir, los cambios en la estructura subyacente del documento se reflejan en todos los NodeLists y NamedNodeMaps relevantes. Por ejemplo, si un usuario del DOM obtiene un objetoNodeList que contenga los hijos de un Element, y a continuacin aade ms hijos a ese elemento (o los elimina, o los modifica), estos cambios se reflejan automticamente en el NodeList sin que el usuario tenga que realizar ninguna otra accin. Asimismo, los cambios de un Node del rbol se reflejan en todas las referencias a ese Node desde los NodeLists y los NamedNodeMaps. 1.1.2. Gestin de Memoria La mayora de los APIs definidos en esta especificacin son interfaces ms que clases. Eso significa que una implementacin concreta slo necesita exponer los mtodos con los nombres definidos y la operacin especificada, y no implementar las clases que corresponden directamente a las interfaces. Esto permite que los APIs del DOM se implementen como una fina capa encima de aplicaciones antiguas con sus propias estructuras de datos, o encima de aplicaciones nuevas con jerarquas de clases diferentes. Esto tambin significa que los constructores ordinarios (en el sentido de Java o C++) no pueden usarse para crear objetos del DOM, ya que los objetos subyacentes que deben ser construidos pueden tener muy poca relacin con las interfaces del DOM. La solucin convencional a esto en el diseo orientado a objetos es definir mtodos constructores ("factory" methods) que creen ejemplares de objetos que implementen las diferentes interfaces. En el Nivel 1 del DOM, los objetos que implementan una interfaz "X" se crean con un mtodo "createX()" de la interfaz Document; esto es as porque todos los objetos del DOM habitan en el contexto de un documento especfico. El Nivel 1 del API DOM no define una manera estndar de crear objetos DOMImplementation ni Document; cada implementacin del DOM debe proporcionar algn modo propietario de arrancar estas interfaces DOM, y despus todos los dems objetos pueden construirse con los mtodos Create de Document (o con cualesquiera otros mtodos que resulten convenientes). Los APIs del Ncleo del DOM estn diseados para ser compatibles con un amplio espectro de lenguajes, incluyendo tanto los lenguajes de scripts de uso general como los lenguajes ms complejos usados principalmente por programadores profesionales. As, los APIs del DOM necesitan trabajar bajo distintas filosofas de gestin de memoria, desde plataformas de lenguaje que no exponen al usuario a la gestin de memoria en absoluto, a aquellas (especialmente Java) que proporcionan constructores explcitos pero tambin un mecanismo de recogida automtica de basura para reclamar la memoria libre, pasando por aquellas (especialmente C/C++) que generalmente exigen al programador que reserve explcitamente la memoria para el objeto, que controle dnde se usa, y que la libere explcitamente para su reutilizacin. Para asegurar que el API es consistente en todas estas plataformas, el DOM no contempla en absoluto las cuestiones de gestin de memoria, sino que deja stas a cada implementacin. Ninguno de los enlaces explcitos diseados por el Grupo de Trabajo DOM para los lenguajes ECMAScript y Java requiere ningn mtodo de gestin de memoria, pero los enlaces con el DOM que se creen para otros lenguajes (especialmente C o C++) probablemente necesitarn tal soporte. Estas extensiones sern responsabilidad de aquellos que adapten el API DOM a un lenguaje especfico, no del Grupo de Trabajo DOM. 1.1.3. Convenciones de Nombres Si bien sera deseable tener nombres de atributos y mtodos que fueran cortos, informativos, con consistencia interna, y familiares para los usuarios de APIs similares, los nombres tampoco deberan entrar en conflicto con los nombres de APIs antiguas soportadas por las implementaciones del DOM. Adems, tanto el IDL del OMG como ECMAScript tienen limitaciones significativas a la hora de eliminar las ambigedades en los nombres provenientes de espacios de nombres diferentes, de modo que es difcil evitar conflictos con nombres cortos y familiares. As, los nombres del DOM tienden a ser largos y bastante descriptivos con el fin de ser nicos en todas las plataformas. El Grupo de Trabajo ha intentado tambin ser consistente internamente al usar los diferentes trminos, incluso cuando en otras APIs ciertas distinciones pueden no ser comunes. Por ejemplo, nosotros usamos el nombre de mtodo "remove" ("retirar") cuando el mtodo cambia el modelo estructural, y el nombre del mtodo delete ("borrar") cuando el mtodo suprime algo dentro del modelo de estructura. La cosa que se borra no se devuelve. La cosa que se retira puede devolverse, cuando tenga sentido devolverla. 1.1.4. La Herencia frente a las Visiones Planas del API Las APIs del Ncleo del DOM presentan dos conjuntos un tanto diferentes de interfaces para un documento XML/XHTML: uno que presenta una aproximacin "orientada a objetos" con una jerarqua de herencia, y una visin "simplificada" que permite que todas las manipulaciones se realicen a travs de la interfaz Node sin necesidad de especificaciones explcitas de tipo o casts (en Java y otros lenguajes como C), o de llamadas a interfaces de peticin en entornos COM. Estas operaciones son bastante costosas en Java y COM, y el DOM puede ser utilizado en entornos de rendimiento crtico, por lo que aadimos una funcionalidad significativa usando simplemente la interfaz Node. Como muchos otros usuarios encontrarn la jerarqua hereditaria ms fcil de entender que la aproximacin de que en el DOM "todo es un Node", tambin soportamos las interfaces completas de alto nivel para aquellos que prefieran un API ms orientado a objetos. En la prctica, esto significa que hay una cierta carga de redundancia en el API. El Grupo de Trabajo considera que la aproximacin "hereditaria" es la visin primaria del API, y que el conjunto completo de funcionalidades de Node es un "extra" que los usuarios pueden emplear, pero que no elimina la necesidad de mtodos que un anlisis orientado a objetos considerara necesarios en otras interfaces. (Por supuesto, cuando el anlisis orientado a objetos conduce a un mtodo que es idntico a otro existente en la interfaz Node, no especificamos uno completamente redundante.) As, aunque hay un atributo genrico nodeName (nombre de nodo) en la interfaz Node, sigue habiendo un atributo tagName en la interfaz Element; ambos atributos deben contener el mismo valor, pero el Grupo de Trabajo considera que vale la pena soportar ambos, dadas las diferentes exigencias que debe satisfacer el API DOM. 1.1.5. El tipo DOMString Para asegurar la interoperabilidad, el DOM especifica el tipo DOMString como sigue: Un DOMString es una secuencia de unidades de 16 bits. Esto, en los trminos del IDL, pueden expresarse como:
typedef sequence<unsigned short> DOMString; Las aplicaciones deben codificar DOMString usando UTF-16 (definido en el Apndice C.3 de [UNICODE] y en la Enmienda 1 de [ISO-10646]). Se ha elegido la codificacin UTF-16 por su amplia utilizacin en la industria. Obsrvese que tanto para HTML como para XML, el conjunto de caracteres del documento (y por tanto la notacin de las referencias numricas de caracteres) est basado en UCS [ISO-10646]. Una referencia numrica de caracteres individual en un documento fuente puede por tanto corresponder en algunos casos a dos unidades de 16 bits en un DOMString (un sustituto de mayor peso y un sustituto de menor peso). Nota: Si bien el DOM especifica que el nombre del tipo cadena sea DOMString, los enlaces con los diferentes lenguajes pueden usar nombres diferentes. Por ejemplo, para Java DOMString se transforma al tipo String, ya que tambin utiliza UTF-16 como codificacin. Nota: A fecha de agosto de 1998, la especificacin del IDL del OMG inclua un tipo wstring. Sin embargo, esa definicin no satisfaca las exigencias de interoperabilidad del API DOM, ya que para definir la anchura de un carcter se basaba en una negociacin de la codificacin.
1.1.6. Distincin entre maysculas y minsculas en el DOM El DOM tiene muchas interfaces que implican un emparejamiento de cadenas. Los procesadores de HTML generalmente asumen una normalizacin de nombres en maysculas (con menor frecuencia en minsculas) para cosas tales como elementos, mientras que XML distingue explcitamente entre maysculas y minsculas. Para los propsitos del DOM, el emparejamiento de cadenas se realiza puramente por comparacin binaria entre las unidades de 16 bits de los DOMString. As, el DOM supone que cualquier normalizacin tiene lugar en el procesador antes de que se construyan las estructuras del DOM. Esto lleva a plantearse la cuestin de qu normalizaciones tienen lugar exactamente. El Grupo de Trabajo I18N del W3C est actualmente en vas de definir exactamente qu normalizaciones son necesarias para las aplicaciones que implementen el DOM. 1.2. Interfaces Fundamentales Las interfaces contenidas en esta seccin se consideran fundamentales, y deben ser completamente implementadas por todas las implementaciones conformes con el DOM, incluyendo todas las implementaciones del DOM HTML. Excepcin DOMException Las operaciones del DOM slo provocan excepciones en circunstancias "excepcionales", es decir, cuando una operacin es imposible de realizar (bien por razones lgicas, porque se han perdido datos, o porque la implementacin se ha vuelto inestable). En general, los mtodos del DOM devuelven cdigos de error especficos en situaciones ordinarias de procesamiento, tales como errores de exceso de rango al usar NodeList. Las implementaciones pueden provocar otras excepciones en otras circunstancias. Por ejemplo, las implementaciones pueden provocar excepciones dependientes de la implementacin si se pasa un argumento null. Algunos lenguajes y sistemas de objetos no soportan el concepto de excepcin. Para tales sistemas las condiciones de error pueden indicarse usando mecanismos nativos para la indicacin de errores. Por ejemplo, para algunas implementaciones los mtodos pueden devolver cdigos de error similares a los enumerados en las descripciones de los mtodos correspondientes. Definicin IDL exception DOMException { unsigned short code; };
// ExceptionCode const unsigned short INDEX_SIZE_ERR = 1; const unsigned short DOMSTRING_SIZE_ERR = 2; const unsigned short HIERARCHY_REQUEST_ERR = 3; const unsigned short WRONG_DOCUMENT_ERR = 4; const unsigned short INVALID_CHARACTER_ERR = 5; const unsigned short NO_DATA_ALLOWED_ERR = 6; const unsigned short NO_MODIFICATION_ALLOWED_ERR = 7; const unsigned short NOT_FOUND_ERR = 8; const unsigned short NOT_SUPPORTED_ERR = 9; const unsigned short INUSE_ATTRIBUTE_ERR = 10;
Grupo de definiciones ExceptionCode Un entero que indica el tipo de error generado. Constantes Definidas INDEX_SIZE_ERR Si el ndice o el tamao son negativos, o mayores que el valor permitido DOMSTRING_SIZE_ERR Si el tamao del texto especificado no cabe en un DOMString HIERARCHY_REQUEST_ERR Si se inserta un nodo en algn sitio al que no pertenece WRONG_DOCUMENT_ERR Si se usa un nodo en un documento diferente del que lo cre (que no lo soporte) INVALID_CHARACTER_ERR Si se especifica un carcter invlido, como por ejemplo en un nombre. NO_DATA_ALLOWED_ERR Si se especifican datos para un nodo que no soporta datos NO_MODIFICATION_ALLOWED_ERR Si se intenta modificar un objeto que no admite modificaciones NOT_FOUND_ERR Si se intenta hacer referencia a un nodo en un contexto en que no existe NOT_SUPPORTED_ERR Si la implementacin no soporta el tipo de objeto requerido INUSE_ATTRIBUTE_ERR Si se intenta aadir un atributo que ya est siendo usado en algn otro lugar Interfaz DOMI mplementation La interfaz DOMImplementation proporciona un conjunto de mtodos para realizar operaciones que son independientes de cualquier ejemplar particular del modelo de objetos del documento. El Nivel 1 del DOM no especifica ningn modo de crear un ejemplar de documento, y por tanto la creacin de documentos es una operacin especfica de cada implementacin. Se espera que los Niveles futuros del DOM proporcionen mtodos para crear documentos directamente. Definicin IDL interface DOMImplementation { boolean hasFeature(in DOMString feature, in DOMString version); };
Mtodos hasFeature Comprueba si la implementacin del DOM implementa un caracterstica especfica. Parmetros feature
El nombre del paquete de la caracterstica a comprobar. En el Nivel 1, los valores legales son "HTML" y "XML" (no se distingue entre maysculas y minsculas). version
Este es el nmero de versin del nombre del paquete a comprobar. En el Nivel 1, versin 1.0, es la cadena "1.0". Cuando no se especifica la versin, si se soporta cualquier versin de la caracterstica se devolver el valor true. Valor de Retorno true si la caracterstica est implementada en la versin especificada, false en caso contrario.
Este mtodo no provoca excepciones. Interfaz DocumentFragment DocumentFragment es un objeto Document "aligerado" o "mnimo". Es muy comn querer extraer una porcin del rbol de un documento o crear un nuevo fragmento de un documento. Imaginemos por ejemplo la implementacin de un comando de usuario como cortar o reordenar un documento moviendo fragmentos. Es deseable tener un objeto que pueda contener dichos fragmentos y resulta bastante natural utilizar para este fin un Nodo. Si bien es cierto que un objeto Document podra realizar este papel, un objeto Document puede ser potencialmente un objeto pesado, dependiendo de la implementacin subyacente. Lo que en realidad se necesita para esto es un objeto muy ligero. DocumentFragment es este objeto. Adems, ciertas operaciones -- tales como insertar nodos como hijos de otro Node -- pueden tomar objetos DocumentFragment como argumentos; esto hace que todos los nodos hijos delDocumentFragment sean movidos a la lista de hijos de este nodo. Los hijos de un DocumentFragment son cero o ms nodos que representan las partes superiores de un nmero de sub-rboles que definen la estructura del documento. Los nodosDocumentFragment no necesitan ser documentos XML bien formados (aunque necesitan seguir las reglas impuestas sobre entidades analizadas XML bien formadas, las cuales pueden tener varios nodos superiores). Por ejemplo, un DocumentFragment podra tener un nico hijo y ese nodo hijo podra ser un nodo Text. Este modelo de estructura no representara ni a un documento HTML ni a un documento XML bien formado. Cuando se inserta un DocumentFragment dentro de un Document (o en cualquier otro nodo Node que pueda tener hijos), son los hijos del DocumentFragment los que se insertan en el Node, y no elDocumentFragment. Esto hace que DocumentFragment sea muy til cuando el usuario quiere crear nodos que sean hermanos: el DocumentFragment acta como el padre de estos nodos de modo tal que el usuario puede usar los mtodos estndar de la interfaz Node, como por ejemplo insertBefore() ("insertar antes") y appendChild() ("aadir hijo"). Definicin IDL interface DocumentFragment : Node { };
Interfaz Document La interfaz Document representa el documento HTML o XML completo. Conceptualmente, es la raz del rbol del documento, y proporciona el acceso primario a los datos del documento. Como los elementos, nodos de texto, comentarios, instrucciones de procesamiento, etc., no pueden existir fuera del contexto de un Document, la interfaz Document tambin contiene los mtodos constructores necesarios para crear estos objetos. Los objetos Node creados tienen un atributo ownerDocument que los asocia con el Document dentro de cuyo contexto fueron creados. Definicin IDL interface Document : Node { readonly attribute DocumentType doctype; readonly attribute DOMImplementation implementation; readonly attribute Element documentElement; Element createElement(in DOMString tagName) raises(DOMException); DocumentFragment createDocumentFragment(); Text createTextNode(in DOMString data); Comment createComment(in DOMString data); CDATASection createCDATASection(in DOMString data)
raises(DOMException); ProcessingInstruction createProcessingInstruction(in DOMString target, in DOMString data)
Atributos doctype La Declaracin del Tipo del Documento (ver DocumentType) asociada con este documento. Para documentos HTML as como para documentos XML sin una declaracin del tipo de documento esto devuelve null. El Nivel 1 del DOM no soporta la edicin de la Declaracin del Tipo de Documento, y por tanto docType no puede modificarse de ningn modo. implementation El objeto DOMImplementation que manipula este documento. Una aplicacin DOM puede usar objetos de varias implementaciones. documentElement Este es un atributo de conveniencia que permite acceder directamente al nodo hijo que es el elemento raz del documento. Para documentos HTML, este es el elemento con tagName "HTML". Mtodos createElement Crea un elemento del tipo especificado. Obsrvese que el ejemplar devuelto implementa la interfaz Element, de modo que se pueden especificar directamente los atributos del objeto devuelto. Adems, si hay atributos conocidos con valores por defecto, los nodos Attr que los representan se crean y adjuntan automticamente al elemento. Parmetros tagName
El nombre del tipo de elemento a crear. Para XML, se distingue entre maysculas y minsculas. Para HTML, se puede dar el tagName en maysculas o en minsculas, pero la implementacin DOM debe transformarlo en la forma cannica en maysculas. Valor de Retorno Un nuevo objeto Element. Excepciones DOMException INVALID_CHARACTER_ERR: Provocada si el nombre especificado contiene un carcter invlido.
createDocumentFragment Crea un objeto DocumentFragment vaco. Valor de Retorno Un nuevo DocumentFragment.
Este mtodo no tiene parmetros. Este mtodo no provoca excepciones. createTextNode Crea un nodo Text al que se le da la cadena especificada. Parmetros data Los datos para el nodo. Valor de Retorno El nuevo objeto Text.
Este mtodo no provoca excepciones. createComment Crea un nodo Comment al que se la da la cadena especificada. Parmetros data Los datos para el nodo. Valor de Retorno El nuevo objeto Comment.
Este mtodo no provoca excepciones. createCDATASection Crea un nodo CDATASection cuyo valor es la cadena especificada. Parmetros data
Los datos para los contenidos de la seccin CDATASection. Valor de Retorno El nuevo objeto CDATASection. Excepciones DOMException NOT_SUPPORTED_ERR: Provocada si el documento es un documento HTML.
createProcessingInstruction Crea un nodo ProcessingInstruction al que se le dan las cadenas de nombre y datos especificadas. Parmetros target La parte destino de la instruccin de procesamiento. data Los datos para el nodo. Valor de Retorno El nuevo objeto ProcessingInstruction. Excepciones DOMException INVALID_CHARACTER_ERR: Provocada si se especifica un carcter invlido. NOT_SUPPORTED_ERR: Provocada si el documento es un documento HTML.
createAttribute Crea un atributo Attr con el nombre dado. Obsrvese que el ejemplar Attr puede ser establecido a continuacin en un Element usando el mtodo setAttribute. Parmetros name El nombre del atributo. Valor de Retorno Un nuevo objeto Attr. Excepciones DOMException INVALID_CHARACTER_ERR: Provocada si el nombre especificado contiene un carcter invlido.
createEntityReference Crea un objeto EntityReference. Adems, si la entidad referenciada es conocida, la lista de hijos del nodo EntityReference se hace igual a la del nodo Entity correspondiente. Parmetros name El nombre de la entidad a referenciar. Valor de Retorno El nuevo objeto EntityReference. Excepciones DOMException INVALID_CHARACTER_ERR: Provocada si el nombre especificado contiene un carcter invlido. NOT_SUPPORTED_ERR: Provocada si el documento es un documento HTML.
getElementsByTagName Devuelve una lista NodeList de todos los Elements que tengan un nombre de etiqueta dado en el orden en que se encontraran al realizar un recorrido preordenado (preorder traversal) del rbol del Document. Parmetros tagname
El nombre de la etiqueta a emparejar. El valor especial "*" se empareja con todas las etiquetas. Valor de Retorno Un nuevo objeto NodeList que contiene todos los Elements concordantes.
Este mtodo no provoca excepciones. Interfaz Node La interfaz Node es el tipo de datos primario del Modelo de Objetos del Documento. Representa un nodo individual del rbol del documento. Si bien todos los objetos que implementan la interfaz Nodeexponen mtodos para tratar con hijos, no todos los objetos que implementan la interfaz Node pueden tener hijos. Por ejemplo, los nodos Text no pueden tener hijos, y al aadir hijos a estos nodos se provoca una excepcin DOMException. Los atributos nodeName, nodeValue y attributes se han incluido como un mecanismo para obtener informacin sobre el nodo sin tener que realizar una conversin explcita a la interfaz especfica derivada. En los casos en que no haya una transformacin obvia para estos atributos para un tipo de nodo nodeType especfico (p.ej., nodeValue para un elemento o attributes para un comentario), se devuelve null. Obsrvese que las interfaces especializadas pueden contener mecanismos adicionales y ms convenientes para obtener y establecer la informacin relevante. Definicin IDL interface Node { // NodeType const unsigned short ELEMENT_NODE = 1; const unsigned short ATTRIBUTE_NODE = 2; const unsigned short TEXT_NODE = 3; const unsigned short CDATA_SECTION_NODE = 4; const unsigned short ENTITY_REFERENCE_NODE = 5; const unsigned short ENTITY_NODE = 6; const unsigned short PROCESSING_INSTRUCTION_NODE = 7; const unsigned short COMMENT_NODE = 8; const unsigned short DOCUMENT_NODE = 9; const unsigned short DOCUMENT_TYPE_NODE = 10; const unsigned short DOCUMENT_FRAGMENT_NODE = 11; const unsigned short NOTATION_NODE = 12;
Grupo de definiciones de NodeType Un entero que indica qu tipo de nodo es ste. Constantes Definidas ELEMENT_NODE El nodo es un Element. ATTRIBUTE_NODE El nodo es un Attr. TEXT_NODE El nodo es un nodo Text node. CDATA_SECTION_NODE El nodo es una seccin CDATASection. ENTITY_REFERENCE_NODE El nodo es una EntityReference. ENTITY_NODE El nodo es una Entity. PROCESSING_INSTRUCTION_NODE El nodo es una ProcessingInstruction. COMMENT_NODE El nodo es un Comment. DOCUMENT_NODE El nodo es un Document. DOCUMENT_TYPE_NODE El nodo es un DocumentType. DOCUMENT_FRAGMENT_NODE El nodo es un DocumentFragment. NOTATION_NODE El nodo es un nodo Notation. Los valores nodeName, nodeValue y attributes varan segn el tipo de nodo segn se especifica a continuacin: nodeName nodeValue attributes Element nombre de etiqueta (tagName) null NamedNodeMap Attr nombre del atributo valor del atributo null Text #text contenido del nodo de texto null CDATASection #cdata-section contenido de la Seccin CDATA null EntityReference nombre de la entidad referenciada null null Entity nombre de la entidad null null ProcessingInstruction destino (target) contenido completo excluyendo el destino null Comment #comment contenido del comentario null Document #document null null DocumentType nombre del tipo de documento null null DocumentFragment #document- fragment null null Notation nombre de la notacin null null Atributos nodeName El nombre de este nodo, dependiendo de su tipo; ver la tabla precedente. nodeValue El valor de este nodo, dependiendo de su tipo; ver la tabla precedente. Excepciones al establecer DOMException NO_MODIFICATION_ALLOWED_ERR: Provocada cuando es de slo lectura. Excepciones al leer DOMException DOMSTRING_SIZE_ERR: Provocada cuando devolvera ms caracteres de los que cabran en una variable DOMString de la plataforma de la implementacin. nodeType Un cdigo que representa el tipo del objeto subyacente, segn se define arriba. parentNode El padre de este nodo. Todos los nodos, excepto Document, DocumentFragment y Attr, pueden tener un padre. Sin embargo, si un nodo acaba de ser creado y an no ha sido aadido al rbol, o si ha sido retirado del rbol, esto es null. childNodes Una lista NodeList que contiene todos los hijos de este nodo. Si no hay hijos, esto es un NodeList que no contiene ningn nodo. El contenido del NodeList devuelto est "vivo", en el sentido de que, por ejemplo, los cambios en los hijos del objeto nodo a partir del cual se crearon se reflejan inmediatamente en los nodos devueltos por los mtodos de acceso deNodeList; no es una fotografa esttica del contenido del nodo. Esto se cumple para todas las listas NodeList, incluyendo las que devuelve el mtodo getElementsByTagName. firstChild El primer hijo de este nodo. Si no existe tal nodo, esto devuelve null. lastChild El ltimo hijo de este nodo. Si no existe tal nodo, esto devuelve null. previousSibling El nodo que precede inmediatamente a este nodo. Si no existe tal nodo, esto devuelve null. nextSibling El nodo que sigue inmediatamente a este nodo. Si no existe tal nodo, esto devuelve null. attributes Un NamedNodeMap que contiene los atributos de este nodo (si se trata de un Element), o null en cualquier otro caso. ownerDocument El objeto Document asociado a este nodo. Esto tambin es el objeto Document usado para crear nuevos nodos. Cuando este nodo es un Document esto es null. Mtodos insertBefore Inserta el nodo newChild antes del nodo hijo existente refChild. Si refChild es null, newChild se inserta al final de la lista de hijos. Si newChild es un objeto DocumentFragment, se insertan todos sus hijos, en el mismo orden, antes de refChild. Si newChild ya est en el rbol, se retira primero. Parmetros newChild El nodo a insertar. refChild
El nodo de referencia, es decir, el nodo antes del cual debe insertarse el nuevo nodo. Valor de Retorno El nodo insertado. Excepciones DOMException HIERARCHY_REQUEST_ERR: Provocada si este nodo es de un tipo que no permite hijos del tipo del nodo newChild, o si el nodo a insertar es uno de los ascendientes de este nodo. WRONG_DOCUMENT_ERR: Provocada si newChild fue creado a partir de un documento diferente del que cre a este nodo. NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura. NOT_FOUND_ERR: Provocada si refChild no es un hijo de este nodo.
replaceChild Reemplaza el nodo hijo oldChild con newChild en la lista de hijos, y devuelve el nodo oldChild. Si el newChild ya est en el rbol, se retira primero. Parmetros newChild El nuevo nodo a poner en la lista de hijos. oldChild El nodo que se va a reemplazar en la lista. Valor de Retorno El nodo reemplazado. Excepciones DOMException HIERARCHY_REQUEST_ERR: Provocada si este nodo es de un tipo que no permite hijos del tipo del nodo newChild, o si el nodo a introducir es uno de los ascendientes de este nodo. WRONG_DOCUMENT_ERR: Provocada si newChild fue creado a partir de un documento diferente del que cre a este nodo. NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura. NOT_FOUND_ERR: Provocada si oldChild no es un hijo de este nodo.
removeChild Retira el nodo hijo indicado por oldChild de la lista de hijos, y lo devuelve como valor de retorno. Parmetros oldChild El nodo a retirar. Valor de Retorno El nodo retirado. Excepciones DOMException NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura. NOT_FOUND_ERR: Provocada si oldChild no es un hijo de este nodo.
appendChild Aade el nodo newChild al final de la lista de hijos de este nodo. Si el newChild ya est en el rbol, se retira primero. Parmetros newChild
El nodo a aadir. Si es un objeto DocumentFragment, se mueven todos los contenidos del fragmento de documento a la lista de hijos de este nodo Valor de Retorno El nodo aadido. Excepciones DOMException HIERARCHY_REQUEST_ERR: Provocada si este nodo es de un tipo que no permite hijos del tipo del nodo newChild, o si el nodo a aadir es uno de los ascendientes de este nodo. WRONG_DOCUMENT_ERR: Provocada si newChild fue creado a partir de un documento diferente del que cre a este nodo. NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura.
hasChildNodes Este es un mtodo de conveniencia que permite determinar fcilmente si un nodo tiene algn hijo. Valor de Retorno true si el nodo tiene algn hijo, false si el nodo no tiene ningn hijo.
Este mtodo no tiene parmetros. Este mtodo no provoca excepciones. cloneNode Devuelve una rplica de este nodo, es decir, sirve como constructor genrico de copia para nodos. El nodo rplica no tiene padre (parentNode devuelve null). Cuando se clona un Element se copian todos los atributos y sus valores, incluyendo aqullos generados por el procesador XML para representar los atributos con valores por defecto, pero este mtodo no copia ningn texto de su contenido a menos que se trate de clon profundo, ya que el texto est contenido en un nodo hijo de tipo Text. La clonacin de cualquier otro tipo de nodo devuelve simplemente una copia de este nodo. Parmetros deep
Si es true, se clona recursivamente el sub-rbol bajo el nodo especificado. Si es false, se clona slo el nodo en s (y sus atributos si es un Element). Valor de Retorno El nodo rplica.
Este mtodo no provoca excepciones. Interfaz NodeList La interfaz NodeList proporciona la abstraccin de un conjunto ordenado de nodos, sin definir o restringir cmo se implementa este conjunto. Se puede acceder a los objetos de un NodeList a travs de un ndice entero que comienza en el 0. Definicin IDL interface NodeList { Node item(in unsigned long index); readonly attribute unsigned long length; };
Mtodos item Devuelve el objeto del conjunto cuyo ndice es index. Si index es mayor o igual que el nmero de nodos de la lista, esto devuelve null. Parmetros index ndice dentro del conjunto. Valor de Retorno El nodo en la posicin index de la lista NodeList, o null si aqul no es un ndice vlido.
Este mtodo no provoca excepciones. Atributos length El nmero de nodos de la lista. El rango de ndices vlidos de nodos hijos va desde 0 hasta length-1, ambos inclusive. Interfaz NamedNodeMap Los objetos que implementan la intertaz NamedNodeMap se usan para representar conjuntos de nodos a los que se puede acceder por su nombre. Obsrvese que NamedNodeMap no se hereda de unNodeList; en efecto, los NamedNodeMaps no se mantienen en ningn orden particular. Tambin se puede acceder a los objetos contenidos en un objeto que implemente NamedNodeMap mediante un ndice ordinal, pero esto es simplemente para permitir la enumeracin conveniente de los contenidos de un NamedNodeMap, y no implica que el DOM especifique un orden para estos nodos. Definicin IDL interface NamedNodeMap { Node getNamedItem(in DOMString name); Node setNamedItem(in Node arg) raises(DOMException); Node removeNamedItem(in DOMString name) raises(DOMException); Node item(in unsigned long index); readonly attribute unsigned long length; };
Mtodos getNamedItem Obtiene el nodo especificado por el nombre name. Parmetros name El nombre del nodo a obtener. Valor de Retorno Un Node (de cualquier tipo) con el nombre especificado, o null si el nombre especificado no identific a ningn nodo del conjunto.
Este mtodo no provoca excepciones. setNamedItem Aade un nodo usando su atributo nodeName. Como el atributo nodeName se utiliza para determinar el nombre bajo el cual debe almacenarse el nodo, no pueden almacenarse varios nodos de ciertos tipos (aquellos que tengan un valor de cadena "especial") ya que los nombres entraran en conflicto. Se considera que esto es preferible a permitir que se pueda dar un alias a los nodos. Parmetros arg
Un nodo a almacenar en un mapa de nodos con nombre. El nodo ser despus accesible usando el valor del atributo nodeName del nodo. Si ya hay algn nodo con ese nombre en el mapa, se reemplaza por el nuevo. Valor de Retorno Si el nuevo Node reemplaza a algn nodo existente con el mismo nombre, se devuelve el Node existente previamente; en caso contrario se devuelve null. Excepciones DOMException WRONG_DOCUMENT_ERR: Provocada si arg fue creado a partir de un documento diferente del que cre al NamedNodeMap. NO_MODIFICATION_ALLOWED_ERR: Provocada si este NamedNodeMap es de slo lectura. INUSE_ATTRIBUTE_ERR: Provocada si arg es un Attr que ya es un atributo de otro objeto Element. El usuario del DOM debe clonar explcitamente los nodos Attrpara reutilizarlos en otros elementos.
removeNamedItem Retira un nodo especificado por su nombre. Si el nodo retirado es un Attr con un valor por defecto se reemplaza inmediatamente. Cuando este mapa NamedNodeMap contiene los atributos asociados a un elemento, tal y como se devuelve por el atributo attributes de la interfaz Node, si se sabe que el atributo retirado tiene un valor por defecto, inmediatamente aparece un atributo que contiene el valor por defecto. Parmetros name El nombre del nodo a retirar. Valor de Retorno El nodo retirado del mapa si existe algn nodo con el nombre especificado. Excepciones DOMException NOT_FOUND_ERR: Provocada si no hay ningn nodo con el nombre name en el mapa. NO_MODIFICATION_ALLOWED_ERR: Provocada si este NamedNodeMap es de slo lectura.
item Devuelve el objeto del mapa cuyo ndice es index. Si index es mayor o igual que el nmero de nodos del mapa, esto devuelve null. Parmetros index ndice dentro del mapa. Valor de Retorno El nodo en la posicin index dentro del NamedNodeMap, o null si aqul no es un ndice vlido.
Este mtodo no provoca excepciones. Atributos length El nmero de nodos del mapa. El rango de ndices vlidos de nodos hijos va desde 0 hasta length-1, ambos inclusive. Interfaz CharacterData La interfaz CharacterData extiende a Node con un conjunto de atributos y mtodos para acceder a datos de caracteres en el DOM. Por claridad se define este conjunto aqu en lugar de hacerlo en cada objeto que utilice estos atributos y mtodos. No hay ningn objeto del DOM que corresponda directamente a CharacterData, aunque Text y otros heredan su interfaz de l. Todos los offsets de esta interfaz comienzan desde 0. Definicin IDL interface CharacterData : Node { attribute DOMString data; // raises(DOMException) on setting // raises(DOMException) on retrieval readonly attribute unsigned long length; DOMString substringData(in unsigned long offset, in unsigned long count) raises(DOMException); void appendData(in DOMString arg) raises(DOMException); void insertData(in unsigned long offset, in DOMString arg) raises(DOMException); void deleteData(in unsigned long offset, in unsigned long count) raises(DOMException); void replaceData(in unsigned long offset, in unsigned long count, in DOMString arg) raises(DOMException); };
Atributos data Los datos de caracteres del nodo que implementa esta interfaz. La implementacin DOM puede no poner lmites arbritrarios en la cantidad de datos que pueden almacenarse en un nodoCharacterData. Sin embargo, los lmites de una implementacin pueden hacer que no quepa en un solo DOMString la totalidad de los datos de un nodo. En estos casos, el usuario puede llamar a substringData para obtener los datos en bloques de tamao apropiado. Excepciones al establecer DOMException NO_MODIFICATION_ALLOWED_ERR: Provocada cuando el nodo es de slo lectura. Excepciones al leer DOMException DOMSTRING_SIZE_ERR: Provocada cuando se devolveran ms caracteres de los que caben en una variable DOMString en la plataforma de la implementacin. length El nmero de unidades de 16 bits que estn disponibles a travs de data y del mtodo substringData descrito abajo. Esto puede ser el valor cero, es decir, los nodos CharacterDatapueden estar vacos. Mtodos substringData Extrae una subcadena de datos del nodo. Parmetros offset Offset del inicio de la subcadena a extraer. count El nmero de unidades de 16 bits a extraer. Valor de Retorno La subcadena especificada. Si la suma de offset y count excede de la longitud length, entonces se devuelven todas las unidades de 16 bits hasta el final de los datos. Excepciones DOMException INDEX_SIZE_ERR: Provocada si el offset especificado es negativo o mayor que el nmero de unidades de 16 bits de data, o si la cuenta count especificada es negativa. DOMSTRING_SIZE_ERR: Provocada si la subcadena de texto especificada no cabe en un DOMString.
appendData Aade la cadena al final de los datos de caracteres del nodo. En caso de xito, data proporciona acceso a la concatenacin de data y el DOMString especificado. Parmetros arg El DOMString a aadir. Excepciones DOMException NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura.
Este mtodo no devuelve nada. insertData Inserta una cadena en el offset de unidades de 16 bits especificado. Parmetros offset El offset de unidades de 16 bits en el cual insertar la cadena. arg El DOMString a insertar. Excepciones DOMException INDEX_SIZE_ERR: Provocada si el offset especificado es negativo o mayor que el nmero de unidades de 16 bits de data. NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura.
Este mtodo no devuelve nada. deleteData Borra una subcadena de unidades de 16 bits del nodo. En caso de xito, data y length reflejan el cambio. Parmetros offset El offset a partir del cual borrar las unidades de 16 bits. count
El nmero de unidades de 16 bits a borrar. Si la suma de offset y count excede de la longitud length, entonces se borran todas las unidades de 16 bits desde offsethasta el final de los datos. Excepciones DOMException INDEX_SIZE_ERR: Provocada si el offset especificado es negativo o mayor que el nmero de unidades de 16 bits de data, o si la cuenta count especificada es negativa. NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura.
Este mtodo no devuelve nada. replaceData Reemplaza las unidades de 16 bits desde el offset especificado con la cadena especificada. Parmetros offset El offset a partir del cual comenzar el reemplazamiento. count
El nmero de unidades de 16 bits a reemplazar. Si la suma de offset y count excede de la longitud length, entonces se reemplazan todas las unidades de 16 bits hasta el final de los datos (es decir, el efecto es el mismo que el de una llamada al mtodo remove con la misma subcadena, seguida de una invocacin al mtodo append). arg El DOMString por el que debe ser reemplazada la subcadena. Excepciones DOMException INDEX_SIZE_ERR: Provocada si el offset especificado es negativo o mayor que el nmero de unidades de 16 bits de data, o si la cuenta count especificada es negativa. NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura.
Este mtodo no devuelve nada. Interfaz Attr La interfaz Attr representa un atributo de un objeto Element. Normalmente los valores permitidos para el atributo estn definidos en la definicin del tipo de documento. Los objetos Attr heredan la interfaz Node, pero como en realidad no son nodos hijos del elemento al que describen, el DOM no los considera parte del rbol del documento. As, los atributos deNode parentNode, previousSibling y nextSibling tiene un valor null para los objetos Attr. El DOM considera que los atributos son propiedades de elementos, es decir, que no tienen una identidad separada de los elementos a los que estn asociados; gracias a esto debera ser ms sencillo implementar caractersticas tales como atributos por defecto asociados a elementos de un tipo dado. Adems, los nodos Attr no pueden ser hijos inmediatos de un DocumentFragment. Sin embargo, pueden asociarse a nodos Element contenidos dentro de un DocumentFragment. En resumen, los usuarios y los implementadores del DOM deben darse cuenta de que los nodos Attr tienen algunas cosas en comn con otros objetos que heredan la interfaz Node, pero que son al mismo tiempo bastante diferentes a ellos. El valor efectivo del atributo se determina de la siguiente manera: si se le ha asignado un valor a este atributo explcitamente, ese valor es el valor efectivo del atributo; en caso contrario, si hay una declaracin para este atributo, y dicha declaracin incluye un valor por defecto, entonces el valor por defecto es el valor efectivo del atributo; en otro caso, no existe el atributo para este elemento en el modelo de estructura mientras no se haya aadido explcitamente. Obsrvese que el atributo nodeValue del ejemplar Attr tambin puede utilizarse para obtener la versin en forma de cadena del valor o valores del atributo. En XML, en el cual el valor de un atributo puede contener referencias a entidades, los nodos hijos del nodo Attr proporcionan una representacin en la cual las referencias a entidades no son expandidas. Estos nodos hijos pueden ser o bien nodos Text o bien nodos EntityReference. Como el tipo de atributo puede ser desconocido, no hay valores de atributos de tipo simblico (tokenized attributes). Definicin IDL interface Attr : Node { readonly attribute DOMString name; readonly attribute boolean specified; attribute DOMString value; // raises(DOMException) on setting };
Atributos name Devuelve el nombre de este atributo. specified Si se dio un valor a este atributo explcitamente en el documento original, esto es true; en caso contrario, es false. Obsrvese que la implementacin, y no el usuario, est al cargo de este atributo. Si el usuario cambia el valor del atributo (incluso si acaba teniendo el mismo valor que el valor por defecto) entonces el indicador specified se conmuta automticamente atrue. Para especificar de nuevo que el valor tenga el valor por defecto del DTD, el usuario debe borrar el atributo. La implementacin dispondr entonces un nuevo atributo conspecified establecido en false y el valor por defecto (si existe). En resumen: Si se ha asignado un valor al atributo en el documento, entonces specified es true, y el valor es el valor asignado. Si no se ha asignado un valor al atributo en el documento y tiene un valor por defecto en el DTD, entonces specified es false, y el valor es el valor por defecto en el DTD. Si no se ha asignado un valor al atributo en el documento y tiene un valor de #IMPLIED en el DTD, entonces el atributo no aparece en el modelo de estructura del documento. value Cuando se lee, se devuelve el valor del atributo como una cadena. Las referencias a entidades generales y de caracteres se reemplazan por sus valores. Cuando se establece, esto crea un nodo Text con los contenidos no analizados de la cadena. Excepciones al establecer DOMException NO_MODIFICATION_ALLOWED_ERR: Provocada cuando el nodo es de slo lectura. Interfaz Element La gran mayora de los objetos (aparte del texto) que encuentran los autores cuando recorren un documento son con mucho nodos Element. Imaginemos el siguiente documento XML:
<elementoEjemplo id="demo"> <subelemento1/> <subelemento2><subsubelemento1/></subelemento2> </elementoEjemplo> Si lo representamos usando el DOM, el nodo superior es un nodo Element para "elementoEjemplo", el cual contiene dos nodos Element hijos, uno para "subelemento1" y otro para "subelemento2". "subelemento1" no contiene nodos hijos. Los elementos pueden tener atributos asociados a ellos; como la interfaz Element se hereda de Node, puede utilizarse el atributo de la interfaz genrica Node attributes para obtener el conjunto de todos los atributos de un elemento. Existen mtodos en la interfaz Element para obtener o bien un objeto Attr por su nombre o bien un valor de atributo por su nombre. En XML, en el cual un valor de atributo puede contener referencias a entidades, debera obtenerse un objeto Attr para examinar el posiblemente complejo sub-rbol que representa el valor del atributo. Por otra parte, en HTML, en el cual todos los atributos tienen valores de cadenas simples, pueden emplearse con seguridad mtodos ms convenientes para acceder directamente al valor de un atributo. Definicin IDL interface Element : Node { readonly attribute DOMString tagName; DOMString getAttribute(in DOMString name); void setAttribute(in DOMString name, in DOMString value) raises(DOMException); void removeAttribute(in DOMString name) raises(DOMException); Attr getAttributeNode(in DOMString name); Attr setAttributeNode(in Attr newAttr) raises(DOMException); Attr removeAttributeNode(in Attr oldAttr)
Atributos tagName El nombre del elemento. Por ejemplo, en:
<elementoEjemplo id="demo"> ... </elementoEjemplo> , tagName tiene el valor "elementoEjemplo". Obsrvese que en XML se conserva la distincin entre maysculas y minsculas, como en todas las operaciones del DOM. El DOM HTML devuelve el tagName de un elemento HTML en la forma cannica en maysculas, independientemente de la forma en que se presentaba en el documento fuente HTML. Mtodos getAttribute Obtiene el valor de un atributo por su nombre. Parmetros name El nombre del atributo a obtener. Valor de Retorno El valor Attr en forma de cadena, o la cadena vaca si el atributo no tiene un valor especificado o por defecto.
Este mtodo no provoca excepciones. setAttribute Aade un nuevo atributo. Si ya hay presente en el elemento un atributo con ese nombre, su valor se cambia al del parmetro value. Este valor es una cadena simple, no es analizada en el momento de establecerla. De modo que cualquier cdigo o markup (como por ejemplo sintaxis que debe ser reconocida como una referencia a una entidad) se trata como texto literal, y la implementacin debe transformarlo en secuencias de escape de forma apropiada al producir su salida. Para asignar a un atributo un valor que contenga referencias a entidades, el usuario debe crear un nodo Attr y adems nodos Text y EntityReference, construir el sub-rbol apropiado, y usar setAttributeNode para asignarlo como valor del atributo. Parmetros name El nombre del atributo a crear o modificar. value Valor a establecer, en forma de cadena. Excepciones DOMException INVALID_CHARACTER_ERR: Provocada si el nombre especificado contiene un carcter invlido. NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura.
Este mtodo no devuelve nada. removeAttribute Retira un atributo especificado por su nombre. Si se sabe que el atributo retirado tiene un valor por defecto, aparece inmediatamente un atributo que contiene el valor por defecto. Parmetros name El nombre del atributo a retirar. Excepciones DOMException NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura.
Este mtodo no devuelve nada. getAttributeNode Obtiene un nodo Attr especificado por su nombre. Parmetros name El nombre del atributo a obtener. Valor de Retorno El nodo Attr con el nombre de atributo especificado, o null si no existe tal atributo.
Este mtodo no provoca excepciones. setAttributeNode Aade un nuevo atributo. Si ya hay presente en el elemento un atributo con ese nombre, se reemplaza con el nuevo. Parmetros newAttr El nodo Attr a aadir a la lista de atributos. Valor de Retorno Si el atributo newAttr reemplaza a un atributo existente con el mismo nombre, se devuelve el nodo Attr previamente existente. En caso contrario, se devuelve null. Excepciones DOMException WRONG_DOCUMENT_ERR: Provocada si newAttr fue creado a partir de un documento diferente del cre al elemento. NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura. INUSE_ATTRIBUTE_ERR: Provocada si newAttr ya es un atributo de otro objeto Element. El usuario del DOM debe clonar explcitamente los nodos Attr para reutilizarlos en otros elementos.
removeAttributeNode Retira el atributo especificado. Parmetros oldAttr
El nodo Attr a retirar de la lista de atributos. Si el Attr retirado tiene un valor por defecto se reemplaza inmediatamente. Valor de Retorno El nodo Attr que ha sido retirado. Excepciones DOMException NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura. NOT_FOUND_ERR: Provocada si oldAttr no es un atributo del elemento.
getElementsByTagName Devuelve una lista NodeList de todos los elementos descendientes con un nombre de etiqueta dado, en el orden en que se encontraran normalmente al realizar un recorrido en preorden del rbol del Element. Parmetros name
El nombre de la etiqueta a emparejar. El valor especial "*" se empareja con todas las etiquetas. Valor de Retorno Una lista de todos los nodos Element emparejados.
Este mtodo no provoca excepciones. normalize Coloca a todos los nodos Text contenidos en todos los niveles del sub- rbol que queda por debajo de este Element en forma "normal", en la cual nicamente el cdigo (p.ej., etiquetas, comentarios, instrucciones de procesamiento, secciones CDATA y referencias a entidades) separa a los nodos Text. Es decir, no hay nodos Text adyacentes. Esto puede utilizarse para asegurarse de que la vista DOM de un documento es la misma que si se guardara y recargara, y es til cuando deben realizarse operaciones (tales como bsquedas XPointer) que dependen de una estructura de rbol particular del documento. Este mtodo no tiene parmetros. Este mtodo no devuelve nada. Este mtodo no provoca excepciones. Interfaz Text La interfaz Text representa el contenido textual (los llamados datos de caracteres en XML) de un Element o Attr. Si no hay cdigo dentro de los contenidos de un elemento, el texto est contenido en un solo objeto que implementa la interfaz Text y que es el nico hijo del elemento. Si hay cdigo, se traduce en una lista de hijos del elemento. Cuando se dispone un documento por primera vez a travs del DOM, hay slo un nodo Text por cada bloque de texto. Los usuarios pueden crear nodos Text adyacentes que representen los contenidos de un elemento dado sin ningn cdigo intermedio, pero deberan recordar que no hay manera de representar las separaciones entre estos nodos en XML o en HTML, de modo que, en general, no persistirn entre sesiones de edicin del DOM. El mtodo normalize() de Element combina estos objetos Text adyacentes en un solo nodo para cada bloque de texto; se recomienda hacer esto antes de emplear operaciones que dependan de una estructura particular del documento, como la navegacin con XPointers. Definicin IDL interface Text : CharacterData { Text splitText(in unsigned long offset) raises(DOMException); };
Mtodos splitText Divide este nodo Text en dos nodos Text por el offset especificado, manteniendo a ambos en el rbol como hermanos. Este nodo contendr entonces todos los datos hasta el puntooffset. Y el nuevo nodo Text, que se inserta como el siguiente hermano de este nodo, contendr todo el contenido a partir del punto offset incluido. Parmetros offset
El offset de la unidad de 16 bits en el cual se producir la divisin, comenzando en cero. Valor de Retorno El nuevo nodo Text. Excepciones DOMException INDEX_SIZE_ERR: Provocada si el offset especificado es negativo o mayor que el nmero de unidades de 16 bits de data. NO_MODIFICATION_ALLOWED_ERR: Provocada si este nodo es de slo lectura.
Interfaz Comment Representa el contenido de un comentario, es decir, todos los caracteres entre el '<!--' inicial y el '-->' final. Obsrvese que esta es la definicin de un comentario en XML y, en la prctica, en HTML, aunque algunas herramientas HTML pueden implementar la estructura completa de comentarios SGML. Definicin IDL interface Comment : CharacterData { };
1.3. Interfaces Extendidas Las interfaces aqu definidas forman parte del Ncleo del Nivel 1 de la especificacin DOM, pero los objetos que expongan estas interfaces no se encontrarn nunca en implementaciones DOM que slo traten con HTML. Como tales, las implementaciones de DOM slo para HTML no necesitan tener objetos que implementen estas interfaces. Interfaz CDATASection Las secciones CDATA se usan para transformar en secuencias de escape bloques de texto que contienen caracteres que de otro modo seran considerados como cdigo. El nico delimitador reconocido en una seccin CDATA es la cadena "]]>" que finaliza la seccin CDATA. Las secciones CDATA no pueden anidarse. El propsito principal es la inclusin de material tal como fragmentos XML sin necesidad de transformar todos los delimitadores en secuencias de escape. El atributo DOMString del nodo Text contiene el texto que est contenido en la seccin CDATA. Obsrvese que sta puede contener caracteres que necesiten ser transformados en secuencias de escape fuera de secciones CDATA y que, dependiendo de la codificacin de caracteres ("charset") elegida para la serializacin, puede ser imposible escribir en la salida ciertos caracteres como parte de una seccin CDATA. La interfaz CDATASection se hereda de la interfaz CharacterData a travs de la interfaz Text. Los nodos CDATASection adyacentes no son combinados cuando se usa el mtodo Element.normalize(). Definicin IDL interface CDATASection : Text { };
Interfaz DocumentType Todo documento Document tiene un atributo doctype cuyo valor es o bien null o bien un objeto DocumentType. La interfaz DocumentType del Ncleo del Nivel 1 del DOM proporciona una interfaz a la lista de entidades definidas para el documento, y poco ms, debido a que el efecto de los espacios de nombres y de los distintos esfuerzos de esquemas XML en la representacin del DTD no se entienden claramente a fecha de la redaccin de este documento. El Nivel 1 del DOM no soporta la edicin de los nodos DocumentType. Definicin IDL interface DocumentType : Node { readonly attribute DOMString name; readonly attribute NamedNodeMap entities; readonly attribute NamedNodeMap notations; };
Atributos name El nombre del DTD, es decir, el nombre que sigue inmediatamente a la palabra clave DOCTYPE. entities Un NamedNodeMap que contiene las entidades generales, tanto externas como internas, declaradas en el DTD. Los duplicados se descartan. Por ejemplo, en: <!DOCTYPE ex SYSTEM "ex.dtd" [ <!ENTITY foo "foo"> <!ENTITY bar "bar"> <!ENTITY % baz "baz"> ]> <ex/> la interfaz proporciona acceso a foo y a bar, pero no a baz. Todos los nodos de este mapa implementan adems la interfaz Entity. El Nivel 1 del DOM no soporta la edicin de entidades, y por tanto las entities no pueden modificarse de ningn modo. notations Un NamedNodeMap que contiene las notaciones declaradas en el DTD. Los duplicados se descartan. Todos los nodos de este mapa implementan adems la interfaz Notation. El Nivel 1 del DOM no soporta la edicin de notaciones, y por tanto las notations no pueden modificarse de ningn modo. Interfaz Notation Esta interfaz representa una notacin declarada en el DTD. Una notacin o bien declara, por el nombre, el formato de una entidad no analizada (ver la seccin 4.7 de la especificacin de XML 1.0), o bien se usa para la declaracin formal de destinos de Instrucciones de Procesamiento (ver la seccin 2.6 de la especificacin XML 1.0). El atributo nodeName heredado de Node se hace igual al nombre declarado de la notacin. El Nivel 1 del DOM no soporta la edicin de nodos Notation; son por lo tanto de slo lectura. Un nodo Notation no tiene ningn padre. Definicin IDL interface Notation : Node { readonly attribute DOMString publicId; readonly attribute DOMString systemId; };
Atributos publicId El identificador pblico de esta notacin. Si el identificador pblico no ha sido especificado, esto es null. systemId El identificador de sistema de esta notacin. Si el identificador de sistema no ha sido especificado, esto es null. Interfaz Entity Esta interfaz representa una entidad, analizada o no analizada, en un documento XML. Obsrvese que esto modeliza la entidad en s misma, no la declaracin de la entidad. La modelizacin de la declaracin Entity se ha dejado para un Nivel posterior de la especificacin del DOM. El atributo nodeName que est heredado de Node contiene el nombre de la entidad. Un procesador XML puede optar por expandir completamente las entidades antes de pasar el modelo de estructura al DOM. En este caso no habr ningn nodo EntityReference en el rbol del documento. XML no obliga a que un procesador XML no validador lea y procese las declaraciones de entidades hechas en el subconjunto externo o declaradas en entidades paramtricas externas. Esto significa que algunas clases de aplicaciones no necesitan expandir las entidades analizadas declaradas en el subconjunto externo, y que el valor por el que se reemplaza la entidad puede no estar disponible. Cuando el valor de reemplazamiento est disponible, la lista de nodos hijos del nodo Entity correspondiente representa la estructura del texto de reemplazamiento. En caso contrario, la lista de hijos est vaca. La resolucin de los hijos de la entidad (el valor de reemplazamiento) puede ser evaluada de manera laxa; se supone que las acciones del usuario (tales como llamar al mtodo childNodes del nodoEntity) activan la evaluacin. El Nivel 1 del DOM no soporta la edicin de nodos Entity. Si un usuario quiere hacer cambios en los contenidos de un objeto Entity, todos los nodos EntityReference relacionados se deben reemplazar en el modelo de estructura por un clon de los contenidos de la entidad, y los cambios deseados deben realizarse en cada uno de esos clones. Todos los descendientes de un nodo Entityson de slo lectura. Un nodo Entity no tiene ningn padre. Definicin IDL interface Entity : Node { readonly attribute DOMString publicId; readonly attribute DOMString systemId; readonly attribute DOMString notationName; };
Atributos publicId El identificador pblico asociado con la entidad, si est especificado. Si el identificador pblico no ha sido especificado, esto es null. systemId El identificador de sistema asociado con la entidad, si est especificado. Si el identificador de sistema no ha sido especificado, esto es null. notationName Para entidades no analizadas, el nombre de la notacin de la entidad. Para entidades analizadas, esto es null. Interfaz EntityReference Los objetos EntityReference se pueden insertar en el modelo de estructura cuando hay una referencia a una entidad en el documento fuente, o cuando el usuario desea insertar una referencia a una entidad. Obsrvese que las referencias de caracteres y las referencias a entidades predefinidas se consideran expandidas por el procesador HTML o XML de modo que los caracteres son representados por su equivalente Unicode ms que por una referencia de entidades. Adems, el procesador XML puede expandir completamente las referencias a entidades mientras construye el modelo de estructura, en lugar de proporcionar objetos EntityReference. Si lo que hace es proporcionar estos objetos, entonces, para un nodo EntityReference dado, puede ser que no haya ningn nodo Entity que represente la entidad referenciada. Pero si existe tal Entity, entoces la lista de hijos del nodo EntityReference es la misma que la del nodo Entity. Como con el nodoEntity, todos los descendientes de EntityReference son de slo lectura. La resolucin de los hijos de EntityReference (el valor de reemplazamiento de la entidad Entity referenciada) puede ser evaluada de manera laxa. Se supone que las acciones del usuario (como por ejemplo llamar al mtodo childNodes del nodo EntityReference) activan la evaluacin. Definicin IDL interface EntityReference : Node { };
Interfaz ProcessingI nstruction La interfaz ProcessingInstruction representa una "instruccin de procesamiento", utilizada en XML como medio de mantener informacin especfica del procesador en el texto del documento. Definicin IDL interface ProcessingInstruction : Node { readonly attribute DOMString target; attribute DOMString data; // raises(DOMException) on setting };
Atributos target El destino de esta instruccin de procesamiento. XML define a ste como la primera palabra ("token") que sigue al cdigo que inicia la instruccin de procesamiento. data El contenido de esta instruccin de procesamiento. Esto va desde el primer carcter despus del destino que no es espacio en blanco hasta el carcter que precede inmediatamente a ?>. Excepciones al establecer DOMException NO_MODIFICATION_ALLOWED_ERR: Provocada cuando el nodo es de slo lectura.