Colonnes XML d'une géodatabase stockée dans PostgreSQL

Le format XML est un standard ouvert permettant de définir des éléments de données dans des documents. Pour stocker des données XML dans une base de données PostgreSQL, vous pouvez utiliser des colonnes XML ArcSDE ou des colonnes XML PostgreSQL natives.

Vous pouvez stocker des documents XML définis par l'utilisateur dans l'un ou l'autre de ces types de XML. Le paramètre XML_COLUMN_STORAGE de la table sde_dbtune détermine le type de colonne XML utilisé. Par défaut, ce paramètre est défini sur le type de données XML PostgreSQL natif.

Les types de données ArcSDE XML permettent de stocker des ensembles de documents de métadonnées utiles aux services de métadonnées ArcIMS. Par conséquent, si vous utilisez des Services de métadonnées ArcIMS, vous devez définir le paramètre XML_COLUMN_STORAGE sur SDE_XML.

Colonnes XML dans ArcGIS Desktop

Les colonnes XML ne sont que partiellement prises en charge dans la géodatabase. Par conséquent, les éléments suivants sont vrais :

Colonnes contenant des documents XML dans un SGBD de type PostgreSQL

Vous pouvez utiliser deux types de colonne XML : XML ArcSDE ou le type XML natif de PostgreSQL. Le type de colonne XML que vous utilisez dans un jeu de données que vous créez dans votre géodatabase est déterminé par le paramètre XML_STORAGE de la table sde_dbtune.

Si vous utilisez le type XML PostgreSQL natif, aucune table système de géodatabase supplémentaire ne permet d'en effectuer le suivi ; pour cela les tables système de PostgreSQL doivent être utilisées.

Pour le type XML ArcSDE trois tables système de géodatabase ArcSDE permettent de gérer les colonnes XML : sde_xml_columns , sde_xml_index_tags et sde_xml_indexes. Ces tables appartiennent à l'administrateur ArcSDE. ArcSDE crée également, pour chaque colonne XML, deux tables supplémentaires permettant de stocker et d'indexer des documents XML : sde_xml_doc<ID_colonne> et sde_xml_idx_<ID_colonne>. Ces tables appartiennent à l'utilisateur propriétaire de la table métier contenant le document XML.

ArcSDE crée les tables suivantes, permettant de stocker et d'indexer les documents XML.

AttentionAttention :

Ne modifiez aucune de ces tables à l'aide de SQL.

sde_xml_columns

Lorsque vous ajoutez une colonne à une table métier pour le stockage de documents XML, un enregistrement est ajouté à la table des colonnes XML. Cette table existe en un exemplaire dans chaque base de données ArcSDE.

Nom du champ

Type de champ

Description

Nul ?

id_colonne

entier

Identifiant de la colonne XML et clé primaire de la table

Cette valeur est attribuée par ArcSDE lors de la création de la colonne XML.

NOT NULL

registration_id

entier

Identifiant de la table métier contenant la colonne XML et la clé étrangère de la table système table_registry

NOT NULL

column_name

varchar(32)

Nom de la colonne XML de la table métier

NOT NULL

index_id

entier

Identifiant de l'index XPath associé à la colonne XML (si elle existe) et clé étrangère de la table sde_xml_indexes

minimum_id

entier

Valeur du nombre initialement utilisé dans la colonne XML de la table métier pour l'identification des différents documents XML

config_keyword

varchar(32)

Mot-clé de configuration DBTUNE dont les paramètres déterminent la méthode de définition dans la base de données des documents XML, des tables d'index XML XPath et des index de texte créés pour ces tables.

xflags

integer

Valeur indiquant si les documents originaux dans la table de document XML sont stockés au format compressé ou décompressé.

Par défaut, les documents sont compressés ; les documents compressés offrent de meilleures performances.

NOT NULL

sde_xml_indexes

Cette table existe en un exemplaire dans chaque base de données ArcSDE. Elle comprend un enregistrement pour chaque colonne XML ayant un index XPath.

Nom du champ

Type de champ

Description

Nul ?

index_id

entier

Identifiant de l'index XPath et clé primaire de la table

NOT NULL

index_name

varchar(32)

Nom de l'index XPath

Pour les index XPath associés à un service de métadonnées ArcIMS, ce nom est ims_xml#, où # est l'identifiant de la colonne XML dans la table sde_xml_columns.

NOT NULL

Propriétaire

varchar(32)

L'utilisateur de base de données qui possède la colonne XML. Pour les services de métadonnées ArcIMS, il s'agit de l'utilisateur spécifié dans le fichier de configuration ArcXML du service.

NOT NULL

index_type

entier

Valeur indiquant le type d'index XPath

La valeur est 2 pour le type d'index SE_XML_INDEX_DEFINITION et 1 pour le type d'index SE_XML_INDEX_TEMPLATE. Pour les index XPath associés à un service de métadonnées ArcIMS, le type d'index par défaut est SE_XML_INDEX_DEFINITION.

NOT NULL

description

varchar(64)

Texte identifiant l'index XPath

Si un fichier de définition d'index est utilisé pour la création de l'index, la description de l'index peut être spécifiée en début de fichier.

sde_xml_index_tags

