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:
- 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 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.
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.
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. |
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. |
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
| NOT NULL |
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. |
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 | 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.