4D v16.3

Presentación de los comandos XML DOM

Inicio

 
4D v16.3
Presentación de los comandos XML DOM

Presentación de los comandos XML DOM  


 

 

4D incluye un conjunto de comandos utilizados para analizar objetos que contienen los datos XML (eXtensible Markup Language).

Nota relativa al modo apropiativo: las referencias XML creadas por un proceso apropiativo sólo se puede utilizar en este proceso específico. Por el contrario, las referencias XML creadas por un proceso cooperativo pueden ser utilizadas por cualquier otro proceso cooperativo, pero no pueden ser utilizadas por cualquier proceso apropiativo.

El lenguaje XML es un estándar de intercambio de datos. Está basado en el uso de etiquetas y permite describir de manera precisa los datos intercambiados así como su estructura. Los archivos XML son archivos en formato Texto, su contenido es analizado (parsing) por las aplicaciones que importan los datos. Hoy en día, muchas aplicaciones soportan este formato.

Para mayor información sobre XML, consulte, por ejemplo, los sitios http://xml.org y http://www.w3.org.

Para soportar XML, 4D utiliza una librería llamada Xerces.dll desarrollada por la sociedad Apache Foundation. 4D soporta XML versión 1.0.

Nota: 4D permite importar y exportar directamente los datos en formato XML utilizando el editor de importación/exportación.

Los comandos de este tema tienen el prefijo DOM. De hecho, 4D ofrece dos conjuntos independientes de comandos XML, con prefijo DOM y SAX: DOM (Document Object Model) y SAX (Simple API XML) son dos modos de análisis diferentes de los documentos XML.

• El modo DOM analiza una fuente XML y crea su estructura (su “árbol”) en memoria. Por esta razón, el acceso a cada elemento de la fuente es extremadamente rápido. Sin embargo, como la totalidad del árbol se almacena en memoria, el procesamiento de documentos XML grandes podría exceder la capacidad de memoria y por lo tanto provocar errores.
• El modo SAX no crea un árbol en memoria. En este modo, los “eventos” (tales como el inicio o el fin de un elemento) son generados durante el análisis de la fuente. Este modo le permite analizar documentos XML de cualquier tamaño, sin importar la cantidad de memoria disponible. Los comandos SAX se agrupan en el tema "XML SAX". Para mayor información, consulte la sección Presentación de los comandos XML SAX.
Para mayor información sobre estándares XML, consulte los siguientes sitios: http://www.saxproject.org/?selected=event y http://www.w3schools.com/xml/.

Los objetos creados, modificados o analizados por los comandos DOM de 4D pueden ser de tipo texto, URLs, documentos o BLOBs. Los comandos DOM utilizados para la apertura de los objetos XML en 4D son Parse XML source y DOM Parse XML variable.
Varios comandos le permiten leer, analizar y escribir los elementos y los atributos. La recuperación de errores se efectúa vía el comando XML GET ERROR (común para ambos estándares XML).
El comando DOM CLOSE XML permite cerrar la fuente al final.

Nota sobre el uso de parámetros BLOB XML: las estructuras XML están basadas en datos de tipo texto, se recomienda utilizar variables o campos de tipo texto para manipularlas. Por razones históricas, los comandos XML de 4D (por ejemplo DOM Parse XML variable) aceptan parámetros de tipo BLOB. En versiones anteriores de 4D, el tamaño de las variables de tipo Texto está limitado a 32 KB. A partir de la versión 11 de 4D, las variables y los campos de tipo texto pueden contener hasta 2 GB de datos. Como se eliminó la limitación original, ahora no se recomienda almacenar texto en BLOBs. El uso de BLOBs está reservado para el procesamiento de datos binarios. Conforme con las especificaciones XML, a partir de 4D v12, los datos binarios son codificados automáticamente en Base64, incluso cuando el  BLOB contiene texto.

Tres comandos XML DOM (DOM Create XML element, DOM Find XML element y DOM SET XML ELEMENT VALUE) aceptan la notación XPath para el acceso a los elementos XML.

La notación XPath viene del lenguaje XPath, designado a la navegación dentro de estructuras XML. Permite designar directamente los elementos dentro de una estructura XML vía una sintaxis de tipo "ruta de acceso", sin tener que indicar necesariamente la ruta completa. Por ejemplo, dada la siguiente estructura:

   <RootElement>
      <Elem1>
         <Elem2>
            <Elem3 Font=Verdana Size=10> </Elem3>
         </Elem2>
      </Elem1>
   </RootElement>

