本文へジャンプ

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


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

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

  • 閉じる [x]

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

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

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


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

  • 閉じる [x]

ヒント: XMLおよびXPointerを使用する

文書の特定個所へリンクさせる方法

Brett D. McLaughlin, Sr., Author and Editor, O'Reilly Media, Inc.
Photo of Brett McLaughlin
Brett McLaughlin氏は、Logo (小さな三角形を覚えていますか?) の時代からコンピューターの仕事をしています。現在の専門は、JavaおよびJava関連のテクノロジーを使ったアプリケーション・インフラストラクチャーの構築です。ここ数年は、Nextel Communications and Allegiance Telecom, Inc. でこれらのインフラストラクチャーの実装に携わっています。Brett氏は、Javaサーブレットを使ってWebアプリケーション開発のための再利用可能なコンポーネント・アーキテクチャーを構築するJava ApacheプロジェクトTurbineの共同設立者の1人です。同氏はまた、オープン・ソースのEJBアプリケーション・サーバーであるEJBossプロジェクトと、オープン・ソースのXML Web公開エンジンであるCocoonにも貢献しています。

概要: 今回の記事では、XPointerを紹介すると同時に、XPointerとXLinkを共に使用して、他の文書の特定個所を参照する方法について説明します。

日付:  2001年 7月 01日
レベル:  初級 この記事の原文:  英語
アクティビティー: 1500 ビュー
お気軽にご意見・ご感想をお寄せください: 


ここで、以前私が、紹介したXMLによるXLinkの使用法 の記事を基にして説明をまとめてみたいと思います。XLinkは有用なものですが、これは他の文書への参照を可能にするだけです。しかし、文書の特定の個所 を参照したい場合も多くあります。これは非常に簡単です。HTMLに名前付きアンカーを使用するのと似て、XLinkの最初にXPointerを使用すればよいのです。2つのスペックは、共に動作するように想定されており、互いに無理なく組み込むことができます。今回の記事では、文書の特定の個所を参照するためにXMLでXPointerを使用する方法を紹介します。

文書の一箇所を参照する場合、まず、リンクのターゲット となる文書を調べる必要があります。できるなら、その文書がid 属性を使用しているか確認してください。こうすれば、リンクおよび位置指定が一層容易になります。リスト1では、弦楽器製作者のDana Bourgeoisが作成したギターのリストが示されており、それには各タイプごとのIDが含まれています。

注: 分かりやすくするため、実際のBourgeois GuitarsのURLは、http://www.bourgeoisguitars.comをhttp://bg.comと省略しています。これで、コード・リストがかなり読みやすくなります。この文書を実際に見る場合は、http://bg.comへの参照をhttp://www.bourgeoisguitars.comへ変えてください。
リスト1. Bourgeois guitarsのリスト
<?xml version="1.0"?>
<guitarTypes xmlns="http://bg.com">
 <type model="OM" ID="OM">
  <picture url="http://bg.com/images/vvOM.jpg" />
  <description>Small bodied orchestra model.</description>
 </type>
 <type model="D" ID="D">
  <picture 
    url="http://bg.com/images/ricky%20skaggs%20model.jpg" />
  <description>
    Bluegrass powerhouse in a standard dreadnought shape.
  </description>
 </type>
 <type model="slopeD" ID="slopeD">
  <picture 
    url="http://bg.com/images/slope%20d,%20custom%20version.jpg" />
  <description>
    Slope shouldered dreadnought, perfect for vocal accompaniment.
  </description>
 </type>
</guitarTypes>

このヒントでは、http://bg.com/guitars.xml で、この文書を利用できると想定しています。しかし、文書全体への参照はあまり役に立ちません。代わりに、XPointerを用いれば文書の特定の個所へリンクすることができます。XLinkヒントのxlink:href 属性を覚えておられますか? この属性に与えられる値は、XLinkのターゲットでした。しかし、ページの一箇所を参照するためには、URLへ、シャープ記号 (#) と、これらのXPointer表現を追加すれば済みます。たとえば、xpointer(id("slopeD")) という式は、文書内の「slopeD」というIDを持つエレメントを参照します。そこで、http://bg.com/guitars.xml#xpointer(id("slopeD")) のURLを使用し、リスト1のXMLを参照します。次いで、その文書に記述されているSlope Dモデルのギターを参照します。とても簡単でしょう? 前回はギターを記述するXLinkのヒントを紹介したXML文書を載せましたが、今回は、その修正版を示します。ここでは、XPointerの参照をいくつか使用しています。


リスト2. XML文書でXPointerを使用する
                
<?xml version="1.0"?>
<guitars xmlns="http://www.newInstance.com/about/guitars"
         xmlns:xlink="http://www.w3.org/1999/xlink">
 <guitar luthier="Bourgeois"
  xlink:type="simple"
  xlink:href=
    "http://bg.com/guitars.xml#xpointer(id('OM'))"
>
  <description xlink:type="simple"
               xlink:href=
    "http://newInstance.com/guitar/bgOM/pics/bougOM_front_full.jpg"
               xlink:actuate="onLoad" xlink:show="embed">
   This is a real beauty in a small body. Although this is an OM, I 
   use it for flatpicking bluegrass as well as for producing some 
   beautiful fingerstyle sounds.
  </description>
 </guitar>
 <guitar luthier="Bourgeois"
  xlink:type="simple"
  xlink:href=
    "http://bg.com/guitars.xml#xpointer(id('D'))"
