<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Evolution von XML-Schemata auf konzeptioneller Ebene</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Thomas Nösinger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Meike Klettke</string-name>
          <email>meike@informatik.uni-rostock.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>XML-Schema</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>XML-Schema'</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>XML-Dokumente</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>XML-Dokumente'</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universität Rostock (tn</institution>
          ,
          <addr-line>meike</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2012</year>
      </pub-date>
      <abstract>
        <p>If new requirements arise models have to be adapted to them. Additionally, the instances based on these models have to be adapted as well otherwise they might not be valid anymore. The same applies to the XML schema as a model and widely accepted description for XML documents. One solution for solving the occurring validity problem is the here described XML schema evolution. On the basis of a conceptual model the user interaction is analyzed and translated into transformation steps for the adaption of XML instances. The user interaction contains the use of prede ned change operations on the conceptual model, a representation of the corresponding XML schema Die dynamische Anpassung von Modellen an aktuelle Gegebenheiten birgt die Notwendigkeit, vorhandene Instanzen und Anwendungen an die neuen, eventuell veranderten Umstande anzupassen. A ndert sich somit die strukturelle Beschreibung einer Datenbasis, muss zwangslau g auch die Datenbasis angepasst werden, damit die Gultigkeit bezuglich des neuen Modells gewahrleistet wird. Diese Problematik ist Kernpunkt des Gultigkeitsproblems, d.h. sind Instanzen eines Modells nach dessen A nderung noch gultig? Die Veranderung der Struktur eines XML-Schemas bspw. durch das Umsortieren von Inhaltsmodellen, das Erhohen des minimalen Vorkommens eines Elementes, das Einfugen oder auch Umbenennen nicht-optionaler Elemente etc. kann die Gultigkeit bereits vorhandener XML-Dokumente verletzen und macht eine Adaption dieser notwendig (siehe Abbildung 1).</p>
      </abstract>
      <kwd-group>
        <kwd>XML-Schemaevolution</kwd>
        <kwd>konzeptionelle Modellierung</kwd>
        <kwd>Gultigkeitsproblem</kwd>
        <kwd>Instanzanpassung</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>EINLEITUNG</title>
      <p>Der erste Ansatz ist die Anwendung einer
Evolutionssprache zur XML-Schemaevolution. Dies entspricht im
Datenbankbereich dem Alter-Befehl der Data De nition
Language SQL. Zur Zeit ist dieser Ansatz aufgrund der
fehlenden, standardisierten Evolutionssprache fur
XML-Schemata nicht anwendbar. Des Weiteren wird vom Anwender
an dieser Stelle ein tiefes Verstandnis bzw. Expertenwissen
der moglichen Sprachkonstrukte und deren Anwendung
verlangt.</p>
      <p>Der zweite Ansatz ist die Versionierung von Modellen.
Sind verschiedene Modelle vorhanden, dann konnen
Transformationsschritte aus dem Vergleich beider Modelle erzeugt
werden. Es mussen an dieser Stelle allerdings
unterschiedliche, eventuell nicht vergleichbare Versionen vorgehalten
werden. Des Weiteren wird normalerweise bei syntaktischen und
/oder semantischen Kon ikten eine automatische Losung
basierend auf Heuristiken vorgeschlagen oder aber der
Anwender zur Losung benotigt. Dieses Vorgehen erfordert
wiederum ein tieferes Verstandnis bzw. Expertenwissen der
beteiligten XML-Schemaversionen.</p>
      <p>Der dritte Ansatz nutzt die Interaktion eines Anwenders
aus, indem von diesem getatigte A nderungen an einer
konzeptionellen Reprasentation eines XML-Schemas analysiert
werden. Die Nutzeranderungen sind dabei die Anwendung
vorde nierter Operationen auf einem konzeptionellen
Modell. Das somit erlangte Wissen wird fur eine automatische
Erzeugung von Transformationsschritten zur Anpassung der
XML-Dokumente und Anwendungen verwendet. Es wird im
Vergleich zu den ersten beiden Ansatzen weder vom Nutzer
Expertenwissen bezuglich einer Evolutionssprache benotigt,
noch mussen unterschiedliche Versionen eines XML-Schemas
vorgehalten, ausgewahlt und verwendet werden.</p>
    </sec>
    <sec id="sec-2">
      <title>2. STAND DER FORSCHUNG</title>
      <p>
        Die XML-Schemaevolution wird sowohl von den gro en
Datenbank- und Softwareherstellern (u.a. Microsoft [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], IBM
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], Oracle [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], Altova [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]) als auch in Forschungsprototypen
(u.a. XCase [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], PRISM++ [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], X-Evolution [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], EXup [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
und GEA [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]) thematisch behandelt und auch teilweise
umgesetzt.
      </p>
      <p>Microsoft unterstutzt den XML-Datentyp, lasst den
Nutzer in Collections XML-Schemata sammeln und danach
mittels einer Typisierung die Spalten einer Relation einem
Schema zuordnen. XML-Instanzen typisierter Spalten konnen
bezuglich ihres XML-Schemas auf Gultigkeit gepruft
werden, andert sich allerdings ein XML-Schema, muss dieses
unter einer neuen Version erneut eingefugt werden.
Microsoft unterstutzt die hier angestrebte XML-Schemaevolution
nicht, sondern nutzt die Versionierung von XML-Schemata.
IBM DB2 ermoglicht die Registrierung von XML-Schemata
in einem XML-Schema-Repository (XSR) und eine
anschlieende Erweiterung dieser unter Beachtung von zehn
strengen Kompatibilitatsanforderungen. In Oracle konnen
Schemata ebenfalls registriert und anschlie end mittels der
Methoden copyEvolve und inPlaceEvolve evolutioniert werden.
Sowohl bei IBM als auch Oracle sind restriktive
Anforderungen gestellt, die nur eine Generalisierung des alten Schemas
ermoglichen und somit nur teilweise die angestrebte
XMLSchemaevolution unterstutzen.</p>
      <p>Altova bietet mit Di dog eine Erweiterung ihres Editors
an, mit dem zwei Schemata miteinander verglichen werden
konnen, um nachfolgend XSLT-Skripte zur Transformation
der Instanzen zu erzeugen. Treten bei dem Vergleich
Konikte auf, d.h. es kann keine eindeutige Zuordnung zwischen
den unterschiedlichen Strukturen der XML-Schemata
hergeleitet werden, dann wird vom Anwender eine manuelle
Zuordnung verlangt. Eine Automatisierung ist nicht moglich,
eine Nutzerinteraktion und somit Expertenwissen bezuglich
der XML-Schemata ist erforderlich.</p>
      <p>
        Die Prototypen X-Evolution [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] und EXup [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] nutzen eine
gra sche Ober ache zur Spezi kation, Ausfuhrung und
Veri kation von Schemaanderungen (beschrieben durch
Primitive), wobei die Updatesprache XSchemaUpdate fur die
Beschreibung der A nderungen und die Dokumentadaption
verwendet wird. Eine Grundlage dieser Systeme ist ein DBMS,
welches XMLTYPE unterstutzt. EXup und X-Evolution
verwenden daruber hinaus XSUpdate als Evolutionssprache,
welches XSPath nutzt (eine Teilmenge von XPath).
      </p>
      <p>
        PRISM++ [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] bietet einen fein-granularen
Evolutionsmechanismus zur Evolution von Datenbankschemata, welcher
Datenbankadministratoren unter Verwendung von
SMO-ICMO (Evolutionssprache: Schema Modi cation Operators
Integrity Constraints Modi cation Operators) die Evolution
erleichtern soll. PRISM++ ermoglicht keine
XML-Schemaevolution, thematisiert allerdings die Notwendigkeit, auch
Integritatsanderungen vollziehen zu konnen.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] wird das GEA Framework (Generic Evolution
Architecture) vorgestellt, in dem XML-Schemata als
UML-Klassendiagramme mit Stereotypen beschrieben werden. Unter
Verwendung von elementaren Transformationsregeln werden
A nderungen in UML auf XML propagiert.
      </p>
      <p>
        XCase [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] ist eine Implementierung von XSEM