La notación XPath permite acceder al elemento 3 utilizando la sintaxis /RootElement/Elem1/Elem2/Elem3.

4D acepta igualmente los elementos XPath indexados, utilizando la sintaxis Element[ElementNum]. Por ejemplo, dada la siguiente estructura:

   <RootElement>
      <Elem1>
         <Elem2>aaa</Elem2>
         <Elem2>bbb</Elem2>
         <Elem2>ccc</Elem2>
      </Elem1>
   </RootElement>

La notación XPath permite acceder al valor “ccc” utilizando la sintaxis /RootElement/Elem1/Elem2[3].

Para una ilustración de la notación XPath, por favor consulte los ejemplos de los comandos DOM Create XML element y DOM Find XML element.

Los siguientes conjuntos de caracteres son soportados por los comandos XML DOM y XML SAX de 4D:

  • ASCII
  • UTF-8
  • UTF-16 (Big/Small Endian)
  • UCS4 (Big/Small Endian)
  • EBCDIC code pages IBM037, IBM1047 y IBM1140 encodings,
  • ISO-8859-1 (o Latin1)
  • Windows-1252.

El lenguaje XML utiliza numerosos términos y acrónimos específicos. Esta lista no exhaustiva detalla los principales conceptos XML utilizados por los comandos y funciones de 4D.

Atributo: una subetiqueta XML asociada a un elemento. Un atributo siempre contiene un nombre y un valor (ver diagrama a continuación).

Hijo: en una estructura XML, un elemento en un nivel directamente inferior a otro.

DTD: Document Tipo Declaration (Declaración de tipo de documento). La DTD graba el conjunto de reglas y de propiedades específicas que debe seguir un documento XML. Estas reglas definen, más particularmente, el nombre y contenido de cada etiqueta como también su contenido. Esta formalización de los elementos permite verificar que un documento XML esté en conformidad (en ese caso, se declara “válido”).

La DTD puede incluirse en el documento XML (DTD interna) o en un documento separado (DTD externo). Note que la DTD no es obligatoria.

Elemento: una etiqueta XML. Un elemento siempre contiene un nombre y un valor. Opcionalmente, un elemento puede contener atributos (ver diagrama).

RefElement: referencia XML utilizada por los comandos XML de 4D para especificar una estructura XML. Esta referencia está formada por 8 caracteres codificados en forma hexadécimal, lo cual significa que su longitud es de 16 o 32 caracteres dependiendo de si utiliza un sistema de 32 o 64 bits. Se recomienda declarar las referencias XML utilizando la directiva C_TEXT.

Padre: en una estructura XML, un elemento de un nivel directamente superior a otro.

Parsing, parser (Analizador): acción de analizar el contenido de un objeto estructurado para extraer información útil. Los comandos del tema “XML” se utilizan para analizar el contenido de todo objeto XML.

Raíz (Root): elemento ubicado en el primer nivel de una estructura XML.

Hermano: en una estructura XML, elemento del mismo nivel que otro.

Estructura XML: objeto XML estructurado. Este objeto puede ser un documento, una variable, o un elemento.

Validación: un documento XML es “validado” por el analizador XML cuando está “bien formado” y conforme con las especificaciones de la DTD. Ver también Bien formado.

Bien formado: un documento XML es declarado “bien formado” por el analizador XML cuando cumple con las especificaciones XML genéricas. Ver también Validación.

XML: eXtensible Markup Language (Lenguaje de etiquetas evolutivo). Estándar de intercambio de datos computarizado que permite transferir datos como también su estructura. El lenguaje XML está basado en el uso de etiquetas y una sintaxis específica, de acuerdo con el lenguaje HTML. Sin embargo, a diferencia de éste último, el lenguaje XML permite la definición de etiquetas personalizadas.

XSL: eXtensible Stylesheet Language (Lenguaje de hojas de estilo evolutivo). Lenguaje que permite definir las hojas de estilo utilizadas para procesar y visualizar los contenidos de un documento XSL.

Varias funciones de este tema devuelven una referencia de elemento XML. Si ocurre un error durante la ejecución de una función, por ejemplo si la referencia del elemento raíz es inválida, la variable OK toma el valor 0 y el comando genera un error.

Además, la referencia devuelta en este caso es una secuencia de caracteres "0" (16 caracteres en 32 bits, o 32 caracteres en 64 bits).



Ver también 

BASE64 DECODE
BASE64 ENCODE

 
PROPIEDADES 

Producto: 4D
Tema: XML DOM

 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)