Nota del Traductor: Infoset
es un conjunto de interfaces de programas abstractas que modelan la información en XML. En los modelos DOM el Infoset
se muestra a través de una jerarquía de nodos genéricos que soportan interfaces bien definidas.
Este apéndice contiene el mapeo entre el modelo del Conjunto de Información XML [Conjunto de Información XML] y el Modelo de Objetos del Documento.
Empezando desde un nodo Document
, cuyo elemento información es mapeado hasta su respectivo Node
, y cuyo Node
es mapeado hasta su respectivo elemento de información. Como usado en la especificación Infoset, los nombres de la propiedad Infoset son mostrados entre corchetes, [así].
a no ser que no es especifique, el mapa del Infoset del nodo DOM no hace distintición entre desconocido y sin valor ya que ambos serán expuestos como null
(o false
si el atributo DOM attribute es del tipo boolean
).
Un elemento de información del documento traza un mapa a un nodo Document
. Los atributos del nodo Document
correspondientes son construidos como sigue:
Atributo | Valor |
---|---|
Node.nodeName |
"#document" |
Node.nodeValue |
null |
Node.nodeType |
Node.DOCUMENT_NODE |
Node.parentNode |
null |
Node.childNodes |
Un NodeList contiene el elemento de información en la propiedad [children].
|
Node.firstChild |
El primer nodo contenido en Node.childNodes |
Node.lastChild |
El último nodo contenido en Node.childNodes |
Node.previousSibling |
null |
Node.nextSibling |
null |
Node.attributes |
null |
Node.ownerDocument |
null |
Node.namespaceURI |
null |
Node.prefix |
null |
Node.localName |
null |
Node.baseURI |
Igual que Document.documentURI |
Node.textContent |
null |
Document.doctype | El elemento de información del tipo de documento |
Document.implementation |
El objeto DOMImplementation usado para crear este nodo |
Document.documentElement | La propiedad [document element] |
Document.inputEncoding | La propiedad [character encoding scheme] |
Document.xmlEncoding |
null |
Document.xmlStandalone |
La propiedad [standalone], o false si el último no tiene valor. |
Document.xmlVersion |
La propiedad [version], o "1.0" si el último no tiene valor. |
Document.strictErrorChecking |
true |
Document.documentURI | La propiedad [base URI] |
Document.domConfig |
Un objeto DOMConfiguration cuyos parámetros son establecidos a sus valores por defecto |
Las propiedades [notations], [unparsed entities] son expuestas en el nodo DocumentType
.
Nota:
La propiedad [all declarations processed] no es expuesta directamente por el nodo Document
.
Un nodo Document
traza un mapa a un elemento de información del documento. Los nodos Document
sin URI de espacio de nombre (Node.namespaceURI
iguales a null
) no puede ser representados usando el Infoset. Las propiedades del elemento de información del documento correspondientes son construidos como sigue:
Propiedad | Valor |
---|---|
[children] |
Node.childNodes |
[document element] |
Document.documentElement |
[notations] |
Document.doctype.notations |
[unparsed entities] |
El elemento de información de Document.doctype.entities , cuyo Node.childNodes es una lista vacía |
[base URI] |
Document.documentURI |
[character encoding scheme] |
Document.inputEncoding |
[standalone] |
Document.xmlStandalone |
[version] |
Document.xmlVersion |
[all declarations processed] | El valor depende de la implementación |
Un elemento de información de elemento traza un mapa a un nodo Element
. Los atributos correspondientes al nodo Element
son construidos como sigue:
Atributo | Valor |
---|---|
Node.nodeName |
Igual que Element.tagName |
Node.nodeValue |
null |
Node.nodeType |
Node.ELEMENT_NODE |
Node.parentNode | La propiedad [parent] |
Node.childNodes |
Un NodeList contiene el elemento de información en la propiedad [children] |
Node.firstChild |
El primer nodo contenido en Node.childNodes |
Node.lastChild |
El último nodo contenido en Node.childNodes |
Node.previousSibling | El elemento de información que precede al actual en la propiedad [children] contenida en la propiedad [parent] |
Node.nextSibling | El elemento de información siguiente al actual en la propiedad [children] contenida en una propiedad [parent] |
Node.attributes | El elemento de información contenido en las propiedades [attributes] y [namespace attributes] |
Node.ownerDocument | El elemento de información del documento |
Node.namespaceURI | La propiedad [namespace name] |
Node.prefix | La [prefix] propiedad |
Node.localName | La propiedad [local name] |
Node.baseURI | La propiedad [base URI] |
Node.textContent |
La concatenación del valor del atributo Node.textContent de cada nodo hijo, excluyendo los nodos COMMENT_NODE y PROCESSING_INSTRUCTION_NODE nodes. Esto es una cadena vacía si el nodo no tiene hijos. |
Element.tagName | Si la propiedad [prefix] no tiene valor, esta contiene la propiedad [local name]. En caso contrario, esta contiene la concatenaci&ocute;n de la propiedad [prefix], el caracter dos puntos ':', y la propiedad [local name]. |
Element.schemaTypeInfo |
Un objeto TypeInfo cuyo TypeInfo.typeNamespace y TypeInfo.typeName son deducidos del esquema en uso si es válido
|
Nota:
La propiedad [in-scope namespaces] no es expuesta directamente por el nodo Element
.
Un nodo Element
traza un mapa a un elemento de información del elemento. Como Infoset representa solamente referencias de entidades no expandidas/ampliadas, los nodos
EntityReference
no vacíos contenidos en Node.childNodes
necesitan ser reemplazados por su contenido. Las aplicaciones DOM podrán usar el método Document.normalizeDocument()
para tal efecto con el parámetro "entities" establecido a false
. Las propiedades correspondientes a elemento de información del elemento son construidas como siguen:
Propiedad | Valor |
---|---|
[namespace name] |
Node.namespaceURI |
[local name] |
Node.localName |
[prefix] |
Node.prefix |
[children] |
Node.childNodes , cuyas referencias de entidad expandidas/ampliadas (nodos EntityReference con hijos) han sido reemplazadas con su contenido.. |
[attributes] |
Los nodos contenidos en Node.attributes , cuyo valor de Node.namespaceURI es diferente de "http://www.w3.org/2000/xmlns/" |
[namespace attributes] |
Los nodos contenidos en Node.attributes , cuyo valor de Node.namespaceURI es "http://www.w3.org/2000/xmlns/" |
[in-scope namespaces] |
Los elementos de Información de espacio de nombre procesados usando las propiedades [namespace attributes] de este nodo y su antecesor. Si el módulo [DOM Nivel 3 XPath] es soportado, los elementos de información de espacio de nombre pueden ser también procesados desde los nodos XPathNamespace .
|
[base URI] |
Node.baseURI |
[parent] |
Node.parentNode |
Un elemento de información de atributo traza un mapa a un nodo Attr
. Los atributos del nodo Attr
correspondientes son construidos como sigue:
Atributo/Método | Valor |
---|---|
Node.nodeName |
igual que Attr.name |
Node.nodeValue |
igual que Attr.value |
Node.nodeType |
Node.ATTRIBUTE_NODE |
Node.parentNode |
null |
Node.childNodes |
Un NodeList que contiene un nodo Text cuyo contenido de texto es igual que Attr.value .
|
Node.firstChild |
El primer nodo Text contenido en Node.childNodes |
Node.lastChild |
El último nodo Text contenido en Node.childNodes |
Node.previousSibling |
null |
Node.nextSibling |
null |
Node.attributes |
null |
Node.ownerDocument | El elemento de información del documento |
Node.namespaceURI | La propiedad [namespace name] |
Node.prefix | La propiedad [prefix] |
Node.localName | La propiedad [local name] |
Node.baseURI |
null |
Node.textContent |
el valor de Node.textContent del Text hijo.
Igual que Node.nodeValue (desde este nodo atributo contiene solamente un nodo Text node) |
Attr.name | Si la propiedad [prefix] no tiene valor, esta contiene la propiedad [local name]. En caso contrario, esta contiene la concatenación de la propiedad [prefix], el caracter dos puntos ':', y la propiedad [local name]. |
Attr.specified | La propiedad [specified] |
Attr.value | La propiedad [normalized value] |
Attr.ownerElement | La propiedad [owner element] |
Attr.schemaTypeInfo |
Un objeto TypeInfo cuyo TypeInfo.typeNamespace es "http://www.w3.org/TR/REC-xml" y
TypeInfo.typeName es la propiedad [attribute
type]
|
Attr.isId |
Si la propiedad [attribute type] es ID, este método devuelve true
|
Un nodo Attr
traza un mapa a un elemento de información de atributo. Los nodos Attr
sin URI de espacio de nombre(Node.namespaceURI
iguales a null
) no puede ser representados usando el Infoset. Las propiedades del elemento de información del atributo correspondiente son construidoas como sigue:
Propiedad | Valor |
---|---|
[namespace name] |
Node.namespaceURI |
[local name] |
Node.localName |
[prefix] |
Node.prefix |
[normalized value] |
Attr.value |
[specified] |
Attr.specified |
[attribute type] |
Usando el objeto TypeInfo referenciado desde Attr.schemaTypeInfo , el valor de TypeInfo.typeName si
TypeInfo.typeNamespace es "http://www.w3.org/TR/REC-xml" .
|
[references] |
Si la propiedad [attribute type] procesada es IDREF,
IDREFS, ENTITY, ENTITIES, o NOTATION, el valor de esta propiedad es una lista ordenada de elementos, de entidades sin analizar, o elementos de información de notaciones enviadas al valor del atributo, en el orden en que estas aparecen aquí. La lista ordenada es procesada usando
Node.ownerDocument.getElementById ,
Node.ownerDocument.doctype.entities , y
Node.ownerDocument.doctype.notations .
|
[owner element] |
Attr.ownerElement |
Un elemento de informació de instrucción de procesado traza un mapa a un nodo ProcessingInstruction
. Los atributos del nodo ProcessingInstruction
correspondiente son construidos como sigue:
Atributo | Valor |
---|---|
Node.nodeName |
igual que ProcessingInstruction.target |
Node.nodeValue |
igual que ProcessingInstruction.data |
Node.nodeType |
Node.PROCESSING_INSTRUCTION_NODE |
Node.parentNode | La [parent] propiedad |
Node.childNodes |
NodeList vacía |
Node.firstChild |
null |
Node.lastChild |
null |
Node.previousSibling |
null |
Node.nextSibling |
null |
Node.attributes |
null |
Node.ownerDocument | El elemento de información del documento |
Node.namespaceURI |
null |
Node.prefix |
null |
Node.localName |
null |
Node.baseURI |
La propiedad [base URI] del elemento padre si hay alguno. La propiedad [base URI] del elemento de información de la instrucción de procesado no es expuesta en el nodo
ProcessingInstruction . |
Node.textContent |
igual que Node.nodeValue |
ProcessingInstruction.target | La propiedad [target] |
ProcessingInstruction.data | La propiedad [content] |
Un nodo ProcessingInstruction
traza un mapa a un elemento de información de instrucción de procesado. Las propiedades del elemento de información de instrucción de procesado correspondientes son construidas como sigue:
Propiedad | Valor |
---|---|
[target] |
ProcessingInstruction.target |
[content] |
ProcessingInstruction.data |
[base URI] |
Node.baseURI (que es equivalente al URI base de su elemento padre si lo hay) |
[notation] |
El nodo Notation llamado por el objetivo/destino y si está disponible desde Node.ownerDocument.doctype.notations
|
[parent] |
Node.parentNode |
Un elemento de información de referencia de entidad no expandida/ampliada traza un mapa a un nodo EntityReference
. Los atributos del nodo EntityReference
correspondiente son construidos como sigue:
Atributo | Valor |
---|---|
Node.nodeName | La [name] propiedad |
Node.nodeValue |
null |
Node.nodeType |
Node.ENTITY_REFERENCE_NODE |
Node.parentNode | La propiedad [parent] |
Node.childNodes |
NodeList vacía |
Node.firstChild |
null |
Node.lastChild |
null |
Node.previousSibling |
null |
Node.nextSibling |
null |
Node.attributes |
null |
Node.ownerDocument | El elemento de información del documento |
Node.namespaceURI |
null |
Node.prefix |
null |
Node.localName |
null |
Node.baseURI | La propiedad [declaration base URI] |
Node.textContent |
null (el nodo no tiene hijos) |
Nota:
Las propiedades [system identifier] y [public identifier] no son expuestas en el nodo EntityReference
, pero por el nodo Entity
referencia de este nodo EntityReference
, si lo hay.
Un nodo EntityReference
traza un mapa a un elemento de información de referencia de entidad no expandida/ampliada. Los nodos EntityReference
con hijos (Node.childNodes
contie una lista no vacía) no pueden ser representados utilizando el Infoset. Las propiedades del elemento de información de referencia de entidad no expandida/ampliada correspondiente son construidas como sigue:
Propiedad | Valor |
---|---|
[name] |
Node.nodeName |
[system identifier] |
El valor de Entity.systemId del nodo Entity disponible desde Node.ownerDocument.doctype.entities si está disponible |
[public identifier] |
El valor de Entity.publicId del nodo Entity disponible desde Node.ownerDocument.doctype.entities si está disponible |
[declaration base URI] |
Node.baseURI |
[parent] |
Node.parentNode |
Desde el [Conjunto de Información XML] no se representan los límites de la sección marcada CDATA, los nodos CDATASection
no pueden darse de un mapa infoset.
Los elementos de información de caracteres consecutivos trazan un mapa a un nodo Text
. Los atributos del nodo Text
correspondiente son construidos como sigue:
Atributo/Método | Valor |
---|---|
Node.nodeName |
"#text" |
Node.nodeValue |
igual que CharacterData.data |
Node.nodeType |
Node.TEXT_NODE |
Node.parentNode | La propiedad [parent] |
Node.childNodes |
NodeList vacía |
Node.firstChild |
null |
Node.lastChild |
null |
Node.previousSibling |
null |
Node.nextSibling |
null |
Node.attributes |
null |
Node.ownerDocument | El elemento de información del documento |
Node.namespaceURI |
null |
Node.prefix |
null |
Node.localName |
null |
Node.baseURI | null |
Node.textContent |
igual que Node.nodeValue |
CharacterData.data |
Un DOMString incluyendo todos los [character
code] contenidos en los elementos de información de caracteres
|
CharacterData.length | El número de unidades de 16-bit necesario para codificar todos los códigos de caracteres ISO 10646 contenidos en los elementos de información de caracteres usando la codificación UTF-16. |
Text.isElementContentWhitespace | La propiedad [element content whitespace] |
Text.wholeText |
igual que CharacterData.data |
Nota: Para la construcción, los valores de las propiedades [parent] y [element content whitespace] son necesariamente los mismos que para todos los elementos de información de caracteres consecutivos.
El contenido de texto de un nodo Text
o un nodo CDATASection
traza un mapa a una secuencia de elementos de información de caracteres. El número de elementos es menor o igual a CharacterData.length
. Los nodos Textos contenidos en nodos Attr
son mapeados al Infoset del atributo Attr.value
. Los nodosTextos contenidos en nodos Document
no pueden ser representados usando el Infoset. Las propiedades correspondientes a
elementos de información de caracteres son construidas como sigue:
Propiedad | Valor |
---|---|
[character code] |
Los códigos de caracteres ISO 10646 producidos usando uno o dos unidades de 16-bit de CharacterData.data |
[element content whitespace] |
Text.isElementContentWhitespace |
[parent] |
Node.parentNode |
Un elemento de información del contenido traza un mapa a un nodo Comment
. Los atributos del Comment
correspondiente son construidos como sigue:
Atributo | Valor |
---|---|
Node.nodeName |
"#comment" |
Node.nodeValue |
igual que CharacterData.data |
Node.nodeType |
Node.COMMENT_NODE |
Node.parentNode | El parámetro [parent] |
Node.childNodes |
NodeList vacía |
Node.firstChild |
null |
Node.lastChild |
null |
Node.previousSibling |
null |
Node.nextSibling |
null |
Node.attributes |
null |
Node.ownerDocument | El elemento de información del documento |
Node.namespaceURI |
null |
Node.prefix |
null |
Node.localName |
null |
Node.baseURI |
null |
Node.textContent |
igual que Node.nodeValue |
CharacterData.data | La propiedad [content] codificada usando la codificación UTF-16. |
CharacterData.length | El número de unidades de 16-bit necesarias para codificar todos los códigos de caracteres ISO contenidos en la propiedad [content] usando la codificación UTF-16. |
Un nodo Comment
traza un mapa a un elemento de información de comentario. Las propiedades del elemento de información del comentario correspondiente son construidias como sigue:
Propiedad | Valor |
---|---|
[content] |
CharacterData.data |
[parent] |
Node.parentNode |
Un elemento de información de la declaración del tipo de documento traza un mapa al nodo DocumentType
. Los atributos del nodo DocumentType
correspondiente son construidos como sigue:
Atributo | Valor |
---|---|
Node.nodeName |
igual que DocumentType.name |
Node.nodeValue |
null |
Node.nodeType |
Node.DOCUMENT_TYPE_NODE |
Node.parentNode | El parámetro [parent] |
Node.childNodes |
NodeList vacío |
Node.firstChild |
null |
Node.lastChild |
null |
Node.previousSibling |
null |
Node.nextSibling |
null |
Node.attributes |
null |
Node.ownerDocument | El elemento de información del documento |
Node.namespaceURI |
null |
Node.prefix |
null |
Node.localName |
null |
Node.baseURI |
null |
Node.textContent |
null |
DocumentType.name | El nombre del elemento del documento. |
DocumentType.entities | La propiedad [unparsed entities] disponible desde el elemento de información del documento. |
DocumentType.notations | La propiedad [notations] disponible desde el elemento de información del documento. |
DocumentType.publicId | La propiedad [public identifier] |
DocumentType.systemId | La propiedad [system identifier] |
DocumentType.internalSubset | El valor depende de la implementación |
Nota:
La propiedad [children] no es expuesta directamente por el nodo DocumentType
.
Un nodo DocumentType
traza un mapa a un elemento de información de declaración del tipo de documento. Las propiedades del elemento de información de declaración del tipo de documento correspondiente son construidas como sigue:
Propiedad | Valor |
---|---|
[system identifier] |
DocumentType.systemId |
[public identifier] |
DocumentType.publicId |
[children] | El valor de esta propiedad depende de la implementación |
[parent] |
Node.parentNode |
Un elemento de información de entidad no analizada traza un mapa a un nodo Entity
. Los atributos del nodo Entity
correspondiente son construidos como sigue:
Atributo | Valor |
---|---|
Node.nodeName | La propiedad [name] |
Node.nodeValue |
null |
Node.nodeType |
Node.ENTITY_NODE |
Node.parentNode |
null |
Node.childNodes |
NodeList vacía |
Node.firstChild |
null |
Node.lastChild |
null |
Node.previousSibling |
null |
Node.nextSibling |
null |
Node.attributes |
null |
Node.ownerDocument | El elemento de información del documento |
Node.namespaceURI |
null |
Node.prefix |
null |
Node.localName |
null |
Node.baseURI | La propiedad [declaration base URI] |
Node.textContent |
"" (el nodo no tiene hijos) |
Entity.publicId | La propiedad [public identifier] |
Entity.systemId | La propiedad [system identifier] |
Entity.notationName | La propiedad [notation name] |
Entity.inputEncoding |
null |
Entity.xmlEncoding |
null |
Entity.xmlVersion |
null |
Nota:
La propiedad [notation] está disponible directamente en el nodo DocumentType
.
Un nodo Entity
traza un mapa a un elemento de información de entidad no analizada. Los nodos Entity
con hijos
(Node.childNodes
contiene una lista no vacía) no pueden ser representados usando el Infoset. Las propiedades del elemento de información de entidad no analizada correspondiente son construidas como sigue:
Propiedad | Valor |
---|---|
[name] |
Node.nodeName |
[system identifier] |
Entity.systemId |
[public identifier] |
Entity.publicId |
[declaration base URI] |
Node.baseURI |
[notation name] |
Entity.notationName |
[notation] |
El nodo Notation referendiado desde DocumentType.notations cuyo nombre es la propiedad [notation name] |
Un elemento de información de notación traza un mapa a un nodo Notation
. Los atributos del nodo Notation
correspondientes son construidos como sigue:
Atributo | Valor |
---|---|
Node.nodeName | La propiedad [name] |
Node.nodeValue |
null |
Node.nodeType |
Node.NOTATION_NODE |
Node.parentNode |
null |
Node.childNodes |
NodeList vacío |
Node.firstChild |
null |
Node.lastChild |
null |
Node.previousSibling |
null |
Node.nextSibling |
null |
Node.attributes |
null |
Node.ownerDocument | El elemento de información del documento |
Node.namespaceURI |
null |
Node.prefix |
null |
Node.localName |
null |
Node.baseURI | La propiedad [declaration base URI] |
Node.textContent |
null |
Notation.publicId | La propiedad [public identifier] |
Notation.systemId | La propiedad [system identifier] |
Un nodo Notation
traza un mapa a un elemento de información de notación. Las propiedades del elemento de información de notación correspondiente son construidas como sigue:
Propiedad | Valor |
---|---|
[name] |
Node.nodeName |
[system identifier] |
Notation.systemId |
[public identifier] |
Notation.publicId |
[parent] |
Node.parentNode |