(konzeptionelles Modell: Xml SEmantics Modeling), welches
unter Verwendung einer MDA (Model-Driven Architecture)
die XML-Schemaevolution durchfuhrt. Es existieren
unterschiedliche Abstraktionslevel (u.a. PIM als
Platform-Independent Model und PSM als Platform-Speci c Model) die
A nderungen auf abstrakterem Niveau ermoglichen und diese
dann zwischen den verschiedenen Ebenen propagieren (ein
XML-Schema ist ein PSM). Dieser Ansatz ist dem hier
vorgestellten am ahnlichsten, unterscheidet sich aber
grundlegend in der Herangehensweise der Erfassung von A
nderungen, deren Auswertung, Kategorisierung und dem Umfang
moglicher A nderungen bezuglich eines XML-Schemas.
      </p>
      <p>Eine automatische Erzeugung von
Transformationsschritten und die damit verbundene Anpassung von
XML-Dokumenten sind in den hier vorgestellten Forschungsprototypen
nicht moglich bzw. die umsetzbaren A nderungen sind nicht
umfangreich genug. Des Weiteren wird bei keinem der
Prototypen der hier vorgestellte Ansatz der
XML-Schemaevolution verfolgt, es besteht somit weiterhin Forschungsbedarf
in dieser Thematik.</p>
    </sec>
    <sec id="sec-3">
      <title>3. FORMALE GRUNDLAGEN</title>
      <p>
        Eine Grundlage der XML-Schemaevolution ist das an der
