Databases Reference
In-Depth Information
have analogous primitive statements, e.g., change an element's multiplicity, reorder
elements, rename an element, insert or remove elements from the sequence, etc.
Researchers have created a taxonomy of possible incremental changes to an XML
schema ( Moto et al. 2007 ) that is useful for evaluating evolution support in existing
systems:
1. Add a new optional or required element to a type.
2. Delete an element from a type.
3. Add new top-level constructs like complex types.
4. Remove top-level constructs.
5. Change the semantics of an element without changing its syntax - for instance,
if the new version of an application treats the implicit units of a column to be in
metric where previous versions did not.
6. Refactor a schema in a way that does not affect instance validation - for
instance, factoring out common local type definitions into a single global type
definition.
7. Nest a collection of elements inside another element.
8. Flatten an element by replacing it by its children.
9. Rename an element or change its namespace.
10. Change an element's maximum or minimum multiplicity.
11. Modify an element's type, either by changing it from one named type to another
or adding or changing a restriction or extension.
12. Change an element's default value.
13. Reorder elements in a type.
For each class of change, Moto et al. ( 2007 ) describe under what conditions a change
in that class will preserve forward and backward compatibility. For instance, if in
version 2 of a schema one adds optional element X to a type from version 1, any
application running against version 1 will be able to successfully run against ver-
sion 2 and vice versa so long as version 2 applications do not generate documents
with element X. If element X is required rather than optional, the two versions are no
longer interoperable under this scheme. The same logic can be applied to instances:
an instance of schema version 1 will validate against version 2 if X is optional and
will not if X is required.
For the rest of this section, we will describe the current state of the art in XML
schema evolution as present in commercially available systems and research works.
For each solution, in addition to comparing the solution against the requirements
outlined in Sect. 2 , we describe the classes of incremental changes that the solution
supports and in what way it mitigates changes that must be made to either appli-
cations or instances. Table 6.2 shows the characteristics of the main approaches
considered, which are discussed at the end of this section.
Search WWH ::




Custom Search