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.
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:
- No puede obtener una vista previa de los contenidos de una columna XML en una tabla de ArcCatalog. La columna estará en blanco o tendrá caracteres ininteligibles.
- En la pestaña Campos del cuadro de diálogo de la tabla Propiedades, no se enumera ningún tipo de datos para una columna XML.
- No puede copiar y pegar una tabla que contiene una columna XML de una geodatabase a otra.
- Si importa o exporta la tabla con herramientas de geoprocesamiento, debe excluir la columna XML.
- No puede registrar una tabla como versionada con una columna XML con ArcCatalog.
- Si abre una tabla que contiene una columna XML en ArcMap, la columna XML aparece en blanco.
- Para editar una tabla que contiene una columna XML en ArcMap, puede utilizar una sesión de edición no versionada. Sin embargo, no puede editar la columna XML en sí, solo los otros campos de la tabla.
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 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: 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.
ArcSDE crea las siguientes tablas, que se utilizan para almacenar e indexar los documentos XML.
No altere ninguna de estas tablas mediante SQL.
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 base de datos 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 |
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 |
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. Por defecto, los documentos están comprimidos; los documentos comprimidos proporcionan un mejor rendimiento. |
NO NULO |
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 Para los índices XPath asociados con un servicio de metadatos ArcIMS, el nombre será ims_xml#, donde # es el identificador de la columna XML de la tabla sde_xml_columns. |
NO NULO |
propietario |
varchar(32) |
Usuario de la base de datos al que pertenece la columna XML para servicios de metadatos de ArcIMS; es el usuario especificado en el archivo de configuración ArcXML del servicio. |
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. Para los índices XPath asociados con un Servicio de metadatos ArcIMS, el tipo de índice predeterminado es SE_XML_INDEX_DEFINITION. |
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. |
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 |
El identificador de un XPath o etiqueta |
NO NULO |
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 * 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. El conector Z39.50 de ArcIMS no utiliza esta columna. |
|
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 |
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 |
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. Para los Servicios de metadatos de ArcIMS, este índice se utiliza para responder a las solicitudes FULLTEXT. |
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 |
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 |
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.
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.