Universitat Rostock entwickelte, konzeptionelle EMX
Modell (Entity Model for XML-Schema), das zur gra schen
Modellierung von XML-Schemata im Forschungsprototypen
CodeX (Conceptual Design and Evolution for
XML-Schema [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]) implementiert wurde. Die folgende Formalisierung
des konzeptionellen Modells ist notwendig, um die bereits
erwahnten A nderungsoperationen auf dem EMX Modell
denieren zu konnen.
3.1
      </p>
    </sec>
    <sec id="sec-4">
      <title>Konzeptionelles Modell</title>
      <p>Das konzeptionelle Modell (MM ) ist ein Tripel, das aus
Knoten (NM ), gerichteten Kanten zwischen Knoten (EM )
und zusatzlichen Eigenschaften (FM ) besteht.</p>
      <p>MM = (NM ; EM ; FM )
(1)</p>
      <p>Die Knoten sind Elemente (elementsM ), Attributgruppen
(attributegroupsM ), Inhaltsmodelle (groupsM ), Typen
(einfache (simple-typesM ), komplexe (complex-typesM )), Module
(modulesM , u.a. externe XML-Schemata),
Integritatsbedingungen (integrity-constraintsM ) oder Annotationen
(annotationsM ). Die Knotenarten werden naher charakterisiert
(z.B. elementsM = felementM g, elementM = (ID, name,
namespace, geometry, minoccur, maxoccur)), was auf Grund
von Platzbeschrankungen an dieser Stelle und bei den
folgenden Modellen nicht vertieft werden soll. Die gerichteten
Kanten werden jeweils zwischen Knoten de niert, wobei die
Richtung die Zugehorigkeit (Enthalten-sein Beziehung)
umsetzt und gema der Moglichkeiten von XML-Schema
festgelegt wurden.</p>
      <p>Die zusatzlich zu de nierenden Eigenschaften ermoglichen
die Nutzer-spezi sche Anpassung eines konzeptionellen
Modells, insofern dies erwunscht ist. Dazu zahlen u.a.
CodeXStandardwerte zur Kon guration des Editors, Angaben zur
Pragmatik, Kosten, Namen und zur Version eines EMX
Modells. Die Pragmatik (Pragmatik 2 fkapazitatserhaltend,
kapazitatserhohend, kapazitatsreduzierendg) ist im
Zusammenhang mit den A nderungsoperationen notwendig, um den
Informationsverlust durch nicht beabsichtige
Modellanpassungen zu verhindern. Die Kosten sollen die Steuerung von A
nderungsoperationen ermoglichen, damit zu komplexe und
somit eventuell zu teure Transformationen verhindert werden
konnen. Kosten werden verwendet, um den Aufwand der
A nderungen zu bestimmen und gegebenenfalls eine
Versionierung vorzuschlagen.
3.2</p>
    </sec>
    <sec id="sec-5">
      <title>XML-Schema und XML-Instanzen</title>
      <p>
        XML-Schema (XSD) als strukturelle Beschreibung von
