Sunday 19 March 2017

Oracle Sys Xmltype Speicher Binär Optionen

Ich verwende XMLType Spalte in einigen meiner Oracle-Datenbanktabelle. Früher (in 11.2.0.2) ist der voreingestellte Lagertyp CLOB. Also, wenn Sie eine Abfrage für die XMLType-Spalten ausgeben, kann ich den Inhalt der Spalte als XML-String sehen. Aber wenn ich alle Tische ablegen und neu erstellen und einige Daten einfügen, konnte ich den Inhalt der XMLType-Spalten nicht abrufen. Es zeigt den XMLType im Cloumn-Wert einfach an. Ich habe Zweifel daran, ob der Speichertyp in BINARY XML eingehängt ist. So lese ich die folgende Änderungserklärung aus: Bitte beachten Sie, dass in der Tabelle bereits einige Daten vorhanden sind. Event, nachdem ich eine Zeile gelöscht und eingefügt habe, wird der Inhalt als XMLType angezeigt. Ich verwende SQL-Entwickler-UI-Tool. Kann jemand einen Weg vorschlagen, um dieses Problem zu beheben Ok, jetzt haben wir beschlossen, dass wir den Inhalt der XMLType-Spalte als SECURE FILE BINARY XML speichern werden. So haben wir eine Tabelle wie folgt: Die XMLType colum wird als SYS. XMLType im SQL-Entwickler angezeigt. So wie bekomme ich den Inhalt der binären XML SELECT x. ID, x. Vid, x. details. getCLOBVal () FROM XMYTYPETESTx wo x. ID100000 Die obige Abfrage funktioniert für mich endlich. Die Oracle Dokumentation behauptet, dass es XMLType mehr speichert Kompakt als BINARY XML als als CLOB. Aber wie finde ich heraus, wie viel Platz von der binären xml genommen wird. Also, vsize scheint die Größe einer Art von Zeiger oder LOB Locator zu sein, und getclobval entpackt das binäre XML in Text. Aber was ist mit der Speichergröße der binären XML selbst Bitte helfen, die Tischgröße ist 340GB, also lohnt es sich, in die Speicheroptionen zu schauen. Fragte am 15. Juli um 17:41 Nun, ein Segment hat nichts mit einer Reihe als solche zu tun. Ein Segment ist entweder eine Tabelle, Tabellenpartition, Index, LOB. Das Wichtigste ist, mehr als 4k in ihm zu speichern, so dass dein lob won39t gespeichert werden quotin linequot, was bedeutet, innerhalb der eigentlichen Datenbank-Block der Zeile selbst, sondern ist in einem Zitat linequot LOB Segment gespeichert. Ndash gvenzl Jul 22 14 um 13:00 Rep-Ausgabe, nicht erlaubt, Kommentare zu schreiben, die Sie zwischen Fragen sagen wollten, wie ich verstand. Die einzige Ähnlichkeit ist Speicherplatz Problem, dachte, es könnte hilfreich sein, für Vermutung Schätzung. Sie haben nicht erwähnt, welche Art von Daten Sie als bXML speichern werden. Entpackt das binäre XML in Text Wenn reines XML dann hängt davon ab, welchen Kompressor du verwenden wirst. Normalerweise wird lzmagzip für die binäre Kompression verwendet. Vielleicht schreibe ich über zu offensichtliche Dinge, aber das ist alles, was ich kenne5 Mit Binary XML für Java Einführung in Binary XML für Java Binary XML wurde in Oracle 11 g Release 1 (11.1) eingeführt. Binäres XML macht es möglich, zwischen XML-Text und komprimiertem Binär-XML zu codieren und zu decodieren. Für die Effizienz werden die DOM - und SAX-APIs über die Binär-XML für den direkten Verbrauch durch die XML-Anwendungen bereitgestellt. Komprimierung und Dekomprimierung von Fragmenten eines XML-Dokuments erleichtern die inkrementelle Verarbeitung. In diesem Kapitel wird davon ausgegangen, dass Sie mit dem XML Parser für Java vertraut sind. Binäres XML-Speicherformat Eine XMLType-Speicheroption wird bereitgestellt, um das Speichern von XML-Dokumenten im neuen Binärformat zu ermöglichen. Die neue Speicheroption ist zusätzlich zu den vorhandenen CLOB - und Objekt-relationalen Speicheroptionen. XMLType-Tabellen und Spalten können mit der neuen Binär-XML-Speicheroption erstellt werden. Die XML-Daten im Binärformat können von allen vorhandenen SQL-Operatoren und Funktionen und PLSQL-APIs, die auf XMLType arbeiten, zugegriffen und manipuliert werden. Binary XML ist eine kompakte XML-Schema-bewusste Codierung von XML-Daten, kann aber mit XML-Daten verwendet werden, die nicht auf einem XML-Schema basieren. Sie können auch binäres XML für XML-Daten verwenden, die sich außerhalb der Datenbank befinden (z. B. in einer clientseitigen Anwendung). Binäres XML ermöglicht das Verschlüsseln und Decodieren von XML-Dokumenten von Text zu Binär und Binär zu Text. Binäres XML ist post-parse persistent XML mit nativen Datenbank-Datentypen. Binäres XML bietet eine effizientere Datenbankspeicherung, Aktualisierung, Indexierung, Abfrageleistung und Fragmententnahme als unstrukturierte Speicherung. Es kann Daten und Metadaten zusammen oder getrennt speichern. Binäre XML-Prozessoren Ein binärer XML-Prozessor ist ein abstrakter Begriff für die Beschreibung einer Komponente, die das binäre XML-Format in Text - und XML-Text in binäres XML-Format verarbeitet und transformiert. Es kann auch einen Cache für die Speicherung von Schemata. Die Basisklasse für einen binären XML-Prozessor ist BinXMLProcessor. Ein binärer XML-Prozessor kann Netzwerkprotokollanforderungen erzeugen oder empfangen. Modelle für die Verwendung von Binär-XML Es gibt mehrere Modelle für die Verwendung von binärem XML in Anwendungen. Erstens, hier ist ein Glossar der Begriffe: Glossar für Binary XML Hier ist ein Glossar der Begriffe für binäre XML-Nutzung: doc-id. Jedes codierte XML-Dokument wird durch eine eindeutige doc-id identifiziert. Es ist entweder eine 16-Byte-Globale Benutzer-ID (GUID) oder eine opake Sequenz von Bytes wie eine URL. Token Tisch. Wenn ein Text-XML-Dokument kein Schema mit ihm verknüpft ist, wird eine Token - (oder Symbol-) Tabelle verwendet, um Platz für wiederholte Elemente zu minimieren. Vokabular id Kann eine Schema-ID oder eine Namensraum-URI-Identifikation für eine Token-Tabelle sein. Schema-id Eine einzigartige undurchsichtige binäre Kennung für ein Schema, das auf den binären XML-Prozessor skopiert wurde. Die Schema-ID ist für einen binären XML-Prozessor eindeutig und nur im Rahmen dieses binären XML-Prozessors identifizierbar. Die Schema-id bleibt auch dann konstant, wenn das Schema entwickelt wird. Eine schema-id repräsentiert den gesamten Satz von Schemadokumenten, einschließlich importierter und eingeschlossener Schemata. Schema-Version. Jedes kommentierte Schema hat eine Versionsnummer, die damit verbunden ist. Die Versionsnummer wird als Teil der Annonaten der Systemebene angegeben. Es wird durch den binären XML-Prozessor inkrementiert, wenn ein Schema entwickelt wird (dh eine neue Version des gleichen Schemas wird mit dem binären XML-Prozessor registriert). Teilgültigkeit. Binäre XML-Stream-Codierung mit Schema impliziert zumindest teilweise Gültigkeit in Bezug auf das Schema. Die Teilgültigkeit impliziert keine Validierung für eindeutige Schlüssel, Keyrefs, IDs oder IDREFs. Standalone Model Dies ist das einfachste Einsatzszenario für binäres XML. Es gibt einen einzigen binären XML-Prozessor. Das einzige Repository ist der lokale In-Memory-Vokabeln-Cache, der nicht persistent ist und nur für die Lebensdauer des binären XML-Prozessors verfügbar ist. Alle Schemata müssen vor der Codierung im Voraus mit dem binären XML-Prozessor registriert werden oder können automatisch registriert werden, wenn der XML-Prozessor das xsi: SchemaLocation-Tag sieht. Für die Decodierung ist das Schema bereits im Vokabular-Cache verfügbar. Wenn die Decodierung in einem anderen binären XML-Prozessor auftritt, finden Sie die verschiedenen hier beschriebenen Web Services-Modelle. Client-Server-Modell In diesem Szenario ist der binäre XML-Prozessor mit einer Datenbank mit JDBC verbunden. Es wird davon ausgegangen, dass das Schema vor der Codierung mit der Datenbank registriert ist. Hier ist ein Beispiel dafür, wie man das erreicht: Sofern keine separate Verbindung für Daten angegeben ist (mit associateDataConnection ()) wird davon ausgegangen, dass alle Daten und Metadaten mit einer einzigen Verbindung zur Kodierung und Decodierung gespeichert und abgerufen werden. Web Services Model mit Repository In diesem Szenario gibt es mehrere Clients, die jeweils einen binären XML Prozessor ausführen. Ein Client macht die Codierung und der andere Client macht die Decodierung. Es gibt ein gemeinsames Repository (das ist nicht unbedingt eine Datenbank), die mit allen Clients für den Metadatenspeicher verbunden ist. Es kann ein Dateisystem oder ein anderes Repository sein. Der erste binäre XML-Prozessor stellt sicher, dass das Schema mit dem Repository registriert wird, bevor die Codierung durchgeführt wird, oder das Schema kann automatisch mit dem xsi: schemaLocation-Tag zum Zeitpunkt der Codierung registriert werden. Der zweite binäre XML-Prozessor wird zum Decodieren verwendet, ist sich nicht der Lage des Schemas bewusst und holt das Schema aus dem Repository. Wenn der erste binäre XML-Prozessor ein Schema registriert und der zweite binäre XML-Prozessor das gleiche Schema im Repository registriert, kompiliert der binäre XML-Prozessor das Schema nicht, sondern gibt einfach die Vokabeln-ID des vorhandenen kompilierten Schemas im lokalen Vokabular-Cache zurück. Der BinXMLProcessor ist nicht threadsicher, so dass mehrere Threads oder Clients, die auf das Repository zugreifen, ein eigenes Thread-Sicherheitsschema implementieren müssen. Web Services-Modell ohne Repository In diesem Szenario gibt es mehrere Clients, die jeweils einen binären XML-Prozessor ausführen. Encoding und Decodierung können auf verschiedenen Clients passieren. Es gibt kein gemeinsames Metadaten-Repository. Der Encoder muss sicherstellen, dass die binären Daten, die an den nächsten Client übergeben werden, unabhängig vom Schema sind: das heißt, hat Inline-Token-Definitionen. Dies kann erreicht werden, indem schemaAware false und inlineTokenDefs true gesetzt wird. Verwenden Sie die setProperty () - Methode während der Codierung. Beim Decodieren ist kein Schema erforderlich. Die Teile von Binary XML für Java Die Java XML Binärfunktionalität besteht aus drei Teilen: Binäre XML-Codierung - Der binäre XML-Encoder konvertiert XML 1.0 Infoset in binäres XML. Binäre XML-Decodierung - Der binäre XML-Decoder konvertiert binäres XML in XML-Infoset. Binäres XML-Vokabularmanagement, das Schema-Management und Token-Management beinhaltet. Binäre XML-Encoding Der Encoder wird aus dem BinXMLStream erstellt. Es nimmt als Eingabe den XML-Text und gibt das codierte binäre XML an das BinXMLStream aus, aus dem es erstellt wurde. Der Encoder liest den XML-Text mit Streaming SAX. Die Codierung des XML-Textes basiert auf den Ergebnissen der XML-Analyse. Setzen Sie das SchemaAware-Flag auf den Encoder, der angibt, ob die Codierung schema-aware oder schema-less ist. Bei der Schema-bewussten Codierung bestimmt der Encoder, ob das Schema mit der jeweiligen Schema-URL beim Vokabelmanager registriert wurde. Für einen repositorybasierten oder einen datenbankbasierten Prozessor fragt der Encoder das Repository oder die Datenbank für das kompilierte Schema auf der Basis der Schema-URL ab. Wenn das Schema in der Datenbank verfügbar ist, wird es aus dem Repository oder der Datenbank im binären XML-Format abgerufen und bei dem lokalen Vokabularmanager registriert. Das Vokabular ist Schema. Setzen Sie auch ein Flag, um anzuzeigen, dass die Codierung zu einem binären XML-Stream führt, der unabhängig von einem Schema ist. In diesem Fall enthält der resultierende binäre XML-Stream alle Tokendefinitionen inline und ist nicht abhängig von Schema oder externen Tokensätzen. Wenn die Codierung schema-bewusst ist, verwendet der Encoder die Datentypinformationen aus dem Schemaobjekt für eine effizientere Codierung des SAX-Streams. Es ist ein Standard-Codierungs-Datentyp, der jedem Schema-eingebauten Datentyp zugeordnet ist. Binäre XML-Stream-Codierung mit einem Schema impliziert zumindest teilweise Gültigkeit in Bezug auf das Schema (Für partielle Gültigkeit gibt es keine Validierung für eindeutige Schlüssel oder Keyref oder ID oder DREFs). Wenn die Daten in Bezug auf ein Schema vollständig gültig sind, speichert der codierte binäre XML-Stream diese Information. Oracle XML DB Developers Guide für Tabellen der binären Codierungs-Datentypen und deren Zuordnungen aus XML-Schema-Datentypen Wenn kein Schema mit dem Text-XML verknüpft ist, werden Integer-Token-IDs für wiederholte Elemente im Text-XML generiert. Das Erstellen einer Token-Tabelle von Token-IDs und Token-Definitionen ist eine wichtige Komprimierungstechnik. Die Token-Definitionen werden als Token-Tabellen im Vokabular-Cache gespeichert. Wenn die Eigenschaft für Inline-Token-Definitionen gesetzt ist, sind die Token-Definitionen inline vorhanden. Eine weitere Eigenschaft auf dem Encoder spezifiziert PSVI (Post Schema Validated Infoset) Informationen als Teil des Binärstroms. Wenn dies auf true gesetzt ist, können auf PSVI-Informationen über XDK-Erweiterungs-APIs für PSVI auf DOM zugegriffen werden. Wenn psvi wahr ist, dann ist das eingegebene XML vollständig in Bezug auf das Schema validiert. Wenn psvi falsch ist, dann sind PSVI-Informationen nicht im Ausgabe-Binärstrom enthalten. Die Voreinstellung ist false. Binäre XML-Decodierung Der binäre XML-Decoder konvertiert binäres XML in XML-Infoset. Der Decoder wird aus dem BinXMLStream erstellt und liest binäres XML aus diesem Stream und gibt SAX-Events aus oder bietet eine Pull-Style InfosetReader-API zum Lesen des dekodierten XML. Wenn ein Schema mit dem BinXMLStream verknüpft ist. Der binäre XML-Decoder ruft das zugehörige Schema-Objekt aus dem Vokabular-Cache mit der Vokabular-ID vor der Decodierung ab. Wenn das Schema im Vokabular-Cache nicht verfügbar ist und die Verbindungsinformationen zum Server verfügbar sind, wird das Schema vom Server abgerufen. Wenn kein Schema mit BinXMLStream verknüpft ist. Dann können die Token-Definitionen entweder inline im BinXMLStream sein oder in einem Tokensatz gespeichert werden. Wenn Token eines entsprechenden Namensraums nicht im lokalen Vokabular-Cache gespeichert sind, wird der Tokensatz aus dem Repository geholt. Binäres XML-Vokabular-Management Die binären XML-Prozessoren sind von verschiedenen Typen abhängig davon, wo sich die Metadaten (Schema oder Token-Sets) befinden - entweder lokaler binärer XML-Prozessor oder repository binärer XML-Prozessor. Schema-Management Für die Metadaten-Persistenz wird empfohlen, dass Sie den DB Binary XML-Prozessor verwenden. In diesem Fall werden Schemata und Tokensets mit der Datenbank registriert. Der Vokabelmanager holt die Schema - oder Tokensätze aus der Datenbank und cache sie im lokalen Vokabular-Cache für Codierungs - und Decodierungszwecke. Wenn Sie ein persistentes Metadaten-Repository verwenden müssen, das keine Datenbank ist, können Sie Ihr eigenes Metadaten-Repository anschließen. Sie müssen die Schnittstelle für die Kommunikation mit diesem Repository, BinXMLMetadataProvider implementieren. Schemaregistrierung Registrierungsschemata lokal mit dem lokalen binären XML-Prozessor. Der lokale binäre XML-Prozessor enthält einen Vokabelmanager, der alle vom Benutzer übermittelten Schemata für die Dauer seiner Existenz aufrechterhält. Der Vokabelmanager, der mit einem lokalen binären XML-Prozessor verknüpft ist, stellt keine Schema-Persistenz bereit. Wenn Sie das gleiche Schema (dieselbe Schema-Position und denselben Ziel-Namespace) registrieren, wird das Schema nicht analysiert und die vorhandene Vokabeln-ID wird zurückgegeben. Wenn ein neues Schema mit demselben Ziel-Namespace und einem anderen Schema-Speicherort registriert wird, wird die vorhandene Schema-Definition mit den neuen Schema-Definitionen erweitert oder führt zu Konfliktfehlern. Schema-Identifizierung Jedes Schema wird durch eine Vokabeln-ID identifiziert. Die Vokabeln-ID liegt im Umfang des Prozessors und ist innerhalb des Prozessors eindeutig. Jedes Dokument, das mit einem Schema validiert wird, muss mit einer neuesten Version des Schemas validiert werden. Schema-Annotationen Binäre XML-Annotationen können nur innerhalb des ltxsd: appInfogt-Elements in einem Schema erscheinen. Es gibt zwei Kategorien von Schema-Annotationen - User-Level und System-Ebene. Der Vokabelmanager interpretiert diese zum Zeitpunkt der Schemaregistrierung. Alle anderen Arten von Annotationen (z. B. datenbankbezogene Annotationen werden ignoriert). User-Level Annotations Diese werden vom Benutzer vor der Registrierung angegeben. EncodingType - Dies kann in einem xsd: Element verwendet werden. Xsd: attribute oder xsd: simpleType-Elemente. Es gibt den Datentyp an, der für die Codierung des Knotenwerts des jeweiligen Elements oder Attributs verwendet werden soll. Für Strings gibt es nur Unterstützung für UTF8-Codierung in dieser Version. System-Level-Annotationen Der Vokabel-Manager fügt diese zum Zeitpunkt der Registrierung hinzu, die Sie nicht überschreiben können. Token Management Tokensets können aus dem Datenbank - oder Metadaten-Repository abgerufen werden, das im lokalen Vokabelmanager zwischengespeichert und zum Decodieren verwendet wird. Während der Verschlüsselung können Tokensets zum Beharren in das Repository geschoben werden. Token-Definitionen können auch als Teil des binären XML-Streams aufgenommen werden, indem ein Flag auf dem Encoder gesetzt wird. Verwenden von Java Binary XML Package Eine BinXMLStream Klasse repräsentiert den binären XML Stream. Die für den binären XML Stream definierten Speicherplätze sind: InputStream - Stream zum Lesen. OutputStream - Stream zum Schreiben. URL - Stream zum Lesen. Datei - Stream zum Lesen und Schreiben. BLOB - Stream zum Lesen und Schreiben. Byte-Array - Stream zum Lesen und Schreiben. Im Speicher - Stream zum Lesen und Schreiben. Das BinXMLStream-Objekt gibt die Art der Speicherung während der Erstellung an. Ein BinXMLStream-Objekt kann aus einer BinXMLProcessor-Fabrik erstellt werden. Diese Fabrik kann mit einer JDBC-Verbindung (für Remote-Metadaten-Zugriff), Verbindungspool, URL oder einem PageManagerPool (für faulen Speicher im Speicher) initialisiert werden. BinXMLEncoder und BinXMLDecoder können aus dem BinXMLStream für die Codierung oder Decodierung erstellt werden. 1. Hier ist ein Beispiel für die Erstellung eines Prozessors ohne Repository, das Registrieren eines Schemas, das Codieren von XML-SAX-Ereignissen in das Schema-bewusste Binärformat und das Speichern in einer Datei: Zusätzlich zum Erhalten des ContentHandlers. Sie können auch die anderen Handler, wie zum Beispiel: Verwenden Sie hdlr in der Anwendung, die die SAX-Ereignisse generiert. 2. Hier ist ein Beispiel für die Erstellung eines Prozessors mit einem Datenbank-Repository, das Decodieren eines Schema-bewussten Binär-Streams und das Lesen der dekodierten XML mit Pull-API. Das Schema wird aus dem Datenbank-Repository zur Decodierung abgerufen. Verwenden Sie xmlreader, um XML in einem Pull-Style aus dem Decoder zu lesen. Binärer XML-Encoder Der Encoder nimmt den XML-Eingang, der mit SAX-Ereignissen analysiert und gelesen wird, und gibt binäres XML aus. Schema-less-Option Sie können die Schema-bewusste oder die Schema-freie Option vor der Codierung angeben. Die Voreinstellung ist schemalose Codierung. Wenn die Schema-aware-Option gesetzt ist, wird die Codierung auf der Grundlage von Schemata durchgeführt, die im Instanzdokument angegeben sind. Das für die Codierung verwendete kommentierte Schema ist auch zum Zeitpunkt der Decodierung erforderlich. Wenn die schema-less-Option angegeben ist, dann ist die Codierung unabhängig von Schema (s), aber die Token sind standardmäßig inline. Um die Voreinstellung zu überschreiben, setzen Sie Inline-Token false. Inline-Token-Option Sie können eine Option zum Erstellen eines binären XML-Streams mit Inline-Token-Definitionen vor der Codierung festlegen. Wenn das Inlining deaktiviert ist, müssen Sie sicherstellen, dass die Prozessoren für den Encoder oder Decoder das gleiche Metadaten-Repository verwenden. Das Flag Inline-Token wird ignoriert, wenn die Schema-aware-Option wahr ist. Standardmäßig sind die Token-Definitionen inline. Abbildung 5-1 Binäre XML-Encoding Binärer XML-Decoder Der binäre XML-Decoder nimmt den Binär-XML-Stream als Eingabe und erzeugt SAX-Events als Ausgabe oder stellt eine Pull-Schnittstelle zur Verfügung, um das dekodierte XML zu lesen. Im Falle eines schema-aware binären XML-Streams interagiert der binäre XML-Decoder mit dem Vokabelmanager, um die Schemainformationen zu extrahieren. Wenn der Vokabelmanager nicht das erforderliche Schema enthält und der Prozessor vom Typ binärer XML-DB mit einer gültigen JDBC-Verbindung ist, dann wird das entfernte Schema aus der Datenbank oder dem Metadaten-Repository basierend auf der Vokabeln-ID im binären XML-Stream abgerufen Dekodiert werden Ebenso kann die Menge der Token-Definitionen aus der Datenbank oder dem Metadaten-Repository abgerufen werden. Abbildung 5-2 Binäre XML-Decoder-Schema-Registrierung Hier ist der Ablauf dieses Prozesses: Wenn das Vokabular ein XML-Schema ist, nimmt es den XML-Schema-Text als Eingabe. Der Schema-Annotator kommentiert den Schema-Text mit Annonaten der Systemebene. Das Schema kann bereits einige Benutzer-Level-Annotationen haben. Das resultierende annotierte Schema wird vom Schema Builder verarbeitet, um ein XML-Schema-Objekt zu erstellen. Dieses XML-Schema-Objekt wird im Vokabular-Cache gespeichert. Der Vokabular-Cache weist für jedes XML-Schema-Objekt eine eindeutige Vokabular-ID zu, die als Ausgabe zurückgegeben wird. Die annotierte DOM-Darstellung des Schemas wird an den binären XML-Encoder gesendet. Auflösen von xsi: schemaLocation Während der Codierung, wenn schemaAware wahr ist und die Eigenschaft ImplcitSchemaRegistration wahr ist. Dann registriert das erste xsi: schemaLocation-Tag, das im Root-Element eines XML-Instanzdokuments vorhanden ist, dieses Schema automatisch im lokalen Vokabelmanager. Alle anderen schemaLocation-Tags sind nicht explizit registriert. Wenn der Prozessor datenbankorientiert ist, dann ist das Schema auch in der Datenbank in ähnlicher Weise für jeden Metadaten-Repository-basierten Prozessor registriert. Wenn die Codierung auf schemaAware gesetzt ist, ist false oder ImplcitSchemaRegistration ist false. Dann werden alle xsi: schemaLocation-Tags vom Encoder ignoriert. Binäres XML-DB Ein DBBinXMLMetadataProvider-Objekt wird entweder mit einer dedizierten JDBC-Verbindung oder einem Verbindungspool instanziiert, um auf Vokabeldaten wie Schema und Token-Set zuzugreifen. Der Prozessor ist auch mit einer oder mehreren Datenverbindungen verbunden, um auf XML-Daten zuzugreifen. Ein binärer XML-Prozessor kann mit der Datenbank für verschiedene Arten von binären XML-Operationen kommunizieren, die das Speichern und Abrufen von binären XML-Schemata, Tokensets und binären XML-Streams beinhalten. Die Datenbankkommunikation ist auf folgende Weise beteiligt: ​​Extrahieren des komprimierten binären XML-Schemas mit der Vokabular-ID oder der Schema-URL Um ein kompiliertes binäres XML-Schema für die Codierung abzurufen, wird die Datenbank basierend auf der Schema-URL abgefragt. Zum Decodieren des binären XML-Schemas holen Sie es aus der Datenbank auf der Grundlage der Vokabular-ID. Speichern eines nicht kompilierten binären XML-Schemas unter Verwendung der Schema-URL und Abrufen der Vokabular-ID. Wenn das xsi: schemaLocation-Tag während der Codierung angetroffen wird, wird das Schema in der Datenbank für die persistente Speicherung in der Datenbank registriert. Die dem Schema zugeordnete Vokabular-ID sowie die binäre Version des kompilierten Schemas werden aus der Datenbank zurückgewonnen, wobei das kompilierte Schema-Objekt im lokalen Cache unter Verwendung der aus der Datenbank zurückgegebenen Vokabular-ID erstellt und gespeichert wird. Abrufen eines Binär-Tokens mit Namespace-URL. Wenn ein binärer Stream, der decodiert werden soll, mit Token-Tabellen für die Decodierung verknüpft ist, werden diese aus der Datenbank mit der Metadaten-Verbindung geholt. Speichern von Binär-Token-Set mit Namespace-URL Wenn der XML-Text ohne ein Schema codiert wurde, ergibt sich ein Token-Satz von Token-Definitionen. Diese Token-Tabellen können in der Datenbank persistent gespeichert werden. Die Metadatenverbindung wird für die Übertragung des Tokensatzes in die Datenbank verwendet. Binärer XML-Stream mit Remote-Speicheroption Es liegt in Ihrer Verantwortung, eine Tabelle mit einer XMLType-Spalte mit binärem XML zu erstellen, um das Ergebnis der Codierung zu speichern und das binäre XML zum Decodieren abzurufen. Die Kommunikation mit der Datenbank kann mit SQLNet und JDBC erreicht werden. Holt das XMLType-Objekt aus der Ausgabeergebnismenge der JDBC-Abfrage ab. Der BinXMLStream zum Lesen der Binärdaten oder zum Schreiben von Binärdaten kann aus dem XMLType-Objekt angelegt werden. Die XMLType-Klasse muss erweitert werden, um das Lesen und Schreiben von binären XML-Daten zu unterstützen. Persistente Speicherung von Metadaten Ein lokaler Vokabularmanager und Cache speichert Metadateninformationen im Speicher für die Lebensdauer des BinXMLProcessors. Verbinden Sie Ihren eigenen Back-End-Speicher für Metadaten, indem Sie die BinXMLMetadataProvider-Schnittstelle implementieren und in den BinXMLProcessor stecken. Zurzeit wird nur ein Metadatenanbieter für jeden Prozessor unterstützt. Sie müssen einen FileBinXMLMetadataProvider kodieren, der die BinXMLMetadataProvider-Schnittstelle implementiert. Der Encoder und Decoder verwendet diese APIs, um auf Metadaten aus dem beharrten Back-End-Speicher zuzugreifen. Richten Sie die Konfigurationsinformationen für den persistenten Speicher ein: z. B. das Root-Verzeichnis im Falle eines Dateisystems in der FileBinXMLMetadataProvider-Klasse. Instanzieren Sie FileBinXMLMetadataProvider und stecken Sie es in den BinXMLProcessor ein. Scripting auf dieser Seite verbessert die Inhaltsnavigation, verändert aber den Inhalt nicht.


No comments:

Post a Comment