In a wide spectrum of applications, it is desirable to manipulate semistructured information that may present variations according to different circumstances. Multidimensional XML (MXML) is an extension of XML suitable for representing data that assume different facets, having different value and/or structure under different contexts. The purpose of this paper is to develop techniques for updating MXML documents.
Updating XML has been studied in the past, however, updating MXML must take into account the additional features, which stem from incorporating context into MXML. This paper investigates the problem of updating MXML in two levels: at the graph level, i.e. in an implementation independent way; and at the relational storage level.
The paper introduces six basic update operations, which are capable of any possible change. Those operations are specified in an implementation independent way, and their effect explained through examples. Algorithms are given that implement those operations using SQL on a specific storage method that employs relational tables for keeping MXML. An overview is given of multidimensional XPath (MXPath), an extension of XPath that incorporates context, and show how to translate MXPath queries to “equivalent” SQL queries.
Though the proposed operations solve the problem of updating MXML documents, several problems, such as formally define MXPath and its translation to SQL, remain to be investigated in the future in order to implement a system that stores, queries and updates MXML documents through a relational database infrastructure.
MXML is suitable for representing, in a compact way, data that assume different facets, having different value or structure, under different contexts. In order for MXML to be applicable in practice, it is vital to develop techniques and tools for storing, updating and querying MXML documents. The techniques proposed in this paper form a significant step in this direction.
This paper presents a novel approach for updating MXML documents by proposing update operations on both, the graph level and the (relational) storage level.