XML-Spalten in einer in Oracle gespeicherten Geodatabase

XML ist ein offener Standard zum Definieren von Datenelementen innerhalb von Dokumenten. Um XML-Daten in einer Oracle-Datenbank zu speichern, können Sie ArcSDE-XML-Spalten oder native Oracle-XML-Spalten verwenden.

XML-Spalten in ArcGIS Desktop

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

XML-Spalten in einem Oracle DBMS

Es gibt zwei verschiedene Typen von XML-Spalten, die Sie verwenden können: ArcSDE-XML oder Oracle-XML. Welchen Sie in einem Dataset verwenden, das Sie in der Geodatabase erstellen, wird vom Parameter XML_COLUMN_STORAGE in der DBTUNE-Tabelle gesteuert. Die Standardeinstellung dieses Parameters ist SDE_XML.

HinweisHinweis:

ArcSDE-XML-Datentypen werden zum Speichern von Sammlungen von Metadatendokumenten verwendet, um ArcIMS-Metadaten-Services zu unterstützen. Wenn Sie daher ArcIMS-Metadaten-Services verwenden, müssen Sie den Parameter XML_COLUMN_STORAGE auf SDE_XML festlegen.

Informationen zu Oracle-XML finden Sie in der Oracle-Dokumentation.

ArcSDE-XML-Spalten

ArcSDE-XML-Dokumente werden in der Datenbank als Oracle Large Object (LOB) gespeichert. Die Speicherungs- und Caching-Parameter für LOBs, die Blockgröße des Tablespace und die Konfiguration des Puffer-Caches beeinflussen die Geschwindigkeit, mit der LOB-Daten angefordert werden. Dies wiederum wirkt sich auf die Suchleistung aus.

Für ArcSDE-XML werden drei ArcSDE-Geodatabase-Systemtabellen verwendet, um XML-Spalten zu verwalten: SDE_XML_COLUMNS, SDE_XML_INDEX_TAGS und SDE_XML_INDEXES. 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 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.

Feldname

Feldtyp

Beschreibung

Null?

COLUMN_ID

NUMBER

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_ID

NUMBER

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

NVARCHAR2(32)

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

NOT NULL

INDEX_ID

NUMBER

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

NUMBER

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

NVARCHAR2(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 Oracle.

XFLAGS

NUMBER

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.

Feldname

Feldtyp

Beschreibung

Null?

INDEX_ID

NUMBER

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

NOT NULL

INDEX_NAME

NVARCHAR2(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

NVARCHAR2(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

NUMBER

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

NVARCHAR2(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.

Feldname

Feldtyp

Beschreibung

Null?

INDEX_ID

NUMBER

Die Kennung des mit einer ArcSDE-XML-Spalte (falls vorhanden) verknüpften XPath-Indexes und der Fremdschlüssel für die Tabelle "SDE_XML_INDEXES"

NOT NULL

TAG_ID

NUMBER

Die Kennung eines XPaths oder eines Tags

NOT NULL

TAG_NAME

NVARCHAR2(1024)

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

NUMBER

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

NUMBER

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

NVARCHAR2(64)

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

IS_EXCLUDED

NUMBER

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<COLUMN_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.

Feldname

Feldtyp

Beschreibung

Null?

SDE_XML_ID

NUMBER

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

NUMBER

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

BLOB

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.

Feldname

Feldtyp

Beschreibung

Null?

XML_KEY_COLUMN

NUMBER

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

NOT NULL

SDE_XML_ID

NUMBER

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

NOT NULL

TAG_ID

NUMBER

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

FLOAT(126)

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

STRING_TAG

NVARCHAR2(256)

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.

Sites-Business-Tabelle und Systemtabellen, die ArcSDE-XML-Spalten in Oracle unterstützen

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.

Verwandte Themen


7/10/2012