Abstract
Representation and processing of XML data in Scheme are considered. Scheme is a functional programming language belonging to the LISP family. The SXML specification is discussed, which defines methods for representing XML data in the form of S-expressions in Scheme. Possibilities of extending this specification are considered. Methods of parsing and representing XML data are analyzed, possibilities of applying Scheme to the development of XML applications are discussed, and a survey of the relevant literature is given. Functional methods for processing semistructured data are discussed, and examples of using Scheme for processing SXML data are given. Methods for extracting a schema of semistructured data (DataGuide) and application of those methods are considered, and functional algorithms for the construction of DataGuide are proposed.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.REFERENCES
McCarthy, J., Abrahams, P.W., Edwards, D.J., Hart, T.P., and Levin, M.I., LISP 1.5 Programming Manual, Cambridge: MIT, 1962.
Graham, P., Beating the Averages, http://www.paulgraham.com/paulgraham/avg.html.
Field, A.J. and Harrison, P.G., Functional Programming, Wokingham, England: Addison-Wesley, 1988. Translated under the title Funktsional'noe programmirovanie, Moscow: Mir, 1993.
McCarthy, J., The Common Business Communication Language, Textverarbeitung und Burosysteme, Endres, A. and Reetz, J., Eds., Munich: Oldenburg, 1982; http://www-formal.stanford.edu/jmc/cbcl2/cbcl2.html.
Revised5 Report on the Algorithmic Language Scheme, Kelsey, R., Clinger, W., and Rees, J., Eds., Higher-Order and Symbolic Computation, 1998, vol. 11, no. 1; ACM SIGPLAN Notices, 1998, vol. 33, no. 9; http://www.schemers.org/Documents/Standards/R5RS/.
Functional and Logic Programming Languages, Handbook of Programming Languages, vol. 14, Salus, P.H., Ed., Macmillan, 1998.
The Great Computer Language Shootout, http:/www.bagley.org/~doug/shootout/.
St. Laurent, S., Scripting Languages for XML: XTech '2000, http://www.simonstl.com/articles/scripting/.
Kiselyov, O., A Better XML Parser through Functional Programming, Krishnamurthi, S. and Ramakrishnan, C.R., Eds., Lect.Notes Comput.Sci., 2002, vol. 2257, pp. 209-224; http:/www.cs.sunysb.edu/~padl2002/.
Kiselyov, O., Functional XML Parsing Framework: SAX/DOM and SXML Parsers with Support for XML Namespaces and Validation, 2001, http://okmij.org/ftp/Scheme/SSAX.scm.
XML Information Set, W3C Recommendation, 2001, http://www.w3.org/TR/xml-infoset.
Document Object Model (DOM): Level 2 Core Specification, Version 1.0, W3C Recommendation, 2000, http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113.
XML Path Language (XPath), Version 1.0, W3C Recommendation, 1999, http://www.w3.org/TR/xpath.
Kiselyov, O., SXML Specification, http://okmij.org/ftp/Scheme/SXML.html.
Extensible Markup Language (XML) 1.0, W3C Recommendation, 2nd edition, 2000, http://www.w3.org/TR/2000/REC-xml.
Namespaces in XML, W3C Recommendation, 1999, http://www.w3.org/TR/REC-xml-names/.
A Triumph of Simplicity: James Clark on Markup Languages and XML, Dr.Dobb's J., 2001, no. 7; http://www.ddj.com/articles/2001/0107/0107e/0107e.htm.
St. Laurent, S., XML Elements of Style, McGraw-Hill, 2000.
SSAX and SXML at SourceForge, http://ssax.sf.net.
Kiselyov, O., XML and Scheme, Proc.Workshop on Scheme and Functional Programming 2000, Montreal, 2000, http://www.okmij.org/ftp/Scheme/SXML-short-paper.html.
Goldman, R. and Widom, J., DataGuide: Enabling Query Formulation and Optimization in Semistructured Databases, VLDB'1997; http://dbpubs.stanford.edu/pub/1997-50.
XML Schema Part 0: Primer, W3C Recommendation, 2001, http://www.w3.org/TR/xmlschema-0/.
RELAX NG Specification, The Organization for the Advancement of Structured Information Standards (OASIS), Committee Specification, 2001, http://www.oasis-open.org/committees/relax-ng/spec-20011203.html.
Papakonstantinou, Y., Garcia-Molina, H., and Widom, J., Object Exchange across Heterogeneous Information Sources, Proc.Eleventh Int.Conf.on Data Engineering, Taipei, 1995; http://www.cs.washington.edu/homes/suciu/PAPERS/tsimmis.pdf.
Zhuravleva, O.V., Lisovsky, K.Yu., Tomusyak, G.S., and Tomusyak, E.S., Functional Methods for Processing Semistructured Data and Their Application to Building Digital Libraries, Trudy 3 Vserossiiskoi Konferentsii po Electronnym Bibliotekam, Petrozavodsk, Karelian Research Center, Russ. Acad. Sci., 2001.
Abelson, H., Sussman, G., and Sussman, J., Structure and Interpretation of Computer Programs, MIT Press, 1996.
Lisovsky, K., Scheme Program Source Code as a Semi-structured Data, 2nd Workshop on Scheme and Functional Programming, Florence, 2001; http://kaolin.unice.fr/Scheme2001/article/lisovsky.ps.
Kay, M., What Kind of Language Is XSLT, 2001, http://www-106.ibm.com/developerworks/xml/library/x-xslt/.
XSL Transformations (XSLT), Version 1.0, W3C Recommendation, 1999, http://www.w3.org/TR/xslt.
Reading List on XML and Web Programming, http://www.readscheme.org/xml-web/.
Document Style Semantics and Specification Language International Standard, ISO/IEC 10179:1996, ftp://ftp.ornl.gov/pub/sgml/WG8/DSSSL/.
32. FramerD: Representing Knowledge in the Large, IBM Syst.J., 1996, vol. 35, no. 3, 4; http://www.framerd.org.
Graunke, P., Findler, R., Krishnamurthi, S., and Felleisen, M., Automatically Restructuring Programs for the Web. Automated Software Engineering, 2001, http://www.ccs.neu.edu/scheme/pubs/ase2001-gfkf.ps.gz.
Graunke, P., Krishnamurthi, S., Van der Hoeven, S., and Felleisen, M., Programming the Web with High-Level Programming Languages, Proc.of ESOP, 2001; http://www.ccs.neu.edu/scheme/pubs/esop2001-gfvf.ps.gz.
Travers, M., What Is Interactive Scripting? Dr.Dobb's J., 2000, no. 1; http://www.ddj.com/documents/ s=889/ddj0001l/0001l.htm.
Hickey, T.J., JScheme Web Programming for CS0, 2001, http://www.cs.brandeis.edu/~tim/Papers/sigcse-jscheme.ps.
Jakarta Tomcat, http://jakarta.apache.org/tomcat/.
Lewis, B.R., BRL: A Database-oriented Language to Embed in HTML and Other Markup.Manual, 2001; http://brl.sourceforge.net/brl.pdf.
Normark, K., Programming World Wide Web Pages in Scheme, ACM SIGPLAN Notices, 1999, vol. 34, no. 12; http://www.cs.auc.dk/~normark/laml/.
Kiselyov, O., Implementing Metcast in Scheme, Proc.Workshop on Scheme and Functional Programming 2000, Montreal, 2000; http://www.cs.rice.edu/matthias/ Scheme2000/oleg.ps.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Lisovsky, K.Y. XML Applications Development in Scheme. Programming and Computer Software 28, 197–206 (2002). https://doi.org/10.1023/A:1016319000374
Issue Date:
DOI: https://doi.org/10.1023/A:1016319000374