ヒント: XMLによるXLinkの使用法

XLinkは基本リンクまたは外部リソース組み込みのために機能します

XML関連仕様であるXLinkを使用すれば、XML文書に劇的なリンク効果をもたらすことができます。この小さなヒント記事では、XLinkを使って他のXML文書の一部をあなたのXMLに組み込む方法を学びます。コード例でその技法を示します。

Brett McLaughlin (brett@newInstance.com), Enhydra Strategist, Lutris Technologies

Brett McLaughlin (brett@newInstance.com) は、Lutris TechnologiesでEnhydraストラテジストを務めており、分散システム・アーキテクチャーを専門としています。また、Java and XML (O'Reilly社) の著者でもあります。Javaサーブレット、Enterprise JavaBeansテクノロジー、XMLおよびビジネス・ツー・ビジネス・アプリケーションなどの技術にかかわっています。氏は、Jason Hunter氏と一緒に、JDOMプロジェクトを設立しました。このプロジェクトは、JavaアプリケーションからXMLを扱う、簡潔なAPIを提供しています。また、Apache CocoonプロジェクトとEJBoss EJBサーバーの開発に積極的に取り組んでおり、Apache Turbineアクティブの共同設立者でもあります。



2001年 7月 01日

2年以上前のXMLのリリース以降、"X" という文字が付いたものには何にでも驚くほどの関心が寄せられました。その証拠に、このごろでは数えられないくらい多くのXML関連仕様を見ることができます。たとえば、XPointer、XLink、XSD (XML Schema) 、RDF、RSS、XHTMLなどがその一部です。このヒント記事では、XLinkの簡単な検討を行います。XLinkは特に有用な仕様で、他の文書を参照するためのXMLリンク・メカニズムを定義します。

HTML作成者であれば、最初はXLinkが、<a href="http://www.nickelcreek.com">Check out Nickel Creek!</a> などでよく見慣れたa エレメントと非常によく似ている、と思われるかもしれません。しかしXLinkは、単一方向リンクよりもはるかに多くの機能を持っています。XLinkを使用すれば、双方向リンクを作成することができます。リンクの処理方法も定義できますが、最も重要なことは、どの XMLエレメントからでも (a エレメントからだけでなく) リンクできることです。これらのすべての理由から、XLinkは学ぶ価値があります。

XLinkの実物

まず最初に、わたしのギターのいくつかを表した小さなXML文書をお見せしましょう。リスト1 では、いくつかのXLink構成を使用しています。

読者はまず、XLinkネームスペースに参照項目が付けられ、この文書がXLink属性と機能にアクセスできるようにしていることに気付かれるでしょう。次に、xlink:type 属性によって指定された "単純な" タイプのXLinkのみをカバーしています。それは、XLinkに対して最低限のブラウザー・サポートしか提供されていないからです。つまりブラウザー・サポートは、現在、MozillaとNetscape 6にしか含まれていません。(わたしはまだIE 6.0をテストできませんが、バージョン5.5ではXLinkのサポートはありません。) したがって、XLinkの基本部分を使用するのが賢明です。

これで、処理対象の基本的なXMLが入手できました。XLinkを利用するには、リンクが含まれているエレメントの属性をいくつか使用するだけで十分です。わたしの文書のguitar エレメントを見てください。そこでは、各ギターごとに製作者 (ギターの作成者) が指定されています。xlink:type 属性を使用する操作についてはすでに説明しましたが、この属性は "simple" に設定されます。次に、このエレメントはXLinkを使用してリンク先のURLを指定します。このURLを指定するために、このエレメントはxlink:href 属性を使用します。この時点であなたは多分「大したことはない、HTMLと非常によく似ている」と思われるでしょう。そのとおりです。デフォルトでは (もちろん、ブラウザー・サポートがあると想定して)、これにより、リンクをクリックしたときに現行ウィンドウを置き換えるように、リンクがセットアップされます。新規ウィンドウでリンクのターゲットを開きたい場合は、xlink:show 属性を追加し、それに "new" の値を与えます。デフォルトは "replace" で、これは通常のHTMLの振る舞いです。


XLinkの可能性

以上、基本リンクについてだけ説明しました。リモート・ロケーションをリソースとして、たとえばイメージのリンクとしてアクセスしたい場合は、さらに面白くなります。リスト1のdescription エレメントを見てください。このエレメントは、xlink:show 属性の値を "embed" に設定します。このことは、リソース (この場合は、記述するギターを示すイメージ・ファイル) をページ内でインライン処理する必要があることを意味します。このため、指定された文書をXML内にインライン挿入するようXLink対応ブラウザーに指示する必要があります。あなたが、これはイメージでなくて、別のXML文書でもよいのではないかと考えるようになったら、この可能性が実現へ向けて動きはじめます。

さらに先へ進むと、リソースをいつ 表示するかを指定することができるようになります。このタイミングは、 xlink:actuate 属性によって処理され、この属性は、リソースをいつ "読み取って" 表示するかを定義します。リスト1に示されているように、この値が "onLoad" であれば、初期文書のロード時にリソースをロードする必要があり、この時もそれを表示する必要があります。値 "onRequest" を指定することもできます。つまり、リンクをクリックするまで、このリソースは表示されません。この方法はバンド幅が小さい時に便利で、ユーザーはどのリソースを待機するか選択することができます。

今回は、XLinkについてざっと説明しただけですが、出発点としては適切な内容であるはずです。XLinkの詳細については、『参考文献』に示されている仕様を調べてください。XLinkに対する新規ブラウザー・サポートのフィーチャー・リストからも目を離さないでください。XLinkがサポートされるようになったら、作業に取り掛かってください。

参考文献

  • XLinkの詳細については、XLink仕様 を調べてください。
  • その際、XLinkへのさらに拡張されたリンクを追加するXPointer も調べてください。
  • Solutions 2001 developer conference が8月13日 ~18日にサンフランシスコで開催されました。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=XML
ArticleID=243248
ArticleTitle=ヒント: XMLによるXLinkの使用法
publish-date=07012001