XML-Instanzen ist formal durch das W3C de niert [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Ein
XML-Schema (MS) ist in unserem Kontext ein Tupel aus
Knoten (NS) und zusatzlichen Eigenschaften (FS).
Beziehungen zwischen den Knoten (z.B. gerichtete Kanten) sind
implizit in den Knoten enthalten, die zusatzlichen
Eigenschaften sind Informationen zum Namen und der Version.
(2)
(3)
      </p>
      <p>MS = (NS; FS)</p>
      <p>Knoten sind laut abstraktem Datenmodell De nitionen
(type-de nitionsS), Deklarationen (declarationsS),
Modellgruppen (model-group-componentsS), Gruppende nitionen
(group-de nitionsS), Annotationen (annotationsS) oder
Bedingungen (constraintsS). Neben der abstrakten De nition
von Knoten existiert die Element-Informationseinheit, die
fur jeden Knoten die Realisierung innerhalb eines
XMLSchemas de niert, d.h. welche Inhalte und Attribute
konnen verwendet werden oder nicht.</p>
      <p>XML-Instanzen (MD) sind analog zum XML-Schema
Tupel aus Knoten (ND) und zusatzlichen Eigenschaften (FD),
wobei die Beziehungen zwischen den Knoten wieder implizit
in diesen enthalten sind.</p>
      <p>MD = (ND; FD)</p>
      <p>
        Die Knoten einer XML-Instanz sind Dokumente
(documentsD), Attribute (attributesD), Prozessanweisungen
(processing-instructionsD), Namensraume (namespacesD),
Texte (textsD) oder Kommentare (commentsD) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Zusatzlichen Eigenschaften sind der Name, die Version,
A nderungseigenschaften und Signi kanz eines Dokumentes.
Die A nderungseigenschaften (changeable 2 ftrue, falseg)
sollen bei XML-Instanzen den ungewollten Informationsverlust
verhindern (z.B. Entfernen von Elementen). Die Signi kanz
(signi cance) ist ein normierter Wert, um bei Auswertungen
von Dokumentkollektionen zum Finden von Standardwerten
Dokumente priorisieren bzw. gewichten zu konnen.
3.3</p>
    </sec>
    <sec id="sec-6">
      <title>Operationen</title>
      <p>
        Auf dem konzeptionellen Modell (EMX) werden vorde
nierte A nderungsoperationen vom Nutzer durchgefuhrt. Die
anwendbaren Operationen lassen sich gema der
Kategorisierung von A nderungsoperationen herleiten und
charakterisieren (siehe [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]). Charakteristika sind u.a. die
Kapazitatsanderung (kapazitatserhaltend, kapazitatserhohend oder
kapazitatsreduzierend), der XML-Instanzein uss
(Instanzanpassung bei EMX-A nderung notwendig, nicht notwendig
oder abhangig vom Parameter), die herleitbaren bzw.
abschatzbaren Kosten einer Operation und die Abhangigkeiten
von anderen Operationen. Eine Operation wird auf den oben
de nierten Modellen ausgefuhrt.
      </p>
      <p>Mx</p>
      <p>Operation
! M x0; x 2 fM; S; Dg
(4)</p>
      <p>Operationen sind zum Beispiel: changeElementType
(Umsortieren vom Inhaltsmodell), changeElementMinOccur
(Erhohen des minimalen Vorkommens eines Elementes),
addElementToComplexElement (Einfugen nicht-optionaler
Elemente) oder renameElement (Umbenennen eines
Elementes).</p>
      <p>Eine U bersicht uber die Zusammenhange zwischen den
Modellen und den Operationen ist in Abbildung 2
dargestellt. Die renameElement -Operation soll exemplarisch auf
den oben de nierten Modellen betrachtet werden. Dies ist
eine einfache Operation, kompliziertere
Evolutionsoperationen werden analog ausgefuhrt.</p>
      <p>Wenn ein Nutzer die gra sche Reprasentation eines
Elementes selektiert und das Attribut Name andert, dann wird
dieses in CodeX erkannt und als renameElementM
Operation geloggt. Regeln garantieren dabei, dass nur sinnvolle
Operationen geloggt werden (z.B. Voraussetzung fur
renameElement -Operation: oldValue 6= newValue). Die
Identikation des selektierten Elements wird im konzeptionellen
Modell durch eine eindeutige ID gewahrleistet. Neben der
ausgefuhrten Operation, den beteiligten Werten und der ID
mussen Informationen zum Kontext gespeichert werden.
Dazu zahlen u.a. Angaben zum Gultigkeitsbereich, zu
vorhandenen Referenzen und zum direkten Knotenumfeld
(Position in einem Inhaltsmodell etc.). Diese Kontextinformationen
sollen bei den nachfolgenden Operationen (renameElementS
und renameElementD ) die Identi zierung des betro enen
Elementes ermoglichen und die Verarbeitung erleichtern.</p>
      <p>C: renameElementS (oldValue, newValue, context)
8 n; m; k 2 NS ^ n 6= m ^ n 6= k ^ m 6= k ^ context (n):
// Globales Element mit neuem Namen existiert?
if n; m 2 elementsS ^ n:scope:variety = 0global 0 ^
m:scope:variety = 0global 0 ^ n:name = oldValue
^ m:name = newValue
then newValue := uniqueName(newValue) ^</p>
      <p>n:name := newValue
if 9 k 2 elementsS ^ k :scope:variety = 0local 0 ^
k :ref = oldValue
then 8 k: k :ref := newValue
// Lokales Element mit neuem Namen, aber anderem Typ existiert?
elseif n; m 2 elementsS ^ n:scope:variety = 0local 0 ^
m:scope:variety = 0local 0 ^ n:name = oldValue ^
m:name = newValue ^ n:type 6= m:type ^
n:parent :name = m:parent :name
then newValue := uniqueName(newValue) ^</p>
      <p>n:name := newValue
// Lokales Element, kein Namen-Typ-Konflikt?
elseif n 2 elementsS ^ n:scope:variety = 0local 0 ^
n:name = oldValue</p>
      <p>Nachdem der Nutzer das konzeptionelle Modell verandert
hat, muss das entsprechende XML-Schema ebenfalls
angepasst werden. Dafur wird das Log von CodeX geladen und
analysiert. Durch dieses Vorgehen sind die auszufuhrende
Operation, die veranderten Werte und der entsprechende
Knoten bekannt (Kontextinformationen). Durch die
darauffolgende Umbenennung eines Elementes im XML-Schema,
mussen je nach Gultigkeitsbereich, umgebenen
Knotenumfeld und vorhandenen Referenzen weitere Anpassungen am
XML-Schema vorgenommen werden. Zum Beispiel muss
gepruft werden, ob eventuell gleich benannte, globale Elemente
schon vorhanden sind oder ob Referenzen angepasst werden
mussen. Die im konzeptionellen Modell gesammelten und im
Log gespeicherten Kontextinformationen erleichtern dies.</p>
      <p>E: renameElementD (oldValue, newValue, context)
8 n 2 ND ^ FD :changeable:
if n 2 elementsD ^ n:node-name = oldValue ^
context (n)
then n:node-name := newValue</p>
      <p>Der letzte Schritt in der XML-Schemaevolution ist die
automatische Erzeugung von Transformationsschritten aus
den A nderungen des Nutzers am konzeptionellen Modell.
Nachdem das XML-Schema angepasst wurde, sind
vorhandene XML-Instanzen eventuell nicht mehr gultig
(Gultigkeitsproblem). Dies kann aus den Charakteristika der
Operationen, den gespeicherten Informationen des Logs und den
Anpassungen des XML-Schemas hergeleitet werden. Sind
Instanzen betro en (der XML-Instanzein uss der
Operation) und XML-Instanzen sollen verandert werden konnen
(FD :changeable), dann muss ein entsprechendes
Transformationsskript erzeugt werden, das die Instanzen anpasst.
In CodeX wird aktuell ein XSLT Skript (XML Stylesheet
Language Transformation) erzeugt, welches auf
XML-Dokumente angewendet werden kann.
3.4</p>
    </sec>
    <sec id="sec-7">
      <title>Zusammenhänge</title>
      <p>Die Beschreibung der Operationen macht deutlich, dass es
Abhangigkeiten sowohl zwischen den Modellen als auch
zwischen den Operationen gibt. Zum Beispiel sind die
Kontextinformationen des konzeptionellen Modells fur die Identi
kation von Knoten im XML-Schema und/oder XML-Instanzen
notwendig, zeitgleich lasst die Element-Informationseinheit
des XML-Schemas u.a. Aussagen uber notwendige oder nicht
notwendige Anpassungen von XML-Instanzen zu
(minOccurs, maxOccurs). Diese Zusammenhange wurden in der
Abbildung 2 dargestellt und fuhren zu folgenden Theoremen:</p>
      <p>Theorem 1. Ein konzeptionelles Modell MM wird durch
die Operation A eines Nutzers verandert zu M M0 . Sei B eine
Beschreibungsvorschrift zur Abbildung (Korrespondenz) des
konzeptionellen Modells MM auf ein XML-Schema MS. C
sei die Anderungsoperation zur Uberfuhrung von MS zu M S0.
Dann gilt:</p>
      <p>A + B ) C
