DE10248758B4 - Verfahren und Vorrichtungen zum Encodieren/Decodieren von XML-Dokumenten - Google Patents

Verfahren und Vorrichtungen zum Encodieren/Decodieren von XML-Dokumenten Download PDF

Info

Publication number
DE10248758B4
DE10248758B4 DE10248758A DE10248758A DE10248758B4 DE 10248758 B4 DE10248758 B4 DE 10248758B4 DE 10248758 A DE10248758 A DE 10248758A DE 10248758 A DE10248758 A DE 10248758A DE 10248758 B4 DE10248758 B4 DE 10248758B4
Authority
DE
Germany
Prior art keywords
group
names
type
minoccurs
xml
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10248758A
Other languages
English (en)
Other versions
DE10248758A1 (de
Inventor
Jörg Heuer
Andreas Hutter
Ulrich Niedermeier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to DE10248758A priority Critical patent/DE10248758B4/de
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE50303493T priority patent/DE50303493D1/de
Priority to US10/521,832 priority patent/US7707154B2/en
Priority to ES03787637T priority patent/ES2262000T3/es
Priority to BR0312681-1A priority patent/BR0312681A/pt
Priority to KR1020057000504A priority patent/KR100968083B1/ko
Priority to RU2005103833/09A priority patent/RU2005103833A/ru
Priority to CN03816871A priority patent/CN100580661C/zh
Priority to JP2004528352A priority patent/JP4197320B2/ja
Priority to EP03787637A priority patent/EP1522028B9/de
Priority to AT03787637T priority patent/ATE327538T1/de
Priority to PCT/DE2003/002274 priority patent/WO2004017225A1/de
Priority to AU2003250302A priority patent/AU2003250302A1/en
Publication of DE10248758A1 publication Critical patent/DE10248758A1/de
Application granted granted Critical
Publication of DE10248758B4 publication Critical patent/DE10248758B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Abstract

Verfahren zum Encodieren und Übertragen eines XML-Dokuments, mit folgenden Schritten:
a) Normierung des zu dem XML-Dokument zugehörigen XML-Schemas, wobei die Normierung des XML-Schemas einen der folgenden Schritte umfasst:
– Vereinfachung einer Gruppe, die nur ein Element enthält:
Die Gruppe wird aufgelöst, und das enthaltene Element wird auf der Ebene der aufgelösten Gruppe in das Content Modell einsortiert, wobei die Attribute minOccurs und maxOccurs des Elements durch die Produkte der entsprechenden Attribute der aufgelösten Gruppe und des Elements vor der Umgruppierung ersetzt werden;
– Vereinfachung einer choice-Gruppe, die ein Element mit dem Attributwert minOccurs=0 enthält:
Das Attribut minOccurs der choice-Gruppe wird unabhängig vom vorhergehenden Wert auf 0 gesetzt, dem Element, das einen Attributwert minOccurs=0 hatte, wird ein Attributwert minOccurs=1 zugewiesen;
– Vereinfachung von verschachtelten choice-Gruppen:
Enthält eine choice-Gruppe eine andere choice-Gruppe, die die Attributwerte minOccurs=maxOccurs=1 enthält, so wird diese choice-Gruppe aufgelöst, und der Inhalt...

