DE102013200355A1 - Zusammenfügen von Dokumenten aud der Grundlage der Kenntnis eines Dokumentenschemas - Google Patents

Zusammenfügen von Dokumenten aud der Grundlage der Kenntnis eines Dokumentenschemas Download PDF

Info

Publication number
DE102013200355A1
DE102013200355A1 DE102013200355A DE102013200355A DE102013200355A1 DE 102013200355 A1 DE102013200355 A1 DE 102013200355A1 DE 102013200355 A DE102013200355 A DE 102013200355A DE 102013200355 A DE102013200355 A DE 102013200355A DE 102013200355 A1 DE102013200355 A1 DE 102013200355A1
Authority
DE
Germany
Prior art keywords
document
update
schema
node
data
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.)
Ceased
Application number
DE102013200355A
Other languages
English (en)
Inventor
Matthias Nicola
Martin Sommerlandt
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102013200355A1 publication Critical patent/DE102013200355A1/de
Ceased legal-status Critical Current

Links

Images

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/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/88Mark-up to mark-up conversion
    • 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
    • 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

Abstract

Gemäß einer Ausführungsform der vorliegenden Erfindung fügt ein System Dokumente zusammen und weist ein Computersystem mit mindestens einem Prozessor auf. Das System empfängt ein Aktualisierungsdokument, das eine oder mehrere Aktualisierungen für ein Zieldokument enthält, die gemäß einem durch Schemadaten definierten Dokumentenschema angeordnet sind. Aktualisierungsdaten enthalten einen oder mehrere Pfade zu Knoten innerhalb des Dokumentenschemas und werden untersucht, um auswählbare Pfade für die Aktualisierungen zu ermitteln. Die Aktualisierungen von dem Aktualisierungsdokument, das den auswählbaren Pfaden zugehörig ist, werden gemäß den Schemadaten dem Zieldokument zugeführt, um ein dem Dokumentenschema konformes aktualisiertes Dokument zu erzeugen. Ausführungsformen der vorliegenden Erfindung weisen ferner ein Verfahren und ein Computerprogrammprodukt zum Zusammenfügen von Dokumenten im Wesentlichen in der gleichen Weise wie oben beschrieben auf.

