TY - JOUR
T1 - Static Analysis of XML Transformations in Java
AU - Kirkegaard, Christian
AU - Møller, Anders
AU - Schwartzbach, Michael I.
PY - 2004
Y1 - 2004
N2 - Abstract--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 schemas 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.
AB - Abstract--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 schemas 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.
KW - Language constructs and features
KW - markup languages
KW - requirements/specifications
U2 - 10.1109/TSE.2004.1271173
DO - 10.1109/TSE.2004.1271173
M3 - Journal article
SN - 0098-5589
VL - 30
SP - 181
EP - 192
JO - I E E E Transactions on Software Engineering
JF - I E E E Transactions on Software Engineering
IS - 3
ER -