Description

  • Die Erfindung betrifft Verfahren bzw. Vorrichtungen zum Encodieren von XML-Dokumenten, bei denen aus einem strukturierten Dokument in Abhängigkeit eines Schemas ein Bitstrom erzeugt wird und ein Verfahren bzw. eine Vorrichtung zum Decodieren, bei denen aus einem Bitstrom in Abhängigkeit eines Schemas ein strukturiertes Dokument erzeugt wird.
  • Im Rahmen der Arbeit am MPEG-7 Standard wurde ein Verfahren zur binären Codierung von XML Daten entwickelt, das im folgenden BiM-Verfahren genannt wird und beispielsweise aus der Veröffentlichung ISO/IEC FDIS 15938-1:2001(E), "Information Technology – Multimedia Content Description Interface – Part 1: Systems" bekannt ist. Dieses Verfahren verwendet XML Schema Definitionen, die beim Encoder und Decoder vorliegen, beispielsweise das MPEG-7 Schema, um die Codes für die einzelnen Datenelemente der XML Beschreibung zu generieren. Dieses Verfahren setzt voraus, dass dem Encoder und dem Decoder zumindest teilweise die selben Schemadefinitionen vorliegen. Dies kann beispielsweise gewährleistet werden, indem ein standardisiertes XML Schema im Decoder fest eingebaut wird. Außerdem besteht die Möglichkeit, das Schema separat oder zusätzlich zum eigentlichen Dokument dem Decoder zu übermitteln. Die Übertragung des Schemas vom Encoder zum Decoder kann in textueller Form durchgeführt werden, wobei eine Standard Textkompression, wie z.B. ZIP, angewendet werden kann.
  • Die Druckschrift "Multimedia Messaging mit MPEG-7", A. Kaup, J. Heuer, U. Rauschenbach, Fernseh- und Kino-Technik, 56. Jahrgang, Nr. 1–2/2002, S. 27–30 beschreibt die Codierung von Multimedia-Nachrichten auf der Basis von XML-Schemas mit dem MPEG-7 Standard.
  • Die der Erfindung zu Grunde liegende Aufgabe besteht nun darin, Verfahren bzw. Vorrichtungen derart anzugeben, dass die Übertragung des Schemas besonders effizient erfolgt und dass die übertragene Datenmenge und die Rechenleistung am Decoder, die für die Erzeugung der Codetabellen aus dem Schema nötig ist, reduziert wird. Außerdem soll die Konsistenz eines nicht vollständig übertragenen Schemas sichergestellt werden.
  • Diese Aufgabe wird hinsichtlich des Encodierverfahrens durch die Merkmale des Patentanspruchs 1, hinsichtlich des Decodierverfahrens durch die Merkmale des Patentanspruchs 6, hinsichtlich der Encodiervorrichtung durch die Merkmale des Patentanspruchs 11 und hinsichtlich der Decodiervorrichtung durch die Merkmale des Patentanspruchs 12 erfindungsgemäß gelöst.
  • Die weiteren Ansprüche betreffen vorteilhafte Ausgestaltungen der erfindungsgemäßen Verfahren bzw. Vorrichtungen.
  • Die Erfindung besteht im wesentlichen darin, mit einem Encodierverfahren aus einem normierten Schema in Abhängigkeit eines Metaschemas einen Bitstrom oder einen Teil eines Bitstromes zu erzeugen und diesen Bitstrom mit einem Decodierverfahren zu decodieren.
  • Die Erfindung wird nachfolgend anhand von in den Zeichnungen dargestellten Ausführungsbeispielen erläutert. Dabei zeigt
  • 1 eine Prinzipdarstellung zu Erläuterung der erfindungsgemäßen Encodierung/Decodierung,
  • 2 eine Darstellung zur Erläuterung der Details einer bevorzugten Ausführungsform der Erfindung,
  • 3 eine Darstellung zur Erläuterung der Details einer weiteren bevorzugten Ausführungsform der Erfindung und
  • 4 eine Prinzipdarstellung einer bevorzugten Ausführungsform eines erfindungsgemäßen Decoders.
  • Da XML Schemas ihrerseits XML Dokumente sind, denen eine standardisierte Syntaxdefinition zugrunde liegt, nämlich ein sogenanntes "Schema for Schemas" (W3C Spezifikation), das quasi ein Metaschema darstellt, kann ein Schema ebenfalls mit dem oben genannten BiM-Verfahren codiert und übertragen werden. Es sei hierbei angemerkt, dass alle im Folgenden verwendeten XML-Definitionen dem Fachmann hinlänglich bekannt sind und in der normativen Beschreibung der XML-Schema-Sprache gemäß der W3C-Empfehlung vom 2. Mai 2001 (http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/) enthalten sind.
  • In 1 ist eine Anordnung gezeigt, bei der, in einem ersten Schritt, mit einem BiM-Encodierverfahren BiM-E aus einem XML-Schema XMLS in Abhängigkeit eines Metaschemas SS ein Teil eines Bitstromes oder ein Bitstrom BS1 erzeugt wird und bei der, in einem zweiten Schritt, mit dem selben BiM-Encodierverfahren BiM-E aus einem XML-Dokument XML in Abhängigkeit des Schemas XMLS ein weiterer Teil des Bitstromes oder ein Bitstrom BS2 erzeugt wird sowie in umgekehrter Richtung mit einem BiM-Decodierverfahren BiM-D aus den beiden Teile des Bitstromes oder aus den Bitströmen BS1 und BS2 ein XML Schema und das XML-Dokument wiedergewonnen werden.
  • In einer ersten bevorzugten Ausgestaltung der Erfindung wird eine Abspaltung von sogenannten „anonymous Types" aus der Element- bzw. Attributdeklaration vorgenommen.
  • Die Übertragung eines XML Dokuments erfolgt beim BiM-Verfahren "depth first", der Vorgang der Schema Kompilierung am Decoder verlangt aber einen Aufbau "breadth first", wobei die diese Ausdrücke bspw. auf der Internetseite http://www.generation5.org/simple_search.shtml näher erläu tert sind. Bei Gruppen wie Sequence oder Choice kann dies durch einen kleinen Zwischenspeicher auf Decoderseite ausgeglichen werden, aber bei den "anonymous Types", die den Typ eines einzelnen Elements oder Attributs definieren können, rechtfertigt der Aufwand eine Umstrukturierung auf Encoderseite: die anonymous Type Definitionen, im nachfolgenden Beispiel mit AT0 bezeichnet, werden aus der Elementdeklaration des Elements " CurriculumVitae" herausgelöst und erhalten einen Namen und/oder Code, der zur Referenzierung bei dem entsprechenden Element verwendet wird.
  • Vorteilhafterweise wird hierdurch die Tiefe der Hierarchie der übertragenen Typen reduziert, wodurch die Kompilierung des Schemas auf der Decoderseite vereinfacht wird.
  • Beispiel:
  • Schema vor der Umstrukturierung
    Figure 00040001
  • Schema nach der Umstrukturierung
    Figure 00040002
  • Figure 00050001
  • Gemäß der Erfindung wird die Normierung der Syntax Trees, wie sie in BiM spezifiziert ist, auf der Encoderseite durchgeführt.
  • Im BiM-Verfahren werden sogenannte „Finite State Automatons", die zur Dekodierung des Bitstroms verwendet werden, aus Syntax Trees erzeugt, welche die Struktur des XML Schemas abbilden. Um die Codiereffizienz zu steigern, entsprechen diese Syntax Trees nicht 1:1 den textuellen XML Definitionen, sondern es werden Normierungen vorgenommen. Drei verschiedene Fälle können hierbei auftreten:
    1. Vereinfachung einer Gruppe, die nur ein Element enthält:
    Die Gruppe wird aufgelöst, und das enthaltene Element wird auf der Ebene der aufgelösten Gruppe in das Content Modell einsortiert, wobei die Attribute minOccurs und maxOccurs des Elements durch das Produkt der entsprechenden Attribute der aufgelösten Gruppe und des Elements vor der Umgruppierung ersetzt wird.
    2. Vereinfachung einer choice-Gruppe, die ein Element mit dem Attributwert minOccurs=0 enthält:
    Das Attribut „minOccurs" der choice Gruppe wird unabhängig vom vorhergehenden Wert auf 0 gesetzt, das Element, das einen Attributwert minOccurs=0 hatte, wird ein Attributwert minOccurs=1 zugewiesen.
    3. Vereinfachung von verschachtelten choice-Gruppen:
    Enthält eine choice Gruppe eine andere choice Gruppe, die die Attributwerte minOccurs=maxOccurs=1 enthält, so wird diese choice Gruppe aufgelöst, und der Inhalt direkt der darüberliegenden choice Gruppe eingegliedert.
  • Diese Vereinfachungen sollten bei der Übertragung des Schemas schon am Encoder vorgenommen werden, da die Syntax Tree Transformationen die Vergabe der normativen Codes beeinflusst, und die Kompilierung des Schemas auf Decoderseite vereinfacht wird, wenn das Content-Modell direkt übernommen werden kann.
  • Die Vorteile liegen hier darin, dass hierdurch ebenfalls der Decoder entlastet wird und das Content-Modell direkt wie es bei der Typdecodierung entsteht dem Schema-Compiler zugeführt werden kann.
  • In einer bevorzugten Ausgestaltung der Erfindung wird, wie in 2 gezeigt, eine Ersetzung der Zeichenketten von Typnamen durchgeführt.
  • Im Attribut "name" und "base" einer Typdefinition, sowie beim Attribut "type" einer Element- oder Attributdeklaration treten häufig im Schema die selben Typnamen auf, die als Zeichenkette mehrfach übertragen werden würden. Bei der Codierung von Typnamen ist es deshalb vorteilhaft, anstatt des Namens nur eine Nummer zu codieren, und separat dazu eine Tabelle, welche die Nummern wieder zu den ursprünglichen Namen in Beziehung setzt. Als Nummer bietet sich die Typnummer an, die der unten noch näher erläuterte Vererbungsbaum des Ur-Typs allen complexTypes zuordnet.
  • Entsprechendes gilt auch für das Attribut „name" von globalen Element-Deklarationen und deren Referenzen in „ref"-Attributen und für den Namen von Ersetzungsgruppen im Attribut "substitutionGroup". In diesen Fällen kann beispielsweise der Schemaverzweigungscode SBC der globalen Elemente verwendet werden.
  • Hiermit kann Datenvolumen eingespart werden, da eine wiederholte Referenzierung auf den selben Typnamen kompakter dargestellt werden kann und die Typzuordnungstabelle mit einem Standardkompressor besser komprimiert werden kann, da die Typnamen nicht über den Bitstrom verteilt auftreten, sondern kompakt in einem zusammenhängenden Bereich im Bitstrom.
  • In einer vorteilhaften Ausführungsform wird eine Liste umfassend die Typ- oder Elementnamen oder Namen von Erstetzungsgruppen codiert. Statt Nummern den Namen explizit zuzuordnen, wird in dieser Ausführungsform die Position eines Namen in der Liste als Nummer verwendet. Dies ist vorteilhaft, da in der Liste keine Nummern mehr codiert werden müssen und somit eine effizientere Übertragung gewährleistet ist.
  • In einer weiteren bevorzugten Ausgestaltung der Erfindung erfolgt eine Übertragung von Informationen für den Vererbungsbaum.
  • Jede Typdefinition enthält im sogenannten Attribut "base", falls es vorhanden ist, die Information, von welchem Typ er vererbt worden ist. Wenn alle diese Informationen für ein Schema gesammelt werden, ergibt sich eine Baumstruktur, der sogenannte Vererbungsbaum. Der Vererbungsbaum wird beim BiM-Codierungsverfahren verwendet, um im Falle einer Typumandlung (type-cast) den neuen Typ des Elements zu übermitteln. Dabei ist der Code, der allen vom Basistyp vererbten Typen zugeordnet wird, also der sogenannte Type Code, sowie die Länge dieses Codes für eine korrekte Dekodierung entscheidend. Die Länge ergibt sich aus der Gesamtzahl aller Typen im Vererbungsbaum unter dem Basistyp. Wenn das Schema vollständig übertragen wurde lassen sich sowohl die Codes als auch die Codelänge auf der Decoderseite eindeutig ermitteln. Wenn aber das Schema auf der Decoderseite nicht vollständig ist, muss noch Zusatzinformation übertragen werden, um bereits übertragenen Typen Type Codes zuzuweisen.
  • Jeder übertragene Typ hat im Namensfeld die Nummer des Typecode bezogen auf den Urtyp. Damit lässt sich der Typecode der abgeleiteten Typen durch einfache Differenzbildung ermitteln. Es fehlt noch die Information über die Mächtigkeit des durch den übertragenen Typen definierten Unterbaums, und damit die Länge der Typecodes der von diesem übertragenen Typen abgeleiteten Typen. Diese Länge lässt sich mit wenigen Bits in einem variablen Längencode übertragen.
  • In 3 ist beispielhaft ein Vererbungsbaum eines Schemas mit dem Typ A, von dem weitere Typen abgeleitet sind, dargestellt. Dieser Typ bekommt bezüglich des Urtyps "anyType" beispielsweise den Typecode 134. Von Typ A sind die Typen AA, AB und AC abgeleitet, deren Typecodes bezüglich des Urtyps angegeben sind. Um den Typecode bezüglich des Basistyps A zu ermitteln, genügt es vom Typecode des gewünschten Typs den Typecode des Basistyps und eins zu subtrahieren: TCType = TCType bzgl. Urtyp – TCBasistyp bzgl. Urtyp – 1
  • Die fehlende Information über die Länge des Typecodes läßt sich am besten in der Referenztabelle als zusätzliche Zahl integrieren.
  • Um die Information in der Typzuordnungstabelle mit einem Standardkompressor komprimieren zu können, empfiehlt es sich, sie auf ganze Bytes ausgerichtet abzulegen (bytealigned). Die erste Zahl ist eine vluimsbf5 Zahl, die die Zahl der Zeilen in der Tabelle codiert, dann folgt eine vluimsbf5 Zahl, die die Nummer an Bits für den Typecode codiert, und eine weitere vluimsbf5 Zahl, die den Typecode bzgl. des Urtyps selbst darstellt. Es folgen Füllbits oder Stuffing Bits, um die Ausrichtung auf Bytegrenzen zu erreichen.
  • Figure 00090001
  • Die Übertragung einer Typzuordnungstabelle ermöglicht es, die in einem kodierten Dokument evtl. vorhandenen Typecodes korrekt zu decodieren, auch wenn das zugrundeliegende Schema nicht oder noch nicht vollständig übertragen und/oder decodiert wurde.
  • Entsprechend sind mit globalen Elementen der globale SBC und bei Elementen, die zu einer Ersetzungsgruppe gehören, der Ersetzungscode zu übermitteln, wobei vorab für alle globalen Elemente einmal die globale SBC-Länge und mit dem Kopfelement der Ersetzungsgruppe die Länge des jeweiligen Ersetzungscodes übermittelt werden.
  • Es ist jede Kombination der in den einzelnen Ausgestaltungen dargestellten Merkmale bei der Encodierung möglich und kann in entsprechender Weise auch bei der Decodierung Eingang finden.
  • Das BiM-Verfahren erfordert es, dass das XML-Schema in ein Format kompiliert wird, das die Bestimmung der Länge der Codeworte und die Auswahl der Datenelemente durch die Werte der Codes gestattet. Dafür gibt es mehrere Möglichkeiten. Im MPEG-7 Standard (ISO/IEC 15938-1:2001 Part 1: Systems bzw. ISO/IEC 15938-6:2001 Part 6: Referenzsoftware) ist für die Decodierung der Nutzlast bzw. Payload ein Modell vorgeschlagen, das Endliche Zustandsautomaten (Finite State Automatons) verwendet, und für die Decodierung eines Context Pfades Codetabellen, die aus dem Schema generiert werden.
  • In einer in 4 dargestellten bevorzugten Ausgestaltung des erfindungsgemäßen Decoders wird der Decodiervorgang mit einem Bytecodemodell beschrieben, wobei die Schemastruktur in ein System aus vernetzten Zuständen übersetzt wird, die von einem Bytecodeinterpreter BCI abgearbeitet werden, wobei ein vom Encoder empfangener Bitstrom BS die Information über den auszuwählenden Folgezustand enthält. Im Unterschied zu dem Modell, das im MPEG-7 Standard vorgeschlagen wird, ist das Bytecodemodell so angelegt, dass sowohl ein Bitstrom, der eine Payload repräsentiert, als auch ein Bitstrom, der einen Context Pfad darstellt, decodiert werden kann. Es ist deshalb nicht erforderlich, dieselbe Information, die im Schema enthalten ist, zweimal für die verschiedenen Codierverfahren am Decoder vorzuhalten. Der Interpreter BCI liest die Information aus dem Eingangsbitstrom, die ein XML Dokument oder ein XML Schema im BiM Format codiert. Diese Information erlaubt die Auswahl unter den Folgezuständen des aktuellen Zustandes, der im Bytecode abgelegt ist. Die Folgezustände sind innerhalb des Bytecodes als Pointer P fest angelegt. Je nach Konfiguration wird ein Pfad, eine Payload oder ein Bytecode ausgegeben.
  • Die Decodierung eines Schemas läßt sich mit den oben vorgeschlagenen Modifikationen ebenfalls effizient im Bytecodemodell realisieren. In diesem Fall wird keine Payload und kein Pfad ausgegeben, sondern direkt Bytecode erzeugt, der vom Bytecodeinterpreter für die Decodierung der entsprechenden Typen verwendet werden kann.
  • Der Bytecode setzt sich aus Strukturelementen bzw. den Zuständen zusammen. Die Zustände sind von verschiedenem Typ, der mit dem Headerbitfeld des Zustandes identifiziert wird. Die Zustände enthalten abhängig vom Typ verschiedene Informationsfelder, die vom Bytecodeinterpreter gelesen, und je nach Konfiguration (Payload/Context Pfad) und aktuellem Zustand ausgewertet werden.
  • Für die Arten von Zuständen, welche die Schemainformation repräsentieren, sind mehrere Varianten denkbar. Wesentlich ist, dass sich durch die Zustände des Bytecodemodells alle Syntaxelemente eines XML Schemas nachbilden lassen, und dass die gesamte Information, die zur effizienten Decodierung der beiden im MPEG-7 Standard definierten Algorithmen (Context Pfad/Payload) notwendig ist, in den Zuständen zur Verfügung gestellt wird.
  • Ein möglicher Aufbau des Bytecodes wird im folgenden kurz dargestellt.
  • Arten von Zuständen, Übersicht:
  • 1. Kopfzustand eines complexTyps
  • Der Kopfzustand eines Typs bildet den Einsprungspunkt bei der Decodierung eines complexType. Er enthält den Namen des Typs (falls es sich nicht um einen anonymen Typ handelt) sowie Information zu Vererbung des Typs (Zeiger auf Basiszustand) sowie Polymorphismus.
  • Spezifisch für die Payloadcodierung ist ein Zeiger auf eine Liste der Attribute des Typs. Spezifisch für die Context Pfad Codierung sind Felder mit der Zahl der Kindelemente für die Context – und Operand Tree Branch Code Tabellen.
  • Das letzte Informationsfeld ist ein Zeiger auf den Folgezustand, d.h. der erste Zustand, der den Inhalt des complexTypes repräsentiert (beispielsweise ein Elementzustand oder ein Auswahlzustand).
  • Graphische Darstellung eines Kopfzustands:
    Figure 00120001
  • 2. Auswahlzustand
  • Ein Auswahlzustand bildet eine choice Gruppe des XML Schemas nach. Der Auswahlzustand enthält im wesentlichen eine Pointerliste mit möglichen Folgezuständen. Um den tatsächlich ausgewählten Zustand zu bestimmen, muß bei der Decodierung einer Payload der Bitstrom gelesen werden. Vom Auswahlzustand gibt es zwei Varianten: einen Startzustand, der in die verschiedenen möglichen Folgezustände verzweigt, sowie einen Endzustand, der die Auswahl wieder zusammenfaßt.
  • 3. Elementzustand
  • Der Elementzustand bildet eine Elementdeklaration in einem complexType eines Schemas nach. Er enthält einen Pointer auf eine Zeichenkette mit dem Namen des Elements, sowie einen Pointer auf den Kopfzustand des Typs. Ferner ist evtl. Information über die Länge des Position Codes (nur für Pfad-Decodierung) und für Substitution Groups vorhanden.
  • 4. Attributzustand
  • Ein Attributzustand bildet eine Attributdeklaration eines Schemas nach. Enthalten sind ein Pointer auf den Namen des Attributs, sowie ein Pointer auf den Kopfzustand des simple-Type des Attributs.
  • 5. Occurrencezustand
  • Ein Occurrencezustand bildet die minOccurs und maxOccurs Attribute nach, die bei einem XML Schema z.B. bei einem Element oder einer Gruppe (choice, sequence, ...) auftreten können. Er enthält einen Zeiger auf den Folgezustand, falls eine weitere Instanz des Elements oder der Gruppe auftritt, sowie einen Zeiger auf den Folgezustand, falls die letzte Instanz der Gruppe codiert wurde. Da bei XML Schemas die Möglichkeit besteht, daß ein Element sich selbst enthält (in der complexType Definition des Elements, oder in einer noch tieferen Verschachtelung tritt das Element selbst wieder auf), kann auch ein Occurrencezustand gleichzeitig mehr als einmal aktiv sein. Deshalb ist ein Zeiger auf einen Stapel innerhalb des Occurrencezustands erforderlich, die den aktuellen Zustand jeder aktiven Instanz des Occurrencezustands sichert.
  • 6. Endzustand eines Typs
  • Der Endzustand eines Typs enthält eine Zeigerliste mit allen Attributen dieses Typs. Sie ist bei der Decodierung eines Pfades erforderlich, da in den Tree Branch Code Tabellen alle Attribute am Ende der Tabelle einsortiert werden. Beim erreichen eines Endzustands verzweigt der Bytecodeinterpreter hierarchisch in das Element, das diesen Typ aufgerufen hat. Die entsprechende Information über das aufrufende Element muß im Arbeitsspeicher des Bytecodeinterpreters abgelegt sein.
  • 7. Kopfzustand eines simpleTypes
  • Dieser Zustand steuert die Decodierung von Inhalt, d.h. er enthält einen Pointer auf einen Codec, der spezifisch Daten des betreffenden Typs aus dem Bitstrom lesen und decodieren kann. Der Typ des Codecs ist in einem Informationsfeld spezifiziert.
  • Die wesentlichen Vorteile des Bytecodemodells im Vergleich zum Stand der MPEG-7 Referenzsoftware sind:
    • 1. Die Schemainformation wird für beide Codierverfahren (Context Pfad/Payload) nur einmal am Decoder repräsentiert. Der größte Teil der Information in den Bytecodezuständen sind für beide Verfahren relevant. Ein kleinerer Teil ist spezifisch für jeweils eines der beiden Verfahren. Deshalb ist die Darstellung der Schemainformation am Decoder sehr kompakt.
    • 2. Das Bytecodemodell stellt ein wohldefiniertes Datenformat für Schemainformation zur Verfügung, das sich z.B. auch zum Vorkompilieren und Abspeichern eignet (anstatt dem XML-Schema als Text).
    • 3. Die Ausführung des Bytecodes durch einen Standardprozessor kann sehr schnell erfolgen, da das Bytecodemodell den Decodiervorgang sehr gut vorbereitet. Alle Information ist direkt im Zustand über Zeiger verfügbar, und muß nicht (wie in ISO/IEC 15938-6, Part 6: Referenzsoftware) zum Teil erst in Listen gesucht werden.
  • Ein entsprechender Encoder kann auf die selbe Art und Weise realisiert werden, wobei er in der Weise invers ist, als dass die Zustände von der textuellen Repräsentation des strukturierten Dokuments gesteuert werden und die Zustandsübergänge die binäre Repräsentation generieren.

