Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Altinel, M., Franklin, M.J.: Efficient filtering of XML documents for selective dissemination of information. In: International Conference on Very Large Databases (2000)
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)
Benzaken, V., Castagna, G., Frisch, A.: CDuce: an XML-centric general-purpose language. In: International Conference on Functional Programming. ACM Press, New York (2003)
Diao, Y., Fischer, P., Franklin, M.J., To, R.: YFilter: Efficient and scalable filtering of XML documents. In: International Conference on Data Engineering (2002)
Expat XML: parser, http://expat.sourceforge.net
Fülöp, Z.: On attributed tree transducers. Acta Cybernetica 5, 261–280 (1980)
Fülöp, Z., Vogler, H.: Syntax-directed semantics—Formal models based on tree transducers. In: Monographs in Theoretical Computer Science. Springer, Heidelberg (1998)
Ganzinger, H., Giegerich, R.: Attribute coupled grammars. In: Symposium on Compiler Construction. SIGPLAN Notices (1984)
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)
Hosoya, H., Pierce, B.C.: XDuce: A statically typed XML processing language. ACM Transactions on Internet Technology 3(2), 117–148 (2003)
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)
Knuth, D.E.: Semantics of context-free languages. Mathematical Systems Theory 2(2) (1968)
Koch, C., Scherzinger, S.: Attribute grammars for scalable query processing on XML streams. In: International Workshop on Database Programming Languages (2003)
Kühnemann, A.: Berechnungsstärken von Teilklassen primitiv-rekursiver Programmschemata. PhD thesis, Technical University of Dresden. Shaker Verlag, Aachen (1997)
Ludäscher, B., Mukhopadhayn, P., Papakonstantinou, Y.: A transducer-based XML query processor. In: International Conference on Very Large Databases (2002)
Nakano, K.: Composing stack-attributed tree transducers. Technical Report METR–2004–01. Department of Mathematical Informatics, University of Tokyo, Japan (2004)
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)
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)
Nishimura, S., Nakano, K.: XML stream transformer generation through program composition and dependency analysis. Science of Computer Programming (to appear)
The Caml language homepage, http://caml.inria.fr/
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)
SAX: The simple API for XML, http://www.saxproject.org/
SAXON: The XSLT and XQuery processor, http://saxon.sourceforge.net/
XML path language (XPath), http://www.w3c.org/TR/xpath/
XSL transformations (XSLT), http://www.w3c.org/TR/xslt/
Xalan-Java homepage, http://xml.apache.org/xalan-j/
XP++: XML processing plus plus. dfdfdsfdsaf, http://www.alphaworks.ibm.com/tech/xmlprocessingplusplus
XQuery 1.0: An XML query language, http://www.w3.org/TR/xquery/
XTiSP: An implementation framework of XML transformation languages intended for stream processing, http://xtisp.psdlab.org/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nakano, K. (2004). An Implementation Scheme for XML Transformation Languages Through Derivation of Stream Processors. In: Chin, WN. (eds) Programming Languages and Systems. APLAS 2004. Lecture Notes in Computer Science, vol 3302. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30477-7_6
Download citation
DOI: https://doi.org/10.1007/978-3-540-30477-7_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23724-2
Online ISBN: 978-3-540-30477-7
eBook Packages: Springer Book Archive