XSLT デザイナークイックスタートガイド
執筆:
Dmitry Markovski
、管理: Vince Genovese
2007 年 12 月
目次
概要
このチュートリアルでは、NetBeans IDE 6.0 に含まれている XSLT デザイナーに関する知識を習得します。XSLT デザイナーは、XSL 変換サービスの開発、配備、およびテストに使用されます。
XSL 変換サービスは、Web サービスとして機能します。このサービスは、外部クライアントからメッセージを受け取り、XSL スタイルシートに従ってメッセージを変換し、そのメッセージの送信元に返信するか、別の Web サービスに転送します。
このチュートリアルでは、メッセージを受け取り、それを変換して、呼び出し元の Web サービスへ戻す、簡単な XSL 変換サービスを作成します。
前提条件
このチュートリアルは、NetBeans IDE についての基本的な知識またはプログラミング経験を持つユーザーを想定しています。
システム要件
このチュートリアルでは、ユーザーのシステムが、『NetBeans IDE 6.0 リリースノート 』の「システム要件 」の項で指定された要件を満たしていることを想定しています。
チュートリアルに必要なソフトウェア
開始する前に、NetBeans IDE 6.0 をコンピュータにダウンロードしてインストールします。ダウンロードオプションは「すべて」を選択します。ダウンロードオプションの「すべて」には、このチュートリアルに必要な SOA Pack と GlassFish V2 アプリケーションサーバーが含まれています。
ページの先頭へ
チュートリアル環境の設定
このチュートリアルには、NetBeans IDE 6.0 とともにインストールされる、JBI ランタイムを含む GlassFish V2 アプリケーションサーバーが必要です。次の手順を実行して、GlassFish V2 アプリケーションサーバーが NetBeans IDE 6.0 とともにインストールされていること、およびこのチュートリアルに必要な XSLT サービスエンジンおよび変換共有ライブラリが JBI ランタイムに含まれていることを確認します。
「サービス」ウィンドウを開きます。
「サーバー 」ノードを展開します。
「GlassFish V2 」ノードを右クリックし、ポップアップメニューから「起動」を選択します。
起動オプションが使用できず、「GlassFish V2 」ノードの横に緑色の「バッジ」がある場合、サーバーはすでに稼動中です。
サーバーを起動したあと、「GlassFish V2」>「JBI」 ノードを展開します。「サービスエンジン 」ノードと「共有ライブラリ 」ノードの両方を展開して、XSLT サービスエンジンと変換共有ライブラリがインストールされていることを確認します。
ページの先頭へ
XSLT モジュールプロジェクトの作成
XSL 変換サービスは、XSLT モジュールプロジェクト内に作成されます。
新しい XSLT モジュールを作成するには、次の手順に従います。
IDE のメインメニューから、「ファイル」>「新規プロジェクト」を選択します。
「カテゴリ」の下で、「SOA 」を選択します。
「プロジェクトの」の下で、「XSLT モジュール 」を選択します。
「次へ」をクリックします。
「プロジェクト名」フィールドに「HelloXSLTransformation 」と入力します。
プロジェクトの場所を変更するか、デフォルトを受け入れます。
「完了」をクリックします。
これで、「プロジェクト」ウィンドウに「HelloXSLTransformation 」プロジェクトノードが含まれます。
次に、XML スキーマ (.xsd ) ファイルを 2 つ、Web サービス記述 (.wsdl ) ファイルを 1 つ、および XSL スタイルシート (.xsl ) ファイルを 1 つ作成します。XSL 変換サービスを実行するには、少なくとも 1 つの XML スキーマ、1 つの WSDL ファイル、および 1 つの XSL スタイルシートが必要です。このチュートリアルの目的は、XML スキーマを 2 つ作成することです。
ページの先頭へ
XML スキーマの作成
2 つのXML スキーマ HelloXSLTIncoming.xsd および HelloXSLTOutgoing.xsd を作成します。1 つ目は着信メッセージのベースとして使用し、2 つ目は送信メッセージのベースとして使用します。
着信メッセージ用の XML スキーマを作成するには、次の手順に従います。
「プロジェクト」ウィンドウで、「HelloXSLTransformation」>「変換ファイル」 ノードを右クリックし、「新規」>「XML スキーマ」を選択します。
「ファイル名」フィールドに「HelloXSLTIncoming 」と入力します。
「完了」をクリックします。HelloXSLTransformation プロジェクトの「変換ファイル 」ノードの下に、新しいノード「HelloXSLTIncoming.xsd 」が表示され、新しいスキーマが XML スキーマエディタで開きます。
スキーマビューの最初の列で、「要素」を右クリックし、ポップアップメニューから「要素の追加」を選択します。「要素の追加」ダイアログが開きます。
「名前」フィールドに「name 」と入力します。
「型」で「既存の型を使用」ラジオボタンを選択します。
「組み込み型 」ノードを展開して「string 」を選択します。
「了解」をクリックします。
作成したスキーマのソースを表示するには、XML スキーマエディタツールバーの「ソース」ボタンをクリックします。次のコードが表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xml.netbeans.org/schema/HelloXSLTIncoming"
xmlns:tns="http://xml.netbeans.org/schema/HelloXSLTIncoming"
elementFormDefault="qualified">
<xsd:element name="name" type="xsd:string"></xsd:element>
</xsd:schema>
送信メッセージ用の XML スキーマを作成するには、次の手順に従います。
「プロジェクト」ウィンドウで、「HelloXSLTransformation」>「変換ファイル」 ノードを右クリックし、「新規」>「XML スキーマ」を選択します。
「ファイル名」フィールドに「HelloXSLTOutgoing 」と入力します。
「完了」をクリックします。HelloXSLTransformation プロジェクトの「変換ファイル 」ノードの下に、新しいノード「HelloXSLTOutgoing.xsd 」が表示され、新しいスキーマが XML スキーマエディタで開きます。
スキーマビューの最初の列で、「要素」を右クリックし、ポップアップメニューから「要素の追加」を選択します。「要素」ダイアログが開きます。
「名前」フィールドに「greeting 」と入力します。
「型」で「既存の型を使用」ラジオボタンを選択します。
「組み込み型 」ノードを展開して「string 」を選択します。
「了解」をクリックします。
作成したスキーマのソースを表示するには、XML スキーマエディタツールバーの「ソース」ボタンをクリックします。次のコードが表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xml.netbeans.org/schema/HelloXSLTOutgoing"
xmlns:tns="http://xml.netbeans.org/schema/HelloXSLTOutgoing"
elementFormDefault="qualified">
<xsd:element name="greeting" type="xsd:string"></xsd:element>
</xsd:schema>
ツールバーの「すべてを保存」ボタンをクリックします。
HelloXSLTransformation プロジェクトの「変換ファイル 」ノードの下に、スキーマファイルが 2 つ表示されます。
注: XML スキーマエディタは、このチュートリアルの対象ではありません。XML スキーマエディタの詳細については、XML スキーマツール入門 を参照してください。
ページの先頭へ
WSDL ファイルの作成
次に、XSL 変換サービスの Web インタフェースを定義する、Web サービスの説明ファイルを作成します。
WSDL ファイルを作成するには、次の手順に従います。
「プロジェクト」ウィンドウで、「HelloXSLTransformation」>「変換ファイル」 ノードを右クリックし、「新規」>「WSDL ドキュメント」を選択します。
「ファイル名」フィールドに「HelloXSLTWSDL 」と入力し、「次へ」をクリックします。
「入力」の「要素または型」列で、省略符号ボタン (...) をクリックします。「要素または型を選択」ダイアログが開きます。
「ファイル別」>「HelloXSLTransformation」>「src/HelloXSLTIncoming.xsd」>「要素」>「name」 を選択し、「了解」をクリックします。
「出力」の「要素または型」列で、省略符号ボタン (...) をクリックします。「要素または型を選択」ダイアログが開きます。
「ファイル別」>「HelloXSLTransformation」>「src/HelloXSLTOutgoing.xsd」>「要素」>「greeting」 を選択し、「了解」をクリックします。
「次へ」をクリックします。
「結合型」フィールドで、「SOAP」を選択します。
「結合サブタイプ」の下で「DOCUMENT リテラル」を選択し、「完了」をクリックします。
HelloXSLTransformation プロジェクトの「変換ファイル 」ノードの下に、「HelloXSLTWSDL.wsdl 」ファイルが表示されます。
注: WSDL ファイルの作成と編集は、このチュートリアルの対象ではありません。詳細については、WSDL エディタ開発者ガイド を参照してください。
ページの先頭へ
XSL スタイルシートの作成
XSL スタイルシートは、着信メッセージを送信メッセージに変換する命令を含む XML ファイルです。
XSL スタイルシートを作成するには、次の手順に従います。
「プロジェクト」ウィンドウで、「HelloXSLTransformation」>「変換ファイル」 ノードを右クリックし、「新規」>「XSLT サービス」を選択します。
「サービスの種類」の下で、「要求-応答サービス」を選択します。「次へ」をクリックします。
「Web サービス」ドロップダウンリストで、「HelloXSLTWSDL.wsdl 」が選択されていることを確認します。「次へ」をクリックします。
「XSL ファイル」フィールドに、「HelloXSLTService 」と入力します。「完了」をクリックします。
HelloXSLTransformation プロジェクトの「変換ファイル 」ノードの下に、「HelloXSLTService.xsl 」ノードが表示されます。HelloXSLTService.xsl ファイルが、XSL 変換エディタのデザインビューで開きます。デザインビューのパレットが右側に開きます。
クリックして拡大
「パレット」の「String」セクションを展開し、「連結」関数を XSLT デザインビューの変換区画にドラッグします。
「パレット」の「String」セクションの下で、「文字列定数」関数を選択し、変換区画にドラッグします。return string フィールドをダブルクリックして編集可能にし、「Hello 」(最後に空白文字を入れる) と入力します。
Hello フィールドの右側にあるハンドルを、連結関数の string1 行の左側のハンドルにドラッグします。フローを示す矢印が表示されます。
左側のソースツリー区画の name 要素を選択し、ハンドルを連結関数の string2 行にドラッグします。
return string ハンドルを、右側の宛先ツリー区画の greeting 要素にドラッグします。デザインビューは次のようになります。
デザインビューのツールバーで「ソース」ボタンをクリックします。次のコードが表示されます。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:ns1="http://xml.netbeans.org/schema/HelloXSLTIncoming" xmlns:ns="http://xml.netbeans.org/schema/HelloXSLTOutgoing">
<xsl:template match="/">
<xsl:element name="ns:greeting">
<xsl:value-of select="concat('Hello ', /ns1:name)"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
ツールバーの「すべてを保存」ボタンをクリックします。
ページの先頭へ
複合アプリケーションの作成と配備
XSLT プロジェクトは直接配備できません。複合アプリケーションプロジェクトを配備する前に、まず XSLT プロジェクトを JBI モジュールとして複合アプリケーションプロジェクトに追加する必要があります。プロジェクトを配備すると、アプリケーションサーバーがサービスアセンブリを使用できるようになり、サービスユニットが実行可能になります。
複合アプリケーションを作成するには、次の手順に従います。
メインメニューから「ファイル」>「新規プロジェクト」を選択します。
「カテゴリ」の下で、「SOA 」を選択します。
「プロジェクト」の下で、「複合アプリケーション 」を選択します。「次へ」をクリックします。
「プロジェクト名」フィールドに「HelloXSLTCAP 」と入力します。
プロジェクトの場所を指定するか、デフォルトを受け入れます。
「完了」をクリックします。
これで、「プロジェクト」ウィンドウに「HelloXSLTCAP 」プロジェクトノードが含まれます。
JBI モジュールを追加するには、次の手順に従います。
「HelloXSLTCAP 」ノードを右クリックし、ポップアップメニューから「JBI モジュールを追加」を選択します。
HelloXSLTransformation プロジェクトを選択し、「プロジェクト JAR ファイルを追加」をクリックします。
JBI モジュールが追加されたことを確認するには、「HelloXSLTCAP」>「JBI モジュール」 を展開します。
HelloXSLTCAP 複合アプリケーションを配備するには、次の手順に従います。
「プロジェクト」ウィンドウで、「HelloXSLTCAP 」ノードを右クリックし、ポップアップメニューから「プロジェクトを配備」を選択します。
注: 「警告 - サーバーの選択」ダイアログが表示された場合、「Sun Java System Application Server 9」を選択して「了解」をクリックします。
IDE の下部に表示される「出力」ウィンドウに「構築成功 」というメッセージが表示されることを確認します。
プロジェクトが配備されたことを確認するには、「実行時」ウィンドウで「Sun Java System Application Server 9」>「JBI」>「サービスアセンブリ」 を展開します。「HelloXSLTCAP 」が確認できるはずです。
ページの先頭へ
XSL 変換サービスのテスト実行
XSL 変換サービスをテストすることは、サービスが予定して受信するメッセージを送信することを意味します。この場合では、応答メッセージのことです。
テストを実行する前に、テストケースを作成する必要があります。
テストケースを作成するには、次の手順に従います。
「プロジェクト」ウィンドウで、「HelloXSLTCAP 」ノードを展開し、「テスト 」ノードを右クリックします。
ポップアップメニューから「新規テストケース」を選択します。
「テストケース名」フィールドに、「JohnSmith 」と入力します。「次へ」をクリックします。
「WSDL ドキュメントの選択」の下で、「HelloXSLTransformation」>「XSLT プロセスファイル」 を展開し、「HelloXSLTWSDL.wsdl 」を選択します。「次へ」をクリックします。
「テストする操作を選択」の下で「HelloXSLTWSDLBinding 」を展開し、「HelloXSLTWSDLOperation 」を選択します。「完了」をクリックします。
「HelloXSLTCAP」>「テスト」 の下に「JohnSmith 」ノードが表示され、入力メッセージファイル (Input.xml ) がエディタで開きます。
Input.xml で、次の行を
<hel:name>?string?</hel:name>
次のように変更します。
<hel:name>John Smith</hel:name>
Input.xml ファイルは次のようになるはずです。
<soapenv:Envelope xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hel="http://xml.netbeans.org/schema/HelloXSLTIncoming">
<soapenv:Body>
<hel:name>John Smith</hel:name>
</soapenv:Body>
</soapenv:Envelope>
ツールバーの「すべてを保存」ボタンをクリックします。
テストケースノードの下の「出力 」ノードは、実際の応答メッセージとの比較に使用される、予定された応答メッセージを示します。最初にテストを実行する前、Output.xml ファイルは空です。応答メッセージの内容をそこに取り込みます (予想するものである場合)。
テストを実行するには、次の手順に従います。
「JohnSmith 」ノードを右クリックし、「実行」を選択します。テストは失敗し、次のダイアログが表示されます。
「はい」をクリックします。失敗したテストノードが「出力 」ノードの下に表示されます。
失敗したテストノードをダブルクリックして、XSL 変換サービスが返信したメッセージを確認します。
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://xml.netbeans.org/schema/HelloXSLTOutgoing">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns:greeting xmlns:ns="http://xml.netbeans.org/schema/HelloXSLTOutgoing">Hello John Smith</ns:greeting>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
次の行を確認してください。
<ns:greeting xmlns:ns="http://xml.netbeans.org/schema/HelloXSLTOutgoing">Hello John Smith</ns:greeting>
XSL 変換サービスが名前を受け取り、文字列「Hello」と連結して応答メッセージを送信します。
テストを再実行します。テストは成功したものとしてマークされます。
お疲れさまでした。XSL 変換サービスの作成、配備、およびテストに成功しました。
ページの先頭へ
次の手順
これで、要求 - 応答 XSL 変換サービスの作成は完了です。続けてサービスブリッジ の種類に進んでください。
ページの先頭へ