アダルト・ヴァイオリン May the force be with you..

2009年4月13日

唯一無二なURI

Filed under: Weblog — い~ぐる @ 11:41 PM

XSLがターゲットとするXMLには、名前空間の概念がある。
名前空間は、使用にあたっては、世界中、唯一無二なURIを用いて、名前空間を定義しなくてはならない。

このURI、唯一無二でありさえすればいいのかと思いきや、その値がスタイルシートの中だけでなく、変換対象のターゲットXMLとも一致している必要がある。
(つまり、自分で作るXMLもその時の気分で名前空間を作ったりすると、XSLTのスタイルシートを作る時にはまるということだ)

SAXONを使って、UML 1.4ベースのXMIを利用できるようにしようと作業していた。
UML 1.4ベースのツールでは、UML: という、名前空間の接頭が付くケースが非常に多い。昨日、見事にはまったのが、この UML: であった。

URIが一意でありさえすればいいと思っていた私は、UML 2.1のURIを少し書き換え、適当なURIを作成して名前空間の定義としておいた。

開発を進めていくと、大きなトラブル。タグがselectを使っても、全くヒットしないのだ。

name()=’UML:Class’のように明示的に比較オペレータを使えばいいのだが、XSLTの解としては、美しくない。

散々悩んだあげく、URIをターゲットのXMLモデルからコピペしてみると、なぜか動いていそう!?

名前空間はターゲットのXMLを含め、整合性が取れてないといけない。一つ勉強した 🙂

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress