<!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>eXoeluXtioo:luTtoiool:foTroXoMlfLorScXhMemLa SancdheDmataa aMnadnaDgaemtaent? Management?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jakub Kl´ımek</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jakub Mal y´</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Irena Mly´nkova´</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Necˇasky´</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ItemTester @tester</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>XJMaLkuabndKWlembeEkn</institution>
          ,
          <addr-line>giJnaeekruinbg MReaselyar,cIhreGnroauMp, lDyenpkaortvmae</addr-line>
          ,
          <institution>natnofdSMoftawratrienENngeicnaesekriyng Faculty of Mathematics and Physics, Charles University in Prague XML and WeMbaElonsgtriannesekre ́innga ́mReˇesst ́eı2a5r</institution>
          ,
          <addr-line>c1h1G8r0o0uPpr,ahDae1p,aTrhtmeCenztecohf RSeopfutwblaicre Engineering</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>} Malostranske namest 25</institution>
          ,
          <addr-line>118 00 Praha 1, The</addr-line>
          <country country="CZ">Czech Republic</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2012</year>
      </pub-date>
      <fpage>69</fpage>
      <lpage>80</lpage>
      <abstract>
        <p>Recently XML has achieved the leading role among languages for data representation and, thus, the amount of related technologies and applications exploiting them grows fast. However, only a small percentage of applications is static and remains unchanged since its first deployment. Most of the applications change with newly coming user requirements and changing environment. In this paper we describe a tool for evolution and change propagation of XML applications called eXolutio, which has been developed and improved in our research group during last few years. The text should help the reader to get acquainted with the tool and its theoretical background.</p>
      </abstract>
      <kwd-group>
        <kwd>XML schema</kwd>
        <kwd>conceptual modeling</kwd>
        <kwd>tool</kwd>
        <kwd>evolution</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>other. Such evolution brings a challenge for research, so that the user interaction and,
hence, the expensive and error-prone work can be minimized. We cannot leave the user
out completely, there still remain cases when user decision is unavoidable; however,
automatic management of evolution enables to identify all the affected parts of the
application and perform the user-selected changes correctly and efficiently and, possibly,
exploit them in further automatic processing.</p>
      <p>
        In our research group we have focused on the area of efficient and correct
management of a family of XML formats for several recent years. Starting with a simple idea
of propagation of changes among related XML formats, we have gradually extended
our effort towards a robust framework and its implementation in a tool called eXolutio.
It currently supports the original idea of designing XML formats using the principles of
Model Driven Architecture (MDA) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], their evolution, and integration of new XML
formats into the framework.
      </p>
      <p>Contributions The aim of this paper is to provide a covering overview of our research
in the area of XML evolution, to describe architecture and implementation of the
eXolutio tool, to present results of our experiments with the tool proving the concept and
efficiency and a comparison of the tool with similar tools.</p>
      <p>Outline The rest of the paper is structured as follows: In Section 2 we focus on the
background theoretical aspects – our conceptual model for XML. In Section 3 we
introduce eXolutio, our tool in which we implement our research results. In Section 4 we
provide the proof of the concept using a set of experiments. In Section 5 we discuss the
related work. Finally, in Section 6 we conclude.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Conceptual Model for XML</title>
      <p>In this section, we introduce our conceptual model for XML and its inheritance
extension. It has two levels, PIM and PSM, which is inspired by MDA.</p>
      <p>A PIM schema is based on UML class diagrams and models real-world concepts
and relationships among them. It contains three types of components: classes, attributes
and associations. A sample PIM schema is depicted in Figure 1. Where association
cardinality is not explicitly stated, default cardinality 1..1 applies. A part of the PIM
are also integrity constraints which we are currently working on, but which are not in
the scope of this paper.</p>
      <p>Definition 1. A platform-independent (PIM) schema is a triple S = (Sc, Sa, Sr) of
disjoint sets of classes, attributes, and associations, respectively.</p>
      <p>– Class C ∈ Sc has a name assigned by function name. For inheritance purposes,
