An Implementation Scheme for XML Transformation Languages Through Derivation of Stream Processors

  • Keisuke Nakano
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3302)


We propose a new implementation scheme for XML transformation languages through derivation of stream processors. Most of XML transformation languages are implemented as tree manipulation, where input XML trees are completely stored in memory. It leads to inefficient memory usage in particular when we apply a facile transformation to large-sized inputs. In contrast, XML stream processing can minimize memory usage and execution time since it begins to output the transformation result before reading the whole input. However, it is much harder to program XML stream processors than to specify tree manipulations because stream processing frequently requires ‘stateful programming’. This paper proposes an implementation scheme for XML transformation languages, in which we can define an XML transformation as tree manipulation and also we can obtain an XML stream processor automatically. The implementation scheme employs a framework of a composition of attribute grammars.


Implementation Scheme Stream Processing Input Symbol Composition Method Tree Transducer 
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.
    Altinel, M., Franklin, M.J.: Efficient filtering of XML documents for selective dissemination of information. In: International Conference on Very Large Databases (2000)Google Scholar
  2. 2.
    Benedikt, M., Chan, C.Y., Fan, W., Rastogi, R., Zheng, S., Zhou, A.: Dtd-directed publishing with attribute translation grammars. In: International Conference on Very Large Databases (2002)Google Scholar
  3. 3.
    Benzaken, V., Castagna, G., Frisch, A.: CDuce: an XML-centric general-purpose language. In: International Conference on Functional Programming. ACM Press, New York (2003)Google Scholar
  4. 4.
    Diao, Y., Fischer, P., Franklin, M.J., To, R.: YFilter: Efficient and scalable filtering of XML documents. In: International Conference on Data Engineering (2002)Google Scholar
  5. 5.
    Expat XML: parser,
  6. 6.
    Fülöp, Z.: On attributed tree transducers. Acta Cybernetica 5, 261–280 (1980)MathSciNetGoogle Scholar
  7. 7.
    Fülöp, Z., Vogler, H.: Syntax-directed semantics—Formal models based on tree transducers. In: Monographs in Theoretical Computer Science. Springer, Heidelberg (1998)Google Scholar
  8. 8.
    Ganzinger, H., Giegerich, R.: Attribute coupled grammars. In: Symposium on Compiler Construction. SIGPLAN Notices (1984)Google Scholar
  9. 9.
    Green, T.J., Miklau, G., Onizuka, M., Suciu, D.: Processing XML streams with deterministic automata. In: Calvanese, D., Lenzerini, M., Motwani, R. (eds.) ICDT 2003. LNCS, vol. 2572, pp. 173–189. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  10. 10.
    Hosoya, H., Pierce, B.C.: XDuce: A statically typed XML processing language. ACM Transactions on Internet Technology 3(2), 117–148 (2003)CrossRefGoogle Scholar
  11. 11.
    Kiselyov, O.: A better XML parser through functional programming. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, p. 209. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  12. 12.
    Knuth, D.E.: Semantics of context-free languages. Mathematical Systems Theory 2(2) (1968)Google Scholar
  13. 13.
    Koch, C., Scherzinger, S.: Attribute grammars for scalable query processing on XML streams. In: International Workshop on Database Programming Languages (2003)Google Scholar
  14. 14.
    Kühnemann, A.: Berechnungsstärken von Teilklassen primitiv-rekursiver Programmschemata. PhD thesis, Technical University of Dresden. Shaker Verlag, Aachen (1997)Google Scholar
  15. 15.
    Ludäscher, B., Mukhopadhayn, P., Papakonstantinou, Y.: A transducer-based XML query processor. In: International Conference on Very Large Databases (2002)Google Scholar
  16. 16.
    Nakano, K.: Composing stack-attributed tree transducers. Technical Report METR–2004–01. Department of Mathematical Informatics, University of Tokyo, Japan (2004)Google Scholar
  17. 17.
    Nakano, K., Nishimura, S.: Deriving event-based document transformers from tree-based specifications. In: Workshop on Language Descriptions, Tools and Applications. Electronic Notes in Theoretical Computer Science, vol. 44(2) (2001)Google Scholar
  18. 18.
    Neven, F.: Extensions of attribute grammars for structured document queries. In: Connor, R.C.H., Mendelzon, A.O. (eds.) DBPL 1999. LNCS, vol. 1949, p. 99. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  19. 19.
    Nishimura, S., Nakano, K.: XML stream transformer generation through program composition and dependency analysis. Science of Computer Programming (to appear)Google Scholar
  20. 20.
    The Caml language homepage,
  21. 21.
    Olteanu, D., Meuss, H., Furche, T., Bry, F.: XPath: Looking forward. In: Chaudhri, A.B., Unland, R., Djeraba, C., Lindner, W. (eds.) EDBT 2002. LNCS, vol. 2490, pp. 109–127. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  22. 22.
    SAX: The simple API for XML,
  23. 23.
    SAXON: The XSLT and XQuery processor,
  24. 24.
    XML path language (XPath),
  25. 25.
    XSL transformations (XSLT),
  26. 26.
    Xalan-Java homepage,
  27. 27.
    XP++: XML processing plus plus. dfdfdsfdsaf,
  28. 28.
    XQuery 1.0: An XML query language,
  29. 29.
    XTiSP: An implementation framework of XML transformation languages intended for stream processing,

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Keisuke Nakano
    • 1
  1. 1.Department of Mathematical Engineering and Information PhysicsUniversity of TokyoJapan

Personalised recommendations