Columnas XML en una geodatabase en DB2

XML es un estándar abierto para definir elementos de datos dentro de los documentos. Para almacenar datos XML en una base de datos IBM DB2, puede utilizar XML de ArcSDE o tipos de datos XML de IBM DB2 nativos (PureXML).

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, de manera predeterminada, se utiliza el tipo de datos PureXML.

Para utilizar el tipo de datos XML de ArcSDE debe instalar el extensor de búsqueda de texto de DB2. Consulte Configurar una base de datos DB2 para que admita columnas XML de ArcSDE para obtener información sobre cómo hacerlo.

NotaNota:

Si utiliza el extensor de búsqueda en la red, debe migrar al extensor de búsqueda de texto. Consulte el Centro de Información de DB2 para obtener detalles ().

Los tipos de dato XML de ArcSDE se utilizan para almacenar colecciones de documentos de metadatos para admitir ArcIMS Metadata Services. Por lo tanto, si utiliza ArcIMS Metadata Services, debe establecer el parámetro XML_COLUMN_STORAGE en SDE_XML.

Columnas XML en ArcGIS Desktop

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

Columnas XML en un DBMS de DB2

Si utiliza el nativo PureXML de DB2, no existen tablas del sistema de geodatabase adicionales para rastrearlo; se rastrea en tablas del sistema de DB2. Para obtener información sobre PureXML de DB2, consulte el conjunto de documentación de DB2 de IBM.

Hay dos tipos diferentes de columnas XML que puede utilizar: XML de ArcSDE o PureXML de DB2. La que utilice en un dataset que crea en la geodatabase es controlada por el parámetro XML_STORAGE en la tabla DBTUNE.

Para XML de ArcSDE, hay tres tablas del sistema de geodatabases de ArcSDE 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: las tablas 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 la columna XML.

ArcSDE crea las siguientes tablas cuando utiliza XML de ArcSDE. Estas tablas se utilizan para almacenar e indexar documentos XML.

PrecauciónPrecaución:

No altere ninguna de estas tablas mediante SQL.

SDE_XML_COLUMNS

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

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

COLUMN_ID

INTEGER

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 de ArcSDE

NOT NULL

REGISTRATION_ID

INTEGER

Identificador de la tabla de negocios que contiene la columna XML de ArcSDE y la clave externa a la tabla de sistema TABLE_REGISTRY

NOT NULL

COLUMN_NAME

VARCHAR(32)

Nombre de la columna XML de ArcSDE en la tabla de negocios

NOT NULL

INDEX_ID

INTEGER

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

MINIMUM_ID

INTEGER

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

CONFIG_KEYWORD

VARCHAR(32)

Palabra clave de configuración DBTUNE para la cual los 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

Para obtener más información sobre las palabras clave DBTUNE y sus parámetros, consulte ¿Qué son los parámetros y las palabras clave de configuración DBTUNE? y Parámetros de configuración DBTUNE para DB2.

XFLAGS

INTEGER

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.

SDE_XML_INDEXES

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

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

INDEX_ID

INTEGER

Identificador del índice XPath y clave principal de la tabla

NOT NULL

INDEX_NAME

VARCHAR(32)

Nombre del índice XPath

Para los índices XPath asociados con un Servicio de metadatos ArcIMS, el nombre es ims_xml#, donde # es el identificador de la columna XML de ArcSDE de la tabla de negocios del servicio de metadatos.

NOT NULL

OWNER

VARCHAR(32)

Usuario de la base de datos que posee la columna XML de ArcSDE

Para ArcIMS Metadata Services, este es el usuario que se especificó en el archivo de configuración ArcXML del servicio.

NOT NULL

INDEX_TYPE

INTEGER

Valor que indica el tipo de índice XPath

Con ArcSDE 9.1 y versiones posteriores, el valor es 2 para el tipo de índice SE_XML_INDEX_DEFINITION y 1 para el tipo de índice SE_XML_INDEX_TEMPLATE. Para los índices XPath asociados con un Servicio de metadatos ArcIMS, solo es compatible el tipo de índice SE_XML_INDEX_DEFINITION.

NOT NULL

DESCRIPTION

VARCHAR(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 de ArcSDE 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 el índice XPath de una columna XML de ArcSDE.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

INDEX_ID

INTEGER

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

NOT NULL

TAG_ID

INTEGER

Identificador de un XPath o etiqueta

NOT NULL

TAG_NAME

VARCHAR(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 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 con * en un documento XML válido.

NOT NULL

DATA_TYPE

INTEGER

Valor que indica si el elemento o atributo XML está indexado como número, varchar o texto

El 1 indica que el contenido de la etiqueta está indexado como texto; el 2 indica que el contenido de la etiqueta está indexado como número; el 3 indica que el contenido de la etiqueta está indexado como varchar.

NOT NULL

TAG_ALIAS

INTEGER

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.

El conector Z39.50 de ArcIMS no utiliza esta columna.

DESCRIPTION

VARCHAR(64)

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

IS_EXCLUDED

INTEGER

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

  • 0 = XPath está incluido
  • 1 = XPath está excluido

NOT NULL

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 XML. La base de datos de ArcSDE contiene una de estas tablas para cada columna XML de ArcSDE. El número en el nombre de la tabla es el identificador de la columna XML de ArcSDE. Esta tabla contiene una fila para cada documento XML almacenado en la columna XML de ArcSDE.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

SDE_XML_ID

INTEGER

Identificador para un documento XML almacenado en la columna XML de ArcSDE y clave principal para la tabla

NOT NULL

DOC_PROPERTY

INTEGER

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.

XML_DOC

BLOB

Documento XML

NOT NULL

XML_DOC_VAL

BLOB

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. Para los Servicios de metadatos de ArcIMS, este índice se utiliza para responder a las solicitudes FULLTEXT.

SDE_XML_IDX<COLUMN_ID>

La tabla SDE_XML_IDX<COLUMN_ID> se crea para las columnas XML de ArcSDE 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 XML de ArcSDE.

Nombre de campo

Tipo de campo

Descripción

¿Nulo?

XML_KEY_COLUMN

INTEGER

Identificador para el valor indexado y clave principal para la tabla

NOT NULL

SDE_XML_ID

INTEGER

Identificador para el documento XML que contiene el valor indexado

NOT NULL

TAG_ID

INTEGER

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

NOT NULL

DOUBLE_TAG

FLOAT

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

STRING_TAG

VARCHAR2(256)

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

TEXT_TAG

CLOB

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

A continuación se presenta un diagrama de una tabla con una columna XML de ArcSDE 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 que se utilizan para admitir columnas XML de ArcSDE en DB2
NotaNota:

Por defecto, cuando los documentos XML se almacenan en una columna XML en una geodatabase en DB2, los índices de texto asociados con la columna no se actualizan automáticamente para incluir texto de los nuevos documentos. Hasta que se actualizan los índices de texto, cualquier documento XML que no se haya indexado no se puede encontrar con una búsqueda.

ArcSDE no proporciona ninguna utilidad que se puede utilizar para desencadenar manualmente actualizaciones en índices de texto de una columna XML. Para las columnas XML asociadas con un Servicio de metadatos ArcIMS, ArcIMS proporciona opciones de configuración y se puede utilizar una utilidad de línea de comandos para actualizar los índices de texto. Consulte la ayuda de ArcIMS para obtener información acerca de las opciones que proporciona ArcIMS para actualizar índices de texto.

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


3/6/2012