function isa assigns a parent class to a child class (UML generalization) and must
not form a cycle. Furthermore, functions abstract and final determine whether the
class can have instances in data and whether this class can be inherited from,
respectively.
– Attribute A ∈ Sa has a name, data type and cardinality assigned by functions name,
type, and card, respectively. Moreover, A is associated with a class from Sc by
function class.</p>
      <p>Supply
amount
supply-price
date</p>
      <p>0..*</p>
      <p>Association R ∈ Sr is a set R = {E1, E2}, where E1 and E2 are called association
ends of R. R has a name assigned by function name. Both E1 and E2 have a
cardinality assigned by function card and are associated with a class from Sc by
function participant. We will call participant(E1) and participant(E2) participants
of R. name(R) may be undefined, denoted by name(R) = λ.</p>
      <p>For a class C ∈ Sc, we will use attributes (C ) to denote the set of all attributes of C,
i.e. attributes (C ) = {A ∈ Sa : class(A) = C}. Similarly, associations (C ) will denote
the set of all associations with C as a participant, i.e. associations (C ) = {R ∈ Sr :
(∃E ∈ R)(participant(E) = C)}. For a given association R = (E1, E2), we will use
notation (C1, C2) as an equivalent of (participant(E1), participant(E2)) if there are
no more associations connecting C1 and C2.</p>
      <p>The platform-specific model (PSM) specifies how a part of the reality is represented
in a particular XML schema in a UML-style way. We introduce it formally in
Definition 2. We view a PSM schema in two perspectives. From the grammatical perspective,
it models XML elements and attributes. From the conceptual perspective, it delimits
the represented part of the reality. Its advantage is that the designer works in a
UMLstyle way which is more comfortable then editing the XML schema. Formally, there is
a mapping from each PSM schema to the PIM schema.</p>
      <p>Definition 2. A platform-specific (PSM) schemais a tuple S 0 = (Sc0 , S a0, Sr0 , S m0, CS00 )
of disjoint sets of classes, attributes, associations, and content models, respectively, and
one specific class CS00 ∈ Sc0 called schema class.</p>
      <p>Class C0 ∈ Sc0 has a name assigned by function name. For inheritance purposes,
function isa assigns a parent class to a child class and the relation must not form
a cycle. Furthermore, functions abstract and finaldetermine whether the class can
have instances in data and whether this class can be inherited from, respectively.
Attribute A0 ∈ S a0 has a name, data type, cardinality and XML form (whether it
models an XML attribute or an XML element) assigned by functions name, type,
card and xform, respectively. xform(A0) ∈ {e, a}. Moreover, it is associated with
a class from Sc0 by function class and has a position assigned by function position
within the all attributes associated with class(A0).
cust</p>
      <p>items
|</p>
      <p>ItemPricing
price
amount</p>
      <p>PurRSSchema
purchaseRS
Purchase
@code
create-date
@version
status
cust
Customer
name</p>
      <p>addr
GlobalAddress
street
city
country
(b)
items</p>
      <p>Items
1..* item</p>
      <p>Item
ProductBase
Product</p>
      <p>CommonSchema</p>
      <p>ProductBase
code
title
(c)
– Association R0 ∈ Sr0 is a pair R0 = (E10, E20), where E10 and E20 are called
association ends of R0. Both E10 and E20 have a cardinality assigned by function card
and each is associated with a class from Sc0 or content model from Sm0 assigned by
function participant, respectively. We will call participant(E10) and participant(E20)
parent and child and will denote them by parent(R0) and child(R0), respectively.
Moreover, R0 has a name assigned by function name and has a position assigned
by function position within the all associations with the same parent(R0). name(R0)
may be undefined, denoted by name(R0) = λ.
– Content model M 0 ∈ Sm0 has a content model type assigned by function cmtype.
cmtype(M 0) ∈ {sequence, choice, set}.</p>
      <p>0 , Sr0 ) must be a forest1 of rooted trees with one of its trees rooted in