Claims (14)

  1. Verfahren zum Encodieren und Übertragen eines XML-Dokuments, mit folgenden Schritten: a) Normierung des zu dem XML-Dokument zugehörigen XML-Schemas, wobei die Normierung des XML-Schemas einen der folgenden Schritte umfasst: – Vereinfachung einer Gruppe, die nur ein Element enthält: Die Gruppe wird aufgelöst, und das enthaltene Element wird auf der Ebene der aufgelösten Gruppe in das Content Modell einsortiert, wobei die Attribute minOccurs und maxOccurs des Elements durch die Produkte der entsprechenden Attribute der aufgelösten Gruppe und des Elements vor der Umgruppierung ersetzt werden; – Vereinfachung einer choice-Gruppe, die ein Element mit dem Attributwert minOccurs=0 enthält: Das Attribut minOccurs der choice-Gruppe wird unabhängig vom vorhergehenden Wert auf 0 gesetzt, dem Element, das einen Attributwert minOccurs=0 hatte, wird ein Attributwert minOccurs=1 zugewiesen; – Vereinfachung von verschachtelten choice-Gruppen: Enthält eine choice-Gruppe eine andere choice-Gruppe, die die Attributwerte minOccurs=maxOccurs=1 enthält, so wird diese choice-Gruppe aufgelöst, und der Inhalt direkt der darüberliegenden choice-Gruppe eingegliedert; wobei die Begriffe Gruppe, Element, Content Modell, Attribut, minOccurs, maxOccurs und choice-Gruppe in der normativen Beschreibung der XML-Schema-Sprache definiert sind; b) Codieren des normierten XML-Schemas mit Hilfe eines Metaschemas; c) Übertragen des codierten XML-Schemas in einem ersten Bitstrom; d) Codieren des XML-Dokuments mittels des zugehörigen XML-Schemas; e) Übertragen des codierten XML-Dokuments in einem zweiten Bitstrom; wobei der erste und zweite Bitstrom zum Empfang für einen Decoder vorgesehen sind, der folgende Schritte ausführt: f) Decodieren des im ersten Bitstrom übertragenen codierten XML-Schemas in das normierte XML-Schema mittels des Metaschemas, wobei das normierte Schema und das Metaschema den bei der Codierung verwendeten Schemas entsprechen; g) Decodieren des im zweiten Bitstrom übertragenen codierten XML-Dokuments mittels des normierten XML-Schemas, ohne eine weitere Normierung des normierten XML-Schemas vorzunehmen.
  2. Verfahren nach Anspruch 1, bei dem Elementdeklarationen und/oder Attributdeklarationen der Schemadefinition eines strukturierten Dokuments derart umstrukturiert werden, dass anonyme Typdefinitionen (ATO) aus den Elementdeklarationen und/oder Attributdeklarationen herausgelöst werden und einen Namen und/oder Code erhalten, der zur Referenzierung bei dem entsprechenden Element verwendet wird.
  3. Verfahren nach Anspruch 1 oder 2, bei dem anstatt Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen nur Nummern sowie eine oder mehrere Tabellen mit einer Zuordnung zwischen Nummern und Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen codiert werden.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem eine oder mehrere Listen umfassend die Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen sowie die Positionen der Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen in der Liste anstatt Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen codiert werden.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem Informationen für den Vererbungsbaum von Typen, globalen Elementen und/oder Ersetzungsgruppen codiert werden, wobei jeder Typ durch eine Information über seinen Typcode bezogen auf den Urtyp und der Länge aller Typcodes, die sich auf den beschriebenen Typen beziehen, beschrieben wird und/oder jedes globale Element durch die Länge des SBC und einen SBC und/oder jedes Element in einer Ersetzungsgruppe durch die Länge der Ersetzungscodes und einen Ersetzungscode beschrieben wird.
  6. Verfahren zum Decodieren eines ersten und zweiten Bitstroms, die mit einem Encodierverfahren aus einem XML-Dokument erzeugt wurden, wobei das Encodierverfahren folgenden Schritte umfasst: a) Normierung des zu dem XML-Dokument zugehörigen XML-Schemas, wobei die Normierung des XML-Schemas einen der folgenden Schritte umfasst: – Vereinfachung einer Gruppe, die nur ein Element enthält: Die Gruppe wird aufgelöst, und das enthaltene Element wird auf der Ebene der aufgelösten Gruppe in das Content Modell einsortiert, wobei die Attribute minOccurs und maxOccurs des Elements durch die Produkte der entsprechenden Attribute der aufgelösten Gruppe und des Elements vor der Umgruppierung ersetzt werden; – Vereinfachung einer choice-Gruppe, die ein Element mit dem Attributwert minOccurs=0 enthält: Das Attribut minOccurs der choice-Gruppe wird unabhängig vom vorhergehenden Wert auf 0 gesetzt, dem Element, das einen Attributwert minOccurs=0 hatte, wird ein Attributwert minOccurs=1 zugewiesen; – Vereinfachung von verschachtelten choice-Gruppen: Enthält eine choice-Gruppe eine andere choice-Gruppe, die die Attributwerte minOccurs=maxOccurs=1 enthält, so wird diese choice-Gruppe aufgelöst, und der Inhalt direkt der darüberliegenden choice-Gruppe eingegliedert; wobei die Begriffe Gruppe, Element, Content Modell, Attribut, minOccurs, maxOccurs und choice-Gruppe in der normativen Beschreibung der XML-Schema-Sprache definiert sind; b) Codieren des normierten XML-Schemas mit Hilfe eines Metaschemas; c) Übertragen des codierten XML-Schemas in einem ersten Bitstrom; d) Codieren des XML-Dokuments mittels des zugehörigen XML-Schemas; e) Übertragen des codierten XML-Dokuments in einem zweiten Bitstrom; wobei in dem Decodierverfahren folgende Schritte ausgeführt werden: f) Decodieren des im ersten Bitstrom übertragenen codierten XML-Schemas in das normierte XML-Schema mittels des Metaschemas, wobei das normierte Schema und das Metaschema den bei der Codierung verwendeten Schemas entsprechen; g) Decodieren des im zweiten Bitstrom übertragenen codierten XML-Dokuments mittels des normierten XML-Schemas, ohne eine weitere Normierung des normierten XML Schemas vorzunehmen.
  7. Verfahren nach Anspruch 6, bei dem Elementdeklarationen und/oder Attributdeklarationen eines strukturierten Dokuments derart umstrukturiert werden, dass anonyme Typen (AT0), denen zur Übertragung ein Name und/oder ein Code zugewiesen wurde, in die jeweilige Elementdeklaration oder Attributdeklaration eingefügt werden, von der der jeweilige anonyme Typ referenziert wird.
  8. Verfahren nach Anspruch 6 oder 7, bei dem aus dem Bitstrom Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen über Nummern sowie eine oder mehrere Tabellen mit einer Zuordnung zwischen Nummern und Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen decodiert werden.
  9. Verfahren nach einem der Ansprüche 6 bis 8, bei dem aus dem Bitstrom Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen über eine oder mehrere Listen umfassend die Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen sowie die Positionen der Typnamen und/oder Elementnamen und/oder Namen von Ersetzungsgruppen in der Liste decodiert werden.
  10. Verfahren nach einem der Ansprüche 6 bis 9, bei dem zunächst aus dem Bitstrom Informationen für einen Vererbungsbaum von Typen und/oder globalen Elementen und/oder Ersetzungsgruppen decodiert werden, wobei jeder Typ durch eine Information über seinen Typcode bezogen auf den Urtyp und der Länge aller Typcodes, die sich auf den beschriebenen Typen beziehen, beschrieben wird, und/oder jedes globale Element durch die Länge des SBC und einen SBC und/oder jedes Element in einer Ersetzungsgruppe durch die Länge der Ersetzungscodes und einen Ersetzungscode beschrieben wird.
  11. Vorrichtung zum Encodieren von XML-Dokumenten, bei der eine Encodiereinheit vorhanden ist, die derart ausgestaltet ist, dass sie ein Encodierverfahren nach einem der Ansprüche 1 bis 5 ausführt.
  12. Vorrichtung zum Decodieren von XML-Dokumenten, bei der eine Decodiereinheit vorhanden ist, die derart ausgestaltet ist, dass sie ein Decodierverfahren nach einem der Ansprüche 6 bis 10 ausführt.
  13. Vorrichtung nach Anspruch 11, bei der die Encodiereinheit einen konfigurierbaren Bytecodeinterpreter aufweist, der Informationen in einem Bytecode interpretiert und der, abhängig von der Konfigurierung, aus dem strukturierten Dokument basierend auf einem Bytecode einen Code erzeugt, der einen Pfad oder eine Nutzlast repräsentiert.
  14. Vorrichtung nach Anspruch 12, bei der die Decodiereinheit einen konfigurierbaren Bytecodeinterpreter aufweist, der durch Informationen aus dem Bitstrom konfigurierbar ist und der, abhängig von der Konfigurierung, aus dem Bitstrom basierend auf einem Bytecode einen Pfad, eine Nutzlast oder einen Bytecode erzeugt.
