Las columnas XML en una geodatabase en SQL Server

XML es un estándar abierto para definir elementos de datos dentro de los documentos. Para almacenar datos XML en una base de datos de Microsoft SQL Server, puede usar columnas XML o XML de ArcSDE nativas.

Puede almacenar documentos XML definidos por usuario en cualquier tipo de XML. El parámetro XML_COLUMN_STORAGE DBTUNE controla el tipo de XML utilizado. Por defecto, este parámetro se establece en DB_XML. Por lo tanto, por defecto, se utiliza el tipo de datos XML del SQL Server nativo.

NotaNota:

Si intenta utilizar las consultas XPath en las columnas XML nativas del SQL Server, también debe crear los catálogos de texto completo. Consulte la documentación de SQL Server para obtener más información.

Los tipos de datos XML de ArcSDE requieren que la base de datos de SQL Server se habilite para la búsqueda de texto completo y que se cree un catálogo de texto completo. Consulte Preparar el SQL Server para almacenar las columnas XML de ArcSDE y Crear un catálogo de texto completo en el SQL Server para obtener más información sobre cómo hacer esto.

Columnas XML en ArcGIS for Desktop

Las columnas XML no se admiten completamente en la geodatabase. Por lo tanto, los siguientes hechos son verdaderos:

columnas XML de ArcSDE en un DBMS de SQL Server

Se utilizan tres tablas del sistema de ArcSDE para administrar las columnas XML: columnas SDE_xml, SDE_xml_index_tags y SDE_xml_indexes. Estas tablas pertenecen al usuario del administrador de ArcSDE. ArcSDE también crea dos tablas adicionales para cada columna XML que se utiliza para almacenar e indexar los documentos XML: las tablas SDE_xml_document y SDE_xml_xpath_index. Estas tablas pertenecen al usuario que es propietario de la tabla de negocios que contiene la columna XML.

ArcSDE crea las siguientes tablas, que se utilizan para almacenar e indexar los documentos XML.

PrecauciónPrecaución:

No altere ninguna de estas tablas mediante SQL.

SDE_xml_columns

Cuando agrega una columna XML a una tabla de negocios, se agrega una fila a la tabla de columnas XML. Esta tabla se produce una vez en cada base de datos de ArcSDE.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

column_id

entero

El identificador de la columna XML y la clave principal de la tabla.

ArcSDE asigna este valor en el momento en que se crea la columna XML.

NO NULO

registration_id

entero

El identificador de la tabla de negocios que contiene la columna XML y la clave externa para la tabla del sistema SDE_table_registry

NO NULO

column_name

nvarchar(32)

El nombre de la columna que es la columna XML en la tabla de negocios

NO NULO

index_id

entero

El identificador del índice XPath asociado con la columna XML (si existe) y la clave externa para la tabla SDE_xml_indexes

minimum_id

entero

El valor del número inicial que se utiliza en la columna XML de la tabla de negocios para identificar los documentos XML individuales

config_keyword

nvarchar(32)

La palabra clave de configuración DBTUNE cuyos parámetros determinan cómo se definen en la base de datos el documento XML, las tablas de índice XPath XML y los índices de texto que se crearon en esas tablas

Consulte Parámetros para XML de ArcSDE en SQL Server para obtener más información.

xflags

entero

Valor que indica si los documentos originales de la tabla de documentos XML se almacenan comprimidos o descomprimidos.

Por defecto, los documentos están comprimidos; los documentos comprimidos proporcionan un mejor rendimiento.

NO NULO

SDE_xml_indexes

Esta tabla se produce una vez en cada base de datos de ArcSDE. Contiene una fila para cada columna XML que tiene un índice XPath.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

index_id

entero

El identificador del índice XPath y la clave principal de la tabla

NO NULO

index_name

nvarchar(32)

Nombre del índice XPath

NO NULO

propietario

nvarchar(32)

El usuario de la base de datos que posee la columna XML

NO NULO

index_type

entero

Valor que indica el tipo de índice XPath

Con ArcSDE 9.1 y versiones posteriores, el valor será 2 para el tipo de índice SE_XML_INDEX_DEFINITION y 1 para el tipo de índice SE_XML_INDEX_TEMPLATE.

NO NULO

descripción

nvarchar(64)

Texto que identifica el índice XPath

Si se utilizó un archivo de definición de índice para crear el índice, se puede especificar la descripción del índice en la parte superior del archivo.

SDE_xml_index_tags

Una columna XML puede tener de manera opcional un índice XPath, que le permite buscar el contenido de un elemento o atributo XML específico en cada documento. En esta tabla se registra la definición de qué elementos y atributos se incluyen o excluyen en cada índice XPath.

Esta tabla se produce una vez en cada base de datos de ArcSDE. Contiene una fila para cada XPath asociado con un índice XPath de una columna XML.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

