Cómo asignar SQL con XML y XML para sql

Para el intercambio de datos entre bases de datos SQL y documentos XML, los diversos elementos de una base de datos SQL deben ser traducible a elementos equivalentes de un documento XML, y, por supuesto, viceversa.

Los conjuntos de caracteres

En SQL, los conjuntos de caracteres soportados dependen de la aplicación que esté utilizando. Esto significa que DB2 de IBM puede apoyar los juegos de caracteres que no son compatibles con SQL Server de Microsoft. Si utiliza un conjunto de caracteres menos común, la migración de la base de datos y la aplicación de una plataforma RDBMS a otro puede ser difícil.

XML sólo admite uno, Unicode. Esto es algo bueno desde el punto de vista del intercambio de datos entre cualquier implementación de SQL dada y XML. Todos los vendedores de RDBMS tienen que definir un mapeo entre las cadenas de cada uno de sus conjuntos de caracteres y Unicode, así como una asignación inversa de Unicode a cada uno de sus conjuntos de caracteres.

Por suerte, XML no también el apoyo de varios conjuntos de caracteres. Si lo hiciera, los vendedores tendrían una relación muchos-a-muchos problema que requeriría varios más asignaciones y revertir las asignaciones de resolver.

Identificadores

Personajes que son legales en SQL pero ilegal en XML deben asignarse a algo legal antes de que puedan convertirse en parte de un documento XML. SQL soporta identificadores delimitados. Esto significa que los personajes extraños como%, $, y son legales, siempre y cuando ellos están encerrados entre comillas dobles. Estos personajes no son legales en XML.

Además, los nombres XML que comienzan con los caracteres XML en cualquier combinación de los casos están reservados y por lo tanto no se puede utilizar con impunidad. Si usted tiene cualesquiera identificadores SQL que comienzan con esas letras, hay que cambiarlos.

Al pasar de SQL a XML, todos los identificadores de SQL se convierten a Unicode. A partir de ahí, los identificadores de SQL que también son nombres XML legales no se modifican. Caracteres de identificador de SQL que son nombres XML no legales se sustituyen por un código hexadecimal que, o bien toma la forma " _xNNNN_ " o " _xNNNNNNNN_ ", dónde N representa un dígito hexadecimal en mayúsculas.

Por ejemplo, el carácter de subrayado estará representada por " _x005F_ ". El colon estará representada por " _x003A_ ". Estas representaciones son los códigos para los caracteres Unicode para el subrayado y el colon. El caso en el que un identificador SQL se inicia con los caracteres x, m, y l se maneja anteponiendo todos estos casos con un código en la forma " _xFFFF_ ".

La conversión de XML a SQL es mucho más fácil. Todo lo que necesitas hacer es escanear los caracteres de un nombre de XML para una secuencia de " _xNNNN_ " o " _xNNNNNNNN_ ". Cada vez que encuentre una secuencia tal, reemplazarlo con el carácter que el Unicode corresponde. Si un nombre XML comienza con los caracteres " _xFFFF_ ", ingnóralos.

Tipos de datos

El estándar SQL especifica que un tipo de datos SQL se debe asignar a la posible XML tipo de datos de esquema más cercano. La designación más cerca posible significa que todos los valores permitidos por el tipo SQL serán permitidos por el tipo de esquema XML, y el menor número de posibles valores no permitidos por el tipo SQL serán permitidos por el tipo de esquema XML.

Facetas XML, como maxInclusive y minInclusive, puede restringir los valores permitidos por el tipo de esquema XML para los valores permitidos por el tipo SQL correspondiente.

Por ejemplo, si el tipo de datos SQL restringe valores de la INTEGER escriba a la gama -2157483648, en el XML maxInclusive valor se puede establecer a 2157483647, y el minInclusive valor se puede establecer a -2157483648. He aquí un ejemplo de un mapeo de este tipo:

Mesas

Puede asignar una tabla a un documento XML. Del mismo modo, puede asignar todas las tablas de un esquema o todas las tablas en un catálogo. Privilegios son mantenidos por el mapeo. Una persona que tiene la SELECT privilegio de sólo algunas columnas de la tabla será capaz de mapear sólo las columnas para el documento XML.

El mapeo produce realmente dos documentos, uno que contiene los datos de la tabla y el otro que contiene el esquema XML que describe la primera documento. He aquí un ejemplo de la asignación de una tabla de SQL a un documento que contiene datos XML:

AbeAbelsonSpringfield714555-1111CuentaMuralla exteriorDecatur714555-2222...

El elemento raíz del documento se ha dado el nombre de la tabla. Cada fila de la tabla está contenida dentro de un elemento, y cada elemento fila contiene una secuencia de elementos de columnas, cada una lleva el nombre de la columna correspondiente en la tabla de origen. Cada elemento de la columna contiene un valor de datos.

Los valores nulos

Dado que los datos de SQL pueden incluir valores nulos, debe decidir cómo representar en un documento XML. Puede representar un valor nulo, ya sea como nula o inexistente. Si elige la opción cero, entonces el atributo xsi: nil = " true " marca los elementos de las columnas que representan los valores nulos. Podría ser utilizado de la siguiente manera:

CuentaMuralla exterior714555-2222

Si elige la opción ausente, podría ponerlo en práctica de la siguiente manera:

CuentaMuralla exterior714555-2222

En este caso, la fila que contiene el valor nulo está ausente. No hay ninguna referencia a la misma.

Cómo generar el esquema XML

Al asignar desde SQL a XML, el primer documento generado es el que contiene los datos. El segundo contiene la información de esquema. Considere el esquema para el documento CLIENTE:

Este esquema es adecuado si se utiliza el enfoque de cero a manejo de valores nulos. El enfoque ausente requiere una definición de elemento ligeramente diferente. Por ejemplo:




» » » » Cómo asignar SQL con XML y XML para sql