DE10248758A 2002-07-15 2002-10-18 Verfahren und Vorrichtungen zum Encodieren/Decodieren von XML-Dokumenten Expired - Fee Related DE10248758B4 (de)

Priority Applications (13)

Application Number Priority Date Filing Date Title
DE10248758A DE10248758B4 (de) 2002-07-15 2002-10-18 Verfahren und Vorrichtungen zum Encodieren/Decodieren von XML-Dokumenten
AT03787637T ATE327538T1 (de) 2002-07-15 2003-07-07 Verfahren und vorrichtungen zum kodieren/dekodieren von strukturierten dokumenten,insbesondere von xml-dokumenten
ES03787637T ES2262000T3 (es) 2002-07-15 2003-07-07 Procedimiento y dispositivos para codificar/decodificar documentos estructurados, en particular documentos xml.
BR0312681-1A BR0312681A (pt) 2002-07-15 2003-07-07 Processo e dispositivo para codificação e decodificação de documentos estruturados, especialmente de documentos xml
KR1020057000504A KR100968083B1 (ko) 2002-07-15 2003-07-07 구조화된 문서들, 특히 xml 문서들을인코딩/디코딩하기 위한 방법 및 장치
RU2005103833/09A RU2005103833A (ru) 2002-07-15 2003-07-07 Способы и устройства для кодирования/декодирования структурированных документов, в особенности xml-документов
DE50303493T DE50303493D1 (de) 2002-07-15 2003-07-07 Verfahren und vorrichtungen zum kodieren/dekodieren von strukturierten dokumenten, insbesondere von xml-dokumenten
JP2004528352A JP4197320B2 (ja) 2002-07-15 2003-07-07 構造化された文章、特にxml文章の符号化/復号化のための方法及び装置
EP03787637A EP1522028B9 (de) 2002-07-15 2003-07-07 Verfahren und vorrichtungen zum kodieren/dekodieren von strukturierten dokumenten, insbesondere von xml-dokumenten
US10/521,832 US7707154B2 (en) 2002-07-15 2003-07-07 Method and devices for encoding/decoding structured documents, particularly XML documents
PCT/DE2003/002274 WO2004017225A1 (de) 2002-07-15 2003-07-07 Verfahren und vorrichtungen zum kodieren/dekodieren von strukturierten dokumenten, insbesondere von xml-dokumenten
AU2003250302A AU2003250302A1 (en) 2002-07-15 2003-07-07 Method and devices for encoding/decoding structured documents, especially xml documents
CN03816871A CN100580661C (zh) 2002-07-15 2003-07-07 结构化文档、尤其xml文档的编码/译码的方法和装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10231971 2002-07-15
DE10231971.5 2002-07-15
DE10248758A DE10248758B4 (de) 2002-07-15 2002-10-18 Verfahren und Vorrichtungen zum Encodieren/Decodieren von XML-Dokumenten

