SXML
XMLのデータ処理言語は、例えばXPath、XSLT、XQueryが、W3 Consortiumにより提案されている。しかし、これらは、汎用的なプログラミング言語ではなく、アプリケーションの全てを実装するには不十分である。 この理由により、ほとんどのXMLアプリケーションは、CやJavaのような伝統的なプログラミング言語、もしくはPerl、JavaScriptやPythonのようなスクリプト言語を用いて実装される。
2つの異なる言語(例えば、XPahtとJava)を組み合わせる試みは、インピーダンス・ミスマッチとして知られる問題を引き起こす。 インピーダンス・ミスマッチは、2つの側面からなる:
異なるデータモデル、つまりツリー構造のXML文書のXPathモデル(ほとんどの汎用プログラミング言語は、ツリーのためのネイティブのデータ型を持たない)
異なるプログラミングパラダイム。言い換えると、XSLTは、関数型言語であり、一方、Javaは、オブジェクト指向言語で、Perlは、手続き型言語である。
インピーダンス・ミスマッチは、複雑なコンバータと、2つの言語を結びつけるのに使用するAPI(例えば、DOM)を要求する。
インピーダンス・ミスマッチの問題を軽減もしくは消し去るために、Scheme関数プログラミング言語をXMLのデータ処理に使用する事ができる: