XML columns in a geodatabase in Informix

XML is an open standard for defining data elements within documents. To store XML data in an IBM Informix database, you can use ArcSDE XML columns.

You need either the Basic Text Search or Excalibur Text Search DataBlade Module installed in the database to use ArcSDE XML columns.

XML-Spalten in ArcGIS Desktop

XML-Spalten werden in der Geodatabase nicht vollständig unterstützt. Daher gilt Folgendes:

XML columns in an Informix DBMS

There are three ArcSDE geodatabase system tables used to manage XML columns: sde_xml_columns, sde_xml_index_tags, and sde_xml_index. These tables are owned by the ArcSDE administrator user. ArcSDE also creates two additional tables for each XML column that are used to store and index XML documents: the sde_xml_doc<column_id> and sde_xml_idx_<column_id> tables. These tables are owned by the user who owns the business table containing the XML column.

Bei der Verwendung von ArcSDE-XML werden in ArcSDE die folgenden Tabellen erstellt. Diese Tabellen werden zum Speichern und Indizieren von XML-Dokumenten verwendet.

VorsichtVorsicht:

Nehmen Sie per SQL keine Änderungen an diesen Tabellen vor.

sde_xml_columns

Wenn Sie einer Business-Tabelle eine ArcSDE-XML-Spalte hinzufügen, wird der SDE_XML_COLUMNS-Tabelle eine Zeile hinzugefügt. Diese Tabelle ist in jeder ArcSDE-Datenbank einmal vorhanden.

Field name

Field type

Description

Null?

column_id

serial

Die Kennung der XML-Spalte und der Primärschlüssel der Tabelle

Dieser Wert wird von ArcSDE zugewiesen, wenn die ArcSDE-XML-Spalte erstellt wird.

NOT NULL

registration

integer

The identifier of the business table containing the ArcSDE XML column and foreign key to the table_registry system table

NOT NULL

column_name

varchar(32)

Der Name der ArcSDE-XML-Spalte in der Business-Tabelle

NOT NULL

index_id

integer

The identifier of the XPath index associated with the ArcSDE XML column (if one exists) and foreign key to the sde_xml_indexes table

minimum_id

integer

Der Wert der ursprünglichen Zahl, die in der ArcSDE-XML-Spalte der Business-Tabelle verwendet wurde, um einzelne XML-Dokumente zu identifizieren

config_keyword

varchar(32)

Das DBTUNE-Konfigurationsschlüsselwort, dessen Parameter bestimmen, wie das XML-Dokument, die XML-XPath-Indextabellen und die für diese Tabellen erstellten Textindizes in der Datenbank definiert werden

For more information on DBTUNE keywords and their parameters, see What are DBTUNE configuration keywords and parameters? and DBTUNE configuration parameters in Informix.

xflags

integer

Ein Wert, der angibt, ob die Originaldokumente in der XML-Dokument-Tabelle komprimiert oder dekomprimiert gespeichert werden

Standardmäßig werden Dokumente komprimiert; komprimierte Dokumente bieten bessere Performance.

sde_xml_indexes

Diese Tabelle ist in jeder ArcSDE-Datenbank einmal vorhanden. Sie enthält eine Zeile für jede ArcSDE-XML-Spalte, die einen XPath-Index hat.

Field name

Field type

Description

Null?

index_id

serial

Die Kennung des XPath-Indexes und der Primärschlüssel der Tabelle

NOT NULL

index_name

varchar(32)

Der Name des XPath-Indexes

Für mit einem ArcIMS-Metadaten-Service verknüpfte XPath-Indizes ist der Name "ims_xml#", wobei # die Kennung der ArcSDE-XML-Spalte in der Metadaten-Services Business-Tabelle ist.

NOT NULL

owner

varchar(32)

Der Datenbankbenutzer, der die ArcSDE-XML-Spalte besitzt

Bei ArcIMS-Metadaten-Services ist dies der Benutzer, der in der ArcXML-Konfigurationsdatei des Services angegeben ist.

NOT NULL

index_type

integer

Ein Wert, der den Typ des XPath-Indexes angibt

Bei ArcSDE 9.1 und höher gilt für den Indextyp SE_XML_INDEX_DEFINITION der Wert 2 und für den Indextyp SE_XML_INDEX_TEMPLATE der Wert 1. Für mit einem ArcIMS-Metadaten-Service verknüpfte XPath-Indizes wird nur der Indextyp SE_XML_INDEX_DEFINITION unterstützt.

NOT NULL

description

varchar(64)

Text, der den XPath-Index identifiziert

Wenn eine Indexdefinitionsdatei verwendet wurde, um den Index zu erstellen, kann die Indexbeschreibung am Anfang der Datei angegeben werden.

sde_xml_index_tags

Eine ArcSDE-XML-Spalte kann optional einen XPath-Index haben, mit dem Sie den Inhalt eines bestimmten XML-Elements oder -Attributs in jedem Dokument durchsuchen können. Die Definition, welche Elemente und Attribute in jedem XPath-Index enthalten oder ausgeschlossen sind, wird in dieser Tabelle aufgezeichnet.

Diese Tabelle ist in jeder ArcSDE-Datenbank einmal vorhanden. Sie enthält eine Zeile für jeden XPath, der mit einem XPath-Index einer ArcSDE-XML-Spalte verknüpft ist.

Field name

Field type

Description

Null?

index_id

integer

The identifier of the XPath index associated with an XML column (if one exists) and foreign key to the sde_xml_indexes table.

NOT NULL

tag_id

serial

Die Kennung eines XPaths oder eines Tags

NOT NULL

tag_name

