Static analysis of XML transformations in Java

XML documents generated dynamically by programs are typically represented as text strings or DOM trees. This is a low-level approach for several reasons: 1) traversing and modifying such structures can be tedious and error prone, 2) although schema languages, e.g., DTD, allow classes of XML documents to be defined, there are generally no automatic mechanisms for statically checking that a program transforms from one class to another as intended. We introduce XACT, a high-level approach for Java using XML templates as a first-class data type with operations for manipulating XML values based on XPath. In addition to an efficient runtime representation, the data type permits static type checking using DTD schemas as types. By specifying schemes for the input and output of a program, our analysis algorithm will statically verify that valid input data is always transformed into valid output data and that the operations are used consistently.

[1]  Yannis Papakonstantinou,et al.  DTD inference for views of XML data , 2000, PODS.

[2]  Christian Kirkegaard,et al.  Static Analysis of XML Transformations in Java , 2003 .

[3]  Frank Neven,et al.  Typechecking Top-Down Uniform Unranked Tree Transducers , 2003, ICDT.

[4]  C. M. Sperberg-McQueen,et al.  Extensible markup language , 1997 .

[5]  Dan Suciu The XML typechecking problem , 2002, SGMD.

[6]  Nils Klarlund,et al.  Document Structure Description 1.0 , 2000 .

[7]  Ulrich Kohlenbach,et al.  A complexity analysis of functional interpretations , 2005, Theor. Comput. Sci..

[8]  Peter Thiemann,et al.  WASH/CGI: Server-Side Web Scripting with Sessions and Typed, Compositional Forms , 2002, PADL.

[9]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[10]  Dan Suciu,et al.  Typechecking for XML transformers , 2000, J. Comput. Syst. Sci..

[11]  Ivan Damgård,et al.  An Extended Quadratic Frobenius Primality Test with Average and Worst Case Error Estimates , 2003, FCT.

[12]  Christian Kirkegaard,et al.  A Runtime System for XML Transformations in Java , 2004, XSym.

[13]  Christian Kirkegaard,et al.  A Runtime System for XML Transformations in Java , 2003 .

[14]  Jeffrey D. Ullman,et al.  Monotone data flow analysis frameworks , 1977, Acta Informatica.

[15]  not Cwi,et al.  XHTML™ 1.0 The Extensible HyperText Markup Language , 2002 .

[16]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[17]  Aske Simon Christensen,et al.  Extending Java for high-level Web service construction , 2002, TOPL.

[18]  Peter Fankhauser,et al.  Editors , 2016 .

[19]  Benjamin C. Pierce,et al.  XDuce: A statically typed XML processing language , 2003, TOIT.

[20]  Aske Simon Christensen,et al.  Precise Analysis of String Expressions , 2003, SAS.

[21]  Olivier Danvy,et al.  Fast partial evaluation of pattern matching in strings , 2003, PEPM.

[22]  Daniel T. Connolly,et al.  The XML revolution , 1998 .

[23]  Claus Brabrand,et al.  The metafront System: Extensible Parsing and Transformation , 2003, LDTA@ETAPS.

[24]  Aske Simon Christensen,et al.  Static Analysis for Dynamic XML , 2002 .

[25]  S. Boag,et al.  XQuery 1.0 : An XML query language, W3C Working Draft 12 November 2003 , 2003 .

[26]  Anna Ingólfsdóttir,et al.  A semantic theory for value-passing processes based on the late approach , 2003, Inf. Comput..

[27]  Helmut Seidl,et al.  Transforming XML Documents using fxt , 2002 .

[28]  Laurie J. Hendren,et al.  Practical virtual method call resolution for Java , 2000, OOPSLA '00.

[29]  James Clark,et al.  XSL Transformations (XSLT) Version 1.0 , 1999 .

[30]  Jonathan Robie,et al.  Document Object Model (DOM) Level 2 Specification , 1998 .

[31]  Volker Linnemann,et al.  Type Checking in XOBE , 2003, BTW.

[32]  Erik Meijer,et al.  XMlambda - A Functional Language for Constructing and Manipulating XML Documents , 2000 .

[33]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[34]  Bartek Klin,et al.  Syntactic formats for free: An abstract approach to process equivalence , 2003 .

[35]  Wolfram Schulte,et al.  Unifying Tables, Objects and Documents , 2003 .

[36]  Paolo Manghi,et al.  An Approach to High-Level Language Bindings to XML , 2002, Inf. Softw. Technol..

[37]  Benjamin C. Pierce,et al.  Regular Object Types , 2003, ECOOP.

[38]  Akihiko Tozawa Towards static type checking for XSLT , 2001, DocEng '01.

[39]  Richard C. H. Connor,et al.  Projector - a partially typed language for querying XML , 2002 .

[40]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[41]  Olivier Danvy,et al.  From Interpreter to Compiler and Virtual Machine: A Functional Derivation , 2003 .

[42]  Shriram Krishnamurthi,et al.  SXSLT: Manipulation Language for XML , 2003, PADL.

[43]  Emmanuel Pietriga,et al.  Experimenting with the circus language for XML modeling and transformation , 2002, DocEng '02.

[44]  Joshua J. Bloch Effective Java : programming language guide , 2001 .

[45]  Colin Runciman,et al.  Haskell and XML: generic combinators or type-based translation? , 1999, ICFP '99.

[46]  Olivier Danvy,et al.  A functional correspondence between evaluators and abstract machines , 2003, PPDP '03.

[47]  Helmut Seidl,et al.  A Type-safe Macro System for XML , 2002, Extreme Markup Languages®.

[48]  Ivan Damgård,et al.  A Length-Flexible Threshold Cryptosystem with Applications , 2003, ACISP.