Abstract

With the extensive use of XML in applications over the Web, how to update XML data is becoming an important issue because the role of XML has expanded beyond traditional applications in which XML is used for information exchange and data representation over the Web. Therefore, several languages have been proposed for updating XML data, but they have two major shortcomings. One is that these updating languages are based on lower, so-called graph-based or tree-based data models, update requests are thus expressed in a nonintuitive and unnatural way and update statements are too complicated to comprehend. The other is that there is still no consensus about the logical foundation for updating XML data. This paper presents a novel declarative XML update language which is an extension of the XML-RL query language. Compared with other existing XML update languages, it has the following features. First, it is the only XML data manipulation language based on a higher data model. All of the other update languages adopt so-called graph-based or tree-based data models. Therefore, update requests can be expressed in a more intuitive and natural way in our language than in the other languages. Second, our language can express complex update requests at multiple level in a hierarchy in a simple and flat way. Some existing languages have to express such complex requests in nested updates, which are too complicated and nonintuitive for users to comprehend. Third, our language directly supports the functionality of updating complex objects while all other update language do not support these operations. Lastly, most of existing languages use rename to modify attribute and element names, which is a different way from updates on value. Our language modifies tag names, values, and objects in a unified way by the introduction of three kinds of logical binding variables: object variables, value variables, and name variables. In this paper, the syntax and semantics of the XML-RL update language are formally described based on the logic programming. The powerful ability of our language is shown by a lot of examples.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call