Das Theorem 1 besagt: Sind die Operation des Nutzers auf
dem EMX Modell und die Korrespondenzen zwischen dem
konzeptionellen Modell und dem XML-Schema bekannt, so
kann die Operation zum Anpassen des XML-Schemas
hergeleitet werden.</p>
      <p>Theorem 2. Ein konzeptionelles Modell MM wird durch
die Operation A eines Nutzers verandert zu M M0 . Sei B
eine Korrespondenz zwischen dem konzeptionellen Modell MM
und einem XML-Schema MS und sei D eine Korrespondenz
zwischen dem XML-Schema MS und MD. E sei die
Anderungsoperation zur Uberfuhrung von XML-Instanzen MD zu
XML-Instanzen M D0, die bezuglich M S0 gultig sind. Dann gilt:</p>
      <p>A + B + D ) E
Das Theorem 2 besagt: Sind die Operation des Nutzers auf
dem EMX Modell und die Korrespondenzen zwischen dem
konzeptionellen Modell, dem XML-Schema und den
XMLInstanzen bekannt, so kann die Operation zum Anpassen der
XML-Instanzen hergeleitet werden.</p>
      <p>Es konnen somit aus der Auswertung der
Nutzerinteraktion mit dem konzeptionellen Modell automatisch
entsprechende Transformationsschritte hergeleitet werden.
4.</p>
    </sec>
    <sec id="sec-8">
      <title>BEISPIEL</title>
      <p>Die vorgestellte renameElement -Operation wird