Une colonne contenant un document XML peut éventuellement disposer d'un index XPath permettant la recherche du contenu d'un élément ou d'un attribut XML spécifique dans chaque document. La liste des éléments et des attributs compris ou non dans un index XPath donné est enregistrée dans cette table.

Cette table existe en un exemplaire dans chaque base de données ArcSDE. Elle comprend un enregistrement pour chaque XPath associé à l'index XPath d'une colonne XML.

Nom du champ

Type de champ

Description

Nul ?

index_id

entier

Identifiant de l'index XPath associé à une colonne XML (si elle existe) et clé étrangère de la table sde_xml_indexes

NOT NULL

tag_id

entier

Identifiant d'un XPath ou d'une balise

NOT NULL

tag_name

varchar(1024)

Chemin XPath absolu identifiant un élément ou un attribut XML pouvant être présent dans un document XML

Par exemple, /metadata/mdDateSt identifie un élément XML et /metadata/dataIdInfo/tpCat/TopicCatCd/@value identifie un attribut XML. Les chemins XPath ne doivent pas contenir d'astérisques (*) pour faire référence à un groupe d'éléments ou d'attributs XML — chaque élément ou attribut est adressé de manière exacte à l'aide du XPath spécifié dans cette table. Les éléments ne peuvent pas être nommés * dans un document XML valide.

NOT NULL

data_type

entier

Valeur indiquant si l'élément ou l'attribut XML est indexé comme un nombre, comme varchar, ou comme texte. La valeur 1 indique l'indexation du contenu de la balise comme texte, la valeur 2 indique l'indexation du contenu de la balise comme nombre et la valeur 3 indique l'indexation du contenu de la balise comme varchar.

NOT NULL

tag_alias

entier

Nombre permettant d'identifier un XPath

Par exemple, le protocole de communication Z39.50 utilise des codes numériques pour faire référence au contenu pouvant faire l'objet d'une recherche. Cette colonne n'est pas utilisée par le Connecteur Z39.50 d'ArcIMS.

description

varchar(64)

Texte identifiant le contenu qui doit figurer dans l'élément ou dans l'attribut XML

is_excluded

entier

Valeur indiquant si l'élément XML fait partie de l'index XPath ou non ; 0 = inclus dans l'index XPath, 1 = exclu de l'index XPath.

NOT NULL

sde_xml_doc<ID_colonne>

La table sde_xml_doc<ID_colonne> stocke le document XML et contient un index de texte intégral du contenu du document. La base de données ArcSDE comprend une table de ce type pour chaque colonne contenant un document XML. Le nombre dans le nom de table est l'identifiant de la colonne. Cette table contient un enregistrement par document XML stocké dans la colonne XML.

Nom du champ

Type de champ

Description

Nul ?

sde_xml_id

entier

Identifiant d'un document XML stocké dans la colonne XML et clé primaire de la table

NOT NULL

doc_property

entier

Valeur indiquant si des conflits sont détectés lors de l'ajout du contenu d'un document XML à l'index Xpath ; 1 = un conflit a été détecté, par exemple, lorsqu'un élément est supposé être indexé numériquement alors que le document contient une chaîne de cet élément.

xml_doc

bytea

Document XML

NOT NULL

xml_doc_val

bytea

Contenu du document XML entier après suppression des balises XML et des autres balisages

Par défaut, l'index de texte est créé sur cette colonne ; cet index permet de répondre aux requêtes de texte intégral. Pour les services de métadonnées ArcIMS, cet index permet de répondre aux requêtes FULLTEXT.

sde_xml_idx<ID_colonne>

La table sde_xml_idx<ID_colonne> est créée pour les colonnes XML disposant d'un index de texte XPath. Cette table stocke le texte ou le contenu pour chaque XPath indexé.

L'identifiant dans le nom de table est le numéro d'enregistrement interne de la colonne contenant le document XML.

Nom du champ

Type de champ

Description

Nul ?

xml_key_column

entier

Identifiant de la valeur indexée et clé primaire de la table

NOT NULL

sde_xml_id

entier

Identifiant du document XML contenant la valeur indexée

NOT NULL

tag_id

entier

Identifiant de la balise associée à l'index XPath de la colonne XML, identifiant l'emplacement de stockage de la valeur dans le document

NOT NULL

double_tag

double précision

Valeur indexée, lorsque la balise est définie comme double précision dans la définition d'index XPath

string_tag

varchar(256)

Valeur indexée, lorsque la balise est définie comme varchar dans la définition d'index XPath

text_tag

Texte

Valeur indexée, lorsque la balise est définie comme STRING dans la définition d'index XPath

Voici le diagramme d'une table comprenant une colonne contenant un document XML et des tables système permettant d'assurer son suivi. Les lignes pointillées indiquent des relations implicites entre les tables, les traits pleins indiquent des relations explicitement définies.

Table métier Sites et tables système associées permettant d'assurer le suivi d'une colonne XML dans PostgreSQL

Colonnes contenant un document XML dans un document d'espace de travail XML

Une table comprenant une colonne contenant un document XML ne peut pas être exportée vers un document d'espace de travail XML. Elle peut toutefois être exportée vers un jeu d'enregistrements XML.

Rubriques connexes


7/10/2012