ハイパーリンクの定義

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  SPS ファイル: 高度な機能 > 目次、参照、ブックマーク > ブックマーク と ハイパーリンク >

ハイパーリンクの定義

ハイパーリンクはテキストやイメージといった SPS コンポーネントの周りに作成されます。ハイパーリンクのターゲットには (i) SPS デザイン内部にあるブックマーク、または (ii) ウェブページや電子メールのメッセージといった外部リソースを使用することができます。このセクションではハイパーリンクのコンテンツ(テキストやイメージなど)について、そしてハイパーリンクのターゲットについて説明します。

 

ハイパーリンクの作成

以下の操作によりハイパーリンクを作成することができます:

 

(静的または動的な)テキスト、ノード、イメージ、条件テンプレート、自動計算、コンテンツやノードのブロックの周りで: 入力フィールドやコンボボックスといったデータ入力デバイスの周りにハイパーリンクを作成することはできませんが、データ入力デバイスを含んでいるノードや条件テンプレートの周りに作成することはできます。囲まれた対象が、リンクのコンテンツとなります。コンポーネントの周りにハイパーリンクを作成するには、そのコンポーネントが選択されている状態で、メニューオプションから「タグで囲む | ハイパーリンク」を選択してください。
メニューオプションの「挿入 | ハイパーリンクを挿入」によりハイパーリンクを挿入: 新たに作成されたハイパーリンクのタグ内部に、リンクのコンテンツを追加する必要があります。

 

ハイパーリンクのターゲットを定義

タグで囲む | ハイパーリンク または 挿入 |  ハイパーリンクによりアクセスすることができるハイパーリンクの挿入ダイアログではハイパーリンクのターゲットを作成することができます(以下のスクリーンショットを参照)。

 

dlg_insert_hyperlink

 

リンクのターゲットは以下のどれかになります:

 

同一 SPS デザインにある ブックマーク: ターゲット URI はフラグメント識別子となります。
ブックマークのアンカーに対して動的に作成されたもの : これらの URI もフラグメント識別子となります。
外部リソース: URI は(直接入力された)静的なもの、(XML ドキュメント内のノードから得られる)動的なもの、静的ならびに動的なパーツから構成されるもの、またはパースされていないエンティティのどれかとなります。

 

以下ではこれらのターゲットを定義する方法について説明します。ハイパーリンクの挿入/編集ダイアログにて URI を定義して、「OK」 をクリックして完了します。

 

ブックマークへのリンク作成

以下の操作によりブックマークへのリンクを作成することができます:

 

1.ハイパーリンクの挿入ダイアログにある静的タブにてブックマークボタンをクリックします。この操作によりドキュメント内のブックマークを選択するダイアログが表示されます(以下のスクリーンショットを参照)。以下に示されるスクリーンショットには、静的なブックマークが1つ、動的なブックマークが1つ表示されています。

 

select_bookmark

 

2.静的なブックマークをターゲット URI として選択するには、静的なブックマークをダブルクリックして 「OK」 をクリックします。動的なブックマークをダブルクリックした場合、選択された動的なブックマークにマッチする XPath 条件式を入力するように促されます(以下のスクリーンショットを参照)。

 

LinkToDynamicBookmark

 

動的なブックマーク の実体は、(それ自身がブックマークの名前でない場合)ブックマークの名前を生成する XPath 条件式となります。動的ブックマークへのハイパーリンク作成ダイアログには動的なブックマークの XPath 条件式が表示されており、ターゲットとなるブックマークにマッチする名前を生成する XPath 条件式を構築することができます。「OK」 をクリックして完了します。

 

動的に作成された ID ブックマークへのリンク作成

ブックマークには、 動的に生成された ID アンカー を含めることができます。このようなブックマークへのリンクを作成する場合、アンカーはランタイムにて動的に生成されるため、このようなアンカーに対して ハイパーリンクhref 値をどのようにセットするかが問題になります。動的に生成されるアンカーに対しては generate-id() 関数を、 ハイパーリンクhref 値の内部で使用することになります。変換が一度だけ行われた場合、generate-id() 関数が同一のノードに対して評価されると、常に同一の ID が生成されます。これにより、ブックマークとハイパーリンクにて生成された ID が同一のものとなります。

 

以下の2点に留意する必要があります:

 

generate-id() 関数は XPath 条件式として評価する必要があるため、ハイパーリンクのターゲットをセットするにはハイパーリンクの挿入ダイアログにある動的タブを選択する必要があります。
href 属性で評価される値は(フラグメント識別子を表す) # からはじめる必要があります。従って XPath 条件式は concat('#', generate-id(nodeXXX)) のような形式となります。静的ならびに動的タブにて、# をアドレスの静的パートに入力し、generate-id(nodeXXX) を動的パートに入力することもできます。

 

外部リソースへのリンク作成

以下の操作により、外部リソースを選択するための URI を構築することができます:

 

ハイパーリンクの挿入タブにある静的タブにて URI を直接入力する: 例えば静的タブのアドレス入力フィールドに対して Altova ウェブページ (http://www.altova.com/) へのリンクを直接入力することができます。
ハイパーリンクの挿入ダイアログにある動的タブの XML ドキュメントソースにてノードを選択する: XML ソース内部にあるノードから、(i) ターゲットとなる URI、または (ii) 目的の URI を値として含んでいる パースされていないエンティティ 名のどれかを表すテキスト文字列を与えることになります。例えば Altova ウェブサイトのアドレスを、ノード内にあるテキスト文字列として含めることができます。
ハイパーリンクの挿入ダイアログにある静的ならびに動的タブにて、静的ならびに動的なパーツから構成される URI を構築する: この機能は静的な(例えばプロトコルを表す)接頭語や(例えばドメイン名を表す)接尾語を追加する際に使用することができます。例えば mailto: という静的なパーツと //Contact/@email ノードのコンテンツから得られた文字列を組み合わせることにより、電子メールアドレスを構築します(以下のスクリーンショットでは、//Contact/@email ノードのコンテンツプレースホルダへのリンクが作成されており、自分自身のノードを表す self::node() の短縮形 . が使用されています)。

 

DlgEditHyperlinkEx

 

パースされていないエンティティを使用する方法については、 パースされていないエンティティ URI のセクションを参照ください。

 

ハイパーリンクプロパティの編集

ハイパーリンクを編集するにはハイパーリンクの開始または終了タグを右クリックして、コンテキストメニューから URI の編集を選択します。ハイパーリンクの編集ダイアログが表示されます(上のスクリーンショットを参照)。プロパティウィンドウのハイパーリンクグループ内にある URL プロパティからも、ハイパーリンクの編集ダイアログへアクセスすることができます。

 

ハイパーリンクの削除

ハイパーリンクを削除するには、ハイパーリンクの開始または終了タグをクリックしてハイパーリンクを選択し、Delete キーを押下します。ハイパーリンクとそのコンテンツが削除されます。

 

 

 


(C) 2019 Altova GmbH