Columnas XML en una geodatabase almacenada en PostgreSQL

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

Puede almacenar documentos XML definidos por usuario en cualquier tipo de XML. El parámetro XML_COLUMN_STORAGE sde_dbtune controla el tipo de XML utilizado. De forma predeterminada, este parámetro se establece en el tipo de datos XML nativo de PostgreSQL.

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 que contienen documentos XML en un DBMS de PostgreSQL

Hay dos tipos diferentes de columnas XML que puede utilizar: Tipo XML nativo de ArcSDE o PostgreSQL. El que utilice en un dataset que crea en la geodatabase es controlado por el parámetro XML_STORAGE en la tabla sde_dbtune.

Si utiliza el tipo XML nativo de PostgreSQL, no hay tablas del sistema de la geodatabase adicionales para rastrearlo; se lleva a cabo en las tablas del sistema de PostgreSQL.

Para XML de ArcSDE, hay tres tablas del sistema de geodatabases que se utilizan para administrar columnas XML: sde_xml_columns , sde_xml_index_tags y sde_xml_indexes. Estas tablas pertenecen al usuario administrador de ArcSDE. ArcSDE también crea dos tablas adicionales para cada columna XML, que se utilizan para almacenar e indexar los documentos XML: sde_xml_doc<column_id> y sde_xml_idx_<column_id>. Estas tablas pertenecen al usuario que es propietario de la tabla de negocios que contiene el documento XML.

ArcGIS 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 a una tabla de negocios para almacenar documentos XML, se agrega una fila a la tabla de columnas XML. Esta tabla se produce una vez en cada geodatabase de ArcSDE.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

column_id

entero

Identificador de la columna XML y 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 table_registry

NO NULO

column_name

varchar(32)

Nombre de la columna que es la columna XML en la tabla de negocios

NO NULO

index_id

entero

Identificador del índice XPath asociado con la columna XML (si existe) y clave externa para la tabla sde_xml_indexes

minimum_id

entero

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

varchar(32)

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

xflags

entero

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

De forma predeterminada, 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

Identificador del índice XPath y clave principal de la tabla

NO NULO

index_name

varchar(32)

Nombre del índice XPath

NO NULO

propietario

varchar(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

El valor es 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

varchar(64)

Texto que identifica el índice XPath

Si se utiliza 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 que contiene un documento 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.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

index_id

entero

Identificador del índice XPath asociado con una columna XML (si existe) y clave externa para la tabla sde_xml_indexes

NO NULO

tag_id

entero

Identificador de un XPath o etiqueta

NO NULO

tag_name

varchar(1024)

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 XPath 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

Valor que indica si el elemento o atributo XML está indexado como número, varchar o texto; un valor de 1 indica que el contenido de la etiqueta se indexa como texto, un valor de 2 indica que el contenido de la etiqueta se indexa como número y un valor de 3 indica que el contenido de la etiqueta se indexa como varchar.

NO NULO

tag_alias

entero

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 hacer referencia a contenido que se puede buscar.

descripción

varchar(64)

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

is_excluded

entero

Valor que indica si el elemento XML se incluye o excluye en el índice XPath; 0 = el XPath se incluye, 1 = el XPath se excluye.

NO NULO

sde_xml_doc<column_id>

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

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

Valor que indica si se encuentra algún conflicto al agregar el contenido del documento XML al índice XPath; 1 = se ha encontrado algún conflicto; por ejemplo, cuando se supone que un elemento debe indexarse numéricamente, pero el documento contiene en su lugar una cadena de texto en el elemento.

xml_doc

bytea

Documento XML

NO NULO

xml_doc_val

bytea

Contenido de todo el documento XML sin ninguna etiqueta XML ni otras marcas

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

sde_xml_idx<column_id>

La tabla sde_xml_idx<column_id> se crea para las columnas que tienen un índice de texto XPath. En esta tabla se almacena el contenido numérico o de texto para cada XPath indexado.

El número de ID del nombre de la tabla es el número de registro interno para la columna que contiene el documento XML.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

xml_key_column

entero

Identificador para el valor indexado y clave principal para la tabla

NO NULO

sde_xml_id

entero

Identificador para el documento XML que contiene el valor indexado

NO NULO

tag_id

entero

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

precisión doble

Valor indexado cuando la etiqueta se definió como de precisión doble en la definición del índice XPath

string_tag

varchar(256)

Valor indexado cuando la etiqueta se define como varchar en la definición del índice XPath

text_tag

texto

Valor indexado cuando la etiqueta se define como STRING en la definición del índice XPath

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

Tablas de negocios de sitios y tablas del sistema asociadas para rastrear una columna XML en PostgreSQL

Columnas que contienen un documento XML en un documento de espacio de trabajo XML

No puede exportar una tabla que contiene una columna con un documento XML a un documento de espacio de trabajo XML. Puede exportarla a un documento de conjunto de registros XML.

Temas relacionados

5/9/2014