Administración y programación
Para configurar colecciones XML es necesario crear un esquema de
correlación y, opcionalmente, habilitar la colección con un nombre virtual que
asocia las tablas DB2 con un archivo DAD.
Aunque habilitar la colección XML no es obligatorio, proporciona un mejor
rendimiento.
Si se utilizan colecciones XML es necesario crear un archivo DAD. El
archivo DAD define la relación existente entre datos XML y varias tablas
relacionales. El XML Extender utiliza el archivo DAD para:
- Componer un documento XML a partir de datos relacionales
- Descomponer un documento XML en datos relacionales
Puede utilizar dos métodos para correlacionar datos entre las tablas XML y
la tabla DB2: la correlación SQL y la correlación de nodo_RDB:
- Correlación SQL
- Utiliza un elemento de sentencia de SQL para especificar la consulta SQL
que obtiene las tablas y columnas utilizadas para contener los datos
XML. La correlación SQL sólo se puede utilizar para componer documentos
XML.
- Correlación de nodo_RDB
- Utiliza un elemento exclusivo del XML Extender, el nodo de Base de datos
relacional, o nodo_RDB, que especifica tablas, columnas, condiciones y
secuencias de ordenación para los datos XML. La correlación de nodo_RDB
permite realizar correlaciones más complejas que las efectuadas mediante una
sentencia de SQL. La correlación de nodo_RDB se puede utilizar tanto
para componer como para descomponer documentos XML.
Ambos métodos de correlación utilizan el modelo de datos XPath,
que se describe en El archivo DAD.
- Debe correlacionar la relación existente entre sus tablas DB2 y el
documento XML. Para ello debe correlacionar la jerarquía del documento
XML y especificar cómo los datos del documento se correlacionan con una tabla
DB2.
- Si tiene intención de validar los documentos XML, inserte la DTD para el
documento XML que está componiendo o descomponiendo en la tabla de referencia
de DTD, db2xml.DTD_REF.
Utilice correlación SQL cuando componga documentos XML y desee utilizar
SQL.
Efectúe los pasos siguientes para crear un archivo DAD utilizando una
correlación SQL para las colecciones XML.
Para crear un archivo DAD para componerlo utilizando correlación
SQL:
Utilice correlación SQL cuando componga documentos XML y desee utilizar una
sentencia de SQL para definir la tabla y las columnas de las cuales procederán
los datos del documento XML.
- Ponga a punto y arranque el asistente de administración. Vea Arranque del asistente de administración para obtener detalles.
- Pulse Trabajar con archivos DAD desde la ventana Área de
ejecución. Se visualizará la ventana Especificar DAD.
- Elija si desea editar un archivo DAD existente o crear uno nuevo.
Para crear un nuevo archivo DAD:
- Deje el campo Nombre de archivo en blanco.
- Desde el menú Tipo, seleccione Correlación SQL para
colecciones XML.
- Pulse Siguiente para abrir la ventana Seleccionar
validación.
Para editar un archivo DAD existente:
- Escriba el nombre de archivo DAD en el campo Nombre de archivo
o pulse ... para localizar un archivo DAD
existente.
- Verifique que el asistente reconoce el archivo DAD especificado.
- Si el asistente reconoce el archivo DAD especificado, puede seleccionar
Siguiente y el campo Tipo muestra Correlación SQL para
colecciones XML.
- Si el asistente no reconoce el archivo DAD especificado, no se puede
seleccionar Siguiente. Escriba de nuevo el nombre de archivo
DAD o pulse ... para localizar de nuevo un
archivo DAD existente. Corrija los valores del campo de entrada hasta
que sea seleccionable Siguiente.
- Pulse Siguiente para abrir la ventana Seleccionar
validación.
- En la ventana Seleccionar validación, elija si desea validar los
documentos XML con una DTD.
- Pulse Siguiente para abrir la ventana Especificar texto.
- Escriba el nombre del prólogo en el campo Prólogo para
especificar el prólogo del documento XML que debe componerse.
<?xml versión="1.0"?>
Si está editando una DAD existente, el prólogo se visualiza automáticamente
en el campo Prólogo.
- Escriba el tipo de documento del documento XML en el campo Tipo de
documento de la ventana Especificar texto, apuntando a la DTD para el
documento XML. Por ejemplo:
! DOCTYPE DAD SYSTEM "c:\dxx\samples\dtd\getstart.dtd"
Si está editando una DAD existente, el tipo de documento se visualiza
automáticamente en el campo Tipo de documento.
- Pulse Siguiente para abrir la ventana Especificar sentencia de
SQL.
- Escriba una sentencia SELECT válida de SQL en el campo Sentencia de
SQL. Por ejemplo:
SELECT o.order_key, customer_name, customer_email, p.part_key, color, quantity,
price, tax, ship_id, date, mode from order_tab o, part_tab p,
table (select substr(char(timestamp(generate_unique())),16)
as ship_id, date, mode, part_key from ship_tab) s
WHERE o.order_key = 1 and
p.price > 20000 and
p.order_key = o.order_key and
s.part_key = p.part_key
ORDER BY order_key, part_key, ship_id
Si está editando una DAD existente, la sentencia de SQL se visualiza
automáticamente en el campo Sentencia de SQL.
- Pulse Probar SQL para verificar la validez de la sentencia de
SQL.
- Si la sentencia de SQL es válida, el campo Resultados de prueba
muestra los resultados de la prueba.
- Si la sentencia de SQL no es válida, el campo Resultados de
prueba muestra un mensaje de error. El mensaje de error le indica
que corrija la sentencia SELECT de SQL que ha especificado y que vuelva a
intentarlo.
- Pulse Siguiente para abrir la ventana Correlación SQL.
- Seleccione un nodo de elemento o atributo desde el que desee correlacionar
pulsando sobre el mismo en el área izquierda de la ventana Correlación
SQL.
Correlacione los elementos y atributos del documento XML con nodos de
elemento y atributo correspondientes a los datos DB2. Estos nodos
proporcionan una vía de acceso desde los datos XML a los datos DB2.
- En el campo Nombre de archivo de la ventana Especificar DAD,
escriba un nombre de archivo de salida para el archivo DAD modificado.
- Pulse Finalizar para volver a la ventana Área de
ejecución.
Utilice notación de correlación SQL cuando componga documentos XML y desee
utilizar SQL.
El archivo DAD es un archivo XML que puede crear utilizando un editor de
texto cualquiera. Las instrucciones siguientes proceden del apéndice de
ejemplos, Archivos de definición de acceso a documento. Consulte esos ejemplos para obtener una información
más completa y de contexto.
- Abra un editor de texto.
- Cree la cabecera de DAD:
<?xml versión="1.0"?>
<!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> vía de acceso y nombre de
archivo de la DTD para la DAD
- Inserte los códigos <DAD></DAD>.
- A continuación del código <DAD>, especifique el ID de DTD que asocia el
archivo DAD con la DTD del documento XML.
<dtdid>vía\nombre_dtd.dtd> --> vía de acceso y nombre
de archivo de la DTD para la aplicación
- Especifique si desea realizar la validación (es decir, utilizar una DTD
para asegurarse de que el documento XML es válido). Por ejemplo:
<validation>NO</validation> --> especifique YES o NO
- Utilice el elemento <Xcollection> para definir el método de acceso y de
almacenamiento como colección XML. Los métodos de acceso y de
almacenamiento definen que el contenido del documento XML deriva de los datos
almacenados en tablas DB2.
<Xcollection>
</Xcollection>
- Especifique una o más sentencias SQL para consultar datos de tablas DB2 o
insertarlos en ellas. Vea Requisitos del esquema de correlación para obtener directrices. Por
ejemplo, especifique una única consulta de SQL como la del ejemplo
siguiente:
<SQL_stmt>
SELECT o.order_key, customer_name, customer_email, p.part_key, color, quantity,
price, tax, ship_id, date, mode from order_tab o, part_tab p,
table (select substr(char(timestamp(generate_unique())),16)
as ship_id, date, mode, part_key from ship_tab) s
WHERE o.order_key = 1 and
p.price > 20000 and
p.order_key = o.order_key and
s.part_key = p.part_key
ORDER BY order_key, part_key, ship_id
</SQL_stmt>
- Añada la información de prólogo siguiente:
<prolog>?xml versión="1.0"?</prolog>
Este texto exacto es necesario.
- Añada los códigos <doctype></doctype>. Por ejemplo:
<doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype>
- Defina el nodo raíz utilizando los códigos
<root_node></root_node>. Dentro del nodo raíz, especifique los
elementos y atributos que forman el documento XML.
- Correlacione los elementos y atributos del documento XML con nodos de
elemento y atributo correspondientes a los datos DB2. Estos nodos
proporcionan una vía de acceso desde los datos XML a los datos DB2.
- Defina un <element_node> (nodo de elemento) para cada elemento del
documento XML que se correlacione con una columna de una tabla DB2.
<element_node
name="nombre"></element_node>
Un element_node (nodo de elemento) puede tener los nodos siguientes.
- nodo_de_atributo
- nodo_de_elemento hijo
- nodo_de_texto
- Defina un <attribute_node> (nodo de atributo) para cada atributo del
documento XML que se correlacione con una columna de una tabla DB2. Vea
las DTD de ejemplo proporcionadas al principio de esta sección para la
correlación SQL, así como la DTD para el archivo DAD en el Apéndice A, DTD para el archivo DAD, que proporciona la sintaxis completa para el archivo
DAD.
Por ejemplo, necesita una clave de atributo para un elemento <Order>
(Pedido). El valor de la clave se guarda en una columna
PART_KEY.
Archivo DAD: En el archivo DAD, cree un nodo de atributo
para la clave e indique la tabla donde debe guardarse el valor 1.
<attribute_node name="key">
<column name="part_key"/>
</attribute_node>
Documento XML compuesto: El valor de la clave se toma de
la columna PART_KEY.
<Order key="1">
- Cree un <text_node> (nodo de texto) para cada elemento o atributo cuyo
contenido derive de una tabla DB2. El nodo de texto tiene un elemento
<column> que especifica de qué columna se proporcionará el
contenido.
Por ejemplo, puede tener un elemento XML <Tax> con un valor que se
tomará de una columna llamada TAX (IMPUESTO):
elemento de DAD:
<element_node name="Tax">
<text_node>
<column name="tax"/>
</text_node>
</element_node>
El nombre de columna debe estar en la sentencia SQL al principio del
archivo DAD.
Documento XML compuesto:
<Tax>0.02</Tax>
El valor 0.02 derivará de la columna TAX.
- Compruebe que hay un código final </root_node> a continuación del
último código </element_node>.
- Compruebe que hay un código final </Xcollection> a continuación del
código </root_node>.
- Compruebe que hay un código final </DAD> a continuación del código
</Xcollection>.
Utilice correlación de nodo_RDB para componer documentos XML utilizando
una estructura similar a XML.
Este método utiliza el <RDB_node> (nodo RDB) para especificar tablas,
columnas y condiciones de DB2 para un nodo de elemento o de atributo.
<RDB_node> utiliza los elementos siguientes:
- <table>: define la tabla que corresponde al elemento
- <column>: define la columna que contiene el elemento
correspondiente
- <condition>: opcionalmente, especifica una condición para la
columna
Los elementos asociados que se utilizan en <RDB_node> dependen del
contexto del nodo y siguen las normas siguientes:
Si el tipo de nodo es:
| Se utiliza el elemento hijo RDB:
|
| Tabla
| Columna
| Condición1
|
---|
Elemento raíz
| S
| N
| S
|
Atributo
| S
| S
| opcional
|
Texto
| S
| S
| opcional
|
(1) Necesario si se utilizan varias tablas
|
Para crear una DAD para la composición, utilizando la correlación de
nodo_RDB:
- Ponga a punto y arranque el asistente de administración. Vea Arranque del asistente de administración para obtener detalles.
- Pulse Trabajar con archivos DAD desde la ventana Área de
ejecución. Se visualizará la ventana Especificar DAD.
- Elija si desea editar un archivo DAD existente o crear uno nuevo.
Para editar una DAD existente:
- Escriba el nombre de archivo DAD en el campo Nombre de archivo
o pulse ... para localizar un archivo DAD
existente.
- Verifique que el asistente reconoce el archivo DAD especificado.
- Si el asistente reconoce el archivo DAD especificado, puede seleccionar
Siguiente y el campo Tipo muestra Correlación de
nodo_RDB para colecciones XML.
- Si el asistente no reconoce el archivo DAD especificado, no se puede
seleccionar Siguiente. Escriba de nuevo el nombre del
archivo DAD en el campo Nombre de archivo o pulse
... para volver a localizar un archivo DAD
existente. Repita estos pasos hasta que pueda seleccionar
Siguiente.
- Pulse Siguiente para abrir la ventana Seleccionar
validación.
Para crear una DAD nueva:
- Deje el campo Nombre de archivo en blanco.
- En el menú Tipo, seleccione Correlación de nodo_RDB para
colecciones XML.
- Pulse Siguiente para abrir la ventana Seleccionar
validación.
- En la ventana Seleccionar validación, elija si desea validar los
documentos XML con una DTD.
- Pulse Siguiente para abrir la ventana Especificar texto.
- Escriba el nombre del prólogo en el campo Prólogo de la ventana
Especificar texto.
<?xml versión="1.0"?>
Si está editando una DAD existente, el prólogo se visualiza automáticamente
en el campo Prólogo.
- Escriba el tipo de documento del documento XML en el campo Tipo de
documento de la ventana Especificar texto.
Si está editando una DAD existente, el tipo de documento se visualiza
automáticamente en el campo Tipo de documento.
- Pulse Siguiente para abrir la ventana Correlación RDB.
- Seleccione un nodo de elemento o atributo desde el que desee correlacionar
pulsando sobre el mismo en el campo situado a la izquierda de la ventana
Correlación RDB.
Correlacione los elementos y atributos del documento XML con nodos de
elemento y atributo correspondientes a datos DB2. Estos nodos
proporcionan una vía de acceso desde los datos XML a los datos DB2.
- Para añadir el nodo raíz:
- Seleccione el icono Raíz.
- Pulse Nuevo elemento para definir un nuevo nodo.
- En el recuadro Detalles, especifique Tipo de nodo
como Elemento.
- Entre el nombre del nodo de nivel superior del campo Nombre de
nodo.
- Pulse Añadir para crear el nuevo nodo.
Ha creado el nodo raíz o elemento, que es el padre de los demás nodos de
elemento o atributo de la correlación. El nodo raíz tiene elementos
asociados de tabla y una condición de unión.
- Añada nodos de tabla para cada tabla que forme parte de la
colección.
- Resalte el nombre del nodo raíz y seleccione Nuevo
elemento.
- En el recuadro Detalles, especifique Tipo de
nodocomo Tabla.
- Seleccione el nombre de la tabla desde Nombre de tabla.
La tabla ya debe existir.
- Pulse Añadir para añadir el nodo de tabla.
- Repita estos pasos para cada tabla.
- Añada una condición de unión para los nodos de tabla.
- Resalte el nombre del nodo raíz y seleccione Nuevo
elemento.
- En el recuadro Detalles, especifique Tipo de nodo
como Condición.
- En el campo Condición, entre la condición de unión utilizando
la sintaxis siguiente:
nombre_tabla.columna_tabla = nombre_tabla.columna_tabla AND
nombre_tabla.columna_tabla = nombre_tabla.columna_tabla ...
- Pulse Añadir para añadir la condición.
- Para añadir un nodo de elemento o de atributo:
- Pulse sobre un nodo padre del campo de la izquierda para añadir un
elemento o atributo asociado.
- Pulse Nuevo elemento.Si no ha seleccionado ningún nodo
padre, no se podrá seleccionar Nuevo elemento.
- En el recuadro Detalles, seleccione un tipo de nodo en el menú
Tipo de nodo.
El menú Tipo de nodo muestra sólo los tipos de nodo que son
válidos para el lugar seleccionado del mapa. Elemento o
Atributo.
- Especifique un nombre de nodo en el campo Nombre de
nodo.
- Pulse Añadir para añadir el nuevo nodo.
- Para correlacionar el contenido de un nodo de elemento o de atributo
con una tabla relacional:
- Especifique un nodo de texto.
- Pulse sobre el nodo padre.
- Pulse Nuevo elemento.
- En el campo Tipo de nodo, seleccione Texto.
- Seleccione Añadir para añadir el nodo.
- Añada un nodo de tabla.
- Seleccione el nodo de texto que acaba de crear y pulse Nuevo
elemento.
- En el campo Tipo de nodo, seleccione Tabla y
especifique un nombre de tabla para el elemento.
- Pulse Añadir para añadir el nodo.
- Añada un nodo de columna.
- Seleccione de nuevo el nodo de texto y pulse Nuevo
elemento.
- En el campo Tipo de nodo, seleccione Columna y
especifique un nombre de columna para el elemento.
- Pulse Añadir para añadir el nodo.
Restricción: No puede utilizar el asistente de
administración para crear nuevas columnas. Si especifica Columna como
tipo de nodo, sólo puede seleccionar una columna que ya exista en su base de
datos DB2.
- Opcionalmente, añada una condición para la columna.
- Seleccione de nuevo el nodo de texto y pulse Nuevo
elemento.
- En el campo Tipo de nodo, seleccione Condición y la
condición con la sintaxis:
operador LIKE|<|>|= valor
- Pulse Añadir para añadir el nodo.
- Continúe editando la correlación RDB o pulse Siguiente para
abrir la ventana Especificar DAD.
- Para eliminar un nodo:
- En el área izquierda de la ventana, pulse sobre un nodo.
- Pulse Eliminar.
- Continúe editando la correlación de nodo_RDB o pulse Siguiente
para abrir la ventana Especificar DAD.
- En el campo Nombre de archivo de la ventana Especificar DAD,
escriba un nombre de archivo de salida para la DAD modificada.
- Pulse Finalizar para eliminar el nodo y volver a la ventana
Área de ejecución.
El archivo DAD es un archivo XML que puede crear utilizando un editor de
texto cualquiera. Las instrucciones siguientes proceden del apéndice de
ejemplos, Archivos de definición de acceso a documento. Consulte esos ejemplos para obtener una información
más completa y de contexto.
- Abra un editor de texto.
- Cree la cabecera de DAD:
<?xml versión="1.0"?>
<!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> vía de acceso y nombre de
archivo de la DTD para la DAD
- Inserte los códigos <DAD></DAD>.
- A continuación del código <DAD>, especifique el ID de DTD que asocia el
archivo DAD con la DTD del documento XML.
<dtdid>vía\nombre_dtd.dtd> --> vía
de acceso y nombre de archivo de la DTD
para la aplicación
- Especifique si desea realizar la validación (es decir, utilizar una DTD
para asegurarse de que el documento XML es válido). Por ejemplo:
<validation>NO</validation> --> especifique YES o NO
- Utilice el elemento <Xcollection> para definir el método de acceso y de
almacenamiento como colección XML. Los métodos de acceso y de
almacenamiento definen que los datos XML se guardan en una colección de tablas
DB2.
<Xcollection>
</Xcollection>
- Añada la información de prólogo siguiente:
<prolog>?xml versión="1.0"?</prolog>
Este texto exacto es necesario.
- Añada los códigos <doctype></doctype>. Por ejemplo:
<doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype>
- Defina el nodo raíz utilizando <root_node>. Dentro del nodo
raíz, especifique los elementos y atributos que forman el documento
XML.
- Correlacione los elementos y atributos del documento XML con nodos de
elemento y atributo correspondientes a los datos DB2. Estos nodos
proporcionan una vía de acceso desde los datos XML a los datos DB2.
- Defina un element_node raíz. Este element_node contiene:
- Un RDB_node que especifica table_nodes con una condición de unión para
especificar la colección
- Elementos asociados
- Atributos
Para especificar los nodos de tabla y la condición:
- Cree un elemento RDB_node: Por ejemplo:
<RDB_node>
</RDB_node>
- Defina un <table_node> para cada tabla que contenga datos que deban
incluirse en el documento XML. Por ejemplo, si tiene tres tablas,
ORDER_TAB, PART_TAB y SHIP_TAB, con datos de columnas que deban estar en el
documento, cree un nodo de tabla para cada una de ellas. Por
ejemplo:
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB"></RDB_node>
- Opcionalmente, especifique una columna de clave para cada tabla cuando
tenga planeado habilitar esta colección. El atributo de clave no suele
ser necesario para la composición; no obstante, cuando habilite una
colección, el archivo DAD utilizado deberá dar soporte a la composición y a la
descomposición. Por ejemplo:
<RDB_node>
<table name="ORDER_TAB" key="order_key">
<table name="PART_TAB" key="part_key">
<table name="SHIP_TAB" key="date mode">
</RDB_node>
- Defina una condición de unión para las tablas de la colección. La
sintaxis es la siguiente
expresión = expresión AND
expresión = expresión
Por ejemplo:
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB">
<condition>
order_tab.order_key = part_tab.order_key AND
part_tab.part_key = ship_tab.part_key
</condition>
</RDB_node>
- Defina un código <element_node> para cada elemento del documento XML
que se correlacione con una columna de una tabla DB2. Por
ejemplo:
<element_node name="nombre">
</element_node>
Un nodo de elemento puede tener uno de los tipos de elementos
siguientes:
- <text_node>: para especificar que el elemento tiene contenido
para una tabla DB2; el elemento no tiene elementos asociados
- <attribute_node>: para especificar un atributo. Los nodos
de atributo se definen en el paso siguiente.
text_node contiene un <RDB_node> para correlacionar el contenido con un
nombre de columna y tabla DB2.
Los RDB_nodes se utilizan para elementos de nivel inferior que tienen
contenido para correlacionar con una tabla DB2. Un RDB_node tiene los
siguientes elementos asociados.
- <table>: define la tabla que corresponde al elemento
- <column>: define la columna que contiene el elemento
correspondiente y especifica el tipo de columna con el atributo de tipo
- <condition>: opcionalmente, especifica una condición para la
columna
Por ejemplo, puede tener el elemento XML <Tax> que se correlaciona con
una columna llamada TAX (impuesto):
Documento XML:
<Tax>0.02</Tax>
En este caso, desea que la columna TAX contenga el valor
0,02.
<element_node name="Tax">
<text_node>
<RDB_node>
<table name="part_tab"/>
<column name="tax"/>
</RDB_node>
</text_node>
</element_node>
En este ejemplo, <RDB_node> especifica que el valor del elemento
<Tax> es un valor de texto; los datos se almacenan en la columna TAX
de la tabla PART_TAB.Vea los archivos DAD de ejemplo proporcionados en Archivos de definición de acceso a documento para la correlación de nodo_RDB, así como la DTD para el
archivo DAD, en el Apéndice A, DTD para el archivo DAD, que proporciona la sintaxis completa del archivo
DAD.
- Opcionalmente, añada un atributo de tipo a cada elemento <column>
cuando tenga planeado habilitar esta colección. El atributo de tipo no
suele ser necesario para la composición; no obstante, cuando habilite una
colección, el archivo DAD utilizado deberá dar soporte a la composición y a la
descomposición. Por ejemplo:
<column name="tax" type="real"/>
- Defina un <attribute_node> (nodo de atributo) para cada atributo del
documento XML que se correlacione con una columna de una tabla DB2. Por
ejemplo:
<attribute_node name="key">
</attribute_node>
attribute_node tiene un <RDB_node> para correlacionar el valor de
atributo con una columna y tabla DB2. Un <RDB_node> tiene los
siguientes elementos asociados.
- <table>: define la tabla que corresponde al elemento
- <column>: define la columna que contiene el elemento
correspondiente
- <condition>: opcionalmente, especifica una condición para la
columna
Por ejemplo, puede que desee tener una clave de atributo para un
elemento <Order> (Pedido). El valor de la clave se debe guardar en
una columna llamada PART_KEY. En el archivo DAD, cree un
<attribute_node> (nodo de atributo) para la clave e indique la tabla en la
que debe guardarse el valor.
Archivo DAD
<attribute_node name="key">
<RDB_node>
<table name="part_tab">
<column name="part_key"/>
<RDB_node>
</attribute_node>
Documento XML compuesto:
<Order key="1">
- Compruebe que hay un código final </root_node> a continuación del
último código </element_node>.
- Compruebe que hay un código final </Xcollection> a continuación del
código </root_node>.
- Compruebe que hay un código final </DAD> a continuación del código
</Xcollection>.
Utilice la correlación de nodo_RDB para descomponer documentos
XML. Este método utiliza el <RDB_node> (nodo RDB) para especificar
tablas, columnas y condiciones de DB2 para un nodo de elemento o de
atributo. <RDB_node> utiliza los elementos siguientes:
- <table>: define la tabla que corresponde al elemento
- <column>: define la columna que contiene el elemento
correspondiente
- <condition>: opcionalmente, especifica una condición para la
columna
Los elementos asociados que se utilizan en <RDB_node> dependen del
contexto del nodo y siguen las normas siguientes:
Si el tipo de nodo es:
| Se utiliza el elemento hijo RDB:
|
| Tabla
| Columna
| Condición1
|
---|
Elemento raíz
| S
| N
| S
|
Atributo
| S
| S
| opcional
|
Texto
| S
| S
| opcional
|
(1) Necesario si se utilizan varias tablas
|
Para crear una DAD para la descomposición:
- Ponga a punto y arranque el asistente de administración. Vea Arranque del asistente de administración para obtener detalles.
- Pulse Trabajar con archivos DAD desde la ventana Área de
ejecución. Se visualizará la ventana Especificar DAD.
- Elija si desea editar un archivo DAD existente o crear uno nuevo.
Para editar una DAD existente:
- Escriba el nombre de archivo DAD en el campo Nombre de archivo
o pulse ... para localizar un archivo DAD
existente.
- Verifique que el asistente reconoce el archivo DAD especificado.
- Si el asistente reconoce el archivo DAD especificado, puede seleccionar
Siguiente y el campo Tipo muestra Correlación de
nodo_RDB para colecciones XML.
- Si el asistente no reconoce el archivo DAD especificado, no se puede
seleccionar Siguiente. Escriba de nuevo el nombre del
archivo DAD en el campo Nombre de archivo o pulse
... para volver a localizar un archivo DAD
existente. Repita estos pasos hasta que pueda seleccionar
Siguiente.
- Pulse Siguiente para abrir la ventana Seleccionar
validación.
Para crear una DAD nueva:
- Deje el campo Nombre de archivo en blanco.
- En el menú Tipo, seleccione Correlación de nodo_RDB para
colecciones XML.
- Pulse Siguiente para abrir la ventana Seleccionar
validación.
- En la ventana Seleccionar validación, elija si desea validar los
documentos XML con una DTD.
- Pulse Siguiente para abrir la ventana Especificar texto.
- Si sólo está descomponiendo un documento XML, ignore el campo
Prólogo. Si utiliza el archivo DAD para la composición y la
descomposición, escriba el nombre del prólogo en el campo Prólogo
de la ventana Especificar texto. El prólogo no es necesario si
descompone documentos XML en datos DB2.
<?xml versión="1.0"?>
Si está editando una DAD existente, el prólogo se visualiza automáticamente
en el campo Prólogo.
- Si sólo está descomponiendo un documento XML, ignore el campo Tipo de
documento. Si utiliza el archivo DAD para la composición y la
descomposición, escriba el tipo de documento del documento XML en el campo
Tipo de documento.
Si está editando una DAD existente, el tipo de documento se visualiza
automáticamente en el campo Tipo de documento.
- Pulse Siguiente para abrir la ventana Correlación RDB.
- Seleccione un nodo de elemento o atributo desde el que desee correlacionar
pulsando sobre el mismo en el campo situado a la izquierda de la ventana
Correlación RDB.
Correlacione los elementos y atributos del documento XML con nodos de
elemento y atributo correspondientes a datos DB2. Estos nodos
proporcionan una vía de acceso desde los datos XML a los datos DB2.
- Para añadir el nodo raíz:
- Seleccione el icono Raíz.
- Pulse Nuevo elemento para definir un nuevo nodo.
- En el recuadro Detalles, especifique Tipo de nodo
como Elemento.
- Entre el nombre del nodo de nivel superior del campo Nombre de
nodo.
- Pulse Añadir para crear el nuevo nodo.
Ha creado el nodo o elemento raíz, que es el padre de los demás nodos de
elemento o atributo de la correlación. El nodo raíz tiene elementos
asociados de tabla y una condición de unión.
- Añada nodos de tabla para cada tabla que forme parte de la
colección.
- Resalte el nombre del nodo raíz y seleccione Nuevo
elemento.
- En el recuadro Detalles, especifique Tipo de
nodocomo Tabla.
- Seleccione el nombre de la tabla desde Nombre de tabla.
La tabla ya debe existir.
- Especifique una columna de clave para la tabla en el campo Clave de
tabla.
- Pulse Añadir para añadir el nodo de tabla.
- Repita estos pasos para cada tabla.
- Añada una condición de unión para los nodos de tabla.
- Resalte el nombre del nodo raíz y seleccione Nuevo
elemento.
- En el recuadro Detalles, especifique Tipo de nodo
como Condición.
- En el campo Condición, entre la condición de unión utilizando
la sintaxis siguiente:
nombre_tabla.columna_tabla = nombre_tabla.columna_tabla AND
nombre_tabla.columna_tabla = nombre_tabla.columna_tabla ...
- Pulse Añadir para añadir la condición.
Ahora puede añadir a este nodo los elementos y atributos
asociados.
- Para añadir un nodo de elemento o de atributo:
- Pulse sobre un nodo padre del campo de la izquierda para añadir un
elemento o atributo asociado.
Si no selecciona un nodo padre, no podrá seleccionar
Nuevo.
- Pulse Nuevo elemento.
- En el recuadro Detalles, seleccione un tipo de nodo en el menú
Tipo de nodo.
El menú Tipo de nodo muestra sólo los tipos de nodo que son
válidos para el lugar seleccionado del mapa. Elemento o
Atributo.
- Especifique un nombre de nodo en el campo Nombre de
nodo.
- Pulse Añadir para añadir el nuevo nodo.
- Para correlacionar el contenido de un nodo de elemento o de atributo
con una tabla relacional:
- Especifique un nodo de texto.
- Pulse sobre el nodo padre.
- Pulse Nuevo elemento.
- En el campo Tipo de nodo, seleccione Texto.
- Seleccione Añadir para añadir el nodo.
- Añada un nodo de tabla.
- Seleccione el nodo de texto que acaba de crear y pulse Nuevo
elemento.
- En el campo Tipo de nodo, seleccione Tabla y
especifique un nombre de tabla para el elemento.
- Pulse Añadir para añadir el nodo.
- Añada un nodo de columna.
- Seleccione de nuevo el nodo de texto y pulse Nuevo
elemento.
- En el campo Tipo de nodo, seleccione Columna y
especifique un nombre de columna para el elemento.
- Especifique un tipo de base de datos para la columna en el campo
Tipo, para especificar el tipo de columna necesario para guardar
los datos no codificados.
- Pulse Añadir para añadir el nodo.
Restricción: No puede utilizar el asistente de
administración para crear nuevas columnas. Si especifica Columna como
tipo de nodo, sólo puede seleccionar una columna que ya exista en su base de
datos DB2.
- Opcionalmente, añada una condición para la columna.
- Seleccione de nuevo el nodo de texto y pulse Nuevo
elemento.
- En el campo Tipo de nodo, seleccione Condición y la
condición con la sintaxis:
operador LIKE|<|>|= valor
- Pulse Añadir para añadir el nodo.
Puede modificar estos nodos seleccionando el nodo, cambiando los campos en
el recuadro Detalles, y pulsando Cambiar.
- Continúe editando la correlación RDB o pulse Siguiente para
abrir la ventana Especificar DAD.
- Para eliminar un nodo:
- En el área izquierda de la ventana, pulse sobre un nodo.
- Pulse Eliminar.
- Continúe editando la correlación de nodo_RDB o pulse Siguiente
para abrir la ventana Especificar DAD.
- En el campo Nombre de archivo de la ventana Especificar DAD,
escriba un nombre de archivo de salida para la DAD modificada.
- Pulse Finalizar para eliminar el nodo y volver a la ventana
Área de ejecución.
El archivo DAD es un archivo XML que puede crear utilizando un editor de
texto cualquiera. Las instrucciones siguientes proceden del apéndice de
ejemplos, Archivos de definición de acceso a documento. Consulte esos ejemplos para obtener una información
más completa y de contexto.
- Abra un editor de texto.
- Cree la cabecera de DAD:
<?xml versión="1.0"?>
<!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> vía de acceso y nombre de
archivo de la DTD para la DAD
- Inserte los códigos <DAD></DAD>.
- A continuación del código <DAD>, especifique el ID de DTD que asocia el
archivo DAD con la DTD del documento XML.
<dtdid>vía\nombre_dtd.dtd> --> vía
de acceso y nombre de archivo de la DTD
para la aplicación
- Especifique si desea realizar la validación (es decir, utilizar una DTD
para asegurarse de que el documento XML es válido). Por ejemplo:
<validation>NO</validation> --> especifique YES o NO
- Utilice el elemento <Xcollection> para definir el método de acceso y de
almacenamiento como colección XML. Los métodos de acceso y de
almacenamiento definen que los datos XML se guardan en una colección de tablas
DB2.
<Xcollection>
</Xcollection>
- Añada la información de prólogo siguiente:
<prolog>?xml versión="1.0"?</prolog>
Este texto exacto es necesario.
- Añada los códigos <doctype></doctype>. Por ejemplo:
<doctype>! DOCTYPE Order SYSTEM
"c:\dxx\samples\dtd\getstart.dtd"</doctype>
- Defina el nodo raíz (root_node) utilizando los códigos
<root_node></root_node>. Dentro del nodo raíz, especifique los
elementos y atributos que forman el documento XML.
- A continuación del código <root_node>, correlacione los elementos y
atributos del documento XML con nodos de elemento y atributo correspondientes
a los datos DB2. Estos nodos proporcionan una vía de acceso desde los
datos XML a los datos DB2.
- Defina un element_node raíz, de nivel superior. Este element_node
contiene:
- Nodos de tabla con una condición de unión para especificar la
colección.
- Elementos asociados
- Atributos
Para especificar los nodos de tabla y la condición:
- Cree un elemento RDB_node: Por ejemplo:
<RDB_node>
</RDB_node>
- Defina un <table_node> para cada tabla que contenga datos que deban
incluirse en el documento XML. Por ejemplo, si tiene tres tablas,
ORDER_TAB, PART_TAB y SHIP_TAB, con datos de columnas que deban estar en el
documento, cree un nodo de tabla para cada una de ellas. Por
ejemplo:
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB"></RDB_node>
- Defina una condición de unión para las tablas de la colección. La
sintaxis es la siguiente
expresión = expresión AND
expresión = expresión ...
Por ejemplo:
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB">
<condition>
order_tab.order_key = part_tab.order_key AND
part_tab.part_key = ship_tab.part_key
</condition>
</RDB_node>
- Especifique una clave primaria para cada tabla. La clave primaria
consta de una o varias columnas; en este segundo caso se denomina clave
compuesta. Para especificar la clave primaria, añada una clave de
atributo al elemento de tabla del nodo RDB. El ejemplo siguiente define
una clave primaria para cada tabla contenida en el nodo RDB del nodo de
elemento raíz "Order" (pedido):
<element_node name="Order">
<RDB_node>
<table name="order_tab" key="order_key"/>
<table name="part_tab" key="part_key price"/>
<table name="ship_tab" key="date mode"/>
<condition>
order_tab.order_key = part_tab.order_key AND
part_tab.part_key = ship_tab.part_key
</condition>
<RDB_node>
La información especificada para la descomposición de un documento XML
no se tiene en cuenta al componer el documento.
El atributo de clave es necesario para la descomposición y cuando habilite
una colección, porque el archivo DAD utilizado debe dar soporte a la
composición y a la descomposición.
- Defina un código <element_node> para cada elemento del documento XML
que se correlacione con una columna de una tabla DB2. Por
ejemplo:
<element_node name="nombre">
</element_node>
Un nodo de elemento puede tener uno de los tipos de elementos
siguientes:
- <text_node>: para especificar que el elemento tiene contenido
para una tabla DB2; en este caso no tiene elementos asociados.
- <attribute_node>: para especificar un atributo; los nodos de
atributo se definen en el paso siguiente
- elementos asociados
text_node contiene un RDB_node para correlacionar el contenido con un
nombre de columna y tabla DB2.
Los RDB_nodes se utilizan para elementos de nivel inferior que tienen
contenido para correlacionar con una tabla DB2. Un RDB_node tiene los
siguientes elementos asociados.
- <table>: define la tabla que corresponde al elemento
- <column>: define la columna que contiene el elemento
correspondiente
- <condition>: opcionalmente, especifica una condición para la
columna
Por ejemplo, puede tener un elemento XML <Tax> para el que desee guardar
el contenido no codificado en una columna llamada TAX:
Documento XML:
<Tax>0.02</Tax>
En este caso, desea que el valor 0.02 se guarde en la
columna TAX.
En el archivo DAD, especifica un <RDB_node> para correlacionar el
elemento XML con la tabla y columna DB2.
Archivo DAD:
<element_node name="Tax">
<text_node>
<RDB_node>
<table name="part_tab"/>
<column name="tax"/>
</RDB_node>
</text_node>
</element_node>
<RDB_node> especifica que el valor del elemento <Tax> es un valor de
texto, los datos se almacenan en la tabla PART_TAB, en la columna TAX.
- Defina un <attribute_node> (nodo de atributo) para cada atributo del
documento XML que se correlacione con una columna de una tabla DB2. Por
ejemplo:
<attribute_node name="key">
</attribute_node>
attribute_node tiene un RDB_node para correlacionar el valor de atributo
con una tabla y columna DB2. Un RDB_node tiene los siguientes elementos
asociados.
- <table>: define la tabla que corresponde al elemento
- <column>: define la columna que contiene el elemento
correspondiente
- <condition>: opcionalmente, especifica una condición para la
columna
Por ejemplo, puede tener una clave de atributo para un elemento <Order>
(pedido). El valor de la clave se debe guardar en una columna llamada
PART_KEY.
Documento XML:
<Order key="1">
En el archivo DAD, cree un attribute_node para la clave e indique la tabla
donde se debe guardar el valor 1.
Archivo DAD:
<attribute_node name="key">
<RDB_node>
<table name="part_tab">
<column name="part_key"/>
<RDB_node>
</attribute_node>
- Especifique el tipo de columna del nodo RDB para cada nodo de atributo y
nodo de texto. Esto asegura el tipo de datos correcto para cada columna
en la que se guardarán los datos no codificados. Para especificar los
tipos de columna, añada el tipo de atributo al elemento de columna. El
ejemplo siguiente define el tipo de columna INTEGER:
<attribute_node name="key">
<RDB_node>
<table name="order_tab"/>
<column name="order_key" type="integer"/>
</RDB_node>
</attribute_node>
- Compruebe que hay un código final </root_node> a continuación del
último código </element_node>.
- Compruebe que hay un código final </Xcollection> a continuación del
código </root_node>.
- Compruebe que hay un código final </DAD> a continuación del código
</Xcollection>.
Cuando se habilita una colección XML, se analiza el archivo DAD para
identificar las tablas y columnas relacionadas con el documento XML, y se
registra información de control en la tabla XML_USAGE. Habilitar una
colección XML es opcional en estos casos:
- Descomponer un documento XML y almacenar los datos en nuevas tablas DB2
- Componer un documento XML a partir de datos existentes en varias tablas
DB2
Si se utiliza el mismo archivo DAD para la composición y descomposición,
puede habilitar la colección para la composición y la descomposición.
Puede habilitar una colección XML mediante el asistente de administración
del XML Extender, o utilizando el mandato dxxadm con la opción
enable_collection, o bien puede utilizar el procedimiento almacenado
dxxEnableCollection() del XML Extender.
Siga los pasos siguientes para habilitar una colección XML.
- Ponga a punto y arranque el asistente de administración. Vea Arranque del asistente de administración para obtener detalles.
- Pulse Trabajar con colecciones XML desde la ventana Área de
ejecución. Se abrirá la ventana Seleccionar tarea.
- Pulse Habilitar colección y, a continuación,
Siguiente. Se abrirá la ventana Habilitar colección.
- Seleccione el nombre de la colección que desee habilitar en el campo
Nombre de colección del menú desplegable.
- Escriba el nombre de archivo DAD en el campo Nombre de archivo
DAD o pulse ... para localizar un
archivo DAD existente.
- Opcionalmente, escriba en el campo Espacio_tablas el nombre de
un espacio de tablas creado previamente.
El espacio de tablas contendrá las nuevas tablas DB2 generadas para la
descomposición.
- Pulse Finalizar para habilitar la colección y volver a la
ventana Área de ejecución.
- Si la colección se habilita satisfactoriamente, se visualiza el mensaje
Colección habilitada satisfactoriamente.
- Si la colección no se habilita satisfactoriamente, se visualiza un mensaje
de error. Repita los pasos anteriores hasta que la colección se
habilite correctamente.
Para habilitar una colección XML, entre el mandato dxxadm:
Sintaxis:
dxxadm enable_collection |
---|
>>-dxxadm---enable_collection---nombreBd---colección------------>
>----archivo_DAD----+--------------------+---------------------><
'--t--espaciotablas--'
|
Parámetros:
- nombreBd
- Es el nombre de la base de datos.
- colección
- Es el nombre de la colección XML. Este valor se utiliza como
parámetro de los procedimientos almacenados para colecciones XML.
- archivo_DAD
- Es el nombre del archivo donde reside la definición de acceso a documento
(DAD).
- espaciotablas
- Es un espacio de tablas existente que contiene las nuevas tablas DB2 que
se crearon para la descomposición. Si no se especifica este parámetro,
se utiliza el espacio de tablas predefinido.
Ejemplo: El ejemplo siguiente habilita una colección
llamada sales_ord en la base de datos SALES_DB, utilizando el shell de
mandatos de DB2. El archivo DAD utiliza la correlación SQL y se puede
encontrar en Archivo DAD: colección XML - correlación SQL.
dxxadm enable_collection SALES_DB sales_ord getstart.dad
Una vez habilitada la colección XML, puede componer o descomponer
documentos XML utilizando los procedimientos almacenados del XML
Extender.
Cuando se inhabilita una colección XML se elimina el registro en la tabla
XML_USAGE que identifica tablas y columnas como parte de una colección.
No elimina ninguna tabla de datos. Puede inhabilitar una colección
cuando desee actualizar la DAD y necesite volver a habilitar una colección o
eliminar una colección.
Puede inhabilitar una colección XML mediante el asistente de administración
del XML Extender, o utilizando el mandato dxxadm con la opción
disable_collection, o bien puede utilizar el procedimiento almacenado
dxxDisableCollection() del XML Extender.
Siga los pasos siguientes para inhabilitar una colección XML.
- Ponga a punto y arranque el asistente de administración. Vea Arranque del asistente de administración para obtener detalles.
- Pulse Trabajar con colecciones XML desde la ventana Área de
ejecución para ver las tareas relacionadas con colecciones del XML
Extender. Se abrirá la ventana Seleccionar tarea.
- Pulse Inhabilitar una colección XML y, a continuación,
Siguiente para inhabilitar una colección XML. Se abrirá la
ventana Inhabilitar colección.
- En el campo Nombre de colección, escriba el nombre de la
colección que desea inhabilitar.
- Pulse Finalizar para inhabilitar la colección y volver a la
ventana Área de ejecución.
- Si la colección se inhabilita satisfactoriamente, se visualiza el mensaje
Colección inhabilitada satisfactoriamente.
- Si la colección no se inhabilita satisfactoriamente, se visualiza una
ventana de error. Repita los pasos anteriores hasta que la colección se
inhabilite correctamente.
Para inhabilitar una colección XML, entre el mandato
dxxadm:
Sintaxis:
dxxadm disable_collection |
---|
>>-dxxadm---disable_collection---nombreBd---colección----------><
|
Parámetros:
- nombreBd
- Es el nombre de la base de datos.
- colección
- Es el nombre de la colección XML. Este valor se utiliza como
parámetro de los procedimientos almacenados para colecciones XML.
Ejemplo:
dxxadm disable_collection SALES_DB sales_ord
[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]