XSLTスタイルシートの作成

広告

それではXSLTスタイルシートを作成していきます。XSLTスタイルシートもXML文書ですのでまずはXML宣言を記述します。

<?xml version="1.0" encoding="UTF-8"?>

次にXSLTのバージョン情報と名前空間を指定します。XSLTの名前空間のURIは「http://www.w3.org/1999/XSL/Transform」でありプリフィックスは「xsl」となります。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  version="1.0">

</xsl:stylesheet>

またAmazon Webサービスで使用しているXMLの名前空間のURIは「http://webservices.amazon.com/AWSECommerceService/」+APIのバージョンとなっておりプリフィックスは「aws」です。こちらも宣言に追加しておきます。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2009-07-01"
  version="1.0">

</xsl:stylesheet>

ここで指定するバージョン番号はリクエストを作成する方で使用しているProduct Advertising APIのバージョンと同じにする必要があります。

次に結果をどのように出力するのかを指定しておきます。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2009-07-01"
  version="1.0">
<xsl:output method="html" encoding="UTF-8"/>

</xsl:stylesheet>

<xsl:output>要素はいくつかの属性を指定可能ですが、今回は出力フォーマットとして「html」を、出力エンコーディングとして「UTF-8」を指定しています。

これでXSLTスタイルシートの宣言部分は完了です。

リクエスト送信時にXSLTスタイルシートを指定

作成したXSLTスタイルシートは「任意の名前」+「.xsl」というファイル名で保存しインターネットからアクセスできる場所に設置しておきます。そしてリクエストを送信する時にXSLTスタイルシートのファイル名を指定することで、リクエストに対する結果をXMLデータではなくXSLTスタイルシートを使って変換されたHTMLデータとして受け取ることができます。

リクエストにXSLTスタイルシートのファイル名を指定するには例えば次のように記述します。

http://ecs.amazonaws.jp/onca/xml?
Service=AWSECommerceService
&AWSAccessKeyId=[AccessKey]
&Version=2009-07-01
&ResponseGroup=Medium
&Operation=ItemSearch
&SearchIndex=Books
&Keywords=Java
&ContentType=text/html
&Style=http://www.example.com/filename.xsl

StyleプロパティにXSLTスタイルシートのURLを指定すると同時に、ContentTypeプロパティに「text/html」を指定して下さい。

なおXSLTスタイルシートを使用する場合はリクエストの送信先が「xml-jp.amznxslt.com」を指定しないとうまく行かない場合があります。その場合は次のようにリクエストを変更して下さい。

http://xml-jp.amznxslt.com/xml?
Service=AWSECommerceService
&AWSAccessKeyId=[AccessKey]
&Version=2009-07-01
&ResponseGroup=Medium
&Operation=ItemSearch
&SearchIndex=Books
&Keywords=Java
&ContentType=text/html
&Style=http://www.example.com/filename.xsl

( Written by Tatsuo Ikura )