Parse Template リファレンス

Parse Template はテンプレートを処理して結果を得るために使用する Mule コンポーネントです。テンプレートはテキストとして定義され、埋め込まれた Mule 式は評価され、結果に置き換えられます。

外部ファイル参照を使用してテンプレートを設定することも、コンポーネント定義自体に埋め込むこともできます。

Parse Template の設定

  1. Studio で、Parse Template メッセージプロセッサをパレットからキャンバスまでドラッグします。

  2. この表で説明している項目を設定します。

    parse
    項目 説明

    Content (コンテンツ)

    テンプレート文字列

    テンプレートとして使用する文字列。外部ファイルでテンプレートを定義する代わりに、この項目を使用してインラインで記述できます。評価され、結果に置き換えられる式を埋め込むことができます。

    Display Name (表示名)

    Parse Template

    アプリケーションのトランスフォーマの一意な名前を表示するためにカスタマイズします。

    Location (場所)

    ファイルパス

    メッセージプロパティまたは変数から抽出された値を挿入するテンプレートとして Mule が使用するファイルの場所を定義します。

    Target Variable (対象変数)

    変数名

    [Target Value (対象値)] で定義された式を評価した結果を保存する変数の名前。

    Target Value (対象値)

    Parse Template の実行後に評価される Mule 式。この式の結果は、[Target Variable (対象変数)] 項目で定義された名前の変数に保存されます。

Studio または Standalone Mule インスタンスで XML エディタを使用している場合:

  • parse-template​ 要素をフローに追加してから、下の表に従って設定します。

    <parse-template location="users/administrator/desktop/hrweb/confirmation.html" doc:name="Parse Template"/>

parse-template​ 要素の属性:

要素属性

content

使用するテンプレートを表す文字列であり、このテンプレートでは埋め込まれた式が評価され、その結果に置き換えられます。

location

メッセージプロパティまたは変数から抽出された値を挿入するテンプレートとして Mule が使用するファイルの場所を定義するファイルパス。

doc:name

アプリケーションのトランスフォーマの一意な名前を表示するためにカスタマイズします。(注意: Mule スタンドアロンでは不要)

target

Parse Template が実行された後に targetValue​ で定義された式の結果が保存される変数の名前。

targetValue

Parse Template が実行された後に評価され、結果が target​ 属性で定義された名前の変数に保存される Mule 式。

コード例

次の例では、employeeID​ によるクエリを受け入れて従業員に関するデータを取得するアプリケーション における Parse Template の使用を示しています。

この場合、Parse Template はメッセージペイロードから抽出した項目 (name​、department​、job title​、start date​、employee type​) の値を挿入するテンプレートとして、フロー外部のファイルをテンプレートとして使用します。続いて、フローが template-built (テンプレート構築) ペイロードをコール元に返します。

parse template flow
<html>
	<body>
		<table>
		<tr>
			<th>First Name</th>
			<th>Last Name</th>
			<th>Department</th>
			<th>Job Title</th>
			<th>Start Date</th>
			<th>Employee Type</th>
		</tr>

		<tr>
			<td>#[payload[0]['first_name']]</td>
			<td>#[payload[0]['last_name']]</td>
			<td>#[payload[0]['department']]</td>
			<td>#[payload[0]['job_title']]</td>
			<td>#[payload[0]['start_date']]</td>
			<td>#[payload[0]['employee_type']]</td>
		</tr>
		</table>

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

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http"
      xmlns:db="http://www.mulesoft.org/schema/mule/db"
      xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
    <db:config name="Database_Config" doc:name="Database Config" doc:id="e4df87d8-ec1e-49ec-a528-43e93baa5bda" >
        <db:my-sql-connection host="localhost" port="3306" user="user" password="pw" database="MySQL_Data_Source" />
    </db:config>
    <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="724690b1-cc2f-451a-86eb-66f7750feba1">
        <http:listener-connection host="localhost" port="8081" />
    </http:listener-config>
    <flow name="exampleTemplateFlow1" doc:id="b8cc9464-5991-4977-978f-9f51eb252ec8" >
        <http:listener doc:name="Listener" doc:id="f334ba27-ae1f-4da5-a194-26e57a1aa637" config-ref="HTTP_Listener_config" path="/getEmployee"/>
        <db:select doc:name="Select" doc:id="c3ab7830-9920-4637-9329-954a8a94e54c" config-ref="Database_Config">
            <ee:repeatable-file-store-iterable />
            <db:sql >SELECT * FROM Employees WHERE id=#[attributes.queryParams['id']]</db:sql>
        </db:select>
        <parse-template doc:name="Parse Template" doc:id="53211517-f943-40b2-86e3-20a0e1ca4eb6" location="src/main/resources/responseHtml.template"/>
    </flow>
</mule>

この例でアプリケーションを使用するには、URL に `http://localhost:8081/getEmployee?id=12345`​ などの ID クエリパラメータが含まれる HTTP 要求を送信する必要があります。

特殊文字

Parse Template はネストされた式および式内のリテラルの使用をサポートしています。特殊な用途の文字がいくつかあります。

  • シーケンス #[​ で開始する式には、ネストされた式が含まれます。式内で、文字 [​ は式の開始を定義します。文字 [​ には先行の #​ は必要ありません。文字 [​ は式内で特殊文字として扱われます。

  • 式内で、一重引用符はテキストを引用する目的とテキストをリテラルとして扱う目的の両方に使用されます。そのため、式 #['[']​ は有効な式であり、評価は [​ となります。. 式外で、一重引用符はリテラルとして使用されます。

  • 式内で一重引用符を使用したときにテキストに引用符が付くのを避けるには、バックスラッシュを追加してエスケープします。たとえば、#['this isn\'t an expression']​ のようにします。

  • 式外では、文字 #​ と [​ が組み合わされている場合を除き、引用符を付ける必要はありません。たとえば式を作成するには、単に \#[ the-expression-to-resolve ]​ を記述します。

Was this article helpful?

💙 Thanks for your feedback!