IBM Books

Administración y programación


Acceso a una colección XML

Puede actualizar, suprimir, buscar y recuperar colecciones XML. Pero recuerde que la finalidad de utilizar una colección XML es almacenar o recuperar datos puros, sin códigos, en tablas de base de datos. Los datos contenidos en las tablas de base de datos existentes no tienen ninguna relación con los documentos XML de entrada; las operaciones de actualización, supresión y búsqueda utilizan el acceso normal mediante SQL a estas tablas. Si los documentos XML de entrada se descomponen en datos, los documentos XML originales dejan de existir.

El XML Extender permite realizar operaciones sobre los datos de una vista de colección XML. Mediante las sentencias UPDATE y DELETE de SQL, puede modificar los datos utilizados para componer documentos XML y, por tanto, actualizar la colección XML.

Consideraciones:

Actualización de datos en una colección XML

XML Extender le permite actualizar datos no marcados que están almacenados en tablas de una colección XML. Cuando actualiza los valores de las tablas de una colección XML, está actualizando el texto de un elemento XML o el valor de un atributo XML. Además, las actualizaciones pueden suprimir una instancia de datos en elementos o atributos de aparición múltiple.

Desde el punto de vista del SQL, el cambiar el valor de un elemento o atributo es una operación de actualización, y el suprimir una instancia de un elemento o atributo es una operación de supresión. Desde el punto de vista de XML, mientras exista el texto de elemento o valor de atributo correspondiente al nodo_de_elemento raíz, el documento XML sigue existiendo y es, por tanto, una operación de actualización.

Requisitos: Para actualizar datos en una colección XML, siga las reglas siguientes.

Actualización de valores de elementos y de atributos

En una colección XML, el texto de elementos y los valores de atributos están todos correlacionados con columnas de tablas de una base de datos. Con independencia de si los datos de las columnas ya existían previamente o proceden de la descomposición de documentos XML de entrada, puede sustituir los datos utilizando el método normal de actualización del SQL.

Para actualizar un valor de elemento o atributo, especifique una cláusula WHERE en la sentencia UPDATE de SQL donde reside la condición de unión que está especificada en el archivo DAD.

Por ejemplo:

UPDATE SHIP_TAB 
    set MODE = 'BOAT'
  WHERE MODE='AIR' AND PART_KEY in
    (SELECT PART_KEY from PART_TAB WHERE ORDER_KEY=68)

El valor del elemento <ShipMode> se actualiza para cambiar de AIR a BOAT en la tabla SHIP_TAB, donde la clave es 68.

Supresión de instancias de elemento y de atributo

Puede actualizar documentos XML compuestos eliminando elementos o atributos de aparición múltiple; para ello suprima la fila donde reside el valor del elemento o atributo, utilizando la cláusula WHERE. Esta supresión se considera una actualización del documento XML mientras no suprima la fila que contiene los valores del elemento_de_nodo superior.

Por ejemplo, la siguiente sentencia DELETE suprime un elemento <shipment> especificando un valor exclusivo de uno de sus subelementos.

DELETE from SHIP_TAB 
   WHERE DATE='1999-04-12'

Mediante la especificación de valor de fecha (DATE), se suprime la fila que coincide con ese valor. El documento compuesto original contenía dos elementos <shipment>, ahora contiene uno solamente.

Supresión de un documento XML de una colección XML

Puede suprimir un documento XML que se ha formado a partir de una colección. Esto significa que si tiene una colección XML a partir de la cual se crean varios documentos XML, puede suprimir uno de estos documentos compuestos.

Para suprimir el documento, suprima la fila de la tabla que sirve para formar el nodo_de_elemento superior que está especificado en el archivo DAD. Esta tabla contiene la clave primaria correspondiente a la tabla de colección de nivel superior, y la tabla foránea de las tablas de nivel inferior.

Por ejemplo, la siguiente sentencia DELETE especifica el valor de la columna de la clave primaria.

DELETE from order_tab 
   WHERE order_key=1

ORDER_KEY es la clave primaria de la tabla ORDER_TAB y es el elemento_de_nodo superior cuando se crea el documento XML. Cuando se suprime esta fila, se suprime un documento XML que se genera durante la composición. Por tanto, desde el punto de vista de XML, se suprime un documento XML individual de la colección XML.

Recuperación de documentos XML de una colección XML

Recuperar documentos XML de una colección es similar a componer documentos a partir de una colección.

Para recuperar documentos XML, utilice el procedimiento almacenado dxxRetrieveXML(). Consulte dxxRetrieveXML() para conocer la sintaxis y ver ejemplos.

Consideración referente al archivo DAD: Cuando descompone un documento XML y forma una colección XML, se puede perder el orden de los elementos y valores de atributos de aparición múltiple, a menos que especifique el orden en el archivo DAD. Para conservar este orden, debe utilizar el esquema de correlación de nodo_RDB. Este esquema de correlación le permite especificar el atributo "orderBy" para la tabla en cuyo nodo_RDB reside el elemento raíz.


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]