The Design Space of Type Checkers for XML Transformation Languages

  • Anders Møller
  • Michael I. Schwartzbach
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3363)


We survey work on statically type checking XML transformations, covering a wide range of notations and ambitions. The concept of type may vary from idealizations of DTD to full-blown XML Schema or even more expressive formalisms. The notion of transformation may vary from clean and simple transductions to domain-specific languages or integration of XML in general-purpose programming languages. Type annotations can be either explicit or implicit, and type checking ranges from exact decidability to pragmatic approximations.

We characterize and evaluate existing tools in this design space, including a recent result of the authors providing practical type checking of full unannotated XSLT 1.0 stylesheets given general DTDs that describe the input and output languages.


Tree Automaton Type Check Summary Graph Type Annotation Implementation Quality 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Apparao, V., et al.: Document Object Model (DOM) level 1 specification, W3C Recommendation (October 1998),
  2. 2.
    Audebaud, P., Rose, K.: Stylesheet validation. Technical Report RR2000-37, ENS-Lyon (November 2000)Google Scholar
  3. 3.
    Benzaken, V., Castagna, G., Frisch, A.: CDuce: An XML-centric general-purpose language. In: Proc. 8th ACM International Conference on Functional Programming, ICFP 2003 (August 2003)Google Scholar
  4. 4.
    Bierman, G., Meijer, E., Schulte, W.: The essence of data access in Cω. Technical report, Microsoft Research (2004),
  5. 5.
    Boag, S., et al.: XQuery 1.0: An XML query language, W3C Working Draft (November 2003),
  6. 6.
    Bourret, R.: XML data binding resources (September 2004),
  7. 7.
    Brabrand, C., Møller, A., Schwartzbach, M.I.: The < bigwig > project. ACM Transactions on Internet Technology 2(2), 79–114 (2002)CrossRefGoogle Scholar
  8. 8.
    Bray, T., Paoli, J., Sperberg-McQueen, C.M., Maler, E., Yergeau, F.: Extensible Markup Language (XML) 1.0, W3C Recommendation, 3rd edn. (February 2004),
  9. 9.
    Christensen, A.S., Møller, A., Schwartzbach, M.I.: Static analysis for dynamic XML. Technical Report RS-02-24, BRICS (May 2002); Presented at Programming Language Technologies for XML, PLAN-X 2002Google Scholar
  10. 10.
    Christensen, A.S., Møller, A., Schwartzbach, M.I.: Extending Java for high-level Web service construction. ACM Transactions on Programming Languages and Systems 25(6), 814–875 (2003)CrossRefGoogle Scholar
  11. 11.
    Christensen, A.S., Møller, A., Schwartzbach, M.I.: Precise analysis of string expressions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 1–18. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  12. 12.
    Clark, J.: XSL transformations (XSLT), W3C Recommendation (November 1999),
  13. 13.
    Clark, J., Murata, M.: RELAX NG specification, OASIS (December 2001),
  14. 14.
    Draper, D., et al.: XQuery 1.0 and XPath 2.0 formal semantics, W3C Working Draft (November 2002),
  15. 15.
    Gapayev, V., Pierce, B.C.: Regular object types. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)Google Scholar
  16. 16.
    Gapeyev, V., Levin, M.Y., Pierce, B.C., Schmitt, A.: XML goes native: Run-time representations for Xtatic (2004)Google Scholar
  17. 17.
    Harren, M., Raghavachari, M., Shmueli, O., Burke, M., Sarkar, V., Bordawekar, R.: XJ: Integration of XML processing into Java. Technical Report RC23007, IBM Research (2003)Google Scholar
  18. 18.
    Hosoya, H.: Regular expression filters for XML, Presented at Programming Language Technologies for XML. PLAN-X 2004 (January 2004)Google Scholar
  19. 19.
    Hosoya, H., Murata, M.: Validation and boolean operations for attribute-element constraints. Presented at Programming Language Technologies for XML, PLAN-X 2002 (October 2002)Google Scholar
  20. 20.
    Hosoya, H., Pierce, B.C.: Regular expression pattern matching for XML. Journal of Functional Programming 13(4) (2002)Google Scholar
  21. 21.
    Hosoya, H., Pierce, B.C.: XDuce: A statically typed XML processing language. ACM Transactions on Internet Technology 3(2) (2003)Google Scholar
  22. 22.
    Hosoya, H., Vouillon, J., Pierce, B.C.: Regular expression types for XML. ACM Transactions on Programming Languages and Systems (2004) (to appear)Google Scholar
  23. 23.
    Hunter, J., McLaughlin, B.: JDOM (2004),
  24. 24.
    Kempa, M., Linnemann, V.: On XML objects. Presented at Programming Language Technologies for XML, PLAN-X 2002 (October 2002)Google Scholar
  25. 25.
    Kepser, S.: A proof of the Turing-completeness of XSLT and XQuery. Technical report, SFB 441, University of Tübingen (2002)Google Scholar
  26. 26.
    Kirkegaard, C., Christensen, A.S., Møller, A.: A runtime system for XML transformations in Java. In: Bellahsène, Z., Milo, T., Rys, M., Suciu, D., Unland, R. (eds.) XSym 2004. LNCS, vol. 3186. Springer, Heidelberg (2004)Google Scholar
  27. 27.
    Kirkegaard, C., Møller, A., Schwartzbach, M.I.: Static analysis of XML transformations in Java. IEEE Transactions on Software Engineering 30(3), 181–192 (2004)CrossRefGoogle Scholar
  28. 28.
    Klarlund, N., Møller, A., Schwartzbach, M.I.: MONA implementation secrets. International Journal of Foundations of Computer Science 13(4), 571–586 (2002)zbMATHCrossRefMathSciNetGoogle Scholar
  29. 29.
    Levin, M.Y.: Compiling regular patterns. In: Proc. 8th ACM SIGPLAN International Conference on Functional Programming, ICFP 2003 (August 2003)Google Scholar
  30. 30.
    Maneth, S., Berlea, A., Perst, T., Seidl, H.: XML type checking with macro tree transducers. Tech. Rep. TUM-I0407, TU Munich (2004)Google Scholar
  31. 31.
    Meijer, E., Schulte, W., Bierman, G.: Programming with rectangles, triangles, and circles. In: Proc. XML Conference and Exposition, XML 2003 (December 2003)Google Scholar
  32. 32.
    Milo, T., Suciu, D., Vianu, V.: Typechecking for XML transformers. Journal of Computer and System Sciences 66 (February 2002); Special Issue on PODS 2000. Elsevier, AmsterdamGoogle Scholar
  33. 33.
    Møller, A.: Document Structure Description 2.0. BRICS, Department of Computer Science, University of Aarhus, Notes Series NS-02-7 (December 2002), Available from
  34. 34.
    Møller, A., Olesen, M.Ø., Schwartzbach, M.I.: Static validation of XSL Transformations (2004) (in preparation)Google Scholar
  35. 35.
    Murata, M., Lee, D., Mani, M.: Taxonomy of XML schema languages using formal language theory. In: Proc. Extreme Markup Languages (August 2001)Google Scholar
  36. 36.
    Neven, F.: Automata, logic, and XML. In: Proc. 16th International Workshop on Computer Science Logic, CSL 2002 (September 2002)Google Scholar
  37. 37.
    Sun Microsystems. JAXB (2004),
  38. 38.
    Thiemann, P.: A typed representation for HTML and XML documents in Haskell. Journal of Functional Programming 12(5), 435–468 (2002)zbMATHCrossRefMathSciNetGoogle Scholar
  39. 39.
    Thompson, H.S., Beech, D., Maloney, M., Mendelsohn, N.: XML Schema part 1: Structures, W3C Recommendation (May 2001),
  40. 40.
    Tozawa, A.: Towards static type checking for XSLT. In: Proc. ACM Symposium on Document Engineering, DocEng 2001 (November 2001)Google Scholar
  41. 41.
    van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: An annotated bibliography. ACM SIGPLAN Notices 35(6), 26–36 (2000)CrossRefGoogle Scholar
  42. 42.
    Wallace, M., Runciman, C.: Haskell and XML: Generic combinators or type-based translation? In: Proc. 4th ACM SIGPLAN International Conference on Functional Programming, ICFP 1999 (September 1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Anders Møller
    • 1
  • Michael I. Schwartzbach
    • 1
  1. 1.BRICSUniversity of Aarhus 

Personalised recommendations