nachfolgend an einem durchgangigen Beispiel auf den
unterschiedlichen Modellen angewendet.</p>
      <p>Der Knoten mit dem Namen 'nummer' wird vom Nutzer
ausgewahlt und im konzeptionellen Modell verandert (siehe
Abbildung 3). Es sind keine Einschrankungen bezuglich der
Modellpragmatik oder der nicht zu uberschreitenden Kosten
gemacht worden (siehe FM ). CodeX erkennt, dass der
ausgewahlte Knoten eine spezi sche ID (hier z.B. '1') hat und
entsprechend ein Element ist. Wird nun das Attribut Name
verandert, d.h. dieses Attribut bekommt den neuen Wert
'ID' ('nummer' 6= 'ID'), dann wird dies in das Log
geschrieben. Im Log steht, dass die Operation renameElement ('1',
'nummer', 'ID') ausgefuhrt wurde. Des Weiteren werden
anhand der eindeutigen Knoten-ID Kontextinformationen
gespeichert, zum Beispiel die Gultigkeit ('lokal'), eventuelle
Referenzen (ist in dem Fall aufgrund der Gultigkeit nicht
moglich) und das Knotenumfeld (Vaterknoten ist gema der
Kanteninformationen EM 'event', Inhaltsmodell ist eine
Sequenz, zweite Position in Sequenz).
Abbildung 4 ist das zum obigen EMX Modell
gehorende XML-Schema. Die Korrespondenzen zwischen dem
konzeptionellem Modell und dem XML-Schema sind de niert,
d.h. es ist aufgrund der Abbildungsvorschriften moglich, das
eine Modell in das andere zu uberfuhren. Durch das Log
ist bekannt, dass die renameElement -Operation ausgefuhrt
wurde, diese Operation muss demnach auch auf dem
XMLSchema nachvollzogen werden. Es gibt dem Log folgend ein
lokales Element ohne Referenzen im XML-Schema, welches
den Namen 'nummer' hat, in einer Sequenz an zweiter Stelle
steht und den Vater 'event' besitzt. Dieses Element soll
umbenannt werden, das Attribut 'name' soll den neuen Wert
'ID' erhalten. In dem uberschaubaren Beispiel ist dies nur
ein Knoten, der den entsprechenden Kontext hat und mittels
der renameElement -Operation umbenannt wird.</p>
      <p>Aufgrund der Anwendung einer Operation auf dem
konzeptionellen Modell (Operation und Kontextinformationen
werden geloggt) und der bekannten Korrespondenzen, kann
demnach die Operation zum Anpassen des XML-Schemas
hergeleitet werden (siehe Theorem 1).</p>
      <p>Durch die Umbenennung eines Elementes kann die
Gultigkeit von XML-Instanzen betro en sein. Es wurde die
renameElement -Operation ausgefuhrt, welche laut
Operationsspezi kation eine kapazitatserhaltende Operation ist. Des
Weiteren kann die Operation je nach Parametern (d.h. die
Kontextinformationen) einen Ein uss auf die Gultigkeit von
XML-Instanzen haben. Es muss zunachst der
entsprechende Elementknoten im XML-Schema durch die
Kontextinformationen ermittelt werden. Es ist bekannt, dass das
Element 'nummer' laut Korrespondenz zwischen
XML-Schema und XML-Instanz ein zwingendes Element in einer
Sequenz war (minOccurs = '1'), falls das globale Vaterelement
'event' als Dokumentenwurzel ausgewahlt wurde. Das
bedeutet, dass alle XML-Instanzen die gultig bezuglich des
alten XML-Schemas waren und die verandert werden
sollen (FD :changeable), entsprechend an das neue
XML-Schema angepasst werden mussen.</p>
      <p>Durch die Anwendung einer Operation auf dem
konzeptionellen Modell und der bekannten Korrespondenzen
zwischen EMX Modell, XML-Schema und XML-Instanz, kann
die Operation zum Anpassen der XML-Instanzen hergeleitet
werden (siehe Theorem 2).</p>
      <p>Diese Operation bzw. die notwendigen
Transformationsschritte sind in einem XSLT-Skript realisiert, welches fur das
Beispiel in Abbildung 5 dargestellt ist.</p>
      <p>Ergebnis
Export</p>
      <p>Updateskripte &amp;</p>
      <p>
        Evolutionsergebnisse
