.NET Framework 2.0で改善されたXSLTVisual Studio Magazine(1/5 ページ)

XMLとHTMLの架け橋「XSLT」。.NET Framework 2.0のXSLTは、性能向上と一貫した変換アプローチを図った。この特集では、2.0で置き代わるXSLTプロセッサについて、具体的な手法を挙げる。

» 2005年01月24日 11時30分 公開
[Thiru Thangarathinam,FTPOnline]

 Visual Studio Magazine誌は、米国でVS専門誌ナンバーワンの発行部数を誇る。ITmediaでは、発行元FTP Onlineから翻訳権を取得。米国発でホットな話題をピックアップし、月に2つの特集を定期掲載していく。

 今回は、.NET Framework 2.0上で実現されたXSLTの新たな手法解説だ。サンプルでWebフォーム作成を行うが、XsltCommandなど2.0での新たなクラスを用いていく。

取り上げるテクノロジー:VB.NET、C#、SQL Server 2000、ASP.NET、XML、XSLT、XSL、Visual C# 2005

 Microsoft .NET Framework 2.0は、新たな多数のツールと改善効果を開発者に提供する。その中には、アプリケーションからXMLやXSLT(eXtensible Stylesheet Language Transformations)を活用できるリッチでパワフルなXMLクラス群も含まれている。

 XSLTは、XMLに基づいた変換フォーマッタ規格だ。XMLドキュメントをほかのドキュメントへ変換、また、HTMLやXHTMLのようにブラウザが認識できるほかの形式へドキュメント変換する際に利用できる。

 .NET 1.xでも、XSLTを使ったXMLドキュメントの変換機能は内蔵されている。しかし.NET 2.0では、現存のクラスライブラリに新たに加えられた名前空間とクラス群によって、劇的な改善と性能の向上が図られている。

 この特集では、これらの新しいクラスを使い、XMLドキュメントをHTMLドキュメントに変換する方法を示していく。そしてさらに、XSLTスタイルシートにパラメータを渡したり、拡張オブジェクトを呼び出したり、XSLファイル内からスクリプトを利用したりする方法についても説明していく。


 一般に、XSLTはそれぞれのXML要素(エレメント)をHTMLの要素へと変換する。XSLTでは、出力ファイルに新しい要素を加えたり、要素を削除したりすることもできる。そしてどの要素を出力するのかを調べたり決定したりしていくだけでなく、要素を再構築して並べ替えることもできるのだ。

 XSLTはまた、構造化されたXMLドキュメントをほかのテキスト形式に変換する場合にも使える。代表的なものはHTMLだが、それ以外にも、定型テキスト、カンマ区切りテキスト、もしくはほかのXML形式などでもかまわない。

 XSLTではXMLドキュメントの特定部分を取り出すクエリを実行するために、XPath(XML Path)という言語を使う。変換には、XSLTプロセッサと、どのように変換していくのかを定義するXSLTスタイルシート(XSLTファイル)を用いる。.NET Framework 2.0には、XsltCommandという名前のクラスがある。これは新しいXSLTプロセッサであり、.NET 1.xにおける旧式のXslTransformと置き代わるものだ。

 XsltCommandクラスを使う前に、System.XML.Query名前空間について、2つのポイントを押さえておこう。Microsoftが.NET 2.0で導入した、この新しい名前空間には、2つの重要なクラスが含まれている。それは、XsltCommandとXmlArgumentListだ。

 XsltCommandはXSLTスタイルシートを使ってXMLデータを変換する中枢となるクラスだ。MicrosoftによるXsltCommandの実装は、XMLクエリのアークテクチャに基づいており、XslTransformクラスに比べて著しく性能向上している。XsltCommandは、XSLT 1.0の文法をサポートする。

 XmlArgumentListクラスは、XSLTクエリプロセッサに実行時のパラメータを引き渡す時に用いる。実行時のパラメータは、コンパイルされた同じクエリを異なるパラメータで複数回実行する場合に役立つ。またXmlArgumentListクラスは、リストに対して新しい拡張オブジェクトを加え、与えられた名前空間に関連付けるためにも用いる。これらの中枢となる2つのクラスの働きが分かったところで、XMLドキュメントをHTMLに変換するために、XsltCommandクラスを使っていこう。

       1|2|3|4|5 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