Publications (2)

Publication Number Publication Date
DE10248758A1 DE10248758A1 (de) 2004-02-05
DE10248758B4 true DE10248758B4 (de) 2004-11-11

Family

ID=30009994

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10248758A Expired - Fee Related DE10248758B4 (de) 2002-07-15 2002-10-18 Verfahren und Vorrichtungen zum Encodieren/Decodieren von XML-Dokumenten

Country Status (1)

Country Link
DE (1) DE10248758B4 (de)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fernseh- und Kino-Technik, 56. Jg., Nr. 1-2/2002, S. 27-30, Februar 2002 *
KAUP, A. et al.: Multimedia Messaging mit MPEG-7 *

Also Published As

Publication number Publication date
DE10248758A1 (de) 2004-02-05

Similar Documents

Publication Publication Date Title
EP1522028B9 (de) Verfahren und vorrichtungen zum kodieren/dekodieren von strukturierten dokumenten, insbesondere von xml-dokumenten
DE60213760T2 (de) Verfahren zur kompression und dekompression eines strukturierten dokuments
EP1499998A2 (de) Generische datenstrombeschreibung
DE60123596T2 (de) Verfahren zur Komprimierung einer Baumhierarchie, zugehöriges Signal und Verfahren zur Dekodierung eines Signals
EP2197213B1 (de) Verfahren zur Verbesserung der Funktionalität der binären Repräsentation von MPEG-7 und anderen XML basierten Inhaltsbeschreibungen
DE10392598T5 (de) Unterstützung von fortschrittlichen Codierungsformaten in Mediendateien
DE60225785T2 (de) Verfahren zur codierung und decodierung eines pfades in der baumstruktur eines strukturierten dokuments
EP1766982A1 (de) Verfahren zum codieren eines xml-dokuments, sowie verfahren zum decodieren, verfahren zum codieren und decodieren, codiervorrichtung, decodiervorrichtung und vorrichtung zum codieren und decodieren
EP1719345B1 (de) Verfahren und vorrichtung zur codierung und decodierung von strukturierten dokumenten
EP1561281B1 (de) Verfahren zur erzeugung eines bitstroms aus einem indizierungsbaum
EP1616274B1 (de) Verfahren zur codierung eines strukturierten dokuments
EP1400124B1 (de) Verfahren zur verbesserung der funktionalität der binären repräsentation von mpeg-7 und anderen xml-basierten inhaltsbeschreibungen
DE102009015734A1 (de) Komprimierungsverfahren, Dekomprimierungsverfahren, Komprimierungseinheit, Dekomprimierungseinheit sowie komprimiertes Dokument
DE10248758B4 (de) Verfahren und Vorrichtungen zum Encodieren/Decodieren von XML-Dokumenten
DE102015115797B4 (de) Verfahren zum Erzeugen von elektronischen Dokumenten
EP3991064B1 (de) Verfahren und prozessoreinrichtung zum wechseln eines datenformats von kommunikationsdaten für eine gerätekommunikation sowie kraftfahrzeug
DE10339971A1 (de) Verfahren zur Codierung eines XML-basierten Dokuments
DE19803845C2 (de) Verfahren und Einrichtung zur Übertragung einer durch digitale Daten repräsentierten Nachricht
DE102011112076A1 (de) Verfahren zum Erzeugen eines Druckproduktes
DE10218813B4 (de) Verfahren zur Transformation eines Medienstroms in einen zweiten Medienstrom, Vorrichtung und Programmprodukt zur Ausführung des Verfahrens
DE10142024A1 (de) Kompressionsverfahren
DE102004043269A1 (de) Verfahren zur Codierung eines XML-basierten Dokuments
DE19622365A1 (de) Umsetzer zur Übertragung von Quellencode
DE102004044164A1 (de) Verfahren und Vorrichtung zur Kodierung von XML-Dokumenten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee