XMLCチュートリアル: URLの操作

内容

  1. URLとXMLCの利用法
  2. サンプルHTMLページ
  3. 生成されるJavaクラス
  4. 生成されるHTML

URLとXMLCの利用法

本章では、XMLCの-urlmapping-urlsettingコマンドラインオプションが、URLを一般的なアドレスから特定のプロジェクトの具体的な値へ写像する為に使われることを説明します。 -docoutオプションについても解説します。

これらのコマンドラインオプションの詳細については、Enhydraのサイトで記述されています。

-urlmappingオプションは、2つの引数(argument)を取ります。 入力HTMLページは、最初の引数のインスタンスで検索されます。 これらの検索されたすべてのインスタンスは、出力の中では2番目の引数に置き換わります。

-urlsettingオプションは、2つの引数(argument)を取ります。 入力HTMLページは、id属性を持つタグで検索されます。 もしそのid属性の値が最初の引数の値と同じでタグがURLを含んでいるならば、 URLは出力の中では2番目の引数の値に置き換えられます。

-docoutオプションは、ファイル名として解釈される1つの引数(argument)を取ります。 このオプションは、Javaコードの生成をスキップします。 そのオプションが、コマンドラインに与えられたら、XMLCは(引数により)名前付けされたファイルへHTMLを書き出します。 HTMLは、Javaのクラスによって書き出されるHTMLと同じです。 この機能は、XMLCを静的なページのURLをアップデートに使用する場合やEnhydraアプリケーションが静的な数ページを持っている時に役に立つ場合があります。

サンプルHTMLページ

以下のHTMLについて考えてみてください。(そのHTMLファイルには“demo_urls.html"という名前を付けます)


<HTML>
<HEAD></HEAD>
<BODY>
<IMG SRC="Corporate.gif" ALIGN=LEFT>
<IMG SRC="Corporate.gif" ALIGN=RIGHT>
<A HREF="http://www.CorporateHost/ProjectPage/index.html">Project index</A>
<A HREF="http://www.CorporateHost/ProjectPage/index.html#team">Project team</A>
<A HREF="mailto:ProjectLeader@CorporateHost">Project leader</A>
<A HREF="http://www.CorporateHost/VeryOldPage" ID="defunct">First version</A>
<A HREF="http://www.CorporateHost/OldPage" ID="defunct">Second version</A>
</BODY>
</HTML>

生成されるJavaクラス

-docoutオプションは、Javaコードを生成しません。

生成されるHTML

URL操作コマンドラインオプションは、以下の様に呼び出す事が出来ます。


$ENHYDRA/output/bin/xmlc -urlmapping Corporate.gif AmazingStock.gif -urlmapping http://www.CorporateHost/ProjectPage/index.html http://www.AmazingStock.com/apps/killer/index.html -urlmapping mailto:ProjectLeader@CorporateHost mailto:catbert@AmazingStock.com -urlsetting defunct http://www.CorporateHost/NotAvailable -docout demo_urls_new.html demo_urls.html

これは以下の出力を生成します。 -urlmappingの最初の引数に、完全に一致したURLだけが、置き換えられた事に注意してください。 特に、#teamをURLに追加する事で、それが置き換えられるのを止めるには十分です。 (訳注:#teamが追加されたことで、完全に一致しなくなる為置き換わらないという事)


<html>
<head></head>
<body>
<img align='left' src='AmazingStock.gif'></img>
<img align='right' src='AmazingStock.gif'></img>
<a href='http://www.AmazingStock.com/apps/killer/index.html'>Project index</a>
<a href='http://www.CorporateHost/ProjectPage/index.html#team'>Project team</a>
<a href='mailto:catbert@AmazingStock.com'>Project leader</a>
<a id='defunct' href='http://www.CorporateHost/NotAvailable'>First version</a>
<a id='defunct' href='http://www.CorporateHost/NotAvailable'>Second version</a>
</body>
</html>

アップデートされる必要があるURLがいくつものHTMLファイルの中にある場合は、以下の様に、URLマッピングオプションをシェル環境変数に入れておくと役に立つかもしれません。


URL_MAPPINGS="-urlmapping Corporate.gif AmazingStock.gif -urlmapping http://www.CorporateHost/ProjectPage/index.html http://www.AmazingStock.com/apps/killer/index.html -urlmapping mailto:ProjectLeader@CorporateHost mailto:catbert@AmazingStock.com -urlsetting defunct http://www.CorporateHost/NotAvailable" ; export URL_MAPPINGS
$ENHYDRA/output/bin/xmlc $URL_MAPPINGS -docout demo_urls_new.html demo_urls.html