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 juegos de caracteres soportados dependen de la aplicación que esté utilizando. Esto significa que DB2 de IBM puede soportar conjuntos de caracteres que no son compatibles con SQL Server de Microsoft. Si se utiliza un conjunto de caracteres menos común, la migración de su base de datos y la aplicación de una plataforma a otra RDBMS puede ser difícil.

XML admite sólo una, Unicode. Esta es una buena cosa desde el punto de vista del intercambio de datos entre cualquier aplicación dada SQL y XML. Todos los proveedores de RDBMS tienen que definir un mapeo entre cadenas de cada uno de sus conjuntos de caracteres y Unicode, así como un mapeo inverso de Unicode a cada uno de sus conjuntos de caracteres.

Por suerte, XML no también soporta varios conjuntos de caracteres. Si así fuera, los proveedores tendrían un problema de muchos a muchos que requeriría varios más asignaciones y revertir las asignaciones de resolver.

identificadores

Personajes que son legales en SQL, pero ilegal en XML se deben asignar a algo legal antes de que puedan convertirse en parte de un documento XML. SQL admite identificadores delimitados. Esto significa que los caracteres impares como%, $, y & son legales, siempre y cuando ellos están encerrados entre comillas dobles. Tales caracteres no son legales en XML.

Por otra parte, 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 de 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 son también nombres XML legales no se modifican. personajes de identificador de SQL que son nombres XML no legales son sustituidos por un código hexadecimal que, o bien toma la forma “_xNNNN_” o “_xNNNNNNNN_”, dónde norte representa un dígito hexadecimal 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 de SQL comienza con los caracteres x, m, y l se maneja prefijando 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 necesita hacer es escanear los caracteres de un nombre XML para una secuencia de “_xNNNN_” o “_xNNNNNNNN_”. Cada vez que encuentre una secuencia tal, reemplazarlo con el carácter que el Unicode corresponde a. 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 tipo de datos XML 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, tales como XML 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 ENTERO escriba a la gama -2157483648, en el XML maxInclusive valor se puede ajustar a 2157483647, y la minInclusive valor se puede ajustar a -2157483648. Aquí está un ejemplo de una asignación de este tipo:

Mesas

Puede asignar una tabla en un documento XML. Del mismo modo, puede asignar todas las tablas de un esquema o todas las tablas en un catálogo. Los privilegios son mantenidos por la asignación. Una persona que tiene la SELECCIONAR privilegio sólo en algunas columnas de la tabla será capaz de asignar sólo aquellas columnas al documento XML.

Video: SQL Server 2012 - Generating XML from SQL Server tables

El mapeo de hecho produce dos documentos, uno que contiene los datos de la tabla y el otro que contiene el esquema XML que describe el primer 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 una elemento, y cada elemento fila contiene una secuencia de elementos de columna, cada nombre de la columna correspondiente de 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 representarlos en un documento XML. Puede representar un valor nulo, ya sea como nula o inexistente. Si se elige la opción cero, entonces el atributo xsi: nil = “true” marca los elementos de columna que representan valores nulos. Podría ser utilizado de la siguiente manera:

CuentaMuralla exterior714555-2222

Si se elige la opción ausente, se podría implementar de la siguiente manera:

CuentaMuralla exterior714555-2222

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

¿Cómo generar el esquema XML

Para hacer el mapa de SQL con XML, el primer documento generado es el que contiene los datos. El segundo contiene la información del esquema. Considere el esquema para el documento CLIENTE:

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

Video: SQL Server 2012 - Creación de Esquemas (SCHEMA)

Artículos Relacionados