>
  <description xlink:type="simple"
               xlink:href=
    "http://newInstance.com/guitar/bgD150/pics/bougd150_con_rim2.jpg"
               xlink:actuate="onLoad" xlink:show="embed">
   Here's the holy grail in process. Dana Bourgeois is building this 
   Brazilian rosewood and adirondack bluegrass monster right now. 
   You'll know it's finished when you hear a run and your windows 
   shatter!
  </description>
 </guitar>
</guitars>

これで、私の文書は、Dana bourgeoisが保持するDana Bourgeoisのギターに関するXMLのコンテンツを参照できるようになりました。同氏がこの情報を変更しても、心配ありません。私の文書は更新された情報にリンクしているだけなので、最新の状態が保たれています。上記のコードで、アンパーサンド ("&") の代わりに&amp; を使用することにより、XPointer式の中で引用符をエスケープしなければならなかったことに注意してください。この方法では、リンクするURLが長くなります。長いURLは、タイプミスを招きがちです。幸い、XPointerでは、IDタグを持つエレメントへリンクする際、扱いやすい短縮形の使用が許されます。すなわち、xpointer(id("D")) 形式を用いる代わりに、IDの値をターゲットに使用できます。この場合は、これは「D」となります。そこで私は、リスト2の文書をリスト3の文書に簡略化しました。リスト3は、リンクの構文が大変すっきりしています。


リスト3. XPointerにおけるIDリンク短縮形を使用する
                
<?xml version="1.0"?>
<guitars xmlns="http://www.newInstance.com/about/guitars"
         xmlns:xlink="http://www.w3.org/1999/xlink">
 <guitar luthier="Bourgeois"
          xlink:type="simple"
          xlink:href="http://bg.com/guitars.xml#OM"
>
  <description xlink:type="simple"
               xlink:href="
    http://newInstance.com/guitar/bgOM/pics/bougOM_front_full.jpg"
               xlink:actuate="onLoad" xlink:show="embed">
   This is a real beauty in a small body. Although this is an OM, I 
   use    it for flatpicking bluegrass as well as for producing some 
   beautiful fingerstyle sounds.
  </description>
 </guitar>
 <guitar luthier="Bourgeois"
          xlink:type="simple"
          xlink:href="http://bg.com/guitars.xml#D"
>
  <description xlink:type="simple"
               xlink:href="
    http://newInstance.com/guitar/bgD150/pics/bougd150_con_rim2.jpg"
               xlink:actuate="onLoad" xlink:show="embed">
   Here's the holy grail in process. Dana Bourgeois is building this 
   Brazilian rosewood and adirondack bluegrass monster right now. 
   You'll know it's finished when you hear a run and your windows 
   shatter!
  </description>
 </guitar>
</guitars>

リンク形式を省略し、簡略化するだけではなく、他のエレメントに関係のある エレメントを指し示すこともできます。この例として、リスト4 で私は、bourgeois.xmlで指定されるイメージを指すようにdescription エレメントを変更しています。

リスト4を見ると、最初に、参照される文書の特定のエレメントの検索が行われることに気付くでしょう。このエレメントは、エレメントに付加される相対式に対する参照点として機能します。この例では、そのエレメントの子孫 (descendant キーワードで指定される) が指定されます。ここでは、「picture」と命名されています。このリンクの最終的なターゲットは、「url」と命名されたエレメントの属性値となります。この説明は、冗長ですが、段階を追って理解すれば、かなり単純であることが分かります。

リスト4 で私が、前のセクションで説明したIDリンクの短縮形を使用していない ことに注意してください。このようなIDリンク形式は、直接的なリンクでしか使用できないからです。IDリンクの長い形式を使わないと、幅の広いリンクを行うことはできません (リスト4での子を横断する参照のように)。

XPointerが提供する膨大なオプションの詳細については、XPointer specificationオンライン (参考文献の項) を参照してください。一見奇妙に見えるリンク構文を完全に理解したいときには、XPathを調べるとよいでしょう。XPathの仕様についても、オンライン (参考文献の項を参照) で入手できます。

この解説は、紹介に過ぎませんが、XPointer、XLink、XPathについて、友人や家族が知っている以上のことを話してあげることができるでしょう。仕様を読んで、いろいろ試してみてください。これらのXML関連の仕様をサポートするブラウザーが登場するのを期待してください。


参考文献

著者について

Photo of Brett McLaughlin

Brett McLaughlin氏は、Logo (小さな三角形を覚えていますか?) の時代からコンピューターの仕事をしています。現在の専門は、JavaおよびJava関連のテクノロジーを使ったアプリケーション・インフラストラクチャーの構築です。ここ数年は、Nextel Communications and Allegiance Telecom, Inc. でこれらのインフラストラクチャーの実装に携わっています。Brett氏は、Javaサーブレットを使ってWebアプリケーション開発のための再利用可能なコンポーネント・アーキテクチャーを構築するJava ApacheプロジェクトTurbineの共同設立者の1人です。同氏はまた、オープン・ソースのEJBアプリケーション・サーバーであるEJBossプロジェクトと、オープン・ソースのXML Web公開エンジンであるCocoonにも貢献しています。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


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, Java technology
ArticleID=242720
ArticleTitle=ヒント: XMLおよびXPointerを使用する
publish-date=07012001
author1-email=brett@newInstance.com
author1-email-cc=dwxed@us.ibm.com

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。