Description

  • HINTERGRUND
  • 1. Technisches Gebiet
  • Ausführungsformen der vorliegenden Erfindung betreffen das Zusammenfügen von Dokumenten und insbesondere das Aktualisieren von Daten innerhalb eines XML(erweiterte Beschreibungssprache)-Zieldokuments auf der Grundlage der Inhalte eines Aktualisierungsdokuments (das geänderte Daten für das Zieldokument enthält) in einer mit dem Schema des XML-Zieldokuments konformen Weise.
  • 2. Erörterung der zugrunde liegenden Technik
  • XML-Schemata werden oft dazu verwendet, ein erforderliches Format und eine erforderliche Struktur für XML-Dokumente zu definieren. Aktualisierungen oder Änderungen für die XML-Dokumente können als Aktualisierungsmitteilungen oder -dokumente dargestellt werden. Ein Aktualisierungsdokument kann dazu verwendet werden, ein entsprechendes vorhandenes oder XML-Zieldokument zu ändern, und kann neue Werte für Elemente/Attribute in dem Zieldokument und/oder neue Elemente, Attribute oder Dokumentteile enthalten, die in das Zieldokument einzufügen sind. Darüber hinaus kann das Aktualisierungsdokument Elemente, Attribute oder Dokumentteile zum Löschen aus dem Zieldokument markieren.
  • Wenn das Aktualisierungs- und das Zieldokument zusammengefügt werden, wobei Elemente aus dem Aktualisierungsdokument in das Zieldokument eingefügt werden können, müssen alle Änderungen an dem Zieldokument so durchgeführt werden, dass das geänderte Zieldokument mit einem bestimmten XML-Schema konform ist, um die Datenintegrität aufrechtzuerhalten. Das Ermitteln einer entsprechenden Einfügungsposition in dem Zieldokument für die Änderungen stellt keine einfache Aufgabe dar und erfordert die Konformität mit dem XML-Schema aufrechtzuerhalten.
  • KURZDARSTELLUNG
  • Gemäß einer Ausführungsform der vorliegenden Erfindung fügt ein System Dokumente zusammen und weist ein Computersystem mit mindestens einem Prozessor auf. Das System empfängt ein Aktualisierungsdokument, das eine oder mehrere Aktualisierungen für ein Zieldokument enthält, die gemäß einem durch Schemadaten definierten Dokumentschema angeordnet sind. Aktualisierungsdaten enthalten einen oder mehrere Pfade zu Knoten innerhalb des Dokumentschemas und werden untersucht, um auswählbare Pfade für die Aktualisierungen zu ermitteln Die Aktualisierungen von dem Aktualisierungsdokument, das den auswählbaren Pfaden zugehörig ist, werden gemäß den Schemadaten dem Zieldokument zugeführt, um ein dem Dokumentschema konformes aktualisiertes Dokument zu erzeugen. Ausführungsformen der vorliegenden Erfindung weisen ferner ein Verfahren und ein Computerprogrammprodukt zum Zusammenfügen von Dokumenten in der im Wesentlichen gleichen Weise wie oben beschrieben auf.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ZEICHNUNGSANSICHTEN
  • 1 ist eine schematische Darstellung einer beispielhaften Datenverarbeitungsumgebung zur Verwendung mit einer Ausführungsform der vorliegenden Erfindung.
  • 2 ist eine schematische Darstellung der Verarbeitung von Daten zum Zusammenfügen eines Aktualisierungsdokuments mit einem Zieldokument gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 3 ist ein Beispiel für das Aktualisieren eines XML-Zieldokuments auf der Grundlage von Inhalten innerhalb eines Aktualisierungsdokuments gemäß einem XML-Schema des Zieldokuments gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4A und 4B zeigen einen prozeduralen Ablaufplan, der eine Vorgehensweise beim Aktualisieren eines Zieldokuments mit neuen oder zusätzlichen Daten gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 5 ist ein prozeduraler Ablaufplan, der eine Vorgehensweise zum Aktualisieren eines Zieldokuments in Bezug auf das Entfernen von Daten gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Ausführungsformen der vorliegenden Erfindung betreffen das Zusammenfügen von XML-Dokumenten oder, mit anderen Worten, das Aktualisieren eines Zieldokuments auf der Grundlage von Inhalten eines Aktualisierungsdokuments. Durch das Zusammenfügen können Werte in dem Zieldokument aktualisiert, neue Elemente in das Zieldokument eingefügt und/oder vorhandene Elemente aus dem Zieldokument gelöscht werden. Die Zusammenfügungsoperation gemäß Ausführungsformen der vorliegenden Erfindung wird in Kenntnis eines XML-Schemas ausgeführt. Unter anderem kann dadurch die Reihenfolge und die Verschachtelung von Elementen in dem aktualisierten Zieldokument so verändert werden, dass dieses mit dem XML-Schema konform wird, und neue Elemente können in das Zieldokument genau an ihrer durch das XML-Schema definierten Position eingefügt werden, sodass die Datenintegrität erhalten bleibt und eine erneute aufwendige Überprüfung des Zieldokuments nach der Zusammenfügungsoperation vermieden wird. Ferner ist die Zusammenfügungsoperation gemäß Ausführungsformen der vorliegenden Erfindung vollständig automatisiert (d. h. erfordert keine manuellen Eingriffe, um das Zusammenfügen von Dokumenten durchzuführen), wodurch die Fehlerquote verringert, die Leistungsfähigkeit verbessert und die Erweiterung auf eine große Anzahl gleichzeitig ablaufender Zusammenfügungsoperationen ermöglicht wird.
  • Darüber hinaus können Ausführungsformen der vorliegenden Erfindung Dokumente in der Form von Deltanachrichten in ein Zieldokument einfügen. Bei einer Deltanachricht handelt es sich um eine spezielle Art von Aktualisierungsdokumenten, die nur die für das Zieldokument bestimmten Änderungen enthalten. Die Deltanachricht weist üblicherweise dieselbe Struktur wie das Zieldokument auf, enthält jedoch keine Dokumentteile, die unverändert bleiben sollen. Dadurch können Aktualisierungsdokumente wesentlich kleiner als ein Zieldokument sein. Somit können Aktualisierungsdokumente auch dann durch Ausführungsformen der vorliegenden Erfindung verarbeitet werden, wenn die Aktualisierungsdokumente keine vollständige neue Version des Zieldokuments darstellen.
  • Außerdem ist die Zusammenfügungsoperation gemäß Ausführungsformen der vorliegenden Erfindung anpassbar und ermöglicht einem Administrator oder einem anderen Benutzer, Teile eines Aktualisierungsdokuments anzugeben, die zum Ändern des Zieldokuments auswählbar sind. Ferner verwendet die Zusammenfügungsoperation eine tabellarische Darstellung eines XML-Schemas, um die Leistungsfähigkeit zu erhöhen. Diese tabellarische Darstellung kann durch Tabellen und Indizes in einer relationalen Datenbank realisiert werden und ermöglicht den direkten Zugriff auf beliebige Punkte in dem Schema (ohne XML-Syntaxanalyse oder -Traversierung). Darüber hinaus ermöglicht die Zusammenfügungsoperation das Aktualisieren des Zieldokuments ohne XML-Syntaxanalyse.
  • Demgemäß stellen Ausführungsformen der vorliegenden Erfindung das Zusammenfügen von XML-Dokumenten gemäß einem XML-Schema, um die Gültigkeit der aktualisierten Dokumente aufrechtzuerhalten, und die Fähigkeit zum Zusammenfügen kleiner Deltanachrichten in größere Zieldokumente bereit. Ausführungsformen der vorliegenden Erfindung können eine einzelne Aktualisierungsanweisung erzeugen, die während einer Ausführung alle erforderlichen Änderungen des Zieldokuments vornimmt. Gemäß einer Ausführungsform kann diese Aktualisierungsanweisung in einer systemeigenen XML-Datenbank ausgeführt werden, sodass das Zieldokument keiner Syntaxanalyse unterzogen werden muss. Außerdem wird die Zusammenfügungsoperation ausgeführt, ohne dass ein Benutzer manuell eingreifen muss.
  • Eine beispielhafte Umgebung zur Verwendung mit Ausführungsformen der vorliegenden Erfindung ist in 1 veranschaulicht. Insbesondere weist die Umgebung ein oder mehrere Server-Systeme 10 (z. B. Datenbanksystem-Server, Middleware- oder Anwendungs-Server usw.) und ein oder mehrere Client- oder Endbenutzersysteme 14 auf. Die Server-Systeme 10 und die Client-Systeme 14 können räumlich voneinander entfernt sein und Daten über ein Netzwerk 12 austauschen. Das Netzwerk kann durch eine beliebige Anzahl geeigneter Datenübertragungsmedien (z. B. ein Weitverkehrsnetz (WAN), ein lokales Netz (LAN), das Internet, ein Intranet usw.) realisiert werden. Alternativ können die Server-Systeme 10 und die Client-Systeme 14 räumlich benachbart sein und Daten über ein beliebiges geeignetes lokales Datenübertragungsmedium (z. B. ein lokales Netz (LAN), über Kabel, eine drahtlose Verbindung, ein Intranet usw.) übertragen.
  • Die Client-Systeme 14 ermöglichen Benutzern, den Server-Systemen 10 Dokumente (z. B. Aktualisierungs- und/oder Zieldokumente) zum Zusammenfügen der Dokumente zuzuführen. Die Server-Systeme beinhalten ein Zusammenfügungsmodul 16 zum Ausführen der Zusammenfügungsoperation. In einem Datenbanksystem 18 können verschiedene Daten für die Zusammenfügungsoperation gespeichert sein (z. B. eine Schematabelle, eine Aktualisierungspfadtabelle, Aktualisierungs- und/oder Zieldokumente usw.). Das Datenbanksystem kann durch eine beliebige herkömmliche oder eine andere Datenbank- oder Speichereinheit realisiert werden, den Server-Systemen 10 und den Client-Systemen 14 räumlich benachbart oder räumlich von diesen entfernt sein und Daten über ein beliebiges geeignetes Datenübertragungsmedium (z. B. ein lokales Netz (LAN), ein Weitverkehrsnetz (WAN), das Internet, über Kabel, eine drahtlose Verbindung, ein Intranet usw.) übertragen. Die Client-Systeme können über eine grafische Benutzeroberfläche (z. B. GUI usw.) oder eine andere Oberfläche (z. B. Aufforderungen einer Befehlszeile, Menübildschirme usw.) Daten von Benutzern zu den gewünschten Dokumenten und Analysen anfordern und können Berichte mit Analyseergebnissen liefern (z. B. Aktualisierungs-, Ziel- und/oder zusammengefügte Dokumente, fehlgeschlagene Aktualisierungen usw.).
  • Die Server-Systeme 10 und Client-Systeme 14 können durch beliebige herkömmliche oder andere Computersysteme realisiert werden, die vorzugsweise mit einem Bildschirm oder einem Monitor, einer Hauptplatine (z. B. mit mindestens einem Prozessor 15, einem oder mehreren Speichern 35 und/oder internen oder externen Netzwerkschnittstellen oder Datenübertragungseinheiten 25 (z. B. einem Modem, Netzwerkkarten usw.)), zusätzlichen Eingabeeinheiten (z. B. einer Tastatur, einer Maus oder einer anderen Eingabeeinheit) und einer beliebigen handelsüblichen und benutzerspezifischen Software (z. B. einer Server-/Datenübertragungssoftware, einem Zusammenfügungsmodul, einer Browser-/Schnittstellensoftware usw.) ausgestattet sind.
  • Alternativ können ein oder mehrere Client-Systeme 14 Dokumente zusammenfügen, wenn sie als eigenständige (Standalone)Einheit fungieren. In einem Standalone-Betriebsmodus speichert das Client-System die Daten oder kann auf diese zugreifen (z. B. in einer Schematabelle, einer Aktualisierungspfadtabelle, in Aktualisierungsdokumenten, einem Zieldokument usw.) und weist ein Zusammenfügungsmodul 16 zum Ausführen der Zusammenfügungsoperation auf. Die grafische Benutzeroberfläche (z. B. GUI usw.) oder eine andere Oberfläche (z. B. Aufforderungen einer Befehlszeile, Menübildschirme usw.) fordern von einem entsprechenden Benutzer Daten über die gewünschten Dokumente ab und können Berichte mit Analyseergebnissen liefern (z. B. Aktualisierungs-, Ziel- und/oder zusammengefügte Dokumente, fehlgeschlagene Aktualisierungen usw.).
  • Das Zusammenfügungsmodul 16 kann ein oder mehrere Module oder Einheiten zum Ausführen der verschiedenen im Folgenden beschriebenen Funktionen von Ausführungsformen der vorliegenden Erfindung enthalten. Die verschiedenen Module (z. B. Zusammenfügungsmodul usw.) können durch eine beliebige Kombination einer beliebigen Anzahl von Software- und/oder Hardwaremodulen oder -einheiten realisiert werden und innerhalb des Speichers 35 der Server- und/oder Client-Systeme gespeichert sein, um durch den Prozessor 15 ausgeführt zu werden.
  • Unter Bezugnahme auf 2 verwendet eine Ausführungsform der vorliegenden Erfindung ein Aktualisierungsdokument 202, ein Zieldokument 204 und ein durch eine Schematabelle 208 dargestelltes XML-Schema. Die Darstellung des XML-Schemas definiert im Grunde eine Baumstruktur mit Knoten, die ein oder mehrere Elemente und/oder Attribute enthalten. Die Lage der durch das Schema definierten Knoten kann durch einen Pfad angezeigt werden. Der Pfad kennzeichnet die verschiedenen Knoten zwischen einem Stammelement und einem interessierenden Knoten und liefert dadurch einen Pfad oder Leitweg durch die Dokumentstruktur bis zu dem interessierenden Knoten. Für jeden Knoten kann die Schematabelle auch den übergeordneten Knoten angeben, d. h. den vorhergehenden Knoten in dem Pfad und dadurch die Baumstruktur wirksam darstellen. Ein Knoten kann ein Element enthalten, das mehrmals vorkommt. Mehrfach vorkommende Elemente können durch eine Kennung voneinander unterschieden werden, die so definiert werden kann, als gehöre sie zu einem anderen Knoten, der sich auf einem anderen Pfad irgendwo in der Baumstruktur befindet. Der Pfad bis zu dem kennzeichnenden Knoten kann als relativer Pfad angegeben werden, d. h. als Pfad, der nicht vom Stamm der Baumstruktur, sondern von dem zu unterscheidenden Knoten ausgeht. Der relative Pfad bis zu einem kennzeichnenden Knoten kann einfach auf ein Attribut, beispielsweise auf das Attribut Telefonnummer (z. B. Mobilfunk, Diensttelefon usw.) wie in der beispielhaften Schematabelle 208 oder auf andere Elemente und/oder deren Attribute zeigen.
  • Ferner wird durch eine Ausführungsform der vorliegenden Erfindung eine Aktualisierungspfadtabelle 210 verwendet, die eine Gruppe von Pfaden (innerhalb des XML-Schemas) angibt, die zum Ändern auswählbar sind. Mit anderen Worten, die Aktualisierungspfadtabelle ermöglicht eine individuelle Anpassung der Zusammenfügungsoperation durch Angeben der Pfade (oder Knoten und der entsprechenden Daten), die aktualisiert werden können.
  • Das Zusammenfügungsmodul 16 (z. B. das Server-System 10 und/oder das Client-System 14) empfängt oder hat Zugriff auf ein Aktualisierungsdokument 202, ein Zieldokument 204, eine Schematabelle 208 und eine Aktualisierungspfadtabelle 210 und prüft diese Objekte sorgfältig, um deren Struktur zu vergleichen und entsprechende Operationen zu erzeugen, die das Zieldokument 204 auf der Grundlage des Aktualisierungsdokuments 202 auf eine mit dem XML-Schema konforme Weise aktualisieren. Ein resultierendes aktualisiertes Zieldokument 206 enthält die durch das Aktualisierungsdokument 202 vorgegebenen Änderungen.
  • Die tabellarische Darstellung des XML-Schemas innerhalb der Schematabelle 208 ermöglicht eine besonders effiziente Ausführung. Das XML-Schema kann jedoch in einer beliebigen Form oder Art und innerhalb beliebiger geeigneter Daten oder anderer Strukturen (z. B., Tabelle, Matrix, verknüpfte oder andere Listen, Warteschlange, Stapel usw.) dargestellt werden. Die Schematabelle enthält die genauen Namen, Pfade und Beziehungen zwischen den Knoten, die in einem XML-Dokument vorkommen können, das anhand eines entsprechenden XML-Schemas erzeugt wurde.
  • Lediglich als Beispiel enthält die Schematabelle 208 eine Zeile für jeden einzelnen Knoten (und jedes Attribut), der in einem Einzelexemplar eines Dokuments vorkommen kann. Diese Darstellung wird als Referenztabelle verwendet, um die Positionen von Knoten (oder Pfaden) und die Beziehungen zwischen den Knoten in einem XML-Dokument (z. B. übergeordneter Knoten, Vorgängerknoten, gleichgeordneter Knoten usw.) effizient zu ermitteln. Die Schematabelle kann durch die folgende beispielhafte SQL-Sequenz definiert werden:
    Figure 00080001
  • Die Spalte sequence_no zeigt die erste Verschachtelungstiefe an, in der die Knoten (oder Pfade) in einem (durch das XML-Schema definierten) XML-Dokument vorkommen dürfen. Dies dient zum Ermitteln der Position von gleichgeordneten Knoten innerhalb des im Folgenden beschriebenen XML-Schemas. Beispielsweise kann die Spalte sequence_no einen Anfangswert (z. B. eins usw.) für einen Ausgangsknoten enthalten und durch stufenweises Erhöhen des aktuellen Wertes (z. B. um eins usw.) für jeden folgenden Knoten erzeugt werden. Die Spalten node_name und xpath enthalten den Namen bzw. den Pfad mit der Position jedes Knotens innerhalb des XML-Schemas. Die Spalte parent_xpath enthält den Pfad zu dem übergeordneten Knoten jedes Knotens (und ist für das Stammelement leer). Gleichgeordnete Knoten und deren relative Reihenfolge können durch das Feld parent_xpath (z. B. eine Sequenznummer) bezeichnet werden. Die Spalte repeating_elem dient als Markierung zum Anzeigen der Elemente eines entsprechenden Knotens, der innerhalb eines Dokuments mehrmals vorkommen kann (z. B. ein Boolescher Wert 0 zeigt ein Element ohne Wiederholung an, während ein Boolescher Wert 1 ein Element mit Wiederholung anzeigt). Die Spalte relative_path_to_id ist ein Zusatzfeld und enthält einen Wert NULL für diejenigen Knoten (und Pfade), die in einem Dokument höchstens einmal vorkommen. Das Feld enthält ferner einen relativen Pfad, um ein Element eines entsprechenden Knotens zu kennzeichnen, der öfter als einmal in einem Dokument vorkommen darf. Dieser relative Pfad zeigt auf ein anderes Element oder Attribut, das als eindeutige Kennung für das wiederholte Vorkommen des Elements verwendet werden kann, um die sich wiederholenden Fälle voneinander zu unterscheiden (z. B. kann ein Typattribut die Art eines Telefonnummerelements (z. B. Arbeitsplatz, Mobilfunk, Wohnung usw.) bezeichnen), die für einen gegebenen Telefonnummerknoten mehrfach vorkommen können.
  • Lediglich als Beispiel enthält die Schematabelle 208 einen Knoten „Kunde”, der mehrere (einem untergeordneten Telefonknoten zugehörige) Telefonelemente und mehrere (einem untergeordneten Kontoknoten zugehörige) Kontoelemente aufweisen kann. Die Spalte relative_path_to_id zeigt an, dass Telefonelemente innerhalb eines Dokuments anhand ihres Typattributs (z. B. @type gemäß 2) voneinander unterschieden werden können und dass Kontoelemente innerhalb eines Dokuments anhand ihres Kontokennungsattributs (z. B. @accid gemäß 2) voneinander unterschieden werden können.
  • Außerdem kann die Schematabelle weitere Spalten oder Felder für zusätzliche Informationen enthalten (z. B. eine Markierung zum Unterscheiden, die von zusätzlichen Knoten gefordert wird (was für die Verarbeitung von Löschoperationen von Knoten von Vorteil ist) usw.). Die Zusammenfügungsoperation gemäß Ausführungsformen der vorliegenden Erfindung kann ferner Dokumente mit beliebigen Namensbereichen verarbeiten. Das heißt, das XML-Schema kann beliebige Namensbereiche definieren, die sowohl im Aktualisierungs- als auch im Zieldokument vorkommen können. In diesem Fall können die Schematabelle 208 und die Aktualisierungspfadtabelle 210 um geeignete Informationen über Namensbereiche erweitert werden, was für den Fachmann kein Problem darstellt. Gemäß einer Ausführungsform kann eine weitere Tabelle auch dazu verwendet werden, URIs (einheitliche Kennzeichner von Internetressourcen) für Namensbereiche eindeutigen Namensbereichspräfixen zuzuordnen.
  • Die Schematabelle kann auch noch weitere Informationen für jeden Knoten enthalten, beispielsweise einen Datentyp, eine Häufigkeitsanzeige und weitere Eigenschaften. Die Schematabelle braucht jedoch keine Informationen über Datentypen oder andere Aspekte zu enthalten, die die Knotenwerte einschränken, wenn bekannt ist, dass das Aktualisierungsdokument in Bezug auf das XML-Schema gültig ist, oder wenn das Aktualisierungsdokument geprüft und als Reaktion auf enthaltene unzulässige Werte zurückgewiesen werden kann. In diesen Fällen werden keine Informationen zum Datentyp usw. benötigt, um sicherzustellen, dass das Zieldokument in Bezug auf das XML-Schema gültig bleibt.
  • Die Schematabelle kann gefüllt werden, indem aus dem ursprünglichen XML-Schema ein Hauptdokument erzeugt wird. Das Hauptdokument enthält eine Häufigkeit jedes zusätzlichen oder obligatorischen Elements oder Attributs des XML-Schemas. Wenn ein Element öfter als einmal vorkommen darf, enthält das Hauptdokument dieses Element mindestens zweimal. Zum Erzeugen eines Hauptdokuments aus einem XML-Schema können verschiedene herkömmliche XML-Tools verwendet werden. Nachdem das Hauptdokument erzeugt worden ist, kann eine SQL/XML-Anweisung ausgeführt werden, die jedem Pfad in dem Hauptdokument folgend den Namen, den Pfad und den übergeordneten Pfad jedes einzelnen Knotens registriert und ermittelt, ob ein Element einmal oder mehrmals innerhalb des Hauptdokuments vorkommt. Diese Information wird in die Schematabelle eingegeben. Ein Administrator oder ein anderer Benutzer, der sich mit einer Domäne auskennt, kann Einträge für die Spalte relative_path_to_id derjenigen Zeilen bereitstellen, die einem wiederholt vorkommenden Element zugehörig sind (z. B. wenn die Spalte repeating_elem einen Wert von 1 hat).
  • Alternativ kann ein Softwaremodul (z. B. als Teil des Zusammenfügungsmoduls 16 oder von diesem unabhängig) verwendet werden (z. B. geschrieben in Java, C oder einem anderen Code usw.), um das ursprüngliche XML-Schema zu lesen und zu analysieren und die Einträge für die Schematabelle zu erzeugen.
  • Die Aktualisierungspfadtabelle 210 enthält einen Satz von Pfaden (oder Knoten innerhalb des XML-Schemas), die zum Aktualisieren auswählbar sind. Die Aktualisierungspfadtabelle kann wesentlich kleiner als die Schematabelle sein und ermöglicht eine Anpassung der Zusammenfügungsoperation durch Prüfen der Daten innerhalb des Zieldokuments, die aktualisiert werden können. Die Aktualisierungspfadtabelle kann erstellt werden und eine Untergruppe der Pfade innerhalb des XML-Schemas anzeigen, die für eine Aktualisierung auswählbar sind (z. B. Pfade, die zu Knoten führen, die aktualisiert werden können). Eine beispielhafte Aktualisierungspfadtabelle kann durch die folgende beispielhafte SQL-Sequenz definiert werden:
    CREATE TABLE update_paths (xpath VARCHAR(4096) NOT NULL)
  • Lediglich als Beispiel enthält die Aktualisierungspfadtabelle 210 (2) eine Spalte xpath, die die Pfade aus der Schematabelle 208 angibt, die zur Aktualisierung auswählbar sind.
  • Alternativ kann die Aktualisierungspfadtabelle dynamisch erzeugt werden (z. B. als speicherinterne Struktur), indem Informationen von Aktualisierungsdokumenten abgeleitet werden. Dies ist von Vorteil, wenn es sich bei den Aktualisierungsdokumenten um Deltanachrichten handelt, die nur sehr wenige Pfade enthalten. Wenn die Aktualisierungspfadtabelle dynamisch erzeugt wird, kann sie auch Spalten mit Element- und Attributwerten sowie weiteren Informationen aus dem Aktualisierungsdokument enthalten wie beispielsweise eine relative Kennung („rel_id”) für mehrfach vorkommende Elemente (oder zu deren Unterscheidung). Solche zusätzlichen Informationen in der Aktualisierungspfadtabelle können die Bearbeitung beschleunigen, da sie eine nachfolgende Suche in dem Aktualisierungsdokument zum Entnehmen von Werten vermeiden oder verringern. Eine dynamisch erzeugte Aktualisierungspfadtabelle kann durch die folgende beispielhafte SQL-Sequenz definiert werden:
    Figure 00120001
  • Die Zeilen in der Aktualisierungspfadtabelle werden verarbeitet, wenn die durch die Zeilen angezeigten Pfade dazu verwendet werden, das Aktualisierungsdokument, das Zieldokument und die Schematabelle sorgfältig zu durchsuchen. Die Zusammenfügungsoperation kann die Aktualisierungspfadtabelle dazu verwenden, verschiedene Informationen zu gewinnen. Insbesondere ermittelt die Zusammenfügungsoperation, welche Element- oder Attributwerte in dem Zieldokument durch Werte aus dem Aktualisierungsdokument ersetzt werden müssen. Wenn ein mehrfach vorkommendes Element aktualisiert werden soll, stellt die Zusammenfügungsoperation fest, ob ein vorhandenes Exemplar des Elements aktualisiert oder ein weiteres Exemplar des Elements eingefügt werden soll.
  • Die Zusammenfügungsoperation stellt ferner fest, ob neue Knoten (beispielsweise ein Exemplar eines wiederholt vorkommenden Elements), die in dem Zieldokument noch nicht vorkommen, in das Zieldokument eingefügt werden müssen. In diesem Fall ermittelt die Zusammenfügungsoperation die genaue Position für den neuen Knoten innerhalb des Zieldokuments, der entscheidend dafür ist, dass das Zieldokument für das XML-Schema gültig bleibt. Es kann ein XQuery-Aktualisierungsausdruck erstellt und ausgeführt werden, um das Zieldokument in geeigneter Weise zu aktualisieren. Alternativ können eine XSLT-Formatvorlage oder andere XML-Aktualisierungsmechnismen erzeugt und ausgeführt werden.
  • Ein beispielhaftes Zusammenfügen des Zieldokuments 202 mit dem Aktualisierungsdokument 204 ist in 3 veranschaulicht. Insbesondere enthält das Zieldokument 204 Kennungs-, Namens-, Adress- und Mobilfunkinformationen für einen Kunden. Das Aktualisierungsdokument 202 enthält eine Struktur ähnlich der Struktur des Zieldokuments 204 mit aktualisierten Werten für die Wohnadresse und neue Datenelemente für eMail-Adresse, dienstliche Telefonnummer und Kontodaten. Das Zusammenfügungsmodul 16 (z. B. über das Server-System 10 und/oder das Client-System 14) empfängt das Aktualisierungsdokument 202 und nutzt die Aktualisierungspfadtabelle 210, um die zum Aktualisieren auswählbaren Daten zu ermitteln. Die Schematabelle 208 wird ferner dazu verwendet, die Position der zu aktualisierenden oder einzufügenden Daten innerhalb der Zieldokumentstruktur zu ermitteln. Demgemäß wird ein geändertes Zieldokument 206 erzeugt. Bei diesem Beispiel sind die Adressdaten im Aktualisierungsdokument 202 innerhalb des geänderten Zieldokuments 206 an der richtigen Position aktualisiert worden. Da das ursprüngliche Zieldokument 204 keine Telefon-, eMail- und Kontodaten enthielt, sind diese Objekte außerdem an entsprechenden Positionen innerhalb der Zieldokumentstruktur gemäß der Schematabelle in das geänderte Zieldokument 206 eingefügt worden. Demgemäß ist das geänderte Zieldokument 206 mit aktualisierten Daten erzeugt worden, die mit dem XML-Schema für das Zieldokument konform sind.
  • Die aktualisierten Daten können in das Zieldokument eingefügt werden, indem ein Aktualisierungsausdruck oder eine Aktualisierungsanweisung erzeugt und ausgeführt wird. Die Anweisung wendet die Änderungen (z. B. Aktualisierungen, Einfügung usw.) in ihrer Gesamtheit auf das Zieldokument an, wobei Einfügungen an den richtigen Positionen gemäß dem XML-Schema vorgenommen werden. Die Anweisung wird durch eine Verkettung von Ausdrücken für die einzelnen Änderungen erzeugt. Ein für die obigen Änderungen erzeugter beispielhafter XQuery-Aktualisierungsausdruck kann wie folgt aussehen:
    Figure 00140001
  • Der Ausdruck kann in einer beliebigen Abfragesprache (z. B. XQuery, XSLT usw.) geschrieben werden und ferner auch das Löschen von Daten innerhalb des Zieldokuments vornehmen, das im Folgenden beschrieben wird.
  • Eine Vorgehensweise zum Aktualisieren eines Zieldokuments auf der Grundlage eines oder mehrerer Aktualisierungsdokumente (z. B. über das Zusammenfügungsmodul 16 und das Server-System 10 und/oder das Client-System 14) gemäß einer Ausführungsform der vorliegenden Erfindung ist in 4A und 4B veranschaulicht. Zuerst wird ein XQuery-Aktualisierungsausdruck erzeugt, um das Zieldokument auf der Grundlage der Aktualisierungspfadtabelle, der Schematabelle und des Aktualisierungsdokuments zu ändern. Insbesondere wird in Schritt 400 eine Zeile der Aktualisierungspfadtabelle abgerufen und geprüft, um das Vorliegen des Aktualisierungspfades innerhalb des Aktualisierungsdokuments zu ermitteln. Die Änderung des Zieldokuments ist auf die Pfade beschränkt, die in der Aktualisierungspfadtabelle für das Aktualisieren als auswählbar angegeben sind, wodurch die Zusammenfügungsoperation speziell angepasst werden kann. Wenn in Schritt 405 festgestellt wird, dass der abgerufene Aktualisierungspfad im Aktualisierungsdokument fehlt, wird in Schritt 465 die nächste Zeile der Aktualisierungspfadtabelle abgerufen, wenn in Schritt 460 festgestellt wird, dass es in der Aktualisierungspfadtabelle eine weitere Zeile gibt.
  • Wenn in Schritt 405 ermittelt wird, dass es den abgerufenen Aktualisierungspfad innerhalb des Aktualisierungsdokuments gibt, (z. B., wenn ermittelt wird, dass der abgerufene Aktualisierungspfad für Aktualisierungen als auswählbar bestimmt ist, da er in der Aktualisierungspfadtabelle enthalten ist), stellt das Zusammenfügungsmodul in Schritt 410 das Vorliegen eines Wertes der entsprechenden Spalte relative_path_to_id für den abgerufenen Aktualisierungspfad in der Schematabelle 208 fest (ermittelt z. B. das Vorliegen eines wiederholt vorkommenden Elements). Wenn der Wert fehlt (wodurch z. B. ein einziges Exemplar des entsprechenden Elements des abgerufenen Aktualisierungspfades (oder -knotens) angezeigt wird), ermittelt das Zusammenfügungsmodul in Schritt 415 das Vorliegen des abgerufenen Aktualisierungspfades in dem Zieldokument. Wenn der abgerufene Aktualisierungspfad innerhalb des Zieldokuments (das z. B. als für eine Aktualisierung auswählbar ermittelt wurde) vorliegt, wird in Schritt 420 in der im Wesentlichen gleichen Weise wie oben beschrieben ein Aktualisierungsausdruck erzeugt, um den alten Wert, der dem abgerufenen Aktualisierungspfad in dem Zieldokument zugehörig ist, durch den neuen Wert aus dem Aktualisierungsdokument zu ersetzen, und in Schritt 465 wird die nächste Zeile aus der Aktualisierungspfadtabelle abgerufen und geprüft, wenn in Schritt 460 festgestellt wird, dass es in der Aktualisierungspfadtabelle eine weitere Zeile gibt.
  • Wenn in Schritt 415 festgestellt wird, dass es den abgerufenen Aktualisierungspfad in dem Zieldokument nicht gibt, gibt es in dem Zieldokument auch nicht den Knoten, der dem abgerufenen Aktualisierungspfad entspricht, und deshalb muss dieser eingefügt werden. Folglich wird für den abgerufenen Aktualisierungspfad (oder -knoten) innerhalb des Dokumentschemas ein übergeordneter Knoten ermittelt, um die Position zum Einfügen des neu in das Zieldokument eingefügten Knotens anzugeben. Wenn es in dem Zieldokument keinen übergeordneten Knoten gibt, muss ebenso auch der übergeordnete Knoten eingefügt werden (was eine Ermittlung des nächsten übergeordneten Knotens erfordert). Die XML-Schemastruktur wird (z. B. über die Spalten xpath und parent_xpath der Schematabelle 208) durchlaufen, um den nächstgelegenen, innerhalb des Zieldokuments vorhandenen Vorgängerknoten mit einem übergeordneten Knoten zu ermitteln. Falls Knoten zwischen dem Vorgängerknoten und dem neu hinzugefügten Knoten in dem Zieldokument fehlen, wird die entsprechende Abstammungslinie (Hierarchie) der Knoten von dem Vorgängerknoten bis zu dem neu hinzugefügten Knoten in das Zieldokument eingefügt.
  • Insbesondere wird ein übergeordneter Knoten des abgerufenen Aktualisierungspfades (oder -knotens) von der Schematabelle abgerufen. Wenn es den übergeordneten Knoten in dem Zieldokument nicht gibt, wird der diesem übergeordnete nächste Knoten (bzw. der vorvorige Knoten) von der Schematabelle abgerufen. Dieser Prozess in Schritt 435 wird so lange wiederholt, bis der Vorgängerknoten ermittelt ist, dessen übergeordneter Knoten in dem Zieldokument vorhanden ist. Bei dem ermittelten Vorgängerknoten handelt es sich um den ersten Knoten einer Abstammungslinie, der in das Zieldokument eingefügt werden soll. Somit wird die Struktur im Grunde von der niedrigsten oder untersten Ebene bis zu den oberen oder höheren Ebenen durchlaufen, um den Vorgängerknoten zu finden, wo die fehlende Abstammungslinie von dem Vorgängerknoten bis zu dem neu hinzugefügten Knoten (z. B. zwischen dem gefundenen Vorgängerknoten und entsprechenden Nachfolgeknoten) in das Zieldokument eingefügt wird, um Konformität mit dem XML-Schema zu gewährleisten.
  • Nachdem der einzufügenden Knoten oder Einfügungsknoten ermittelt worden ist (d. h. entweder der Knoten des Aktualisierungspfades, dessen Vorgängerknoten in dem Zieldokument vorhanden ist, oder der nächstgelegene Vorgängerknoten des Knotens im Aktualisierungspfad, dessen Vorgänger in dem Zieldokument vorhanden ist), wird der einzufügende Knoten an der richtigen Position zwischen gleichgeordneten Knoten gemäß dem XML-Schema eingefügt. Demgemäß wird in Schritt 440 der nächstgelegene vorhergehende gleichgeordnete Knoten des ermittelten Einfügungsknotens innerhalb des Zieldokuments ermittelt. Insbesondere wird auf die Schematabelle zugegriffen, um die vorhergehenden gleichgeordneten Knoten des ermittelten Einfügungsknotens zu überprüfen. Vorhergehende gleichgeordnete Knoten sind Knoten, deren Folgenummer in der Schematabelle kleiner als die Folgenummer des Einfügungsknotens ist und die denselben Vorgängerknoten haben, der durch den Wert der Spalte parent xpath in der Schematabelle dargestellt wird. Die vorhergehenden gleichgeordneten Knoten sind in absteigender Reihenfolge nach ihrer Folgenummer (z. B. in der Spalte sequence_no in der Schematabelle 208) geordnet, und das Vorliegen jedes aufeinander folgenden gleichgeordneten Knotens (in der absteigenden Reihenfolge der Folgenummern) innerhalb des Zieldokuments wird festgestellt, bis ein vorhergehender gleichgeordneter Knoten gefunden wird. Wenn in Schritt 445 ein vorhergehender gleichgeordneter Knoten in dem Zieldokument gefunden wird, wird in Schritt 450 ein Aktualisierungsausdruck erzeugt, um den Einfügungsknoten nach dem gefundenen vorhergehenden gleichgeordneten Knoten in das Zieldokument einzufügen. Die entsprechenden Nachfolgeknoten werden in der richtigen Beziehung zu dem eingefügten Knoten eingefügt, wobei der neu hinzugefügte Knoten an der richtigen Position innerhalb der Abstammungslinie (z. B. der letzte Nachfolgeknoten in der Hierarchie) eingefügt wird. Die nächste Zeile wird in Schritt 465 im Wesentlichen in derselben wie oben beschriebenen Weise von der Aktualisierungspfadtabelle abgerufen und überprüft, wenn in Schritt 460 festgestellt wird, dass es in der Aktualisierungspfadtabelle noch eine weitere Zeile gibt.
  • Wenn in Schritt 445 kein vorhergehender gleichgeordneter Knoten in dem Zieldokument gefunden wird (z. B., wenn der einzufügende Knoten keine vorhergehenden gleichgeordneten Knoten aufweist), wird in Schritt 455 ein Aktualisierungsausdruck erzeugt, um den Einfügungsknoten als ersten untergeordneten Knoten eines entsprechenden übergeordneten Knotens einzufügen. Die entsprechenden Nachfolgeknoten werden in der richtigen Beziehung zu dem eingefügten Knoten eingefügt, wobei der neu hinzugefügte Knoten an der richtigen Position innerhalb der Abstammungslinie eingefügt wird (z. B. als letzter Nachfolgeknoten in der Hierarchie). Die nächste Zeile wird in Schritt 465 im Wesentlichen in derselben wie oben beschriebenen Weise von der Aktualisierungspfadtabelle abgerufen und überprüft, wenn in Schritt 460 festgestellt wird, dass es in der Aktualisierungspfadtabelle noch eine weitere Zeile gibt.
  • Wenn in Schritt 410 festgestellt wird, dass es für die Spalte relative_path_to_id in der Schematabelle 208 einen Wert gibt (wodurch z. B. ein wiederholt vorkommendes Element des abgerufenen Aktualisierungspfades (oder -knotens) angezeigt wird), wird der Wert der Spalte relative_path_to_id in Schritt 425 von der Schematabelle abgerufen. Für jedes Exemplar des entsprechenden wiederholt vorkommenden Elements in dem Aktualisierungsdokument wird in Schritt 430 das Vorliegen desselben Exemplars in dem Zieldokument ermittelt. Die Ähnlichkeit der Exemplare beruht auf identischen Werten für das Element oder Attribut, die in der abgerufenen Spalte relative_path_to_id angegeben sind. Wenn dasselbe Exemplar innerhalb des Zieldokuments vorhanden ist, wird in Schritt 420 ein Aktualisierungsausdruck erzeugt, um den Wert des Exemplars des Elements (des abgerufenen Aktualisierungspfades (oder -knotens) in dem Zieldokument durch den neuen Wert von dem Aktualisierungsdokument zu ersetzen. Die nächste Zeile wird in Schritt 465 im Wesentlichen in derselben wie oben beschriebenen Weise von der Aktualisierungspfadtabelle abgerufen und überprüft, wenn in Schritt 460 festgestellt wird, dass es in der Aktualisierungspfadtabelle noch eine weitere Zeile gibt.
  • Wenn in Schritt 430 festgestellt wird, dass dasselbe Exemplar eines wiederholt vorkommenden Elements (des abgerufenen Aktualisierungspfades (oder -knotens)) innerhalb des Zieldokuments nicht vorliegt, gibt es das Exemplar des wiederholt vorkommenden Elements in dem Zieldokument nicht, und es braucht daher nicht eingefügt zu werden. Daraufhin wird innerhalb des Zieldokumentschemas eine passende Position (oder Knoten) zum Einfügen des neu hinzugefügten Exemplars des wiederholt vorkommenden Elements im Wesentlichen in der gleichen Weise ermittelt, wie oben für einen neu hinzugefügten Knoten beschrieben wurde. Die XML-Schemastruktur wird (z. B. über die Spalten xpath und parent_xpath der Schematabelle 208) durchlaufen, bis ein entsprechender Knoten (z. B. der abgerufene Aktualisierungspfad (oder -knoten) selbst oder ein Knoten innerhalb einer höheren Ebene des Schemas) in dem Zieldokument zum Einfügen des neuen Exemplars des wiederholt vorkommenden Elements gefunden wird. Wenn es keine Knoten zwischen dem gefundenen Knoten und dem entsprechenden Knoten für ein neues Exemplar des wiederholt vorkommenden Elements gibt, wird die passende Abstammungslinie von Knoten im Wesentlichen in derselben Weise wie oben für einen neu hinzugefügten Knoten beschrieben in das Zieldokument eingefügt.
  • Insbesondere wird zuerst das Vorliegen des entsprechenden Knotens für das wiederholt vorkommende Element (oder des abgerufenen Aktualisierungspfades (oder -knotens)) ermittelt, um das neue Exemplar in das Zieldokument einzufügen. Wenn es den entsprechenden Knoten in dem Zieldokument gibt, wird ein Aktualisierungsausdruck erzeugt, um das neue Exemplar des wiederholt vorkommenden Elements für den entsprechenden Knoten einzufügen.
  • Wenn es den entsprechenden Knoten (oder den abgerufenen Aktualisierungspfad (oder -knoten)) für das Exemplar des wiederholt vorkommenden Elements in dem Zieldokument nicht gibt, wird ein übergeordneter Knoten des abgerufenen Aktualisierungspfades (oder -knotens) von der Schematabelle abgerufen. Wenn es den übergeordneten Knoten in dem Zieldokument nicht gibt, wird der diesem Knoten übergeordnete Knoten (bzw. der vorvorige Knoten) von der Schematabelle abgerufen. Dieser Prozess wird in Schritt 435 im Wesentlichen in derselben Weise wie oben beschrieben so lange wiederholt, bis der Vorgängerknoten gefunden wird, dessen übergeordneten Knoten es in dem Zieldokument gibt. Der gefundene Vorgängerknoten ist der erste Knoten einer Abstammungslinie, die in das Zieldokument eingegeben werden soll. Somit wird die Struktur im Grunde von der niedrigsten oder untersten Ebene bis zu den oberen oder höheren Ebenen durchlaufen, um den Vorgängerknoten zu finden, wobei die gesamte fehlende Abstammungslinie vom Vorgängerknoten bis zu dem entsprechenden Knoten für das neue Exemplar (z. B. dem gefundenen Vorgängerknoten und den entsprechenden Nachfolgeknoten) in das Zieldokument eingefügt wird, damit dieses mit dem XML-Schema konform bleibt.
  • Nachdem der einzufügende Knoten oder Einfügungsknoten gefunden wurde, wird dieser Knoten im Wesentlichen in derselben Weise wie oben beschrieben an der richtigen Position zwischen gleichgeordneten Knoten gemäß dem XML-Schema in das Zieldokument eingefügt. In Schritt 440 wird wie oben beschrieben der nächstgelegene vorhergehende gleichgeordnete Knoten des gefundenen Einfügungsknotens innerhalb des Zieldokuments ermittelt. Dann wird auf die Schematabelle zugegriffen, um die vorhergehenden gleichgeordneten Knoten des gefundenen Einfügungsknotens zu überprüfen. Die vorhergehenden gleichgeordneten Knoten werden nach ihrer Folgenummer (z. B. in der Spalte sequence_no in der Schematabelle 208) in absteigender Reihenfolge geordnet, und das Vorliegen jedes gleichgeordneten Knotens innerhalb des Zieldokuments wird nacheinander (in der Reihenfolge der abnehmenden Folgenummern) ermittelt, bis ein vorhergehender gleichgeordneter Knoten gefunden wird.
  • Wenn in Schritt 445 in dem Zieldokument ein vorhergehender gleichgeordneter Knoten gefunden wird, wird ein Aktualisierungsausdruck erzeugt, um in Schritt 450 den Einfügungsknoten in der oben beschriebenen Weise nach dem gefundenen vorhergehenden gleichgeordneten Knoten einzufügen. Die entsprechenden Nachfolgeknoten werden in der richtigen Beziehung zu dem Einfügungsknoten eingefügt, und das neue Exemplar des wiederholt vorkommenden Elements wird für den richtigen entsprechenden Knoten innerhalb der Abstammungslinie eingefügt (z. B. ist der entsprechende Knoten der letzte Nachfolgeknoten in der Hierarchie). In Schritt 465 wird die nächste Zeile von der Aktualisierungspfadtabelle abgerufen und überprüft, wenn in Schritt 460 im Wesentlichen in derselben Weise wie oben beschrieben festgestellt wurde, dass es noch eine weitere Zeile in der Aktualisierungspfadtabelle gibt.
  • Wenn in dem Zieldokument kein vorhergehender gleichgeordneter Knoten gefunden wird (z. B., wenn der Einfügungsknoten keine vorhergehenden gleichgeordneten Knoten hat), wird ein Aktualisierungsausdruck erzeugt, um in Schritt 455 wie oben beschrieben den Einfügungsknoten als ersten untergeordneten Knoten in einen entsprechenden übergeordneten Knoten einzufügen. Die entsprechenden Nachfolgeknoten werden in der richtigen Beziehung zu dem Einfügungsknoten eingefügt, und das neue Exemplar des wiederholt auftretenden Elements wird für den richtigen entsprechenden Knoten innerhalb der Abstammungslinie eingegeben (z. B. ist der entsprechende Knoten der letzte Nachfolgeknoten in der Hierarchie). In Schritt 465 wird die nächste Zeile von der Aktualisierungspfadtabelle abgerufen und überprüft, wenn in Schritt 460 im Wesentlichen in derselben oben beschriebenen Weise festgestellt wird, dass es in der Aktualisierungspfadtabelle noch eine weitere Zeile gibt.
  • Wenn in Schritt 460 festgestellt wird, dass jede Zeile der Aktualisierungspfadtabelle verarbeitet worden ist, sind die Aktualisierungsausdrücke zum Ändern oder Zusammenfügen erzeugt worden. Daraufhin werden die Aktualisierungsausdrücke verkettet und bilden einen XQuery-Transformationsausdruck, der in Schritt 470 ausgeführt wird, um die Änderungen auf das Zieldokument anzuwenden.
  • Eine Vorgehensweise zum Löschen von Daten aus einem Zieldokument auf der Grundlage von Inhalten innerhalb eines Aktualisierungsdokuments gemäß einer Ausführungsform der vorliegenden Erfindung wird in 5 veranschaulicht. Zuerst wird ein Aktualisierungsdokument bereitgestellt, das Inhalte in Bezug auf das Löschen von Daten innerhalb des Zieldokuments enthält. Das Aktualisierungsdokument kann eine überarbeitete Version des Zieldokuments beinhalten, wobei bestimmte Daten entfernt wurden. Alternativ kann das Aktualisierungsdokument in Form einer Deltanachricht vorliegen, die nur die geänderten Teile des Dokuments enthält. In diesem Fall wird ein Löschattribut verwendet, um den entsprechenden Knoten (und/oder das Exemplar eines wiederholt vorkommenden Elements) in dem Zieldokument zum Löschen zu kennzeichnen.
  • Wenn in Schritt 500 festgestellt wird, dass es sich bei dem bereitgestellten Aktualisierungsdokument nicht um eine Deltanachricht handelt, wird das Aktualisierungsdokument in Schritt 505 auf das Vorliegen von Knoten (und/oder Exemplaren wiederholt vorkommender Elemente) überprüft, die im Zieldokument fehlen. In diesem Fall enthält das Aktualisierungsdokument Knoten (und/oder Exemplare wiederholt vorkommender Elemente), die im Zieldokument aktualisiert werden müssen, und Knoten (und/oder Exemplare wiederholt vorkommender Elemente), die unverändert bleiben sollen. Wenn es einen Knoten in dem Zieldokument, jedoch nicht in dem Aktualisierungsdokument gibt, werden der Knoten und die entsprechenden Nachfolgeknoten (und die Elemente des Knotens und der Nachfolgeknoten) in Schritt 510 aus dem Zieldokument gelöscht. Wenn es ein Exemplar eines wiederholt vorkommenden Elements in dem Zieldokument, jedoch nicht in dem Aktualisierungsdokument gibt, wird das Exemplar des entsprechenden Elements in Schritt 510 aus dem Zieldokument gelöscht. Diese Operationen können durch Erzeugen eines XQuery-Ausdrucks ausgeführt werden, um das Löschen im Wesentlichen in derselben Weise wie oben beschrieben zu erledigen. Der XQuery-Ausdruck kann durch Verketten einzelner Ausdrücke zum Ausführen entsprechender Löschoperationen gebildet werden, wobei der XQuery-Ausdruck einzeln ausgeführt oder zu einem XQuery-Ausdruck hinzugefügt werden kann, der weitere Änderungen (z. B. Aktualisierungen, Einfügungen usw.) enthält. Somit können die Änderungen (z. B. Aktualisieren, Einfügen, Löschen usw.) für ein Zieldokument durch Ausführen eines XQuery-Ausdrucks gemeinsam vorgenommen werden, um eine effiziente Änderung des Zieldokuments (ohne XML-Syntaxanalyse) zu erreichen.
  • Wenn das Aktualisierungsdokument wie oben beschrieben geänderte und nicht geänderte Knoten (und/oder geänderte und nicht geänderte Exemplare wiederholt vorkommender Elemente) enthält, stellt das Aktualisierungsdokument im Grunde eine vollkommen neue Version des Zieldokuments dar. In diesem Fall kann das Löschen alternativ durch Ersetzen des Zieldokuments durch das Aktualisierungsdokument erfolgen.
  • Wenn in Schritt 500 festgestellt wird, dass ein Aktualisierungsdokument eine Deltanachricht ist (z. B. nur die zu ändernden Knoten und/oder Exemplare wiederholt vorkommender Elemente enthält), werden in Schritt 515 die Attribute der Knoten und/oder Exemplare wiederholt vorkommender Elemente überprüft, um nach einer Löschanzeige zu suchen. Wenn ein Knoten und/oder ein Exemplar eines wiederholt vorkommenden Elements ein Attribut enthält, das eine Löschung anzeigt, wird der Knoten und/oder das Exemplar des wiederholt vorkommenden Elements in Schritt 520 für die Löschoperation markiert. Die markierten Knoten und/oder Exemplare wiederholt vorkommender Elemente werden anschließend in Schritt 525 aus dem Zieldokument gelöscht. Dies kann durch Erzeugen eines XQuery-Ausdrucks geschehen, um das Löschen im Wesentlichen in derselben Weise wie oben beschrieben durchzuführen. Der XQuery-Ausdruck kann durch Verketten einzelner Ausdrücke zum Ausführen entsprechender Löschoperationen gebildet werden, wobei der XQuery-Ausdruck einzeln ausgeführt oder zu einem XQuery-Ausdruck hinzugefügt werden kann, der weitere Änderungen (z. B. Aktualisierungen, Einfügungen usw.) enthält. Somit können die Änderungen (z. B. Aktualisieren, Einfügen, Löschen, usw.) für ein Zieldokument gemeinsam durch Ausführen eines XQuery-Ausdrucks vorgenommen werden, um eine effiziente Änderung des Zieldokuments (ohne XML-Syntaxanalyse) zu erreichen.
  • Es ist einsichtig, dass die oben beschriebenen und in den Zeichnungen veranschaulichten Ausführungsformen nur einige wenige der vielen Arten zum Umsetzen von Ausführungsformen für das Zusammenfügen von Dokumenten auf der Grundlage der Kenntnis eines Dokumentschemas darstellen.
  • Die Umgebung der Ausführungsformen der vorliegenden Erfindung kann eine beliebige Anzahl von Computersystemen oder anderen Datenverarbeitungssystemen (z. B. Client- oder Endbenutzersysteme, Server-Systeme usw.) und Datenbanken oder andere Datenquellen beinhalten, die auf eine beliebige gewünschte Art angeordnet sind, wobei die Ausführungsformen der vorliegenden Erfindung auf eine beliebige gewünschte Art von Datenverarbeitungsumgebung (z. B. Cloud-Computing-, Client-Server-, Network-Computing, Großrechner-, Einzelplatzsysteme usw.) anwendbar sind. Die durch die Ausführungsformen der vorliegenden Erfindung verwendeten Computersysteme oder anderen Datenverarbeitungssysteme können durch eine beliebige Anzahl von Personal Computern oder anderen Arten von Datenverarbeitungssystemen (z. B. IBM kompatible Computer, Laptops, PDAs, mobile Einheiten usw.) realisiert werden und jedes handelsübliche Betriebssystem und jede Kombination von handelsüblicher und benutzerdefinierter Software (z. B. Browser-Software, Datenübertragungs-Software, Server-Software, Zusammenfügungs-Software, Module zum Erzeugen der Schematabelle usw.) beinhalten. Diese Systeme können beliebige Arten von Monitoren und Eingabeeinheiten (z. B. Tastatur, Maus, Spracherkennung usw.) zum Eingeben und/oder Betrachten von Informationen beinhalten.
  • Es sollte klar sein, dass die Software (z. B. Zusammenfügungsmodul, Modul zum Erzeugen der Schematabelle usw.) der Ausführungsformen der vorliegenden Erfindung in einer beliebigen gewünschten Computersprache geschrieben und durch einen Fachmann der Computertechnik auf der Grundlage der Funktionsbeschreibungen entwickelt werden kann, die in der Beschreibung und den in den Zeichnungen veranschaulichten Ablaufplänen enthalten sind. Ferner beziehen sich hierin alle Verweise auf Software zum Ausführen verschiedener Funktionen allgemein auf Computersysteme oder Prozessoren zum softwaregesteuerten Ausführen dieser Funktionen. Die Computersysteme der Ausführungsformen der vorliegenden Erfindung können alternativ durch eine beliebige Art von Hardware und/oder oder anderer Datenverarbeitungs-Schaltlogik realisiert werden.
  • Die verschiedenen Funktionen der Computersysteme oder anderen Datenverarbeitungssysteme können auf eine beliebige Weise zwischen einer beliebigen Anzahl von Software- und/oder Hardwaremodulen oder -einheiten, Datenverarbeitungs- oder Computersystemen und/oder Schaltlogiken verteilt werden, wobei die Computersysteme oder Datenverarbeitungssysteme lokal entfernt voneinander angeordnet sein und Daten über ein beliebiges geeignetes Datenübertragungsmedium (z. B. LAN, WAN, Intranet, Internet, leitungsgebunden, Modemverbindung, drahtlos usw.) übertragen können. Zum Beispiel können die Funktionen der Ausführungsformen der vorliegenden Erfindung auf eine beliebige Weise zwischen den verschiedenen Endbenutzer/Client- und Server-Systemen und/oder beliebigen anderen zwischengeschalteten Datenverarbeitungseinheiten verteilt sein. Die Software und/oder die Algorithmen, die oben beschrieben und in den Ablaufplänen veranschaulicht sind, können auf eine beliebige Weise verändert werden, um die hierin beschriebenen Funktionen zu bewirken. Außerdem können die Funktionen in den Ablaufplänen oder der Beschreibung in einer beliebigen Reihenfolge ausgeführt werden, die eine gewünschte Operation bewirkt.
  • Die Software der Ausführungsformen der vorliegenden Erfindung (z. B. Zusammenfügungsmodul, Modul zum Erzeugen der Schematabelle usw.) können auf einem Aufzeichnungsmedium oder einem durch Computer verwendbaren Medium (z. B. magnetische oder optische Medien, magnetooptische Medien, Disketten, CD-ROM, DVD, Speichereinheiten usw.) zur Verwendung auf Arbeitsplatzsystemen oder Systemen verfügbar sein, die an ein Netzwerk oder ein anderes Datenverarbeitungsmedium angeschlossen sind.
  • Das Datenübertragungsnetz kann durch eine beliebige Anzahl einer beliebigen Art von Datenübertragungsnetz (z. B. LAN, WAN, Internet, Intranet, VPN usw.) realisiert werden. Die Computersysteme oder anderen Datenverarbeitungssysteme der Ausführungsformen der vorliegenden Erfindung können beliebige herkömmliche oder andere Datenübertragungseinheiten beinhalten, um Daten mittels beliebiger herkömmlicher oder anderer Protokolle über das Netzwerk zu übertragen. Die Computersysteme oder anderen Datenverarbeitungssysteme können eine beliebige Art von Verbindung (z. B. leitungsgebunden, drahtlos usw.) verwenden, um auf das Netzwerk zuzugreifen. Lokale Datenübertragungsmedien können durch ein beliebiges geeignetes Datenübertragungsmedium realisiert werden (z. B. lokales Netz (LAN), leitungsgebunden, Funkverbindung, Intranet usw.).
  • Das System kann eine beliebige Anzahl beliebiger herkömmlicher oder anderer Datenbanken, Datenspeicher oder Speicherstrukturen (z. B. Dateien, Datenbanken, Datenstrukturen, Daten- oder andere Quellen, usw.) verwenden, um Daten zu speichern (z. B. Aktualisierungs- und Zieldokumente, Schematabelle, Aktualisierungspfadtabelle usw.). Das Datenbanksystem kann durch eine beliebige Anzahl beliebiger herkömmlicher oder anderer Datenbanken, Datenspeicher oder Speicherstrukturen (z. B. Dateien, Datenbanken, Datenstrukturen, Daten- oder anderer Quellen usw.) zum Speichern von Daten (z. B. Aktualisierungs- und Zieldokumente, Schematabelle, Aktualisierungspfadtabelle usw.) realisiert werden. Das Datenbanksystem kann in die Server- und/oder Client-Systeme integriert oder mit diesen verbunden werden. Die Datenbanksysteme und/oder Speicherstrukturen können fern von den Computer- oder anderen Datenverarbeitungssystemen oder in deren Nähe angeordnet sein und beliebige gewünschte Daten speichern (z. B. Aktualisierungs- und Zieldokumente, Schematabelle, Aktualisierungspfadtabelle usw.). Ferner können die verschiedenen Tabellen (z. B. Schematabelle, Aktualisierungspfadtabelle usw.) durch beliebige herkömmliche oder andere Datenstrukturen (z. B. Dateien, Matrizen, Listen, Stapel, Warteschlangen usw.) zum Speichern von Daten realisiert und in einer beliebigen gewünschten Speichereinheit (z. B. Datenbank, Daten- oder anderen Quellen usw.) gespeichert werden.
  • Ausführungsformen der vorliegenden Erfindung können dazu verwendet werden, eine beliebige Anzahl beliebiger Arten von Dokumenten gemäß einem beliebigen gewünschten Schema zusammenzufügen. Das Ziel- und das Aktualisierungsdokument können von einem beliebigen Dokumenttyp oder Dateityp sein, beliebige gewünschte Daten und ein beliebiges gewünschtes Format (z. B. XML usw.) enthalten. Das Aktualisierungsdokument kann einen beliebigen Nachrichtentyp oder Dokumenttyp zum Anzeigen von Aktualisierungen enthalten (oder in Form eines beliebigen Nachrichten- oder Dokumenttyps vorliegen). Die Deltanachrichten können ein beliebiges Format oder Daten zum Anzeigen von Aktualisierungen oder unveränderten Teilen eines Dokuments enthalten. Die Aktualisierungen in den Aktualisierungsdokumenten (darunter die Deltanachrichten) können auf eine beliebige gewünschte Weise angezeigt werden (z. B. veränderte Dokumentteile, eine überarbeitete Version des Dokuments usw.) und eine beliebige Anzahl beliebiger gewünschter Attribute enthalten, die Eigenschaften oder Aktionen für die Aktualisierungen anzeigen (z. B. Einfügen, Löschen, Aktualisieren usw.). Die Aktualisierungsdokumente und Deltanachrichten können einen beliebigen Umfang an geänderten oder unveränderten Teilen des Zieldokuments enthalten.
  • Das Schema kann von einem beliebigen Typ sein und eine beliebige geeignete Struktur für die Dokumente enthalten. Das Schema kann auf eine beliebige geeignete Weise dargestellt werden, um die Konformität eines Dokuments mit dem Schema festzustellen (z. B. Tabellen, Matrizen, verlinkte oder andere Listen, Verzeichnisbäume, Warteschlangen usw.). Die Schematabelle kann beliebige gewünschte Informationen (z. B. Knoten, Pfade, Attribute, übergeordnete/gleichgeordnete Knoten, Folgenummern oder andere Kennungen usw.) enthalten und in einem beliebigen Format (z. B. einer beliebigen Anzahl von Spalten mit beliebigen geeigneten Kopfdaten usw.) angeordnet sein, um ein Schema anzuzeigen.
  • Die zum Aktualisieren auswählbaren Daten können auf eine beliebige geeignete Weise (z. B. Tabellen, Matrizen, verlinkte oder andere Listen, Verzeichnisbäume, Warteschlangen usw.) angezeigt werden. Die Aktualisierungspfadtabelle kann beliebige gewünschte Informationen (z. B. Knoten, Pfade, Attribute, Datenelemente usw.) enthalten und in einem beliebigen Format (z. B. einer beliebigen Anzahl von Spalten mit beliebigen geeigneten Kopfdaten usw.) angeordnet sein, um zum Aktualisieren auswählbare Daten anzuzeigen. Ein Administrator oder ein anderer Benutzer kann Informationen in die Aktualisierungspfadtabelle eingeben und/oder in dieser ändern, um die Änderung eines Zieldokuments zu beeinflussen. Es kann eine beliebige Anzahl von Schema- und Aktualisierungspfadtabellen verwendet werden, wobei jede der Schema- und Aktualisierungspfadtabellen einer beliebigen Anzahl von zu ändernden Schemata und/oder Dokumenten zugehörig sein kann. Die verschiedenen Namen oder anderen Kennungen für die Tabellen, Zeilen und/oder Spalten dienen als Beispiele, und es können beliebige geeignete Namen oder andere Kennungen verwendet werden.
  • Die Änderungen des Zieldokuments können auf eine beliebige gewünschte Weise erfolgen, entweder gemeinsam, einzeln oder in einer beliebigen gewünschten Kombination (in einem beliebigen gewünschten Umfang). Die Änderungen können durch eine Abfrage oder einen anderen Befehl in einer beliebigen geeigneten Abfrage- oder einer anderen Sprache bewirkt werden. Die Abfrage oder der Befehl können erzeugt werden, um einen beliebigen Umfang der Änderungen an dem Zieldokument vorzunehmen. Alternativ kann ein Zieldokument durch ein Aktualisierungsdokument ersetzt werden, wenn das Aktualisierungsdokument eine geänderte Version des Zieldokuments enthält.
  • Die Ausführungsformen der vorliegenden Erfindung können eine beliebige Anzahl einer beliebigen Art von Benutzeroberflächen (z. B. grafische Benutzeroberfläche (GUI), Befehlszeile, Eingabeaufforderung usw.) zum Gewinnen oder Bereitstellen von Informationen (z. B. Aktualisierungs- und Zieldokumente, Schematabelle, Aktualisierungspfadtabelle usw.) verwenden, wobei die Oberfläche beliebige in einer beliebigen Weise angeordnete Informationen enthalten kann. Die Oberfläche kann eine beliebige Anzahl beliebiger Arten von Eingabe- oder Steuerungsmechanismen (z. B. Schaltflächen, Symbole, Felder, Kästchen, Links usw.) enthalten, die an beliebigen Stellen angeordnet sind, um Informationen einzugeben/anzuzeigen und über geeignete Eingabeeinheiten (z. B. Maus, Tastatur usw.) gewünschte Aktionen auszulösen. Die Anzeigebildschirme können beliebige geeignete Steuerelemente (z. B. Links, Registerkarten usw.) enthalten, um auf beliebige Weise zwischen den Bildschirmen zu navigieren.
  • Der Bericht kann beliebige auf beliebige Weise angeordnete Informationen enthalten und auf der Grundlage von Regeln oder anderen Kriterien konfigurierbar sein, um einem Benutzer gewünschte Informationen bereitzustellen (z. B. Aktualisierungs-, Ziel- und/oder erzeugte geänderte Dokumente, fehlgeschlagene Aktualisierungen usw.).
  • Eine beliebige Anzahl im Zieldokument fehlender Knoten kann eingefügt werden, um eine Struktur für das Zieldokument bereitzustellen, die mit dem Dokumentschema konform ist, wenn dem Zieldokument Daten hinzugefügt werden müssen. Das Schema kann in einer beliebigen gewünschten Weise durchsucht werden (z. B. von unteren Ebenen bis zu oberen Ebenen, von oberen Ebenen bis zu unteren Ebenen usw.), um entsprechende Strukturbereiche zu finden, die im Zieldokument fehlen und in dieses eingefügt werden sollen. Ein Vorgängerknoten kann als beliebiger geeigneter gleichgeordneter Knoten für einen übergeordneten Knoten eingefügt werden (z. B. bei einer ungeordneten Struktur einem bestimmten Befehl zufolge an einer beliebigen Position usw.).
  • Die hierin gebrauchten Begriffe dienen lediglich der Beschreibung einzelner Ausführungsformen und sind nicht als Einschränkung der Erfindung anzusehen. Die hierin gebrauchten Einzahlformen „ein”, „eine” und „der, die, das” sollen gleichermaßen die Mehrzahlformen beinhalten, sofern aus dem Zusammenhang nicht anderes hervorgeht. Ferner ist klar, dass die Begriffe „weist auf”, „aufweisende”, „enthält”, „darunter”, „weist auf”, „weisen auf”, „aufweisend”, ”mit” und dergleichen bei Verwendung in dieser Beschreibung das Vorliegen angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, aber nicht das Vorliegen oder Hinzukommen eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder deren Gruppen ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Entsprechungen aller Mittel oder Schritte zuzüglich Funktionselemente in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zum Ausführen der Funktion in Kombination mit anderen ausdrücklich beanspruchten Elementen beinhalten. Die Beschreibung der vorliegenden Erfindung ist zur Veranschaulichung und Beschreibung dargelegt worden und erhebt nicht den Anspruch auf Vollständigkeit oder Beschränkung auf die Erfindung in der offenbarten Form. Dem Fachmann sind viele Änderungen und Varianten offensichtlich, ohne vom Schutzumgang und Wesensgehalt der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und deren praktische Anwendung bestmöglich zu erläutern und anderen Fachleuten das Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen Änderungen zu ermöglichen, die für die jeweils vorgesehene Verwendung geeignet sind.
  • Dem Fachmann ist einsichtig, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer vollständigen Hardwareausführungsform, einer vollständigen Softwareausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte in sich vereinigt und die sämtlich allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien gespeichert ist und in dem ein computerlesbarer Programmcode verkörpert ist.
  • Es kann eine beliebige Kombination von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine beliebige geeignete Kombination derselben handeln. Spezielle Beispiele (eine nicht erschöpfende Aufzählung) des computerlesbaren Speichermediums können Folgendes beinhalten: eine elektrische Leitung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein ausgebreitetes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches ausgebreitetes Signal kann eine beliebige aus einer Vielfalt von Formen annehmen, darunter, ohne darauf beschränkt zu sein, elektromagnetisch, optisch oder eine beliebige geeignete Kombination derselben. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, ausbreiten oder transportieren kann.
  • Ein auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung eines beliebigen geeigneten Medium übertragen werden, darunter, ohne darauf beschränkt zu sein, drahtlos, leitungsgebunden, Lichtwellenleiter, HF usw. oder eine beliebige geeignete Kombination derselben.
  • Ein Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer durch eine beliebige Art von Netzwerk mit dem Computer des Benutzers verbunden sein, darunter ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
  • Aspekte der vorliegenden Erfindung werden unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Anweisungen eines Computerprogramms umgesetzt werden können. Diese Anweisungen des Computerprogramms können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, um eine Maschine derart zu erzeugen, dass die Anweisungen, die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Umsetzen der in dem oder den Blöcken der Ablaufpläne und/oder Blockschaubilder angegebenen Funktionen/Aktionen erzeugen.
  • Diese Anweisungen des Computerprogramms können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten veranlassen kann, auf eine bestimmte Weise wirksam zu werden, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel erzeugen, der Anweisungen beinhaltet, die die in dem Block oder den Blöcken der Ablaufpläne und/oder Blockschaubilder angegebenen Funktionen/Aktionen umsetzen.
  • Die Anweisungen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um die Ausführung einer Reihe von Arbeitsschritten auf dem Computer, der anderen programmierbaren Vorrichtung oder anderen Einheiten zu veranlassen, um einen computergestützten Prozess derart zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Umsetzen der in dem oder den Blöcken der Ablaufpläne und/oder Blockschaubilder angegebenen Funktionen/Aktionen erzeugen.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Arbeitsweise möglicher Ausführungsarten von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Demgemäß kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Abschnitts eines Codes darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Zu beachten ist, dass bei einigen alternativen Ausführungsarten die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge ausgeführt werden können. Zum Beispiel können je nach beabsichtigter Funktionalität zwei nacheinander dargestellte Blöcke in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Ferner ist zu beachten, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Blockschaubildern und/oder Ablaufplänen durch spezielle Hardwaresysteme, die die angegebenen Funktionen oder Aktionen ausführen, oder durch Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.

Claims (11)

  1. Computergestütztes Verfahren zum Zusammenfügen von Dokumenten, das aufweist: Empfangen eines Aktualisierungsdokuments, das eine oder mehrere Aktualisierungen für ein Zieldokument enthält, die gemäß einem Dokumentschema angeordnet sind, das durch Schemadaten definiert ist; Überprüfen von Aktualisierungsdaten, die einen oder mehrere Pfade zu Knoten innerhalb des Dokumentschemas enthalten, um auswählbare Pfade für die Aktualisierungen zu ermitteln; und Übertragen der Aktualisierungen von dem Aktualisierungsdokument, das den auswählbaren Pfaden zugehörig ist, auf das Zieldokument gemäß den Schemadaten, um ein aktualisiertes Dokument zu erzeugen, das mit dem Dokumentschema konform ist.
  2. Computergestütztes Verfahren nach Anspruch 1, wobei die Aktualisierungsdaten so vordefiniert sind, dass sie die Aktualisierungen des Zieldokuments speziell anpassen.
  3. Computergestütztes Verfahren nach Anspruch 1, wobei die Aktualisierungsdaten auf der Grundlage des Aktualisierungsdokuments dynamisch erzeugt werden.
  4. Computergestütztes Verfahren nach Anspruch 1, wobei die Aktualisierungen mindestens eines von dem Einfügen eines Knotens, dem Löschen eines Knotens und dem Ändern eines Wertes beinhalten.
  5. Computergestütztes Verfahren nach Anspruch 1, wobei das Aktualisierungsdokument nur aktualisierte Teile für das Zieldokument enthält.
  6. Computergestütztes Verfahren nach Anspruch 1, wobei das Zusammenfügen von Dokumenten ohne Eingreifen eines Benutzers durch den Computer durchgeführt wird.
  7. Computergestütztes Verfahren nach Anspruch 1, wobei das Zieldokument ein XML-Dokument beinhaltet, das Aktualisierungsdokument ein XML-Dokument beinhaltet und das Dokumentschema ein XML-Schema beinhaltet.
  8. System zum Zusammenfügen von Dokumenten, das aufweist: ein Computersystem, das mindestens einen Prozessor enthält, der konfiguriert ist zum: Empfangen eines Aktualisierungsdokuments, das eine oder mehrere Aktualisierungen für ein Zieldokument enthält, die gemäß einem durch Schemadaten definierten Dokumentschema angeordnet sind; Prüfen von Aktualisierungsdaten, die einen oder mehrere Pfade zu Knoten innerhalb des Dokumentschemas enthalten, um auswählbare Pfade für die Aktualisierungen zu finden; und Übertragen der Aktualisierungen von dem Aktualisierungsdokument, das den auswählbaren Pfaden zugehörig ist, zu dem Zieldokument gemäß den Schemadaten, um ein aktualisiertes Dokument zu erzeugen, das mit dem Dokumentschema konform ist.
  9. System nach Anspruch 8, wobei der mindestens eine Prozessor darüber hinaus so konfiguriert ist, dass er das Zusammenfügen der Dokumente ohne das Eingreifen eines Benutzers durchführt.
  10. Computerprogrammprodukt zum Zusammenfügen von Dokumenten, das aufweist: ein computerlesbares Speichermedium mit einem darin gespeicherten computerlesbaren Programmcode, wobei der computerlesbare Programmcode einen computerlesbaren Programmcode aufweist, der konfiguriert ist zum: Empfangen eines Aktualisierungsdokuments, das eine oder mehrere Aktualisierungen für ein Zieldokument enthält, die gemäß einem durch Schemadaten definierten Dokumentschema angeordnet sind; Prüfen von Aktualisierungsdaten, die einen oder mehrere Pfade zu Knoten innerhalb des Dokumentschemas enthalten, um vorgesehene Pfade für die Aktualisierungen zu finden; und Übertragen der Aktualisierungen von dem Aktualisierungsdokument, das den auswählbaren Pfaden zugehörig ist, zu dem Zieldokument gemäß den Schemadaten, um ein aktualisiertes Dokument zu erzeugen, das mit dem Dokumentschema konform ist.
  11. Computerprogrammprodukt nach Anspruch 10, wobei das Zusammenfügen der Dokumente ohne Eingreifen eines Benutzers durchgeführt wird.
DE102013200355A 2012-01-27 2013-01-14 Zusammenfügen von Dokumenten aud der Grundlage der Kenntnis eines Dokumentenschemas Ceased DE102013200355A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/359,607 US9626368B2 (en) 2012-01-27 2012-01-27 Document merge based on knowledge of document schema
US13/359,607 2012-01-27

Publications (1)

Publication Number Publication Date
DE102013200355A1 true DE102013200355A1 (de) 2013-08-01

Family

ID=47748065

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013200355A Ceased DE102013200355A1 (de) 2012-01-27 2013-01-14 Zusammenfügen von Dokumenten aud der Grundlage der Kenntnis eines Dokumentenschemas

Country Status (4)

Country Link
US (2) US9626368B2 (de)
CN (1) CN103226558A (de)
DE (1) DE102013200355A1 (de)
GB (1) GB2499500A (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9626368B2 (en) 2012-01-27 2017-04-18 International Business Machines Corporation Document merge based on knowledge of document schema
US9760549B2 (en) * 2012-07-18 2017-09-12 Software Ag Usa, Inc. Systems and/or methods for performing atomic updates on large XML information sets
US9922089B2 (en) 2012-07-18 2018-03-20 Software Ag Usa, Inc. Systems and/or methods for caching XML information sets with delayed node instantiation
US10515141B2 (en) 2012-07-18 2019-12-24 Software Ag Usa, Inc. Systems and/or methods for delayed encoding of XML information sets
US9047325B2 (en) * 2013-04-08 2015-06-02 International Business Machines Corporation Modularizing complex XML data for generation and extraction
US9274783B2 (en) * 2013-12-25 2016-03-01 Sap Se Dynamic delivery and integration of static content into cloud
US8893294B1 (en) * 2014-01-21 2014-11-18 Shape Security, Inc. Flexible caching
US9779387B2 (en) * 2014-06-20 2017-10-03 Oracle International Corporation Business-to-business document user interface and integration design
US11556542B2 (en) * 2015-02-07 2023-01-17 International Business Machines Corporation Optionally compressed output from command-line interface
US11314807B2 (en) * 2018-05-18 2022-04-26 Xcential Corporation Methods and systems for comparison of structured documents
US10977289B2 (en) * 2019-02-11 2021-04-13 Verizon Media Inc. Automatic electronic message content extraction method and apparatus
US11334537B1 (en) * 2019-04-04 2022-05-17 Intrado Corporation Database metadata transfer system and methods thereof
CN112328841A (zh) * 2020-11-30 2021-02-05 中国民航信息网络股份有限公司 一种文档处理方法、装置、电子设备及存储介质
US11941151B2 (en) * 2021-07-16 2024-03-26 International Business Machines Corporation Dynamic data masking for immutable datastores
CN113591434A (zh) * 2021-08-05 2021-11-02 江西金格科技股份有限公司 一种ofd文档合并携带语义标引信息的方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2255047A1 (en) 1998-11-30 2000-05-30 Ibm Canada Limited-Ibm Canada Limitee Comparison of hierarchical structures and merging of differences
US7031956B1 (en) * 2000-02-16 2006-04-18 Verizon Laboratories Inc. System and method for synchronizing and/or updating an existing relational database with supplemental XML data
JP3692054B2 (ja) * 2001-05-21 2005-09-07 株式会社東芝 文書構造変換方法および文書構造変換装置およびプログラム
US7200668B2 (en) * 2002-03-05 2007-04-03 Sun Microsystems, Inc. Document conversion with merging
US20040060006A1 (en) 2002-06-13 2004-03-25 Cerisent Corporation XML-DB transactional update scheme
US6996677B2 (en) 2002-11-25 2006-02-07 Nortel Networks Limited Method and apparatus for protecting memory stacks
US20050177578A1 (en) 2004-02-10 2005-08-11 Chen Yao-Ching S. Efficient type annontation of XML schema-validated XML documents without schema validation
US7440954B2 (en) * 2004-04-09 2008-10-21 Oracle International Corporation Index maintenance for operations involving indexed XML data
US7703005B2 (en) 2004-05-21 2010-04-20 Bea Systems, Inc. Method to generate scripts from XML
US7373586B2 (en) * 2004-09-03 2008-05-13 International Business Machines Corporation Differencing and merging tree-structured documents
US20070005657A1 (en) 2005-06-30 2007-01-04 Bohannon Philip L Methods and apparatus for processing XML updates as queries
US7529726B2 (en) * 2005-08-22 2009-05-05 International Business Machines Corporation XML sub-document versioning method in XML databases using record storages
US7774321B2 (en) * 2005-11-07 2010-08-10 Microsoft Corporation Partial XML validation
JP4236055B2 (ja) * 2005-12-27 2009-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化文書処理装置、方法、プログラム
JP4899476B2 (ja) * 2005-12-28 2012-03-21 富士通株式会社 分割プログラム、連結プログラム、情報処理方法
US20070162486A1 (en) 2005-12-30 2007-07-12 Thomas Brueggemann Merge tool for structured object models
US8082493B2 (en) 2006-04-10 2011-12-20 Oracle International Corporation Streaming XML patch
US8429526B2 (en) 2006-04-10 2013-04-23 Oracle International Corporation Efficient evaluation for diff of XML documents
US7853573B2 (en) 2006-05-03 2010-12-14 Oracle International Corporation Efficient replication of XML data in a relational database management system
US20070294283A1 (en) * 2006-06-06 2007-12-20 Julie MaCkay System, method and software application for managing meta-language documents
US20080028003A1 (en) 2006-07-28 2008-01-31 Thomas Brueggemann Structured object model merge tool with static integrity constraint observance
US20080235260A1 (en) * 2007-03-23 2008-09-25 International Business Machines Corporation Scalable algorithms for mapping-based xml transformation
CN101030220A (zh) * 2007-04-06 2007-09-05 清华大学 一种基于可扩展标记语言文档树的连接方法
US7831540B2 (en) * 2007-10-25 2010-11-09 Oracle International Corporation Efficient update of binary XML content in a database system
US7941399B2 (en) * 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
CN100489840C (zh) * 2007-11-16 2009-05-20 北京大学 标记语言文档的存储方法及装置和输出方法及装置
CN101241532A (zh) 2008-02-15 2008-08-13 北京邮电大学 面向源代码的基于不等式组求解的缓冲区溢出检测方法
CN101630350A (zh) 2008-07-14 2010-01-20 西门子(中国)有限公司 缓冲区溢出漏洞的检测方法、装置和代码插装方法、装置
US8321834B2 (en) * 2008-09-25 2012-11-27 International Business Machines Corporation Framework for automatically merging customizations to structured code that has been refactored
US8286132B2 (en) * 2008-09-25 2012-10-09 International Business Machines Corporation Comparing and merging structured documents syntactically and semantically
US8543619B2 (en) 2009-09-15 2013-09-24 Oracle International Corporation Merging XML documents automatically using attributes based comparison
CN102298677A (zh) 2011-08-29 2011-12-28 瑞斯康达科技发展股份有限公司 一种堆栈溢出的保护方法和装置
US9626368B2 (en) 2012-01-27 2017-04-18 International Business Machines Corporation Document merge based on knowledge of document schema

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TERWILLIGER, James F.; BERNSTEIN, Philip A.; MELNIK, Sergey: Full-fidelity flexible object-oriented XML access, 2009; In: Proc. VLDB Endow, Vol. 2(1): 1030-1041; [online] URL: http://www.vldb.org/pvldb/2/vldb09-216.pdf *
WU, Yuqing; PATEL, Jignesh M.; JAGADISH, H. V.: Using histograms to estimate answer sizes for XML queries, 2003, In: Information Systems, Vol. 28(1): 33-59; doi: 10.1016/S0306-4379(02)00048-0 *

Also Published As

Publication number Publication date
GB2499500A (en) 2013-08-21
US9740698B2 (en) 2017-08-22
US9626368B2 (en) 2017-04-18
CN103226558A (zh) 2013-07-31
US20130304769A1 (en) 2013-11-14
US20130198605A1 (en) 2013-08-01
GB201300236D0 (en) 2013-02-20

Similar Documents

Publication Publication Date Title
DE102013200355A1 (de) Zusammenfügen von Dokumenten aud der Grundlage der Kenntnis eines Dokumentenschemas
DE112015000218B4 (de) Verfahren, System und Computerprogramm zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen
DE112020002600T5 (de) Entdecken einer semantischen bedeutung von datenfeldern anhand von profildaten der datenfelder
DE60002876T2 (de) Darstellung, verwaltung und synthese von technischen inhalten
DE60130475T2 (de) Durchführung von kalkulationen eines tabellenkalkulationstyps in einem datenbanksystem
DE112010004652B4 (de) Zuverlässige Replikation mit hohem Durchsatz von umgewandelten Daten in Datensystemen
DE112016002395T5 (de) Zugriffskontrolle für Datenressourcen
DE112015000347T5 (de) Verarbeiten von Datensätzen in einer Ablage für große Datenmengen
DE102017111438A1 (de) Api-lernen
DE112017006106T5 (de) Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
DE112019005881T5 (de) Kryptografische überprüfung von datenbanktransaktionen
DE102013209868A1 (de) Abfragen und Integrieren strukturierter und unstrukturierter Daten
DE102013206281A1 (de) Optimieren von zerstreuten schemalosen Daten in relationalen Speichern
DE102005040096A1 (de) Umfassendes Abfrageverarbeitungs- und Datenzugriffssystem, und eine Benutzerschnittstelle
DE102012209711A1 (de) Systeme und Verfahren zum Verwenden grafischer Darstellungen für die Verwaltung von Abfrageergebnissen
DE112010000947T5 (de) Verfahren zur völlig modifizierbaren Framework-Datenverteilung im Data-Warehouse unter Berücksichtigung der vorläufigen etymologischen Separation der genannten Daten
DE112011101200T5 (de) Spaltenorientierte Speicher-Darstellungen von Datensätzen
DE112013000966T5 (de) Vorrichtung, Programm und Verfahren zum Clustern einer Vielzahl von Dokumenten
DE202013012490U1 (de) Effiziente hierarchisch geprägte Top-Down Verbindung geclusterter Datenstrom
DE60300984T2 (de) Methode und Computersystem für die Optimierung eines Boolschen Ausdrucks für Anfragebearbeitung
DE102019107591A1 (de) Anzeigesystem, programm und speichermedium
DE60310881T2 (de) Methode und Benutzerschnittstelle für das Bilden einer Darstellung von Daten mit Meta-morphing
EP3563261B1 (de) Bitsequenzbasiertes datenklassifikationssystem
DE112018002626T5 (de) Verfahren und Systeme zur optimierten visuellen Zusammenfassung von Sequenzen mit zeitbezogenen Ereignisdaten
DE102012001406A1 (de) Automatische Konfiguration eines Produktdatenmanagementsystems

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final