XML-Spalten in einer Geodatabase in Informix
XML ist ein offener Standard zum Definieren von Datenelementen innerhalb von Dokumenten. Um XML-Daten in einer IBM Informix-Datenbank zu speichern, können Sie ArcSDE-XML-Spalten verwenden.
Zum Verwenden von ArcSDE-XML-Spalten muss entweder das Basic Text Search (BTS)- oder das Excalibur Text Search DataBlade-Modul in der Datenbank installiert sein.
XML-Spalten in ArcGIS for Desktop
XML-Spalten werden in der Geodatabase nicht vollständig unterstützt. Daher gilt Folgendes:
- Sie können den Inhalt einer XML-Spalte nicht in einer Tabelle in ArcCatalog in der Vorschau anzeigen. Die Spalte ist leer oder enthält unverständliche Zeichen.
- Auf der Registerkarte "Felder" im Dialogfeld "Eigenschaften" der Tabelle sind keine Datentypen für eine XML-Spalte aufgeführt.
- Eine Tabelle, die eine XML-Spalte enthält, kann nicht von einer Geodatabase in eine andere kopiert werden.
- Wenn Sie die Tabelle mithilfe von Geoverarbeitungswerkzeugen importieren oder exportieren, müssen Sie die XML-Spalte ausschließen.
- Sie können eine Tabelle mit einer XML-Spalte mithilfe von ArcCatalog nicht als versioniert registrieren.
- Wenn Sie eine Tabelle mit einer XML-Spalte in ArcMap öffnen, wird die XML-Spalte leer angezeigt.
- Zur Bearbeitung einer Tabelle mit einer XML-Spalte in ArcMap können Sie eine nicht versionierte Editiersitzung verwenden. Die XML-Spalte selbst kann jedoch nicht bearbeitet werden, nur die anderen Felder in der Tabelle.
XML-Spalten in einem Informix-DBMS
Es werden drei ArcSDE-Geodatabase-Systemtabellen verwendet, um XML-Spalten zu verwalten: sde_xml_columns, sde_xml_index_tags und sde_xml_index. Diese Tabellen gehören dem ArcSDE-Administratorbenutzer. ArcSDE erstellt außerdem zwei weitere Tabellen für jede XML-Spalte, die verwendet werden, um XML-Dokumente zu speichern und zu indizieren: die Tabellen "sde_xml_doc<column_id>" und "sde_xml_idx_<column_id>". Diese Tabellen gehören dem Benutzer, der die Business-Tabelle besitzt, die die XML-Spalte enthält.
Bei der Verwendung von ArcSDE-XML werden die folgenden Tabellen erstellt. Diese Tabellen werden zum Speichern und Indizieren von XML-Dokumenten verwendet.

Nehmen Sie per SQL keine Änderungen an diesen Tabellen vor.
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.
Feldname | Feldtyp | Beschreibung | 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 |
Registrierung | integer | Die Kennung der Business-Tabelle, die die ArcSDE-XML-Spalte enthält, und der Fremdschlüssel für die Systemtabelle "table_registry" | NOT NULL |
column_name | varchar(32) | Der Name der ArcSDE-XML-Spalte in der Business-Tabelle | NOT NULL |
index_id | integer | Die Kennung des mit der ArcSDE-XML-Spalte (falls vorhanden) verknüpften XPath-Indexes und der Fremdschlüssel für die Tabelle "sde_xml_indexes" | |
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 Weitere Informationen zu den DBTUNE-Schlüsselwörtern und ihren Parametern finden Sie unter Was sind DBTUNE-Konfigurationsschlüsselwörter und -Parameter? sowie unter DBTUNE-Konfigurationsparameter für 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. |
Diese Tabelle ist in jeder Geodatabase einmal vorhanden. Sie enthält eine Zeile für jede ArcSDE-XML-Spalte, die einen XPath-Index hat.
Feldname | Feldtyp | Beschreibung | 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 | NOT NULL |
owner | varchar(32) | Der Datenbankbenutzer, der die ArcSDE-XML-Spalte besitzt | 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. | 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. |
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 Geodatabase einmal vorhanden. Sie enthält eine Zeile für jeden XPath, der mit einem XPath-Index einer ArcSDE-XML-Spalte verknüpft ist.
Feldname | Feldtyp | Beschreibung | Null? |
---|---|---|---|
index_id | integer | Die Kennung des mit der XML-Spalte (falls vorhanden) verknüpften XPath-Indexes und der Fremdschlüssel für die Tabelle "sde_xml_indexes". | 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. | |
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
| NOT NULL |
In der Tabelle "SDE_XML_DOC<COLUMN_ID>" wird das XML-Dokument gespeichert und ein Volltextindex des Dokumentinhalts verwaltet. Die Geodatabase 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.
Feldname | Feldtyp | Beschreibung | 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. |
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.
Feldname | Feldtyp | Beschreibung | 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 | Doppelte Genauigkeit | 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.

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.