XMLとの連携・活用 |
|
SVGとは、Scalable Vector Graphicsの略で、その名前が示すとおり、スケーラブルなベクタ形式のグラフィックスを定義するための技術です。SVGはXMLやHTMLなどのインターネット関連の仕様を数多く策定しているW3Cによって作成された規格です。
SVGの特徴は、以下のようなものです。
●スケーラブル
ビットマップと違い、解像度に応じた品質で表示、印刷ができます。また、表示の拡大、縮小を行ってもドットのガタガタがでることがありません。
●オープンでスタンダードな規格
W3Cの手による規格ですから、特定ベンダが仕様を変えたりすることはありません。そのグラフィックスに関する仕様が、なぜXMLと関係があるのかというと、実は、このSVGは、記述形式としてXMLを採用しているのです。XMLを採用していることにより、以下のような利点があります。
- プレーンテキストで記述できる
- 操作がしやすい(DOMなどによって生成、書き換え、読み取りができる)
- XSLTなどを利用して容易に変換ができる
- テキストを検索したり、選択したりすることができる
■SVGの使い道
このSVGを、JavaによるWebアプリケーションでどのように用いたらよいのでしょうか? 使い道は、いろいろあると思いますが、業務システムへの適用でまず思い付くのは、グラフなどの描画にSVGを利用するというものでしょう。これまで、JavaによるWebアプリケーションで、グラフなどを利用したいときには、Appletを使うか、サーブレットなどで画像ファイルを生成して読み込むという方法がありましたが、どちらも作成のコスト(負荷)が高く、メンテナンスも複雑になりやすいという問題がありました。前者の場合、グラフの内容を変更したい場合は、Javaのコーディングを修正する必要がありますし、後者の場合は、その修正はさらに複雑です。SVGを使うと、グラフを描画するコードを、Javaのコーディングから切り離すことができますので、そうった問題は解決できると考えられます。つまり、これはServletとJSPを用いて、ServletからHTMLのコーディングを切り離すのと似たような理屈です。
■SVGを使うための道具立て
SVGによって記述された図形を見るには、そのためのプラグインやビューアが必要です。Webブラウザ上で、SVGを見るためには、現在のところ、Adobe SVG Viewer というプラグインが必要です。ただしこのプラグインは、Windows版とMacintosh版しか提供されていないため、そのほかのプラットフォームでSVGを見るためには、下記に挙げるようなフリーのビューアなどを入手する必要があります(これらはプラグインではないので、Webブラウザで表示することはできませんが、URLを入力して、SVGを表示させることは可能です)。
■SVGのサンプル作成から動作まで
では、SVGを使ったサンプルを動作させてみましょう。このサンプルは、Webブラウザから値を入力して送信すると、送信内容に応じてグラフを作成するアプリケーションです。
・JSP+SVGによるグラフ作成
XML文書に動的に値を設定する方法としては、XSLTがよく知られていますが、記法が複雑で、習熟しないとなかなか難しいのも事実です。ここでは、JSPを使って、SVG形式の文書を出力させてみましょう。
・JSPでXMLSVG形式の文書を作る
JSPでSVG形式の文書を作るのは難しいことではありません。page directiveでMIMEタイプを適切に設定し、あとは、通常のSVG文書を記述していき、動的に値を設定したい部分があれば、そこをJSPタグで記述すればよいのです。
リスト1 パラメータ入力画面用HTML(svg_input.html) |
<html> <body>
|
パラメータ入力画面 |
リスト2 SVG出力用JSP(svg_demo.jsp) |
<?xml version="1.0"
standalone="no"?>
<desc><!-- put a description
here -->
|
SVG出力画面 |
[参考URL]
AdobeのSVGに関するページ
Apache
XML Project Batik
IBM
Alphaworks SVGView
「Java Solution FAQ」 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|