nvarchar(255)

Ein absoluter XPath, der ein XML-Element oder ein Attribut identifiziert, das möglicherweise in einem XML-Dokument vorkommt

Beispiel: /metadata/mdDateSt identifiziert ein XML-Element und /metadata/dataIdInfo/tpCat/TopicCatCd/@value identifiziert ein XML-Attribut.

Diese XPaths dürfen keine Sternchen (*) enthalten, um auf eine Gruppe von XML-Elementen oder Attributen zu verweisen – jedes Element oder Attribut wird mit den in dieser Tabelle angegebenen XPaths genau abgeglichen. Elemente können in einem gültigen XML-Dokument nicht * genannt werden.

NOT NULL

data_type

integer

Ein Wert, der angibt, ob das XML-Element oder das Attribut als Zahl, als VARCHAR oder als Text indiziert wird

Eine 1 gibt an, dass der Inhalt des Tags als Text indiziert wird; eine 2 gibt an, dass der Inhalt des Tags als Zahl indiziert wird; eine 3 gibt an, dass der Inhalt des Tags als VARCHAR indiziert wird.

NOT NULL

tag_alias

integer

Eine Zahl, die verwendet werden kann, um einen XPath zu identifizieren

Beispiel: Das Z39.50-Kommunikationsprotokoll verweist mithilfe von numerischen Codes auf Inhalte, die durchsucht werden können.

Diese Spalte wird nicht vom ArcIMS Z39.50-Konnektor verwendet.

description

varchar(64)

Text, der den Inhalt identifiziert, der im XML-Element oder -Attribut enthalten sein sollte

is_exluded

integer

Ein Wert, der angibt, ob das XML-Element im XPath-Index enthalten oder ausgeschlossen ist

  • 0 = XPath ist eingeschlossen.
  • 1 = XPath ist ausgeschlossen.

NOT NULL

sde_xml_doc<colimn_id>

In der Tabelle "SDE_XML_DOC<COLUMN_ID>" wird das XML-Dokument gespeichert und ein Volltextindex des Dokumentinhalts verwaltet. Die ArcSDE-Datenbank enthält eine dieser Tabellen für jede ArcSDE-XML-Spalte. Die Zahl im Tabellennamen ist die Kennung der ArcSDE-XML-Spalte. Diese Tabelle enthält eine Zeile für jedes in der XML-Spalte gespeicherte ArcSDE-XML-Dokument.

Field name

Field type

Description

Null?

sde_xml_id

integer

Die Kennung für ein in der XML-Spalte gespeichertes ArcSDE-XML-Dokument und der Primärschlüssel für die Tabelle

NOT NULL

doc_property

integer

Ein Wert, der angibt, ob beim Hinzufügen des Inhalts eines XML-Dokuments zum XPath-Index Konflikte festgestellt wurden

1 = ein Konflikt wurde festgestellt; beispielsweise wenn ein Element numerisch indiziert werden soll, aber das Dokument stattdessen in diesem Element eine Zeichenfolge enthält.

NULL-Wert = es gab keine Probleme im Indizieren des Dokuments.

xml_doc

BLOB

Das XML-Dokument

NOT NULL

xml_doc_val

CLOB

Der Inhalt des gesamten XML-Dokuments ohne XML-Tags und andere Markups

Für diese Spalte wird standardmäßig ein Textindex erstellt; dieser Index wird verwendet, um auf Volltextabfragen zu reagieren. Für ArcIMS Metadaten-Services wird dieser Index verwendet, um auf FULLTEXT-Anforderungen zu reagieren.

sde_xml_idx<column_id>

Die Tabelle "SDE_XML_IDX<COLUMN_ID>" wird für ArcSDE-XML-Spalten erstellt, die einen XPath-Textindex haben. In dieser Tabelle wird der Inhalt (Text oder Zahlen) für jeden indizierten XPath gespeichert.

Die ID-Nummer im Tabellennamen ist die interne Registrierungsnummer für die ArcSDE-XML-Spalte.

Field name

Field type

Description

Null?

xml_key_column

serial

Die Kennung für den indizierten Wert und der Primärschlüssel für die Tabelle

NOT NULL

sde_xml_id

integer

Die Kennung für das XML-Dokument, das den indizierten Wert enthält

NOT NULL

tag_id

integer

Die Kennung für das Tag, das mit dem XPath-Index der ArcSDE-XML-Spalte verknüpft ist und das identifiziert, wo der Wert im Dokument gespeichert wird

NOT NULL

double_tag

double precision

Der indizierte Wert, wenn das Tag in der XPath-Indexdefinition als DOUBLE definiert ist

string_tag

nvarchar(255)

Der indizierte Wert, wenn das Tag in der XPath-Indexdefinition als VARCHAR definiert ist

text_tag

CLOB

Der indizierte Wert, wenn das Tag in der XPath-Indexdefinition als STRING definiert ist

Nachfolgend sehen Sie ein Diagramm einer Tabelle mit einer ArcSDE-XML-Spalte und die Systemtabellen, die zur Verfolgung verwendet wurden. Gestrichelte Linien geben implizite Beziehungen an; eine durchgezogene Linie bezeichnet explizit definierte Beziehungen zwischen Tabellen.

ArcSDE XML column system tables in Informix

XML-Spalten in einem XML-Dokument

Sie können eine Tabelle, die eine XML-Spalte enthält, nicht in ein XML-Workspace-Dokument exportieren. Sie können sie in ein XML-Datensatzdokument exportieren, aber es ist innerhalb des Dokuments nicht möglich, die Spalte als XML zu unterscheiden.


3/6/2012