The graph (Sc0 ∪ Sm
CS00 . For C0 ∈ Sc0 , attributes (C0 ) will denote the sequence of all attributes of C0 ordered
by position, i.e. attributes (C0 ) = (A0i ∈ Sa0 : class(A0i) = C0 ∧ i = position(A0i)).
Similarly, content (C0 ) will denote the sequence of all associations with C0 as a parent
ordered by position, i.e. content (C0 ) = (Ri0 ∈ Sr0 : parent(Ri0) = C0 ∧ i = position(Ri0)).
We will call content (C0 ) content of C0.</p>
      <p>A sample PSM schema is depicted in Figure 2. PSM uses similar constructs to PIM:
classes, attributes and associations. The PSM-specific constructs have precisely defined
semantics. A class models a complex content. The complex content is specified by the
attributes of the class and associations in its content (their ordering is given by functions
attributes and content). An attribute models an XML element declaration with a simple
content or XML attribute declaration depending on its XML form (function xform).
An association models an XML element declaration with a complex content if it has
a name. Otherwise, it models only that the complex content modeled by its child is
nested in the complex content modeled by its parent. Type of the modeled content (set,
1 Note that since S0 is a forest, we could model R0 directly as a pair of connected components.</p>
      <p>
        However, we use association ends to unify the formalism of PSM with the formalism of PIM.
choice, sequence) can be specified by a special construct that can be, for example, seen
in Figure 2(a) under the Item class.
2.1 Interpretation of PSM schema against PIM schema
A PSM schema represents a part of a PIM schema. A class, attribute or association in
the PSM schema may be mapped to a class, attribute or association in the PIM schema.
In other words, there is a mapping which specifies the semantics of classes, attributes
and associations of the PSM schema in terms of the PIM schema. The mapping must
meet certain conditions to ensure consistency between PIM schemas and the specified
semantics of the PSM schema. The interpretation of a PSM schema against a PIM
schema is what we call the mapping. It is the core feature of our conceptual model.
It interconnects constructs on the platform-specific level with those on the
platformindependent level and allows for interesting use cases for the conceptual model like
XML schema evolution and integration [
        <xref ref-type="bibr" rid="ref13 ref14 ref19 ref20">13, 14, 19, 20</xref>
        ]. Its definition is, however, not
trivial and is beyond the scope of this paper.
3
      </p>
      <p>
        eXolutio architecture
The implementation of our research results is a tool called eXolutio [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. There exists
also an older version of our conceptual model and its implementation called XCase [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ],
which is the predecessor of eXolutio. For simplicity, we will stick to the current name.
eXolutio allows the user to model a PIM schema and multiple PSM schemas with
interpretations against the PIM schema. The user can then evolve the whole set of schemas
coherently, because his operations are propagated to all affected places by a mechanism
described in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
Presentation
      </p>
      <p>View</p>
      <p>Updates
user</p>
      <p>Input</p>
      <p>Controller</p>
      <p>Model
Operations</p>
      <p>CommandBase *
+CommandOperation()
+UndoOperation()
+PrePropagation()
+PostPropagation()
ComposedCommand SubCommands AtomicCommand
+CommandOperation() 1 *
foreach c in SubCommands
c.PrePropagation()
c.CommandOperation()
c.PostPropagation()
1 CommandStack
+Push(in c : CommandBase)
+Pop() : CommandBase</p>
      <p>UndoStack RedoStack</p>
      <p>1 1
Control er
+Undo()
+Redo()
c = UndoStack.Pop()
c.UndoOperation()
RedoStack.Push(c)
(a) Overall architecture
(b) Controller</p>
      <p>
        The architecture of eXolutio is based on the Model–View–Controller (MVC) design
pattern (Figure 4(a)). This means that we hold all the project data in the model part,
neither mixing it with operations, nor visualization. Whenever a user issues a command,
it is handled by the controller part. The controller makes all the necessary changes in the
model. The view part observes that the model has changed and updates the visualization.
The connections between individual parts are loose enough so it is possible to, e.g., use
multiple visualizations. In particular, we have a Windows Presentation Foundation [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
visualization (a desktop application) a Silverlight [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] visualization (a web application)
and a no-visualization (a console application) versions of eXolutio which all share the
same model and the same controller.
      </p>
      <p>
        Model The model part of the tool based on our conceptual model [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] consists of classes
for each modeled component, such as a class, an association or an attribute on each of
the modeled levels (PIM and PSM), a class for PIM and PSM schemas and a class for
the whole project. Besides the obvious properties of components like a name or a
collection of attributes of a class, each component class implements methods for serialization
and deserialization of the component to and from XML. Therefore, when we save and
load a project, we simply call a serialization or a deserialization method on all found
objects in a certain order. Finally, each schema contains lists of all the components of
individual types in that schema, so we can easily go through, e.g., all associations in a
certain schema. Since one of the main features of our tool is the visualization of
connections between the two levels of abstraction, one of the most common queries is “Give
me all PSM classes which have this PIM class as their interpretation”. We basically go
through each PSM schema in the project and through each PSM class in that schema
and check whether its interpretation is the given PIM class. In addition, the model
contains methods for easy traversal of both the PIM and PSM schemas. An example can
be a method for retrieval of all attributes of a PSM class including those inherited by
the structural representative constructs. Another example can be a method that gets all
uninterpreted descendants of an interpreted PSM class. When a certain method
representing a query over the model is needed by the controller more than once, we make it
a model method so that everyone can use it.
View The view component serves for two purposes: it visualizes the model for the user
and provides user-friendly interface to run the controller commands. PIM schemas are
depicted as UML diagrams and the layout of the diagram is left up to the user
preference, for PSM schemas we use automatic hierarchical layouting to emphasize the fact
that a PSM schema is a tree/forest. Besides the visualizations of the schemas, view
component provides several windows and controls that help the user to navigate the modeled
project, see the connections between individual concepts and follow the various links
(e.g. find interpretation of an attribute or a class referred from a structural representant).
The view component can be run either as a desktop application or inside a web browser
using Silverlight plugin technology. This browser view can be used to accompany a
documentation of published XML schema standards (e.g. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]). An interactive
visualization of a family of schemas joined by a common model can benefit greatly every system
designer, who wants to adopt a third party standard and needs a clear overview of the
whole problem domain and its individual schemas.
      </p>
      <p>
        Controller The controller is the core of the tool. It contains all the operations and
algorithms that make the tool unique. Also, it contains the usual command and undo/redo
management. Whenever a user issues a command from view, it is handled by the
controller. The controller (depicted in Figure 4(b)) gets all the necessary parameters from
view such as what command is requested, the currently selected components, the new
name for a component, etc. The controller creates the appropriate command, which in
most cases will be one of our composite operations (described later in this section) and
passes all the required parameters. The operation executes and updates the model
accordingly. Then it places the command on the undo stack. The command itself contains
all the information it needs to change the model back to the state it was in before the
command was executed. In other words, we can simply call undo and the command
knows what it needs to do and whether it is possible. This way, we can stack the
executed commands and perform undo and redo operations as needed and as usual. In [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]
we have described a theoretical background for atomic (simple, well defined) and
composite (user-friendly) operations, which we will now describe from the implementation
point of view. One of our goals was also to make the two levels of abstraction (PIM and
PSM) work as independently of each other as possible while maintaining consistency
when there are connections between the levels. Therefore, the operations need to work
at their respective levels and be propagated only when there is an interpretation. Since
we have a quite complex system of operations, we had to break it down into simpler
parts. This means that among our atomic operations one can find for example an
operation that creates an attribute. But it does not do anything else than that. Specifically, it
does not give a name to the attribute, it does not set its datatype, etc. For that, we have
other atomic operations. Having the atomic operations, we can compose more complex
and user-friendly ones. A basic composite operation can be the already mentioned
creation of an attribute, which this time is user friendly. It is composed of the creation
of the attribute, renaming the attribute, setting its cardinality and its datatype. If it was
a PSM attribute, the operation would also set its xform (Definition 2). So this is
basically a predefined sequence of 4 or 5 operations, which is quite simple. Another simple
example can be deletion of an attribute. This means setting its cardinality, name and
datatype to default values and then deleting it. The reason for this is that when we undo
this operation, we want the name and the other values of the attribute to recover, so it is
not correct to just delete the attribute. Let us have a look at a more advanced example.
      </p>
      <p>So far we have described how to compose atomic and composite operations.
However, these worked on their respective levels of abstraction. Now we have to make sure
that when there is an interpretation of a PSM schema against a PIM schema, we keep
the model in a consistent state and save the user’s time by propagating the changes
between the levels. This is achieved by the propagation. Before each atomic operation is
executed, a method implementing its propagation to the other level is called. It
determines whether there is an interpretation and therefore the need to propagate. If so, it
creates a (possibly) composite operation on the other level of abstraction and integrates
it to the currently running operation. Only when the propagation succeeds, the original
atomic operation that caused it is executed. This way, the propagation actually becomes
a part of the currently running operation. This is convenient because when it finishes, it
can be undone and redone like any other operation.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Experiments</title>
      <p>To provide the proof of the whole concept and show the advantages of our tool, we
evaluate our approaches using experiments based on a real-world family of XML schemas.
We experiment with the National Register for Public Procurement System (NRPP)2. It
is a governmental information system where public authorities in the Czech Republic
publish data about their public contracts. Authorities send contract information to the
information system formatted in one of the 17 XML formats accepted by the NRPP.
This includes, e.g. XML format for contract notifications, supplier selection
notifications, etc. The information is then published by the system in the form of HTML pages.
The goal of the experiment is to show how our approach would save time if the authors
of the NRPP XML formats used eXolutio to design the XML formats and evolve them
according to changing legislation instead of their manual editing and adaptation.</p>
      <p>Currently, the NRPP only provides a textual documentation for the XML formats
and a set of sample XML documents. Therefore, our first goal is to design a conceptual
schema in a form of a PIM schema which models the domain of public contracts and
design PSM schemas of the XML formats mapped to the PIM schema.</p>
      <p>The PIM schema contains classes which model public contracts and their procurers
and suppliers. There are also some additional concepts modeled – i.e. prices and contact
information. A supplier is associated with a contract, a procurer is associated with a
contract by a path of associations has contact and main. Each contract has additional
contact information – where documentation for the contract is provided and where bids
to the contract are collected. Finally, there are four different prices – expected price, the
best offered price, price agreed by a selected supplier and procurer, and a final real price
known after finishing the contract. The PSM schema depicted in Figure 5 (a) models
an XML format which a public authority uses to send a notification about a new public
contract to NRPP. The PSM schema depicted in Figure 5 (b) models an XML format
for notifications about the supplier selected for the contract.
2 http://www.isvz.cz (in Czech only)</p>
      <p>We can measure the amount of manual work required to design the PIM and PSM
schemas in terms of numbers of executed atomic operations. The numbers of atomic
operations executed to create the PIM and PSM schemas are depicted in Figure 6 (a). It
shows that only creation and update operations were used. Here, manual creation of the
schemas is necessary so there is no direct advantage in comparison to writing the XML
schemas of the XML formats directly. However, eXolutio saves time because for each
performed atomic operation it checks whether it does not break the consistency between
the XML formats. When the designer codes the XML schemas of the XML formats
directly no such control is performed automatically and (s)he must do it manually in
each step during coding.</p>
      <p>Having the PIM schema and a set of PSM schemas of the XML formats used by
NRPP we set ourselves three goals. The first goal is to show how eXolutio facilitates
creating new XML formats on the basis of an existing PIM schema. A PSM schema of
a new XML format for public procurer details is depicted in Figure 5 (c). The numbers
of the atomic operations executed at this step are depicted in Figure 6 (b). Again, only
the creation and update operations were performed. Even though the designer needs to
design the PSM schemas for the new XML formats manually, the experiment shows
that our approach saves him/her a great deal of work and prevents him/her from making
unnecessary errors. This is because our technique enables us to create the PSM schemas
on the basis of the PIM schema (which is faster than creating PSM schemas separately)
and ensures that the designer creates the PSM schemas coherently with the PIM schema
(as it preserves the consistency of the interpretation).</p>
      <p>The second goal is to improve the quality of the NRPP XML formats, which is
low. The designers of the XML formats did not follow basic XML design principles
(e.g. exploiting the hierarchical nature of XML). For example, contact information is
modeled by XML elements with names prefixed with cont , docs , etc. It would
have been better to remove the prefixes and enclose the semantically related XML
elements into separate XML elements (e.g. enclose contact XML elements to XML
element contact structured to main, doc, etc. or enclose all information related to
the supplier into XML element supplier). We have made these adaptations in the
present XML formats. The numbers of the executed atomic operations are depicted in
Figure 6 (c). In this step, synchronization and removal operations were also used,
because some of the old parts of the PSM schemas were replaced by new ones. Again,
the experiment demonstrated that our approach saves a lot of work as it preserves the
consistency of PSM schemas against the PIM schema when changes are performed.</p>
      <p>The third goal was to show how the set of schemas can be evolved coherently. We
implemented various changes which resulted from new requirements on the NRPP
functionality and from new legislation. In both cases, changes to the PIM schema needed to
be done.</p>
      <p>The new legislation required to report not only the number of bids received for each
contract, but also particular bids including the bidding supplier and offered price.</p>
      <p>Finally, there was a requirement to update the XML format for contract notifications
(Figure 5 (a)) so that it is possible to give notification not only on the expected months
and days in which the contract should be finished, but also on the exact date. This
change was correctly propagated to the PIM schema, because it is a conceptual change.
From here, it was propagated to the other PSM schemas.</p>
      <p>
        The numbers of the atomic operations executed during the last two steps are
depicted in Figure 6 (d). The darker part shows the numbers of manually executed
operations. The lighter part shows the numbers of operations executed automatically by
the propagation mechanism. α are additions, υ are changes, δ are deletions and σ are
synchronizations - statements that two modeled sets of attributes or associations are
semantically equivalent. The synchronizations are very useful in our change propagation
mechanism, for details refer to [
        <xref ref-type="bibr" rid="ref19 ref20">19, 20</xref>
        ].
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Related work</title>
      <p>
        The current approaches towards evolution management can be classified according to
distinct aspects [
        <xref ref-type="bibr" rid="ref15 ref8">15, 8</xref>
        ]. The changes and transformations can be expressed [
        <xref ref-type="bibr" rid="ref22 ref4">22, 4</xref>
        ] as
well as divided [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] variously too. However, to our knowledge there exists no general
framework comparable to our proposal; particular cases and views of the problem have
previously only been solved separately, superficially and mostly imprecisely without
any theoretical or formal basis.
      </p>
      <p>
        XML View We can divide the current approaches to XML schema evolution and change
management into several groups. Approaches in the first group consider changes at
the schema level and differ in the selected XML schema language, i.e. DTD [
        <xref ref-type="bibr" rid="ref2 ref7">2, 7</xref>
        ] or
XML Schema [
        <xref ref-type="bibr" rid="ref24 ref5">24, 5</xref>
        ]. The changes are expressed variously and more or less formally.
Approaches in the second and third group are similar, but they consider changes at
an abstraction of logical level – either visualization [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] or a kind of UML diagram
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Both cases work at the PSM level, since they directly model XML schemas with
their abstraction. No PIM schema is considered. All approaches consider only a single
separate XML schema being evolved.
      </p>
      <p>
        In all the papers cited the authors consider only a single XML schema. In [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]
multiple local XML schemas are considered and mapped to a global object-oriented schema.
Then, the authors discuss possible operations with a local schema and their propagation
to the global schema. However, the global schema does not represent a common
problem domain, but a common integrated schema; the changes are propagated just upwards
and the operations are not defined rigorously. The need for well defined set of simple
operations and their combination is clearly identified in Section 6 of a recent survey of
schema matching and mapping [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, we introduced eXolutio, our tool for XML schema and data management.
We surveyed related work and we showed the theoretical background behind our tool
and evaluated it on real-world XML schemas.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>1. OpenTravel.org.</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. L.
          <string-name>
            <surname>Al-Jadir</surname>
            and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>El-Moukaddem</surname>
          </string-name>
          .
          <article-title>Once Upon a Time a DTD Evolved into Another DTD</article-title>
          ...
          <source>In Object-Oriented Information Systems</source>
          , pages
          <fpage>3</fpage>
          -
          <lpage>17</lpage>
          , Berlin, Heidelberg,
          <year>2003</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Bellahsene</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bonifati</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Rahm</surname>
          </string-name>
          .
          <source>Schema Matching and Mapping. Data-Centric Systems and Applications</source>
          . Springer Berlin Heidelberg,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A.</given-names>
            <surname>Boronat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Cars</surname>
          </string-name>
          <article-title>´ı, and I. Ramos. Algebraic Specification of a Model Transformation Engine</article-title>
          .
          <source>In FASE '06: Proc. of the 9th Int. Conf. Fundamental</source>
          Approaches to Software Engineering, Vienna, Austria, volume
          <volume>3922</volume>
          <source>of LNCS</source>
          , pages
          <fpage>262</fpage>
          -
          <lpage>277</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <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 EDBT '10: Proc. of the 2010 EDBT/ICDT Workshops</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          , New York, NY, USA,
          <year>2010</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>A.</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. D.</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          .
          <article-title>Managing Dependent Changes in Coupled Evolution</article-title>
          .
          <source>In Proc. of the 2nd Int. Conf. on Model Transformations, ICMT</source>
          <year>2009</year>
          , Zurich, Switzerland, volume
          <volume>5563</volume>
          <source>of LNCS</source>
          , pages
          <fpage>35</fpage>
          -
          <lpage>51</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S. V.</given-names>
            <surname>Coox</surname>
          </string-name>
          .
          <article-title>Axiomatization of the Evolution of XML Database Schema</article-title>
          .
          <source>Program. Comput. Softw.</source>
          ,
          <volume>29</volume>
          (
          <issue>3</issue>
          ):
          <fpage>140</fpage>
          -
          <lpage>146</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Helsen</surname>
          </string-name>
          .
          <article-title>Feature-Based Survey of Model Transformation Approaches</article-title>
          . IBM Syst. J.,
          <volume>45</volume>
          (
          <issue>3</issue>
          ):
          <fpage>621</fpage>
          -
          <lpage>645</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. E. Dom´ınguez, J.
          <string-name>
            <surname>Lloret</surname>
            ,
            <given-names>A. L.</given-names>
          </string-name>
          <string-name>
            <surname>Rubio</surname>
            , and
            <given-names>M. A.</given-names>
          </string-name>
          <string-name>
            <surname>Zapata</surname>
          </string-name>
          .
          <article-title>Evolving XML Schemas and Documents Using UML Class Diagrams</article-title>
          .
          <source>In DEXA'05: Proc. of the 16th Int. Conf. on Database and Expert Systems Applications</source>
          , volume
          <volume>3588</volume>
          <source>of LNCS</source>
          , pages
          <fpage>343</fpage>
          -
          <lpage>352</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <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>
          . In M. Jarke,
          <string-name>
            <given-names>T.</given-names>
            <surname>Seidl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Quix</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kensche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Conrad</surname>
          </string-name>
          , E. Rahm,
          <string-name>
            <given-names>R.</given-names>
            <surname>Klamma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kosch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Granitzer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Apel</surname>
          </string-name>
          , M. Rosenmu¨ller, G. Saake, and O. Spinczyk, editors,
          <source>BTW'07</source>
          , pages
          <fpage>53</fpage>
          -
          <lpage>63</lpage>
          , Aachen, Germany,
          <year>March 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. J. Kl´ımek, L. Kopenec,
          <string-name>
            <given-names>P.</given-names>
            <surname>Loupal</surname>
          </string-name>
          , and J. Mal y´.
          <article-title>XCase - A Tool for Conceptual XML Data Modeling</article-title>
          .
          <source>In Advances in Databases and Information Systems</source>
          , volume
          <volume>5968</volume>
          /2010 of Lecture Notes in Computer Science, pages
          <fpage>96</fpage>
          -
          <lpage>103</lpage>
          . Springer Berlin / Heidelberg, March
          <year>2010</year>
          . http://www.springerlink.com/content/v45198r1v783xu13.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. J. Kl´ımek, J. Mal y´, and
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Necˇasky´. eXolutio - A Tool for XML Data Evolution</article-title>
          ,
          <year>2011</year>
          . http://exolutio.com.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>J. Kl</surname>
          </string-name>
          <article-title>´ımek and M. Ne cˇasky´</article-title>
          .
          <article-title>Integration and Evolution of XML Data via Common Data Model</article-title>
          .
          <source>In Proceedings of the 2010 EDBT/ICDT Workshops, Lausanne, Switzerland, March</source>
          <volume>22</volume>
          -26,
          <year>2010</year>
          , New York, NY, USA,
          <year>2010</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>J. Kl</surname>
          </string-name>
          <article-title>´ımek and M. Ne cˇasky´</article-title>
          .
          <article-title>Generating Lowering and Lifting Schema Mappings for Semantic Web Services</article-title>
          .
          <source>In 25th IEEE International Conference on Advanced Information Networking and Applications Workshops</source>
          ,
          <string-name>
            <surname>WAINA</surname>
          </string-name>
          <year>2010</year>
          , Biopolis, Singapore,
          <fpage>22</fpage>
          -
          <lpage>25</lpage>
          March
          <year>2011</year>
          . IEEE Computer Society,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. Van</given-names>
            <surname>Gorp</surname>
          </string-name>
          .
          <article-title>A Taxonomy of Model Transformation</article-title>
          .
          <source>Electron. Notes Theor. Comput. Sci.</source>
          ,
          <volume>152</volume>
          :
          <fpage>125</fpage>
          -
          <lpage>142</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Microsoft</surname>
          </string-name>
          . Silverlight. http://www.microsoft.com/silverlight/.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Microsoft</surname>
          </string-name>
          .
          <article-title>Windows Presentation Foundation (WPF)</article-title>
          .
          <source>December</source>
          <year>2010</year>
          . http://msdn.microsoft.com/en-us/library/ms754130.aspx.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>J.</given-names>
            <surname>Miller</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mukerji</surname>
          </string-name>
          .
          <source>MDA Guide Version 1.0</source>
          .1. Object Management Group,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. M. Necˇasky´, J. Kl´ımek, J. Mal y´,
          <string-name>
            <surname>and I.</surname>
          </string-name>
          <article-title>Mly´nkova´. Evolution and Change Management of XML-based Systems</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>85</volume>
          (
          <issue>3</issue>
          ):
          <fpage>683</fpage>
          -
          <lpage>707</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. M.
          <article-title>Necˇasky´, I. Mly´nkova´, and</article-title>
          <string-name>
            <given-names>J.</given-names>
            <surname>Kl</surname>
          </string-name>
          <article-title>´ımek. Model-Driven Approach to XML Schema Evolution</article-title>
          . In R. Meersman,
          <string-name>
            <given-names>T. S.</given-names>
            <surname>Dillon</surname>
          </string-name>
          , and P. Herrero, editors,
          <source>OTM Workshops</source>
          , volume
          <volume>7046</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>514</fpage>
          -
          <lpage>523</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. M. Necˇasky´, I. Mly´nkova´, J. Kl´ımek, and J. Mal y´.
          <article-title>When conceptual model meets grammar: A dual approach to XML data modeling</article-title>
          .
          <source>Data &amp; Knowledge Engineering</source>
          ,
          <volume>72</volume>
          (
          <issue>0</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. OMG.
          <source>Meta Object Facility (MOF) 2</source>
          .0 Query/View/Transformation Specification Version 1.0. Object Modeling Group,
          <year>April 2008</year>
          . http://www.omg.org/spec/QVT/1.0/.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>K.</given-names>
            <surname>Passi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Morgan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Madria</surname>
          </string-name>
          .
          <article-title>Maintaining Integrated XML Schema</article-title>
          .
          <source>In IDEAS '09: Proc. of the 2009 Int. Database Engineering</source>
          , Applications Symp., pages
          <fpage>267</fpage>
          -
          <lpage>274</lpage>
          , New York, NY, USA,
          <year>2009</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>M.</given-names>
            <surname>Tan</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Goh</surname>
          </string-name>
          .
          <article-title>Keeping Pace with Evolving XML-Based Specifications</article-title>
          .
          <source>InEDBT'04 Workshops</source>
          , pages
          <fpage>280</fpage>
          -
          <lpage>288</lpage>
          , Berlin, Heidelberg,
          <year>2005</year>
          . Springer.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>