index_id

entero

El identificador del índice XPath asociado con una columna XML (si existe) y la clave externa para la tabla SDE_xml_indexes

NO NULO

tag_id

entero

El identificador de un XPath o etiqueta

NO NULO

tag_name

nvarchar(1024)

Un XPath absoluto que identifica un elemento o atributo XML que puede ocurrir en un documento XML

Por ejemplo, /metadata/mdDateSt identifica un elemento XML y /metadata/dataIdInfo/tpCat/TopicCatCd/@value identifica un atributo XML. Estos XPaths no deben contener asteriscos (*) para referirse a un grupo de elementos o atributos XML; cada elemento o atributo coincide exactamente utilizando los XPath que se especificaron en esta tabla. Los elementos no se pueden nombrar * en un documento XML válido.

NO NULO

data_type

entero

Un valor que indica si el elemento o atributo XML se indexará como un número, un varchar o texto

Un 1 indica que el contenido de la etiqueta se indexará como texto; un 2 indica que el contenido de la etiqueta se indexará como un número; un 3 indica que el contenido de la etiqueta se indexará como un varchar.

NO NULO

tag_alias

entero

Un número que se puede utilizar para identificar un XPath

Por ejemplo, el protocolo de comunicación Z39.50 utiliza códigos numéricos para referirse al contenido de se puede buscar.

descripción

nvarchar(64)

Texto que identifica el contenido que debería contener el elemento o atributo XML

is_excluded

entero

Un valor que indica si el elemento XML se incluye o se excluye en el índice XPath

0 = el XPath se incluye; 1 = el XPath se excluye.

NO NULO

SDE_xml_doc<column_id>

La tabla SDE_xml_doc<column_id> almacena el documento XML y mantiene un índice de texto completo en el contenido del documento. La base de datos ArcSDE contiene una de estas tablas para cada columna XML. El número en el nombre de la tabla es el identificador de la columna XML. Esta tabla contiene una fila para cada documento XML que se almacenó en la columna XML.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

sde_xml_id

entero

El identificador para un documento XML almacenado en la columna XML y la clave principal para la tabla

NO NULO

doc_property

entero

Un valor que indica si se encontró algún conflicto cuando se agregó el contenido de un documento XML al índice XPath

1 = Se encontró un conflicto, por ejemplo, cuando se supone que un elemento se va a indexar numéricamente pero en su lugar el documento contiene una cadena de caracteres en ese elemento. Valor NULL = No había ningún problema que indexara el documento.

NO NULO

xml_doc

varbinarymax

El documento XML

NO NULO

xml_doc_val

varbinarymax

El contenido de todo el documento XML sin ninguna etiqueta XML ni otras marcas

Por defecto, se crea un índice de texto en esta columna; este índice se utiliza para responder a las consultas de texto completo.

NO NULO

sde_time_stamp

marca de hora

Se utiliza para admitir actualizaciones incrementales en el índice de texto

NO NULO

SDE_xml_idx<column_id>

La tabla SDE_xml_idx<column_id> se crea para las columnas XML que tienen un índice de texto XPath. Esta tabla almacena el contenido de texto o número para cada XPath que se indexó.

El número de Id. del nombre de la tabla es el número de registro interno para la columna XML.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

xml_key_column

entero

El identificador para el valor que se indexó y la clave principal para la tabla

NO NULO

sde_xml_id

entero

El identificador para el documento XML que contiene el valor que se indexó

NO NULO

tag_id

entero

El identificador para la etiqueta asociada con el índice XPath de la columna XML, que identifica en qué lugar del documento se almacena el valor

NO NULO

double_tag

flotante

El valor que se indexó, cuando la etiqueta se definió como DOBLE en la definición del índice XPath

string_tag

nvarchar(256)

El valor que se indexó cuando la etiqueta se definió como VARCHAR en la definición del índice XPath

text_tag

ntext

El valor que se indexó cuando la etiqueta se definió como CADENA DE CARACTERES en la definición del índice XPath

sde_time_stamp

marca de hora

Se utiliza para admitir actualizaciones incrementales en el índice de texto

NO NULO

Lo que sigue es un diagrama de una tabla con una columna XML y las tablas del sistema que se utilizan para rastrearlo. Los guiones indican relaciones implícitas; una línea continua denota relaciones entre tablas explícitamente definidas.

Tabla de negocios de sitios y tablas de sistemas que se utilizan para rastrear las columnas XML en SQL Server

Las columnas XML en un documento XML

No puede exportar una tabla que contiene una columna XML a un documento de espacio de trabajo XML. Puede exportarla a un documento de conjunto de registros XML, pero no hay nada dentro de los documentos para distinguir la columna como XML.

Temas relacionados

9/11/2013