Transformation
konzeptionelle Modell bzw. dessen gra sche Reprasentation
von einem Nutzer verandert werden, was entsprechend in
einem Log gespeichert wird. Welche A nderungen bzw. vorde
nierten Operationen anwendbar sind, wird durch
Operationsspezi kationen beschrieben (siehe Kategorisierung in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]).
Das konzeptionelle Modell wird aus einem gegebenen
XMLSchema unter Verwendung vom Modell-Mapping
Informationen (Korrespondenzen) extrahiert oder neu angelegt. Das
Log kann nach einer entsprechenden Analyse zur Erzeugung
von XSLT-Skripten verwendet werden, welche die aus den
Nutzeraktionen hergeleiteten Transformationsschritte
umsetzen. Diese Transformation nutzt die evolutionsspezi schen
Daten, u.a. erneut die Operationsspezi kation,
XML-Schemainformationen, gegebene Kon gurationen oder auch
Dokumentkollektionen. Kon gurationen sind die zusatzlichen
Eigenschaften (FM ) des konzeptionellen Modells, wahrend
die Dokumentinstanzen zur Kostenabschatzung und
gegebenenfalls zur Wert ndung verwendet werden konnen. Die
Datenbereitstellung und Extraktion von Ergebnissen
werden entsprechend durch Import und Export-Komponenten
realisiert.
      </p>
    </sec>
    <sec id="sec-9">
      <title>ZUSAMMENFASSUNG</title>
      <p>Die XML-Schemaevolution behandelt das
Gultigkeitsproblem. Wenn sich XML-Schemata andern und somit an neue
Gegebenheiten bzw. Anforderungen angepasst werden,
mussen deren Instanzen zur Wahrung der Gultigkeit ebenfalls
adaptiert werden. Dies sollte weitestgehend automatisch
erfolgen. Im prasentierten Ansatz wird ein konzeptionelles
Modell verwendet, welches eine vereinfachte, gra sche
Reprasentation eines XML-Schemas ist. Wird das konzeptionelle
Modell durch vorde nierte Operationen von einem Nutzer
verandert, dann wird das damit gewonnene Wissen
entsprechend geloggt und danach fur die Anpassung des
XML-Schemas und der XML-Instanzen angewendet. In diesem
Zusammenhang sind Kontextinformationen und Korrespondenzen
zwischen den Modellen entscheidend, denn nur durch diese
Informationen konnen automatisiert
Transformationsschritte aus der Nutzerinteraktion hergeleitet werden.</p>
      <p>Die einzelnen Modelle wurden kurz vorgestellt, bevor die
renameElement-Operation formal beschrieben wurden. Die
Zusammenhange der einzelnen Modelle und die Anwendung
der renameElement-Operation wurde ebenfalls thematisiert.
An einem durchgangigen Beispiel wurde daruber hinaus
dargestellt, wie diese Operation auf den einzelnen Modellen
angewendet wird. Des Weiteren wurde CodeX als
Forschungsprototyp prasentiert, der zur Realisierung und
Durchfuhrung der XML-Schemaevolution unerlasslich ist.</p>
      <p>Ein hier nicht ausfuhrlich, aber dennoch in CodeX bereits
vorhandener Aspekt ist die Berucksichtigung von
Kostenfunktionen bei der XML-Schemaevolution. Aktuell werden
die moglichen Kosten einer Evolution anhand der
durchzufuhrenden A nderungsoperation abgeschatzt und mit einem
Nutzer-spezi schen Grenzwert verglichen. CodeX kann so
kon guriert werden, dass bei U berschreitung dieses Wertes
A nderungsoperationen abgelehnt werden und stattdessen
eine Versionierung vorgeschlagen wird.</p>
    </sec>
    <sec id="sec-10">
      <title>AUSBLICK</title>
      <p>CodeX bietet derzeit Basisfunktionalitaten zur
Modellierung von XML-Schema und zur XML-Schemaevolution an.
Momentan fehlen allerdings die Behandlung von
Integritatsbedingungen, Namensraume, die Beachtung von
Dokumentkollektionen und die Auswertung und Speicherung der
Kontextinformationen. In Zuge der Anpassung und Erweiterung
soll CodeX als Webapplikation freigeschaltet werden, damit
der Prototyp von anderen Anwendern zur
XML-Schemaevolution verwendet werden kann.</p>
      <p>
        Des Weiteren werden die bisher vorhandenen
