Statically Typed Document Transformation: An Xtatic Experience

XTATIC is a lightweight extension of C with native support for statically typed XML processing. It features XML trees as built-in values, a refined type system based on regular types a la XDUCE, and regular patterns for investigating and manipulating XML. We describe our experiences using XTATIC in a real-world application: a program for transforming XMLSPEC, a format used for authoring W3C technical reports, into HTML. Our implementation closely follows an existing one written in XSLT, facilitating comparison of the two languages and analysis of the costs and benefits—both significant—of rich static typing for XML-intensive code.

[1]  Giuseppe Castagna,et al.  CDuce: an XML-centric general-purpose language , 2003, ICFP '03.

[2]  Benjamin C. Pierce,et al.  Type-Based Optimization for Regular Patterns , 2005, DBPL.

[3]  Kwangkeun Yi,et al.  Proofs about a folklore let-polymorphic type inference algorithm , 1998, TOPL.

[4]  Vivek Sarkar,et al.  XJ: facilitating XML processing in Java , 2005, WWW '05.

[5]  Dan Suciu,et al.  Data on the Web: From Relations to Semistructured Data and XML , 1999 .

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

[7]  Benjamin C. Pierce,et al.  XML Goes Native: Run-Time Representations for Xtatic , 2005, CC.

[8]  Michael Howard Kay XSLT 2.0 Programmer's Reference , 2004 .

[9]  Makoto Murata,et al.  Boolean operations and inclusion test for attribute-element constraints , 2006, Theor. Comput. Sci..

[10]  Benjamin C. Pierce,et al.  The XTATIC Experience , 2004 .

[11]  Scott Boag,et al.  XQuery 1.0 : An XML Query Language , 2007 .

[12]  Michael Kay,et al.  XSLT Programmer's Reference , 2000 .

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

[14]  Michael Y. Levin Compiling regular patterns , 2003, ICFP '03.

[15]  Giuseppe Castagna,et al.  Semantic subtyping , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[16]  Dan Suciu,et al.  UnQL: a query language and algebra for semistructured data based on structural recursion , 2000, The VLDB Journal.

[17]  Limsoon Wong,et al.  Principles of Programming with Complex Objects and Collection Types , 1995, Theor. Comput. Sci..

[18]  Haruo Hosaya,et al.  Regular expression filters for XML , 2006, Journal of Functional Programming.

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

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

[21]  Christian Kirkegaard,et al.  Static analysis of XML transformations in Java , 2003, IEEE Transactions on Software Engineering.

[22]  Michael I. Schwartzbach,et al.  Static validation of XSL transformations , 2005, TOPL.

[23]  Akinori Yonezawa,et al.  Regular Expression Types for Strings in a Text Processing Language , 2002, Electron. Notes Theor. Comput. Sci..

[24]  Giuseppe Castagna,et al.  A Full Pattern-Based Paradigm for XML Query Processing , 2005, PADL.

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

[26]  Martin Kempa On XML Objects , 2002 .

[27]  Benjamin C. Pierce,et al.  Run, xtatic, run: efficient implementation of an object-oriented language with regular pattern matching , 2005 .

[28]  Benjamin C. Pierce,et al.  Regular expression types for XML , 2000, TOPL.

[29]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[30]  Christian Kirkegaard,et al.  Type Checking with XML Schema in XACT , 2005, PLAN-X.