|
ABSTRACT
XML database query languages have been studied extensively, but XML database updates have received relatively little attention, and pose many challenges to language design. We are developing an XML update language called FLUX, which stands for FunctionaL Updates for XML, drawing upon ideas from functional programming languages. In prior work, we have introduced a core language for FLUX with a clear operational semantics and a sound, decidable static type system based on regular expression types. Our initial proposal had several limitations. First, it lacked support for recursive types or update procedures. Second, although a high-level source language can easily be translated to the core language, it is difficult to propagate meaningful type errors from the core language back to the source. Third, certain updates are wellformed yet contain path errors, or "dead" subexpressions which never do any useful work. It would be useful to detect path errors, since they often represent errors or optimization opportunities. In this paper, we address all three limitations. Specifically, we present an improved, sound type system that handles recursion. We also formalize a source update language and give a translation to the core language that preserves and reflects typability. We also develop a path-error analysis (a form of dead-code analysis) for updates.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
| |
3
|
Michael Benedikt, Angela Bonifati, Sergio Flesca, and Avinash Vyas. Verification of tree updates for optimization. In Kousha Etessami and Sriram K. Rajamani, editors, CAV, volume 3576 of Lecture Notes in Computer Science, pages 379--393. Springer, 2005a.
|
| |
4
|
Michael Benedikt, Angela Bonifati, Sergio Flesca, and Avinash Vyas. Adding updates to XQuery: Semantics, optimization, and static analysis. In Daniela Florescu and Hamid Pirahesh, editors, XIME-P, 2005b.
|
 |
5
|
|
 |
6
|
|
| |
7
|
|
 |
8
|
Cristiano Calcagno , Philippa Gardner , Uri Zarfaty, Context logic and tree update, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.271-282, January 12-14, 2005, Long Beach, California, USA
|
| |
9
|
Don Chamberlin and Jonathan Robie. XQuery update facility requirements. W3C Working Draft, June 2005. http://www.w3.org/TR/xquery-update-requirements/.
|
| |
10
|
Don Chamberlin, Mike Carey, Daniela Florescu, Donald Kossmann, and Jonathan Robie. XQueryP: Programming with XQuery. In XIME-P, 2006.
|
| |
11
|
Don Chamberlin, Daniela Florescu, Jim Melton, Jonathan Robie, and Jérôme Siméon. XQuery update facility. W3C Candidate Recommendation, March 2008. http://www.w3c.org/TR/xquery-update-10/.
|
| |
12
|
James Cheney. Lux: A lightweight, statically typed XML update language. In PLAN-X, pages 25--36, 2007.
|
| |
13
|
James Cheney. Regular expression subtyping for XML query and update languages. In Proceedings of the 17th European Symposium on Programming (ESOP 2008), number 4960 in LNCS, pages 32--46, 2008a.
|
| |
14
|
James Cheney. Flux: Functional updates for XML. Technical Report 2008. http://www.w3c.org/TR/xquery-update-10/.
|
| |
15
|
Byron Choi. What are real DTDs like? In WebDB, pages 43--48, 2002.
|
| |
16
|
J. Clark. XSL transformations (XSLT). W3C Recommendation, November 1999. http://www.w3.org/TR/xslt.
|
| |
17
|
|
| |
18
|
Denise Draper, Peter Fankhauser, Mary Fernández, Ashok Malhotra, Kristoffer Rose, Michael Rys, Jérôme Siméon, and ilip Wadler. XQuery 1.0 and XPath 2.0 formal semantics. W3C Recommendation, January 2007. http://www.w3.org/TR/xquery-semantics/.
|
| |
19
|
|
 |
20
|
|
| |
21
|
Vladimir Gapeyev, Franc¸ois Garillot, and Benjamin C. Pierce. Statically typed document transformation: An Xtatic experience. In Giuseppe Castagna and Mukund Raghavachari, editors, PLAN-X, pages 2--13. BRICS, 2006.
|
 |
22
|
|
| |
23
|
G. Ghelli, K. Rose, and J. Sim´eon. Commutativity analysis in XML update languages. In Dan Suciu and Thomas Schwentick, editors, Proceedings of the 11th International Conference on Database Theory (ICDT 2007), pages 374--388, January 2007a.
|
| |
24
|
Giorgio Ghelli, Christopher Re, and Jérôme Siméon. XQuery!: An XML query language with side effects. In EDBT Workshops, volume 4254 of Lecture Notes in Computer Science, pages 178--191. Springer, 2006.
|
| |
25
|
Giorgio Ghelli, Nicola Onose, Kristoffer Rose, and Jérôme Siméon. A better semantics for XQuery with side-effects. In Marcelo Arenas and Michael I. Schwartzbach, editors, DBPL, volume 4797 of Lecture Notes in Computer Science, pages 81--96. Springer, 2007b.
|
 |
26
|
|
 |
27
|
|
| |
28
|
|
| |
29
|
Andreas Laux and Lars Martin. XUpdate - XML update language. http://xmldb-org.sourceforge.net/xupdate/-xupdate-wd.html, September 2000. Work in progress.
|
| |
30
|
|
| |
31
|
Anders Møller and Michael I. Schwartzbach. The design space of type checkers for XML transformation languages. In Proceedings of the 10th International Conference on Database Theory (ICDT 2005), pages 17--36, 2005.
|
| |
32
|
Gargi Sur, Joachim Hammer, and Jérôme Siméon. UpdateX - an XQuery-based language for processing updates in XML. In PLAN-X, 2004.
|
 |
33
|
Igor Tatarinov , Zachary G. Ives , Alon Y. Halevy , Daniel S. Weld, Updating XML, Proceedings of the 2001 ACM SIGMOD international conference on Management of data, p.413-424, May 21-24, 2001, Santa Barbara, California, United States
|
| |
34
|
Guoren Wang, Mengchi Liu, and Li Lu. Extending XML-RL with update. In IDEAS, pages 66--75. IEEE Computer Society, 2003.
|
|