Beschreibungen der A nderungsoperationen gema der
Kategorisierung von [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] erweitert, formal beschrieben und integriert.
      </p>
    </sec>
    <sec id="sec-11">
      <title>REFERENCES</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <source>[1] XQuery 1.0 and XPath 2</source>
          .
          <article-title>0 Data Model (XDM) (Second Edition)</article-title>
          . http://www.w3.org/TR/2010/ REC-xpath-datamodel-
          <volume>20101214</volume>
          /,
          <year>December 2010</year>
          . Online; accessed 01-March-
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[2] Altova Produkt di dog: XML-Schemavergleich</article-title>
          . http://www.altova.com/de/diffdog/ xml-schema
          <article-title>-diff-tool</article-title>
          .html,
          <year>2011</year>
          . Online; accessed 15-December-
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>IBM</given-names>
            <surname>DB2 LUW V9R7 Online</surname>
          </string-name>
          <article-title>Documentation</article-title>
          . http://publib.boulder.ibm.com/infocenter/ db2luw/v9r7/index.jsp,
          <year>2011</year>
          . Online; accessed 15-December-
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <article-title>[4] Microsoft technet: Verwenden von xml in sql server</article-title>
          . http://technet.microsoft.com/de-de/library/ ms190936
          <source>(SQL.90)</source>
          .aspx,
          <year>2011</year>
          . Online; accessed 15-December-
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Oracle</surname>
            <given-names>XML</given-names>
          </string-name>
          <source>DB Developer's Guide 11g Release</source>
          <volume>2</volume>
          (
          <issue>11</issue>
          .2). http://docs.oracle.com/cd/E11882_01/ appdev.112/e23094/xdb07evo.htm,
          <year>2011</year>
          . Online; accessed 12-December-
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>W3C</given-names>
            <surname>XML Schema</surname>
          </string-name>
          <article-title>De nition Language (XSD) 1.1 Part 1: Structures</article-title>
          . http://www.w3.org/TR/2012/ PR-xmlschema11-
          <fpage>1</fpage>
          -20120119/,
          <year>January 2012</year>
          . Online; accessed 01-March-
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>F.</given-names>
            <surname>Cavalieri</surname>
          </string-name>
          .
          <article-title>EXup: an engine for the evolution of XML schemas and associated documents</article-title>
          .
          <source>In Proceedings of the 2010 EDBT/ICDT Workshops, EDBT '10</source>
          , pages
          <issue>21:1</issue>
          {
          <fpage>21</fpage>
          :
          <fpage>10</fpage>
          , New York, NY, USA,
          <year>2010</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Curino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. J.</given-names>
            <surname>Moon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Deutsch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Zaniolo</surname>
          </string-name>
          .
          <article-title>Update Rewriting and Integrity Constraint Maintenance in a Schema Evolution Support System: PRISM++</article-title>
          . PVLDB,
          <volume>4</volume>
          (
          <issue>2</issue>
          ):
          <volume>117</volume>
          {
          <fpage>128</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>E. Dom nguez</given-names>
            , J.
            <surname>Lloret</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Perez</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Rodr guez,</article-title>
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Rubio</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Zapata</surname>
          </string-name>
          .
          <article-title>Evolution of XML schemas and documents from stereotyped UML class models: A traceable approach</article-title>
          .
          <source>Information &amp; Software Technology</source>
          ,
          <volume>53</volume>
          (
          <issue>1</issue>
          ):
          <volume>34</volume>
          {
          <fpage>50</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>H.</given-names>
            <surname>Grunert. XML-Schema</surname>
          </string-name>
          <string-name>
            <surname>Evolution</surname>
          </string-name>
          :
          <article-title>Kategorisierung und Bewertung</article-title>
          .
          <source>Bachelor Thesis</source>
          , Universitat Rostock,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>G.</given-names>
            <surname>Guerrini</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mesiti. X-Evolution</surname>
          </string-name>
          :
          <article-title>A Comprehensive Approach for XML Schema Evolution</article-title>
          .
          <source>In DEXA Workshops</source>
          , pages
          <volume>251</volume>
          {
          <fpage>255</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Klettke</surname>
          </string-name>
          .
          <article-title>Conceptual XML Schema Evolution - the CoDEX Approach for Design and Redesign</article-title>
          .
          <source>In BTW Workshops</source>
          , pages
          <volume>53</volume>
          {
          <fpage>63</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Klettke</surname>
          </string-name>
          . Modellierung,
          <article-title>Bewertung und Evolution von XML-Dokumentkollektionen</article-title>
          . Habilitation, Fakultat fur Informatik und Elektrotechnik,
          <source>Universitat Rostock</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Klettke</surname>
          </string-name>
          , H. Meyer, and B. Hansel. Evolution |
          <article-title>The Other Side of the XML Update Coin</article-title>
          .
          <source>In 2nd International Workshop on XML Schema and Data Management (XSDM)</source>
          , Tokyo,
          <year>April 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>J. Kl mek</surname>
          </string-name>
          , L. Kopenec,
          <string-name>
            <given-names>P.</given-names>
            <surname>Loupal</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. Maly.</surname>
          </string-name>
          <article-title>XCase - A Tool for Conceptual XML Data Modeling</article-title>
          .
          <source>In ADBIS (Workshops)</source>
          , pages
          <fpage>96</fpage>
          {
          <fpage>103</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>