# mulesoft Xml Module - Full Documentation # XML Module XML Module v1.2 XML Module は XML ドキュメントからデータを抽出して処理できます。ほとんどの XML 関連のユースケースには DataWeave が推奨されますが、XSLT、XPath と XQuery または XSD などの XML 標準の使用を伴う場合には、XML Module を使用する必要があります。 XML Module を使用するには、Studio UI から XML Module を Mule アプリケーションに追加するか、​`pom.xml`​ ファイルで次の連動関係を追加できます。 ```xml org.mule.modules mule-xml-module x.x.x mule-plugin ``` Mule Runtime Engine (Mule) は、RELEASE を最新バージョンに変換します。 リリースノート: [XML Module リリースノート](https://docs.mulesoft.com/jp/release-notes/mule-runtime/module-xml)​ Exchange: [XML Module](https://www.mulesoft.com/exchange/org.mule.modules/mule-xml-module/) ## [](#スキーマに対する検証)スキーマに対する検証 XML Module を使用して他のローカルスキーマファイルに対する参照があるスキーマに対して検証すると、デフォルト値である NEVER を使用しているために ​`expandEntities`​ によってアクセスが制限されたことにより、検証に失敗する可能性があります。エラーメッセージは「The supplied schemas were not valid. schema\_reference: Failed to read schema document ​`NMVS_Composite_Types.xsd`, because ​`file`​ access is not allowed due to restriction set by the accessExternalSchema property (指定されたスキーマが有効ではありませんでした。schema\_reference: accessExternalSchema プロパティによって設定された制限が原因で ​`file`​ のアクセスが許可されないため、スキーマドキュメント ​`NMVS_Composite_Types.xsd`​ の読み取りに失敗しました)。」のようになります。 この問題は、​`expandEntities="INTERNAL"`​ を ​`xml-module:config`​ 要素に追加することで解消できます。 ## [](#関連情報)関連情報 - [XML Module での XPath の使用](https://docs.mulesoft.com/jp/xml-module/1.2/xml-xpath) - [XML Module を使用した XSLT 変換](https://docs.mulesoft.com/jp/xml-module/1.2/xml-xslt) - [XML Module を使用した XSD スキーマに対するドキュメントの検証](https://docs.mulesoft.com/jp/xml-module/1.2/xml-schema-validation) - [XML Module での XQuery の使用](https://docs.mulesoft.com/jp/xml-module/1.2/xml-xquery) - [XML Module ドキュメントリファレンス](https://docs.mulesoft.com/jp/xml-module/1.2/xml-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module 1.3 XML Module では、XML ドキュメントからデータを抽出して処理します。XML に関連するほとんどのユースケースには DataWeave が推奨されますが、XSLT、XPath と XQuery または XSD などの XML 標準の使用を伴う場合には、XML Module を使用してください。 互換性と解決された問題に関する情報は、「XML Module リリースノート」を参照してください。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成するには、Anypoint Platform および Anypoint Studio へのアクセスが必要です。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース XML Module の一般的なユースケースを次に挙げます。 - XSD スキーマに対してドキュメントを検証する - XML 入力コンテンツを受け入れて XSL スタイルシートを使用して変換する - XML 入力コンテンツの Xpath 式を評価して結果を抽出する - XML 入力コンテンツを受け入れて XQuery 式に基づいて変換する ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module 1.3 XML Module では、XML ドキュメントからデータを抽出して処理します。XML に関連するほとんどのユースケースには DataWeave が推奨されますが、XSLT、XPath と XQuery または XSD などの XML 標準の使用を伴う場合には、XML Module を使用してください。 互換性と解決された問題に関する情報は、「XML Module リリースノート」を参照してください。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成するには、Anypoint Platform および Anypoint Studio へのアクセスが必要です。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース XML Module の一般的なユースケースを次に挙げます。 - XSD スキーマに対してドキュメントを検証する - XML 入力コンテンツを受け入れて XSL スタイルシートを使用して変換する - XML 入力コンテンツの Xpath 式を評価して結果を抽出する - XML 入力コンテンツを受け入れて XQuery 式に基づいて変換する ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module での XPath の使用 ``​ 操作は、XPath 式の評価をサポートしています。 XPath 式は各要素の任意の数値に一致する可能性があるため、この操作によって文字列のリストが返されます。要素が式に一致しない場合、この操作によって空のリストが返されます。 XPath 式も名前空間に対応しているため、この操作では名前空間のマッピングを使用できます。これらのマッピングは、参照される ​`namespace-directory`​ で定義される ​`namespaces`​ とマージされます。つまり、評価では両方の名前空間のマッピングのセットが組み合わされます。 MuleSoft は XPath 標準をサポートしていますが、DataWeave でも同じユースケースを実現でき、XML ドキュメントを抽出して変換するツールとして DataWeave をお勧めします。 次の例は、ウィリアム・シェイクスピアの戯曲『オセロ』の脚本を記載した XML を処理する方法を示しています。XML ファイルは次のようになります。 ```xml The Tragedy of Othello, the Moor of Venice

Text placed in the public domain by Moby Lexical Tools, 1992.

SGML markup by Jon Bosak, 1992-1994.

XML version by Jon Bosak, 1996-1998.

This work may be freely copied and distributed worldwide.

Dramatis Personae DUKE OF VENICE BRABANTIO, a senator. Other Senators. GRATIANO, brother to Brabantio. LODOVICO, kinsman to Brabantio. OTHELLO, a noble Moor in the service of the Venetian state. CASSIO, his lieutenant. IAGO, his ancient. RODERIGO, a Venetian gentleman. MONTANO, Othello's predecessor in the government of Cyprus. Clown, servant to Othello. DESDEMONA, daughter to Brabantio and wife to Othello. EMILIA, wife to Iago. BIANCA, mistress to Cassio. Sailor, Messenger, Herald, Officers, Gentlemen, Musicians, and Attendants. SCENE Venice: a Sea-port in Cyprus. OTHELLO ACT I SCENE I. Venice. A street. Enter RODERIGO and IAGO RODERIGO Tush! never tell me; I take it much unkindly That thou, Iago, who hast had my purse As if the strings were thine, shouldst know of this. ..... ``` ここで、全文が上記の形式のテキストがあるとします。次のスクリプトを使用して、​`handkerchief`​ という単語が含まれるすべての行を抽出できます。 XPath スクリプト ```xml (1) #[{'word': 'handkerchief'}] (2) ```
1$​ プレフィックスを使用してコンテキストプロパティを参照する XPath 式を提供します。
2context-properties​ パラメーターで DataWeave を使用してコンテキストプロパティを生成します。
上記の XPath スクリプトにより、次の文字列のリストが出力されます。各 ​`LINE`​ はリストの異なる項目です。 出力 ```xml For the same handkerchief? What handkerchief? What handkerchief? Have you not sometimes seen a handkerchief I know not that; but such a handkerchief-- Where should I lose that handkerchief, Emilia? Lend me thy handkerchief. That handkerchief Fetch me the handkerchief: my mind misgives. The handkerchief! The handkerchief! The handkerchief! Sure, there's some wonder in this handkerchief: But if I give my wife a handkerchief,-- But, for the handkerchief,-- Boding to all--he had my handkerchief. --Handkerchief--confessions--handkerchief!--To --Is't possible?--Confess--handkerchief!--O devil!-- mean by that same handkerchief you gave me even now? By heaven, that should be my handkerchief! And did you see the handkerchief? That handkerchief which I so loved and gave thee By heaven, I saw my handkerchief in's hand. I saw the handkerchief. It was a handkerchief, an antique token O thou dull Moor! that handkerchief thou speak'st of How came you, Cassio, by that handkerchief ``` デフォルトでは、この操作はメッセージペイロードレベルで XML ドキュメントを変換しようとします。ただし、​`content`​ パラメーターを使用して入力ドキュメントを提供できます。 ```xml #[vars.othello] #[{'word': 'handkerchief'}] ``` 上記の例では、他の場所 (この場合、ファイルシステムのファイル) からコンテンツを取得し、シンプルな式を使用して参照しています。 ## [](#名前空間のマッピング)名前空間のマッピング 入力 XML ドキュメントに名前空間が異なる要素が含まれている場合があります。次に例を示します。 ```xml Hello! ``` 次の例では、XPath 式で使用される各 ​`prefix`​ を対応する名前空間 ​`uri`​ にマップします。 ```xml ``` しかし、同じ名前空間を使用する複数の XPath 式を実行する必要がある場合にはどうでしょうか? 毎回マッピングを実行せずに済むように、マッピングに ​`namespace-directory`​ を作成し、そのディレクトリを参照することができます。次に例を示します。 ```xml (1) (2)(3) ```
1namespace-directory​ 要素を使用して、プレフィックスを実際の名前空間の URI にマップします。これらのプレフィックスは入力ドキュメントのプレフィックスに一致する必要があります。
2続いて、これらのプレフィックスを XPath 式で参照できます。
3最後に、​namespaceDirectory​ パラメーターを使用してステップ 1 で作成されたマッピングを参照します。
最後に、ユースケースを組み合わせることができます。たとえば、マッピングが含まれるグローバルな ​`namespaceDirectory`​ を用意して、操作レベルでマッピングを追加することができます。この組み合わせは、ドキュメントが多数あり、そのすべてに ​`soap`​ 名前空間が含まれているが 1 つのドキュメントにしか ​`mule`​ 名前空間が含まれていない場合に便利です。 ```xml (1) (2) (3) (4) ```
1以前と同じように ​namespace-directory​ を宣言しますが、共通の名前空間のみを指定します。
2XPath 式を提供します。
3部分的な名前空間ディレクトリを参照します。
4追加のマッピングを提供します。
マッピングと XPath 式で使用されるプレフィックスが入力ドキュメントで使用されるプレフィックスに一致することが重要です。 ## [](#関数としての-xpath-の使用)関数としての XPath の使用 XML Module は、XPath を使用して値を抽出するための DataWeave 関数を提供します。これは、​``​ ルーターや ​``​ ルーターなどの場合に便利です。 この関数は任意の DataWeave 変換内でも使用できます。 ## [](#foreach-での-xpath-関数の使用) での XPath 関数の使用 次の例では、​``​ を使用して前の​[オセロの行](#othello_lines)​の例のすべての行を反復処理し、それらを個別に処理します。 ```xml ``` - 最初の引数は XPath 式です。 - 2 つ目の引数は入力ドキュメントで、この場合、メッセージペイロードです。 - 3 つ目の引数はコンテキストプロパティです。この場合は必要ではないため、関数は空のオブジェクトを渡します (​`{}`​)。 ## [](#choice-での-xpath-関数の使用) での XPath 関数の使用 [オセロの行](#othello_lines)​の例に戻り、入力ドキュメントに単語 ​`handkerchief`​ が含まれない場合に何かを実行するとします。 ```xml ``` - `XmlModule::xpath`​ 関数はリストを返すため、前の例では DataWeave ​`isEmpty()`​ 関数を使用して出力が空かどうかをテストします。 - XPath 関数の最初に引数は、​`$word`​ コンテキストプロパティを使用する式です。 - 2 つ目の引数は変数内の入力ドキュメントです。 - 3 つ目の引数はコンテキストプロパティ値を提供します。 ## [](#関連情報)関連情報 [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/1.2/) # XML Module での XPath の使用 ``​ 操作は、XPath 式の評価をサポートしています。 XPath 式は各要素の任意の数値に一致する可能性があるため、この操作によって文字列のリストが返されます。要素が式に一致しない場合、この操作によって空のリストが返されます。 XPath 式も名前空間に対応しているため、この操作では名前空間のマッピングを使用できます。これらのマッピングは、参照される ​`namespace-directory`​ で定義される ​`namespaces`​ とマージされます。つまり、評価では両方の名前空間のマッピングのセットが組み合わされます。 MuleSoft は XPath 標準をサポートしていますが、DataWeave でも同じユースケースを実現でき、XML ドキュメントを抽出して変換するツールとして DataWeave をお勧めします。 次の例は、ウィリアム・シェイクスピアの戯曲『オセロ』の脚本を記載した XML を処理する方法を示しています。XML ファイルは次のようになります。 ```xml The Tragedy of Othello, the Moor of Venice

Text placed in the public domain by Moby Lexical Tools, 1992.

SGML markup by Jon Bosak, 1992-1994.

XML version by Jon Bosak, 1996-1998.

This work may be freely copied and distributed worldwide.

Dramatis Personae DUKE OF VENICE BRABANTIO, a senator. Other Senators. GRATIANO, brother to Brabantio. LODOVICO, kinsman to Brabantio. OTHELLO, a noble Moor in the service of the Venetian state. CASSIO, his lieutenant. IAGO, his ancient. RODERIGO, a Venetian gentleman. MONTANO, Othello's predecessor in the government of Cyprus. Clown, servant to Othello. DESDEMONA, daughter to Brabantio and wife to Othello. EMILIA, wife to Iago. BIANCA, mistress to Cassio. Sailor, Messenger, Herald, Officers, Gentlemen, Musicians, and Attendants. SCENE Venice: a Sea-port in Cyprus. OTHELLO ACT I SCENE I. Venice. A street. Enter RODERIGO and IAGO RODERIGO Tush! never tell me; I take it much unkindly That thou, Iago, who hast had my purse As if the strings were thine, shouldst know of this. ..... ``` 全文が上記の形式のテキストがあるとします。次のスクリプトを使用して、「​`handkerchief`​」という単語が含まれるすべての行を抽出できます。 XPath スクリプト ```xml (1) #[{'word': 'handkerchief'}] (2) ```
1$​ プレフィックスを使用してコンテキストプロパティを参照する XPath 式を提供します。
2context-properties​ パラメーターで DataWeave を使用してコンテキストプロパティを生成します。
上記の XPath スクリプトにより、次の文字列のリストが出力されます。各 ​`LINE`​ はリストの異なる項目です。 出力 ```xml For the same handkerchief? What handkerchief? What handkerchief? Have you not sometimes seen a handkerchief I know not that; but such a handkerchief-- Where should I lose that handkerchief, Emilia? Lend me thy handkerchief. That handkerchief Fetch me the handkerchief: my mind misgives. The handkerchief! The handkerchief! The handkerchief! Sure, there's some wonder in this handkerchief: But if I give my wife a handkerchief,-- But, for the handkerchief,-- Boding to all--he had my handkerchief. --Handkerchief--confessions--handkerchief!--To --Is't possible?--Confess--handkerchief!--O devil!-- mean by that same handkerchief you gave me even now? By heaven, that should be my handkerchief! And did you see the handkerchief? That handkerchief which I so loved and gave thee By heaven, I saw my handkerchief in's hand. I saw the handkerchief. It was a handkerchief, an antique token O thou dull Moor! that handkerchief thou speak'st of How came you, Cassio, by that handkerchief ``` デフォルトでは、この操作はメッセージペイロードレベルで XML ドキュメントを変換しようとします。ただし、​`content`​ パラメーターを使用して入力ドキュメントを提供できます。 ```xml #[vars.othello] #[{'word': 'handkerchief'}] ``` 上記の例では、他の場所 (この場合、ファイルシステムのファイル) からコンテンツを取得し、シンプルな式を使用して参照しています。 ## [](#名前空間のマッピング)名前空間のマッピング 入力 XML ドキュメントに名前空間が異なる要素が含まれている場合があります。次に例を示します。 ```xml Hello! ``` 次の例では、XPath 式で使用される各 ​`prefix`​ を対応する名前空間 ​`uri`​ にマップします。 ```xml ``` しかし、同じ名前空間を使用する複数の XPath 式を実行する必要がある場合にはどうでしょうか? 毎回マッピングを実行せずに済むように、マッピングに ​`namespace-directory`​ を作成し、そのディレクトリを参照することができます。次に例を示します。 ```xml (1) (2)(3) ```
1namespace-directory​ 要素を使用して、プレフィックスを実際の名前空間の URI にマップします。これらのプレフィックスは入力ドキュメントのプレフィックスに一致する必要があります。
2続いて、これらのプレフィックスを XPath 式で参照できます。
3最後に、​namespaceDirectory​ パラメーターを使用してステップ 1 で作成されたマッピングを参照します。
最後に、ユースケースを組み合わせることができます。たとえば、マッピングが含まれるグローバルな ​`namespaceDirectory`​ を用意して、操作レベルでマッピングを追加することができます。この組み合わせは、ドキュメントが多数あり、そのすべてに ​`soap`​ 名前空間が含まれているが 1 つのドキュメントにしか ​`mule`​ 名前空間が含まれていない場合に便利です。 ```xml (1) (2) (3) (4) ```
1以前と同じように ​namespace-directory​ を宣言しますが、共通の名前空間のみを指定します。
2XPath 式を提供します。
3部分的な名前空間ディレクトリを参照します。
4追加のマッピングを提供します。
マッピングと XPath 式で使用されるプレフィックスが入力ドキュメントで使用されるプレフィックスに一致することが重要です。 ## [](#関数としての-xpath-の使用)関数としての XPath の使用 XML Module は、XPath を使用して値を抽出するための DataWeave 関数を提供します。これは、​``​ ルーターや ​``​ ルーターなどの場合に便利です。 この関数は任意の DataWeave 変換内でも使用できます。 ## [](#foreach-での-xpath-関数の使用) での XPath 関数の使用 次の例では、​``​ を使用して前の​[オセロの行](#othello_lines)​の例のすべての行を反復処理し、それらを個別に処理します。 ```xml ``` - 最初の引数は XPath 式です。 - 2 つ目の引数は入力ドキュメントで、この場合、メッセージペイロードです。 - 3 つ目の引数はコンテキストプロパティです。この場合は必要ではないため、関数は空のオブジェクトを渡します (​`{}`​)。 - 4 つ目の引数は​**省略可能**​であり、式の xpath を評価する名前空間を指定しています。 ## [](#choice-での-xpath-関数の使用) での XPath 関数の使用 [オセロの行](#othello_lines)​の例に戻り、入力ドキュメントに単語 ​`handkerchief`​ が含まれない場合に何かを実行するとします。 ```xml ``` - `XmlModule::xpath`​ 関数はリストを返すため、前の例では DataWeave ​`isEmpty()`​ 関数を使用して出力が空かどうかをテストします。 - XPath 関数の最初に引数は、​`$word`​ コンテキストプロパティを使用する式です。 - 2 つ目の引数は変数内の入力ドキュメントです。 - 3 つ目の引数はコンテキストプロパティ値を提供します。 - 4 つ目の引数は​**省略可能**​であり、式の xpath を評価する名前空間を指定しています。 ## [](#名前空間での-xpath-関数の使用)名前空間での XPath 関数の使用 入力ドキュメントに XML 名前空間が含まれている場合、評価を実行するために XPath 関数にその情報が必要です。 次の例では、​`set-payload`​ コンポーネントを使用して書籍のタイトル、執筆者の名前、書籍の year タグを入力ドキュメントから取得します。このドキュメントには、明示的なデフォルトの ​`xmlns`​ 属性と、言語と執筆者に関するその他の ​`xmlns`​ 属性があります。 ```xml Fundamentals 2001 David Mills English ``` 最初の例では、書籍のタイトルを取得するために ​`set-payload`​ コンポーネントを次のように設定します。 ```xml ``` 結果の出力は ​`Fundamentals`​ です。 2 つ目の例では、執筆者の名前を取得するために ​`set-payload`​ コンポーネントを次のように設定します。 ```xml ``` 結果の出力は ​`David Mills`​ です。 3 つ目の例では、書籍の year タグを取得するために ​`set-payload`​ コンポーネントを次のように設定します。 ```xml ``` `xmlns`​ 属性が含まれる結果の出力は ​`2001`​ です。 ## [](#関連情報)関連情報 [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/1.3/) # XML Module での XPath の使用 ``​ 操作は、XPath 式の評価をサポートしています。 XPath 式は各要素の任意の数値に一致する可能性があるため、この操作によって文字列のリストが返されます。要素が式に一致しない場合、この操作によって空のリストが返されます。 XPath 式も名前空間に対応しているため、この操作では名前空間のマッピングを使用できます。これらのマッピングは、参照される ​`namespace-directory`​ で定義される ​`namespaces`​ とマージされます。つまり、評価では両方の名前空間のマッピングのセットが組み合わされます。 MuleSoft は XPath 標準をサポートしていますが、DataWeave でも同じユースケースを実現でき、XML ドキュメントを抽出して変換するツールとして DataWeave をお勧めします。 次の例は、ウィリアム・シェイクスピアの戯曲『オセロ』の脚本を記載した XML を処理する方法を示しています。XML ファイルは次のようになります。 ```xml The Tragedy of Othello, the Moor of Venice

Text placed in the public domain by Moby Lexical Tools, 1992.

SGML markup by Jon Bosak, 1992-1994.

XML version by Jon Bosak, 1996-1998.

This work may be freely copied and distributed worldwide.

Dramatis Personae DUKE OF VENICE BRABANTIO, a senator. Other Senators. GRATIANO, brother to Brabantio. LODOVICO, kinsman to Brabantio. OTHELLO, a noble Moor in the service of the Venetian state. CASSIO, his lieutenant. IAGO, his ancient. RODERIGO, a Venetian gentleman. MONTANO, Othello's predecessor in the government of Cyprus. Clown, servant to Othello. DESDEMONA, daughter to Brabantio and wife to Othello. EMILIA, wife to Iago. BIANCA, mistress to Cassio. Sailor, Messenger, Herald, Officers, Gentlemen, Musicians, and Attendants. SCENE Venice: a Sea-port in Cyprus. OTHELLO ACT I SCENE I. Venice. A street. Enter RODERIGO and IAGO RODERIGO Tush! never tell me; I take it much unkindly That thou, Iago, who hast had my purse As if the strings were thine, shouldst know of this. ..... ``` 全文が上記の形式のテキストがあるとします。次のスクリプトを使用して、「​`handkerchief`​」という単語が含まれるすべての行を抽出できます。 XPath スクリプト ```xml (1) #[{'word': 'handkerchief'}] (2) ```
1$​ プレフィックスを使用してコンテキストプロパティを参照する XPath 式を提供します。
2context-properties​ パラメーターで DataWeave を使用してコンテキストプロパティを生成します。
上記の XPath スクリプトにより、次の文字列のリストが出力されます。各 ​`LINE`​ はリストの異なる項目です。 出力 ```xml For the same handkerchief? What handkerchief? What handkerchief? Have you not sometimes seen a handkerchief I know not that; but such a handkerchief-- Where should I lose that handkerchief, Emilia? Lend me thy handkerchief. That handkerchief Fetch me the handkerchief: my mind misgives. The handkerchief! The handkerchief! The handkerchief! Sure, there's some wonder in this handkerchief: But if I give my wife a handkerchief,-- But, for the handkerchief,-- Boding to all--he had my handkerchief. --Handkerchief--confessions--handkerchief!--To --Is't possible?--Confess--handkerchief!--O devil!-- mean by that same handkerchief you gave me even now? By heaven, that should be my handkerchief! And did you see the handkerchief? That handkerchief which I so loved and gave thee By heaven, I saw my handkerchief in's hand. I saw the handkerchief. It was a handkerchief, an antique token O thou dull Moor! that handkerchief thou speak'st of How came you, Cassio, by that handkerchief ``` デフォルトでは、この操作はメッセージペイロードレベルで XML ドキュメントを変換しようとします。ただし、​`content`​ パラメーターを使用して入力ドキュメントを提供できます。 ```xml #[vars.othello] #[{'word': 'handkerchief'}] ``` 上記の例では、他の場所 (この場合、ファイルシステムのファイル) からコンテンツを取得し、シンプルな式を使用して参照しています。 ## [](#名前空間のマッピング)名前空間のマッピング 入力 XML ドキュメントに名前空間が異なる要素が含まれている場合があります。次に例を示します。 ```xml Hello! ``` 次の例では、XPath 式で使用される各 ​`prefix`​ を対応する名前空間 ​`uri`​ にマップします。 ```xml ``` しかし、同じ名前空間を使用する複数の XPath 式を実行する必要がある場合にはどうでしょうか? 毎回マッピングを実行せずに済むように、マッピングに ​`namespace-directory`​ を作成し、そのディレクトリを参照することができます。次に例を示します。 ```xml (1) (2)(3) ```
1namespace-directory​ 要素を使用して、プレフィックスを実際の名前空間の URI にマップします。これらのプレフィックスは入力ドキュメントのプレフィックスに一致する必要があります。
2続いて、これらのプレフィックスを XPath 式で参照できます。
3最後に、​namespaceDirectory​ パラメーターを使用してステップ 1 で作成されたマッピングを参照します。
最後に、ユースケースを組み合わせることができます。たとえば、マッピングが含まれるグローバルな ​`namespaceDirectory`​ を用意して、操作レベルでマッピングを追加することができます。この組み合わせは、ドキュメントが多数あり、そのすべてに ​`soap`​ 名前空間が含まれているが 1 つのドキュメントにしか ​`mule`​ 名前空間が含まれていない場合に便利です。 ```xml (1) (2) (3) (4) ```
1以前と同じように ​namespace-directory​ を宣言しますが、共通の名前空間のみを指定します。
2XPath 式を提供します。
3部分的な名前空間ディレクトリを参照します。
4追加のマッピングを提供します。
マッピングと XPath 式で使用されるプレフィックスが入力ドキュメントで使用されるプレフィックスに一致することが重要です。 ## [](#関数としての-xpath-の使用)関数としての XPath の使用 XML Module は、XPath を使用して値を抽出するための DataWeave 関数を提供します。これは、​``​ ルーターや ​``​ ルーターなどの場合に便利です。 この関数は任意の DataWeave 変換内でも使用できます。 ## [](#foreach-での-xpath-関数の使用) での XPath 関数の使用 次の例では、​``​ を使用して前の​[オセロの行](#othello_lines)​の例のすべての行を反復処理し、それらを個別に処理します。 ```xml ``` - 最初の引数は XPath 式です。 - 2 つ目の引数は入力ドキュメントで、この場合、メッセージペイロードです。 - 3 つ目の引数はコンテキストプロパティです。この場合は必要ではないため、関数は空のオブジェクトを渡します (​`{}`​)。 - 4 つ目の引数は​**省略可能**​であり、式の xpath を評価する名前空間を指定しています。 ## [](#choice-での-xpath-関数の使用) での XPath 関数の使用 [オセロの行](#othello_lines)​の例に戻り、入力ドキュメントに単語 ​`handkerchief`​ が含まれない場合に何かを実行するとします。 ```xml ``` - `XmlModule::xpath`​ 関数はリストを返すため、前の例では DataWeave ​`isEmpty()`​ 関数を使用して出力が空かどうかをテストします。 - XPath 関数の最初に引数は、​`$word`​ コンテキストプロパティを使用する式です。 - 2 つ目の引数は変数内の入力ドキュメントです。 - 3 つ目の引数はコンテキストプロパティ値を提供します。 - 4 つ目の引数は​**省略可能**​であり、式の xpath を評価する名前空間を指定しています。 ## [](#名前空間での-xpath-関数の使用)名前空間での XPath 関数の使用 入力ドキュメントに XML 名前空間が含まれている場合、評価を実行するために XPath 関数にその情報が必要です。 次の例では、​`set-payload`​ コンポーネントを使用して書籍のタイトル、執筆者の名前、書籍の year タグを入力ドキュメントから取得します。このドキュメントには、明示的なデフォルトの ​`xmlns`​ 属性と、言語と執筆者に関するその他の ​`xmlns`​ 属性があります。 ```xml Fundamentals 2001 David Mills English ``` 最初の例では、書籍のタイトルを取得するために ​`set-payload`​ コンポーネントを次のように設定します。 ```xml ``` 結果の出力は ​`Fundamentals`​ です。 2 つ目の例では、執筆者の名前を取得するために ​`set-payload`​ コンポーネントを次のように設定します。 ```xml ``` 結果の出力は ​`David Mills`​ です。 3 つ目の例では、書籍の year タグを取得するために ​`set-payload`​ コンポーネントを次のように設定します。 ```xml ``` `xmlns`​ 属性が含まれる結果の出力は ​`2001`​ です。 ## [](#関連情報)関連情報 [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/latest/) # XML Module での XQuery の使用 ``​ 操作は、XQuery 式の評価をサポートしています。 XQuery 式は各要素の任意の数値に一致する可能性があるため、この操作によって文字列のリストが返されます。要素が式に一致しない場合、この操作によって空のリストが返されます。 MuleSoft は XQuery 標準をサポートしていますが、DataWeave でも同じユースケースを実現でき、XML ドキュメントを抽出して変換するツールとして DataWeave をお勧めします。 次の例は、XQuery を使用してブックリストを操作する方法を示しています。 入力: ブックリスト ```xml Pride and Prejudice Jane Austen Modern Library 2002-12-31 English 9 187 0679601686 352 8.3 5.7 1.1 6.1 Wuthering Heights Charlotte Bronte Penguin Classics 2002-12-31 English 9.040000000000001 113 0141439556 430 1.0 5.2 7.8 11.2 Tess of the d'Urbervilles Thomas Hardy Bantam Classics 1984-05-01 English 12.5 85 0553211684 480 6.8 4.2 0.8 7.7 Jude the Obscure Thomas Hardy Penguin Classics 1998-09-01 English 7 129 0140435387 528 7.8 5.2 0.9 10.9 The Big Over Easy Jasper Fforde Hodder & Stoughton 2005-07-11 English 14.55 129 0340835672 346 22.5 18.0 3.5 390 The Eyre Affair Jasper Fforde Penguin 2003-02-25 English 15 129 0142001805 384 7.8 5.0 0.9 9.0 ``` 次の例では、XQuery を使用して上記のブックリストを変換しています。 XQuery 変換スクリプト ```xml { $b/AUTHOR } { $b/TITLE } ]]> ``` 次の XQuery 変換により、各エントリが次の各 ​``​ 要素に対応する文字列のリストが生成されます。 出力 XML ```xml Jasper Fforde <TITLE>The Eyre Affair Thomas Hardy <TITLE>Jude the Obscure Charlotte Bronte <TITLE>Wuthering Heights Jasper Fforde <TITLE>The Big Over Easy Jane Austen <TITLE>Pride and Prejudice Thomas Hardy <TITLE>Tess of the d'Urbervilles ``` デフォルトでは、この操作はメッセージペイロードレベルで XML ドキュメントを変換しようとします。ただし、​`content`​ パラメーターを使用して入力ドキュメントを提供できます。 例: コンテンツパラメーターの使用 ```xml #[vars.books] { $b/AUTHOR } { $b/TITLE } ]]> ``` 上記の例では、他の場所 (この場合、ファイルシステムのファイル) からコンテキストを取得し、シンプルな式から参照しています。 ## [](#xquery-スクリプトの個別のファイルへの外部化)XQuery スクリプトの個別のファイルへの外部化 XQuery スクリプトを Mule アプリケーションに組み込まずに済むように、次のように、ファイルを使用してモジュールに渡すことができます。 例 ```xml ${file::scripts/books.xquery} ``` より複雑なユースケースでは、使用するスクリプトが外的な条件に応じて異なる場合もあります。たとえば、使用する実際の変換が ​`userID`​ に応じて異なるマルチテナントのインテグレーションを考えてみます。 複雑な例 ```xml (1) (2) #[vars.xquery] ``` 1. このフローは HTTP 要求によってトリガーされます。 2. この例では、​`userID`​ がクエリパラメーターとして提供されていることと想定し、File Connector を使用して正しい XQuery スクリプトを読み取り、変数に保存します。 3. モジュールは、Read 操作を使用して取得された XQuery スクリプトを参照する式を使用して変換を実行します。 HTTP Connector と File Connector は単に例として使用しています。同様のユースケースを実行するために必要なわけではありません。 ## [](#コンテキストプロパティおよび複数の入力の使用)コンテキストプロパティおよび複数の入力の使用 対応する ​`xpath`​ や ​`xslt`​ と同じように、​`xquery`​ 操作は引数を変換に渡せるコンテキストパラメーターをサポートしています。 たとえば、上記の ​`books`​ XML を次の ​`cities`​ XML ドキュメントと組み合わせるとします。 入力 ```xml ``` このユースケースの例を見てみましょう。 XQuery 変換スクリプト ```xml (1) { for $b in fn:doc($books)/BOOKLIST/BOOKS/ITEM, $c in fn:doc($cities)/cities/city (4) return (5) } ]]> #[{'books' : vars.books, 'cities': vars.cities}] (6) ```
1入力ドキュメントを読み取り、コンテンツを変数に保存します。この例では File Connector を使用していますが、任意のデータソースを使用できます。
2XQuery スクリプトで ​$cities​ 変数を宣言します。
3XQuery スクリプトで ​$books​ 変数を宣言します。
4$​ プレフィックスを使用して両方のドキュメントを参照し、両方を反復します。
5出力要素を生成します。
6DataWeave および ​<xml-module:context-properties>​ パラメーターを使用してプロパティをバインドします。
スクリプトは、1 つの項目のみが含まれる文字列のリストを出力します。 出力 ```xml ``` ## [](#関連情報)関連情報 [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/1.2/) # XML Module での XQuery の使用 ``​ 操作は、XQuery 式の評価をサポートしています。 XQuery 式は各要素の任意の数値に一致する可能性があるため、この操作によって文字列のリストが返されます。要素が式に一致しない場合、この操作によって空のリストが返されます。 MuleSoft は XQuery 標準をサポートしていますが、DataWeave でも同じユースケースを実現でき、XML ドキュメントを抽出して変換するツールとして DataWeave をお勧めします。 次の例は、XQuery を使用してブックリストを操作する方法を示しています。 入力: ブックリスト ```xml Pride and Prejudice Jane Austen Modern Library 2002-12-31 English 9 187 0679601686 352 8.3 5.7 1.1 6.1 Wuthering Heights Charlotte Bronte Penguin Classics 2002-12-31 English 9.040000000000001 113 0141439556 430 1.0 5.2 7.8 11.2 Tess of the d'Urbervilles Thomas Hardy Bantam Classics 1984-05-01 English 12.5 85 0553211684 480 6.8 4.2 0.8 7.7 Jude the Obscure Thomas Hardy Penguin Classics 1998-09-01 English 7 129 0140435387 528 7.8 5.2 0.9 10.9 The Big Over Easy Jasper Fforde Hodder & Stoughton 2005-07-11 English 14.55 129 0340835672 346 22.5 18.0 3.5 390 The Eyre Affair Jasper Fforde Penguin 2003-02-25 English 15 129 0142001805 384 7.8 5.0 0.9 9.0 ``` 次の例では、XQuery を使用して上記のブックリストを変換しています。 XQuery 変換スクリプト ```xml { $b/AUTHOR } { $b/TITLE } ]]> ``` 次の XQuery 変換により、各エントリが次の各 ​``​ 要素に対応する文字列のリストが生成されます。 出力 XML ```xml Jasper Fforde <TITLE>The Eyre Affair Thomas Hardy <TITLE>Jude the Obscure Charlotte Bronte <TITLE>Wuthering Heights Jasper Fforde <TITLE>The Big Over Easy Jane Austen <TITLE>Pride and Prejudice Thomas Hardy <TITLE>Tess of the d'Urbervilles ``` デフォルトでは、この操作はメッセージペイロードレベルで XML ドキュメントを変換しようとします。ただし、​`content`​ パラメーターを使用して入力ドキュメントを提供できます。 例: コンテンツパラメーターの使用 ```xml #[vars.books] { $b/AUTHOR } { $b/TITLE } ]]> ``` 上記の例では、他の場所 (この場合、ファイルシステムのファイル) からコンテキストを取得し、シンプルな式から参照しています。 ## [](#xquery-スクリプトの個別のファイルへの外部化)XQuery スクリプトの個別のファイルへの外部化 XQuery スクリプトを Mule アプリケーションに組み込まずに済むように、次のように、ファイルを使用してモジュールに渡すことができます。 例 ```xml ${file::scripts/books.xquery} ``` より複雑なユースケースでは、使用するスクリプトが外的な条件に応じて異なる場合もあります。たとえば、使用する実際の変換が ​`userID`​ に応じて異なるマルチテナントのインテグレーションを考えてみます。 複雑な例 ```xml (1) (2) #[vars.xquery] ``` 1. このフローは HTTP 要求によってトリガーされます。 2. この例では、​`userID`​ がクエリパラメーターとして提供されていることと想定し、File Connector を使用して正しい XQuery スクリプトを読み取り、変数に保存します。 3. モジュールは、Read 操作を使用して取得された XQuery スクリプトを参照する式を使用して変換を実行します。 HTTP Connector と File Connector は単に例として使用しています。同様のユースケースを実行するために必要なわけではありません。 ## [](#コンテキストプロパティおよび複数の入力の使用)コンテキストプロパティおよび複数の入力の使用 対応する ​`xpath`​ や ​`xslt`​ と同じように、​`xquery`​ 操作は引数を変換に渡せるコンテキストパラメーターをサポートしています。 たとえば、上記の ​`books`​ XML を次の ​`cities`​ XML ドキュメントと組み合わせるとします。 入力 ```xml ``` このユースケースの例を見てみましょう。 XQuery 変換スクリプト ```xml (1) { for $b in fn:doc($books)/BOOKLIST/BOOKS/ITEM, $c in fn:doc($cities)/cities/city (4) return (5) } ]]> #[{'books' : vars.books, 'cities': vars.cities}] (6) ```
1入力ドキュメントを読み取り、コンテンツを変数に保存します。この例では File Connector を使用していますが、任意のデータソースを使用できます。
2XQuery スクリプトで ​$cities​ 変数を宣言します。
3XQuery スクリプトで ​$books​ 変数を宣言します。
4$​ プレフィックスを使用して両方のドキュメントを参照し、両方を反復します。
5出力要素を生成します。
6DataWeave および ​<xml-module:context-properties>​ パラメーターを使用してプロパティをバインドします。
スクリプトは、1 つの項目のみが含まれる文字列のリストを出力します。 出力 ```xml ``` ## [](#関連情報)関連情報 [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/1.3/) # XML Module での XQuery の使用 ``​ 操作は、XQuery 式の評価をサポートしています。 XQuery 式は各要素の任意の数値に一致する可能性があるため、この操作によって文字列のリストが返されます。要素が式に一致しない場合、この操作によって空のリストが返されます。 MuleSoft は XQuery 標準をサポートしていますが、DataWeave でも同じユースケースを実現でき、XML ドキュメントを抽出して変換するツールとして DataWeave をお勧めします。 次の例は、XQuery を使用してブックリストを操作する方法を示しています。 入力: ブックリスト ```xml Pride and Prejudice Jane Austen Modern Library 2002-12-31 English 9 187 0679601686 352 8.3 5.7 1.1 6.1 Wuthering Heights Charlotte Bronte Penguin Classics 2002-12-31 English 9.040000000000001 113 0141439556 430 1.0 5.2 7.8 11.2 Tess of the d'Urbervilles Thomas Hardy Bantam Classics 1984-05-01 English 12.5 85 0553211684 480 6.8 4.2 0.8 7.7 Jude the Obscure Thomas Hardy Penguin Classics 1998-09-01 English 7 129 0140435387 528 7.8 5.2 0.9 10.9 The Big Over Easy Jasper Fforde Hodder & Stoughton 2005-07-11 English 14.55 129 0340835672 346 22.5 18.0 3.5 390 The Eyre Affair Jasper Fforde Penguin 2003-02-25 English 15 129 0142001805 384 7.8 5.0 0.9 9.0 ``` 次の例では、XQuery を使用して上記のブックリストを変換しています。 XQuery 変換スクリプト ```xml { $b/AUTHOR } { $b/TITLE } ]]> ``` 次の XQuery 変換により、各エントリが次の各 ​``​ 要素に対応する文字列のリストが生成されます。 出力 XML ```xml Jasper Fforde <TITLE>The Eyre Affair Thomas Hardy <TITLE>Jude the Obscure Charlotte Bronte <TITLE>Wuthering Heights Jasper Fforde <TITLE>The Big Over Easy Jane Austen <TITLE>Pride and Prejudice Thomas Hardy <TITLE>Tess of the d'Urbervilles ``` デフォルトでは、この操作はメッセージペイロードレベルで XML ドキュメントを変換しようとします。ただし、​`content`​ パラメーターを使用して入力ドキュメントを提供できます。 例: コンテンツパラメーターの使用 ```xml #[vars.books] { $b/AUTHOR } { $b/TITLE } ]]> ``` 上記の例では、他の場所 (この場合、ファイルシステムのファイル) からコンテキストを取得し、シンプルな式から参照しています。 ## [](#xquery-スクリプトの個別のファイルへの外部化)XQuery スクリプトの個別のファイルへの外部化 XQuery スクリプトを Mule アプリケーションに組み込まずに済むように、次のように、ファイルを使用してモジュールに渡すことができます。 例 ```xml ${file::scripts/books.xquery} ``` より複雑なユースケースでは、使用するスクリプトが外的な条件に応じて異なる場合もあります。たとえば、使用する実際の変換が ​`userID`​ に応じて異なるマルチテナントのインテグレーションを考えてみます。 複雑な例 ```xml (1) (2) #[vars.xquery] ``` 1. このフローは HTTP 要求によってトリガーされます。 2. この例では、​`userID`​ がクエリパラメーターとして提供されていることと想定し、File Connector を使用して正しい XQuery スクリプトを読み取り、変数に保存します。 3. モジュールは、Read 操作を使用して取得された XQuery スクリプトを参照する式を使用して変換を実行します。 HTTP Connector と File Connector は単に例として使用しています。同様のユースケースを実行するために必要なわけではありません。 ## [](#コンテキストプロパティおよび複数の入力の使用)コンテキストプロパティおよび複数の入力の使用 対応する ​`xpath`​ や ​`xslt`​ と同じように、​`xquery`​ 操作は引数を変換に渡せるコンテキストパラメーターをサポートしています。 たとえば、上記の ​`books`​ XML を次の ​`cities`​ XML ドキュメントと組み合わせるとします。 入力 ```xml ``` このユースケースの例を見てみましょう。 XQuery 変換スクリプト ```xml (1) { for $b in fn:doc($books)/BOOKLIST/BOOKS/ITEM, $c in fn:doc($cities)/cities/city (4) return (5) } ]]> #[{'books' : vars.books, 'cities': vars.cities}] (6) ```
1入力ドキュメントを読み取り、コンテンツを変数に保存します。この例では File Connector を使用していますが、任意のデータソースを使用できます。
2XQuery スクリプトで ​$cities​ 変数を宣言します。
3XQuery スクリプトで ​$books​ 変数を宣言します。
4$​ プレフィックスを使用して両方のドキュメントを参照し、両方を反復します。
5出力要素を生成します。
6DataWeave および ​<xml-module:context-properties>​ パラメーターを使用してプロパティをバインドします。
スクリプトは、1 つの項目のみが含まれる文字列のリストを出力します。 出力 ```xml ``` ## [](#関連情報)関連情報 [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/latest/) # XML Module の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/xml-module http://www.mulesoft.org/schema/mule/xml-module/current/mule-xml-module.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ="http://www.mulesoft.org/schema/mule/xml-module" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:file="http://www.mulesoft.org/schema/mule/file" 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/file http://www.mulesoft.org/schema/mule/file/current/mule-file.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 http://www.mulesoft.org/schema/mule/xml-module http://www.mulesoft.org/schema/mule/xml-module/current/mule-xml-module.xsd"> ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.modules mule-xml-module x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`xml module`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/xml-module http://www.mulesoft.org/schema/mule/xml-module/current/mule-xml-module.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ="http://www.mulesoft.org/schema/mule/xml-module" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:file="http://www.mulesoft.org/schema/mule/file" 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/file http://www.mulesoft.org/schema/mule/file/current/mule-file.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 http://www.mulesoft.org/schema/mule/xml-module http://www.mulesoft.org/schema/mule/xml-module/current/mule-xml-module.xsd"> ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.modules mule-xml-module x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`xml module`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/xml-module http://www.mulesoft.org/schema/mule/xml-module/current/mule-xml-module.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ="http://www.mulesoft.org/schema/mule/xml-module" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:file="http://www.mulesoft.org/schema/mule/file" 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/file http://www.mulesoft.org/schema/mule/file/current/mule-file.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 http://www.mulesoft.org/schema/mule/xml-module http://www.mulesoft.org/schema/mule/xml-module/current/mule-xml-module.xsd"> ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.modules mule-xml-module x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`xml module`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module のトラブルシューティング XML Module のトラブルシューティングを行うには、冗長ログの有効化と、スローされる一般的なメッセージの解釈に関する情報を理解しておきます。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションと XML Module のやりとりが失敗する理由の理解を深めるには、XML Module の冗長ログを一時的に有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#スキーマの問題に対する検証のトラブルシューティング)スキーマの問題に対する検証のトラブルシューティング XML Module を使用して他のローカルスキーマファイルに対する参照があるスキーマに対して検証すると、検証がエラーで失敗する可能性があります。 ```none The supplied schemas were not valid. schema_reference: Failed to read schema document schemadocumentname.xsd, because file access is not allowed due to restriction set by the accessExternalSchema property ``` Studio コンソールのエラーは次のように表示されます。 ```none ERROR 2021-03-25 18:42:34,499 [[MuleRuntime].uber.03: [bug-xsd-schema-not-found-support].bug-xsd-schema-not-foundFlow.CPU_INTENSIVE @52ec9ec0] [processor: ; event: 026a10a0-8db3-11eb-80a6-3c22fb270222] org.mule.runtime.core.internal.exception.DefaultSystemExceptionStrategy: ******************************************************************************** Message : The supplied schemas were not valid. schema_reference: Failed to read schema document 'schemadocumentname.xsd', because 'file' access is not allowed due to restriction set by the accessExternalSchema property. Element : bug-xsd-schema-not-foundFlow/processors/2 @ bug-xsd-schema-not-found-support:main.xml:16 (Validate schema) Element DSL : Error type : XML-MODULE:INVALID_SCHEMA FlowStack : at bug-xsd-schema-not-foundFlow(bug-xsd-schema-not-foundFlow/processors/2 @ bug-xsd-schema-not-found-support:main.xml:16 (Validate schema)) (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) ******************************************************************************** ``` このエラーは、​**\[Expand entities (エンティティを拡張)\]**​ 項目がデフォルト値の ​**\[NEVER\]**​ に設定されていて、XML Module グローバル要素設定でアクセスが制限されていたために発生します。この値により、XXE (XML 外部エンティティ) および DoS (サービス拒否) 攻撃を回避できます。 この問題を解決するには、​**\[Expand entities (エンティティを拡張)\]**​ 項目を ​**\[INTERNAL (内部)\]**​ に設定します。 1. Studio で、プロジェクトを開き、Mule アプリケーションフローにアクセスします。 2. **\[Global Element (グローバル要素)\]**​ タブに移動します。 3. **\[XML Config (XML 設定)\]**​ 設定を選択して、​**\[Edit (編集)\]**​ をクリックします。 4. **\[Global Element Properties (グローバル要素のプロパティ)\]**​ ウィンドウで、​**\[Expand entities (エンティティを拡張)\]**​ 項目を ​**\[INTERNAL (内部)\]**​ に設定します。 5. **\[OK\]**​ をクリックします。 ![XML Module のグローバル設定の \[Expand entities (エンティティを拡張)\] 項目](_images/xml-validate-schema-4.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#一般的なスローを理解する)一般的なスローを理解する ここでは、一般的なスローメッセージとその解決方法を示します。 - XML-MODULE:INVALID\_INPUT\_XML 入力ドキュメントが有効な XML ではありません。 - XML-MODULE:INVALID\_SCHEMA 指定されたスキーマが無効です。 - XML-MODULE:INVALID\_XPATH\_EXPRESSION 指定された Xpath 式が無効です。 - XML-MODULE:NULL\_CONTEXT\_PROPERTY null 値のコンテキストプロパティが指定されました。 - XML-MODULE:SCHEMA\_NOT\_HONOURED 入力 XML ドキュメントがそのスキーマを順守していません。 - XML-MODULE:SCHEMA\_NOT\_FOUND スキーマが見つかりませんでした。 - XML-MODULE:TRANSFORMATION XML ドキュメントの変換中にエラーが発生しました。 ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [XML Module リファレンス](https://docs.mulesoft.com/jp/xml-module/1.3/xml-reference) # XML Module のトラブルシューティング XML Module のトラブルシューティングを行うには、冗長ログの有効化と、スローされる一般的なメッセージの解釈に関する情報を理解しておきます。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションと XML Module のやりとりが失敗する理由の理解を深めるには、XML Module の冗長ログを一時的に有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 ## [](#スキーマの問題に対する検証のトラブルシューティング)スキーマの問題に対する検証のトラブルシューティング XML Module を使用して他のローカルスキーマファイルに対する参照があるスキーマに対して検証すると、検証がエラーで失敗する可能性があります。 ```none The supplied schemas were not valid. schema_reference: Failed to read schema document schemadocumentname.xsd, because file access is not allowed due to restriction set by the accessExternalSchema property ``` Studio コンソールのエラーは次のように表示されます。 ```none ERROR 2021-03-25 18:42:34,499 [[MuleRuntime].uber.03: [bug-xsd-schema-not-found-support].bug-xsd-schema-not-foundFlow.CPU_INTENSIVE @52ec9ec0] [processor: ; event: 026a10a0-8db3-11eb-80a6-3c22fb270222] org.mule.runtime.core.internal.exception.DefaultSystemExceptionStrategy: ******************************************************************************** Message : The supplied schemas were not valid. schema_reference: Failed to read schema document 'schemadocumentname.xsd', because 'file' access is not allowed due to restriction set by the accessExternalSchema property. Element : bug-xsd-schema-not-foundFlow/processors/2 @ bug-xsd-schema-not-found-support:main.xml:16 (Validate schema) Element DSL : Error type : XML-MODULE:INVALID_SCHEMA FlowStack : at bug-xsd-schema-not-foundFlow(bug-xsd-schema-not-foundFlow/processors/2 @ bug-xsd-schema-not-found-support:main.xml:16 (Validate schema)) (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) ******************************************************************************** ``` このエラーは、​**\[Expand entities (エンティティを拡張)\]**​ 項目がデフォルト値の ​**\[NEVER\]**​ に設定されていて、XML Module グローバル要素設定でアクセスが制限されていたために発生します。この値により、XXE (XML 外部エンティティ) および DoS (サービス拒否) 攻撃を回避できます。 この問題を解決するには、​**\[Expand entities (エンティティを拡張)\]**​ 項目を ​**\[INTERNAL (内部)\]**​ に設定します。 1. Studio で、プロジェクトを開き、Mule アプリケーションフローにアクセスします。 2. **\[Global Element (グローバル要素)\]**​ タブに移動します。 3. **\[XML Config (XML 設定)\]**​ 設定を選択して、​**\[Edit (編集)\]**​ をクリックします。 4. **\[Global Element Properties (グローバル要素のプロパティ)\]**​ ウィンドウで、​**\[Expand entities (エンティティを拡張)\]**​ 項目を ​**\[INTERNAL (内部)\]**​ に設定します。 5. **\[OK\]**​ をクリックします。 ![XML Module のグローバル設定の \[Expand entities (エンティティを拡張)\] 項目](_images/xml-validate-schema-4.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#一般的なスローを理解する)一般的なスローを理解する ここでは、一般的なスローメッセージとその解決方法を示します。 - XML-MODULE:INVALID\_INPUT\_XML 入力ドキュメントが有効な XML ではありません。 - XML-MODULE:INVALID\_SCHEMA 指定されたスキーマが無効です。 - XML-MODULE:INVALID\_XPATH\_EXPRESSION 指定された Xpath 式が無効です。 - XML-MODULE:NULL\_CONTEXT\_PROPERTY null 値のコンテキストプロパティが指定されました。 - XML-MODULE:SCHEMA\_NOT\_HONOURED 入力 XML ドキュメントがそのスキーマを順守していません。 - XML-MODULE:SCHEMA\_NOT\_FOUND スキーマが見つかりませんでした。 - XML-MODULE:TRANSFORMATION XML ドキュメントの変換中にエラーが発生しました。 - XML-MODULE:SCHEMA\_INPUT\_ERROR 操作の実行中に \[Schema (スキーマ)\] 項目と \[Schema Content (スキーマコンテンツ)\] 項目が同時に使用されたため、Validate schema 操作が失敗しました。スキーマ XSD コンテンツの検証には、これらのいずれかの項目のみを使用できます。 ## [](#関連情報)関連情報 - [XML Module リファレンス](https://docs.mulesoft.com/jp/xml-module/latest/xml-reference) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Known Issues](https://help.salesforce.com/s/issues) # XML Module の例 XML Module を最大限活用するには、次のモジュール操作の設定例を参照してください。 - [XQuery 変換の設定](https://docs.mulesoft.com/jp/xml-module/1.2/xml-xquery) XML 入力コンテンツを受け入れて XQuery 式に基づいて変換するように ​**Xquery transform**​ 操作を設定します。 - [XPath 抽出の設定](https://docs.mulesoft.com/jp/xml-module/1.2/xml-xpath) XML 入力コンテンツの Xpath 式を評価して結果を抽出するように ​**Xpath extract**​ 操作を設定します。この操作では、名前空間マッピングを設定することもできます。 - [Xslt 変換の設定](https://docs.mulesoft.com/jp/xml-module/1.2/xml-xslt) XML 入力コンテンツを受け入れて XSL スタイルシートを使用して変換するように ​**Xslt transform**​ 操作を設定します。 - [XSD スキーマに対するドキュメントの検証](https://docs.mulesoft.com/jp/xml-module/1.2/xml-xslt) XSD スキーマに対してドキュメントを検証するように ​**Validate schema**​ 操作を設定します。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module の例 XML Module を最大限活用するには、次のモジュール操作の設定例を参照してください。 - [XQuery 変換の設定](https://docs.mulesoft.com/jp/xml-module/1.3/xml-xquery) XML 入力コンテンツを受け入れて XQuery 式に基づいて変換するように ​**Xquery transform**​ 操作を設定します。 - [XPath 抽出の設定](https://docs.mulesoft.com/jp/xml-module/1.3/xml-xpath) XML 入力コンテンツの Xpath 式を評価して結果を抽出するように ​**Xpath extract**​ 操作を設定します。この操作では、名前空間マッピングを設定することもできます。 - [Xslt 変換の設定](https://docs.mulesoft.com/jp/xml-module/1.3/xml-xslt) XML 入力コンテンツを受け入れて XSL スタイルシートを使用して変換するように ​**Xslt transform**​ 操作を設定します。 - [XSD スキーマに対するドキュメントの検証](https://docs.mulesoft.com/jp/xml-module/1.3/xml-xslt) XSD スキーマに対してドキュメントを検証するように ​**Validate schema**​ 操作を設定します。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module の例 XML Module を最大限活用するには、次のモジュール操作の設定例を参照してください。 - [XQuery 変換の設定](https://docs.mulesoft.com/jp/xml-module/latest/xml-xquery) XML 入力コンテンツを受け入れて XQuery 式に基づいて変換するように ​**Xquery transform**​ 操作を設定します。 - [XPath 抽出の設定](https://docs.mulesoft.com/jp/xml-module/latest/xml-xpath) XML 入力コンテンツの Xpath 式を評価して結果を抽出するように ​**Xpath extract**​ 操作を設定します。この操作では、名前空間マッピングを設定することもできます。 - [Xslt 変換の設定](https://docs.mulesoft.com/jp/xml-module/latest/xml-xslt) XML 入力コンテンツを受け入れて XSL スタイルシートを使用して変換するように ​**Xslt transform**​ 操作を設定します。 - [XSD スキーマに対するドキュメントの検証](https://docs.mulesoft.com/jp/xml-module/latest/xml-xslt) XSD スキーマに対してドキュメントを検証するように ​**Validate schema**​ 操作を設定します。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module リファレンス XML Module v1.2 XML Module は XML ドキュメントからデータを抽出して処理できます。このモジュールは、高度なユースケース、または XML 標準 (XSLT、XPath、および XQuery または XSD など) に関連したユースケースで使用する必要があります。DataWeave はこうしたユースケースの大半に完全に対応しており、ほとんどの場合はこれらの標準を置換できるだけでなく、推奨の方法でもあります。 リリースノート: [XML Module リリースノート](https://docs.mulesoft.com/jp/release-notes/mule-runtime/module-xml) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 デフォルト設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

名前空間

プレフィックスをグローバルに名前空間の URI にマップできます。このバージョンでは、xpath-extract 操作はこうしたマッピングをコンシュームする唯一の操作です。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

エンティティ拡張の処理方法を定義します。NEVER (指定しない) 以外の値を設定すると、アプリケーションが XXE または DoS 攻撃に対して脆弱になります。

NEVER

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

## [](#操作)操作 - [Validate Schema](#validateSchema) - [XPath Extract](#xpathExtract) - [XQuery Transform](#xqueryTransform) - [XSLT Transform](#xsltTransform) ### [](#validateSchema)Validate Schema `` 入力コンテンツが指定したスキーマに準拠していることを検証します。この操作では、相互を含む多数のスキーマの参照がサポートされます (カンマを区切り文字に使用)。 #### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Schemas (スキーマ)

String (文字列)

スキーマファイルへのパス。カンマ区切り文字を使用して複数のスキーマの場所を指定できます。

x

Schema Language (スキーマ言語)

Enumeration (列挙)。次のいずれかになります。

  • W3C

  • RELAXNG

使用するスキーマ言語。

W3C

Content (コンテンツ)

Binary (バイナリ)

検証する XML コンテンツ。

#[payload]

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

#### [](#次の設定の場合)次の設定の場合 [デフォルト設定](#config) #### [](#スロー)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:INVALID\_SCHEMA - XML-MODULE:SCHEMA\_NOT\_FOUND - XML-MODULE:SCHEMA\_NOT\_HONOURED - XML-MODULE:TRANSFORMATION ### [](#xpathExtract)XPath Extract `` 入力コンテンツの XPath 式を評価し、結果を返します。

XPath 式は各要素の任意の数値に一致する可能性があるため、この操作によって文字列のリストが返されます。式に一致する要素がなかった場合、空のリストが返されます。

XPath 式も名前空間に対応しています。この操作で名前空間のマッピングを設定できるのはこのためです。これらのマッピングは、参照される名前空間ディレクトリで必要に応じて定義されるマッピングとマージされます。つまり、評価では両方の名前空間のマッピングのセットが組み合わされます。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

XPath が評価される XML コンテンツ。

#[payload]

Xpath

String (文字列)

XPath スクリプト。

x

Context Properties (コンテキストプロパティ)

Object (オブジェクト)

変換コンテキストに対して使用可能になるプロパティ。

名前空間

この評価で使用される名前空間のマッピング。config 要素のマッピングと組み合わされます。

Namespace Directory (名前空間ディレクトリ)

ベース名前空間マッピングを取得する名前空間ディレクトリ。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力)出力

型

Array of String (文字列の配列)

#### [](#次の設定の場合-2)次の設定の場合 [デフォルト設定](#config) #### [](#スロー-2)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:INVALID\_XPATH\_EXPRESSION - XML-MODULE:NULL\_CONTEXT\_PROPERTY - XML-MODULE:TRANSFORMATION ### [](#xqueryTransform)XQuery Transform `` XQuery を使用して入力コンテンツを変換します。XQuery 実行で使用可能になる変換コンテキストプロパティを設定できます。 #### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

変換する XML コンテンツ。

#[payload]

Xquery

String (文字列)

XQuery スクリプト定義。

x

Context Properties (コンテキストプロパティ)

Object (オブジェクト)

変換コンテキストに対して使用可能になるプロパティ。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-2)出力

型

Array of String (文字列の配列)

#### [](#次の設定の場合-3)次の設定の場合 [デフォルト設定](#config) #### [](#スロー-3)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:NULL\_CONTEXT\_PROPERTY - XML-MODULE:TRANSFORMATION ### [](#xsltTransform)XSLT Transform `` XSLT を使用して入力コンテンツを変換します。スタイルシートで使用可能になる変換コンテキストプロパティを設定できます。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

変換する XML コンテンツ。

#[payload]

Xslt

String (文字列)

XSLT スクリプト定義。

x

Context Properties (コンテキストプロパティ)

Object (オブジェクト)

変換コンテキストに対して使用可能になるプロパティ。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-3)出力

型

String (文字列)

#### [](#次の設定の場合-4)次の設定の場合 [デフォルト設定](#config) #### [](#スロー-4)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:NULL\_CONTEXT\_PROPERTY - XML-MODULE:TRANSFORMATION ## [](#型)型 ### [](#namespace)Namespace (名前空間)
項目 型 説明 デフォルト値 必須

Prefix (プレフィックス)

String (文字列)

XML ドキュメントで使用されるプレフィックス。

x

Uri

String (文字列)

名前空間の URI。

x

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime 属性の時間単位

### [](#namespaceDirectory)Namespace Directory (名前空間ディレクトリ)
項目 型 説明 デフォルト値 必須

名前空間

グローバルにプレフィックスを名前空間の URI にマップします。このバージョンでは、xpath-extract 操作はこうしたマッピングをコンシュームする唯一の操作です。

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module リファレンス XML Module v1.3 XML Module は XML ドキュメントからデータを抽出して処理できます。このモジュールは、高度なユースケース、または XML 標準 (XSLT、XPath、および XQuery または XSD など) に関連したユースケースで使用する必要があります。DataWeave はこうしたユースケースの大半に完全に対応しており、ほとんどの場合はこれらの標準を置換できるだけでなく、推奨の方法でもあります。 リリースノート: [XML Module リリースノート](https://docs.mulesoft.com/jp/release-notes/mule-runtime/module-xml) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 デフォルト設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

名前空間

プレフィックスをグローバルに名前空間の URI にマップできます。このバージョンでは、xpath-extract 操作はこうしたマッピングをコンシュームする唯一の操作です。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

エンティティ拡張の処理方法を定義します。NEVER (指定しない) 以外の値を設定すると、アプリケーションが XXE または DoS 攻撃に対して脆弱になります。

NEVER

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

## [](#操作)操作 - [Validate Schema](#validateSchema) - [XPath Extract](#xpathExtract) - [XQuery Transform](#xqueryTransform) - [XSLT Transform](#xsltTransform) ### [](#validateSchema)Validate Schema `` 入力コンテンツが指定したスキーマに準拠していることを検証します。この操作では、相互を含む多数のスキーマの参照がサポートされます (カンマを区切り文字に使用)。 #### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Schemas (スキーマ)

String (文字列)

スキーマファイルへのパス。カンマ区切り文字を使用して複数のスキーマの場所を指定できます。

x

Schema Language (スキーマ言語)

Enumeration (列挙)。次のいずれかになります。

  • W3C

  • RELAXNG

使用するスキーマ言語。

W3C

Content (コンテンツ)

Binary (バイナリ)

検証する XML コンテンツ。

#[payload]

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

#### [](#次の設定の場合)次の設定の場合 [デフォルト設定](#config) #### [](#スロー)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:INVALID\_SCHEMA - XML-MODULE:SCHEMA\_NOT\_FOUND - XML-MODULE:SCHEMA\_NOT\_HONOURED - XML-MODULE:TRANSFORMATION ### [](#xpathExtract)XPath Extract `` 入力コンテンツの XPath 式を評価し、結果を返します。

XPath 式は各要素の任意の数値に一致する可能性があるため、この操作によって文字列のリストが返されます。式に一致する要素がなかった場合、空のリストが返されます。

XPath 式も名前空間に対応しています。この操作で名前空間のマッピングを設定できるのはこのためです。これらのマッピングは、参照される名前空間ディレクトリで必要に応じて定義されるマッピングとマージされます。つまり、評価では両方の名前空間のマッピングのセットが組み合わされます。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

XPath が評価される XML コンテンツ。

#[payload]

Xpath

String (文字列)

XPath スクリプト。

x

Context Properties (コンテキストプロパティ)

Object (オブジェクト)

変換コンテキストに対して使用可能になるプロパティ。

名前空間

この評価で使用される名前空間のマッピング。config 要素のマッピングと組み合わされます。

Namespace Directory (名前空間ディレクトリ)

ベース名前空間マッピングを取得する名前空間ディレクトリ。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力)出力

型

Array of String (文字列の配列)

#### [](#次の設定の場合-2)次の設定の場合 [デフォルト設定](#config) #### [](#スロー-2)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:INVALID\_XPATH\_EXPRESSION - XML-MODULE:NULL\_CONTEXT\_PROPERTY - XML-MODULE:TRANSFORMATION ### [](#xqueryTransform)XQuery Transform `` XQuery を使用して入力コンテンツを変換します。XQuery 実行で使用可能になる変換コンテキストプロパティを設定できます。 #### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

変換する XML コンテンツ。

#[payload]

Xquery

String (文字列)

XQuery スクリプト定義。

x

Context Properties (コンテキストプロパティ)

Object (オブジェクト)

変換コンテキストに対して使用可能になるプロパティ。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-2)出力

型

Array of String (文字列の配列)

#### [](#次の設定の場合-3)次の設定の場合 [デフォルト設定](#config) #### [](#スロー-3)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:NULL\_CONTEXT\_PROPERTY - XML-MODULE:TRANSFORMATION ### [](#xsltTransform)XSLT Transform `` XSLT を使用して入力コンテンツを変換します。スタイルシートで使用可能になる変換コンテキストプロパティを設定できます。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

変換する XML コンテンツ。

#[payload]

Xslt

String (文字列)

XSLT スクリプト定義。

x

Context Properties (コンテキストプロパティ)

Object (オブジェクト)

変換コンテキストに対して使用可能になるプロパティ。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-3)出力

型

String (文字列)

#### [](#次の設定の場合-4)次の設定の場合 [デフォルト設定](#config) #### [](#スロー-4)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:NULL\_CONTEXT\_PROPERTY - XML-MODULE:TRANSFORMATION ## [](#型)型 ### [](#namespace)Namespace (名前空間)
項目 型 説明 デフォルト値 必須

Prefix (プレフィックス)

String (文字列)

XML ドキュメントで使用されるプレフィックス。

x

Uri

String (文字列)

名前空間の URI。

x

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime 属性の時間単位

### [](#namespaceDirectory)Namespace Directory (名前空間ディレクトリ)
項目 型 説明 デフォルト値 必須

名前空間

グローバルにプレフィックスを名前空間の URI にマップします。このバージョンでは、xpath-extract 操作はこうしたマッピングをコンシュームする唯一の操作です。

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module リファレンス XML Module v1.4 XML Module は XML ドキュメントからデータを抽出して処理できます。このモジュールは、高度なユースケース、または XML 標準 (XSLT、XPath、および XQuery または XSD など) に関連したユースケースで使用する必要があります。DataWeave はこうしたユースケースの大半に完全に対応しており、ほとんどの場合はこれらの標準を置換できるだけでなく、推奨の方法でもあります。 リリースノート: [XML Module リリースノート](https://docs.mulesoft.com/jp/release-notes/mule-runtime/module-xml) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 デフォルト設定 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

名前空間

プレフィックスをグローバルに名前空間の URI にマップできます。このバージョンでは、xpath-extract 操作はこうしたマッピングをコンシュームする唯一の操作です。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

エンティティ拡張の処理方法を定義します。NEVER (指定しない) 以外の値を設定すると、アプリケーションが XXE または DoS 攻撃に対して脆弱になります。

NEVER

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。ランタイムによって適切と判断されたときに、インスタンスが実際にパージされます。

## [](#操作)操作 - [Validate Schema](#validateSchema) - [XPath Extract](#xpathExtract) - [XQuery Transform](#xqueryTransform) - [XSLT Transform](#xsltTransform) ### [](#validateSchema)Validate Schema `` 入力コンテンツが指定したスキーマに準拠していることを検証します。この操作では、相互を含む多数のスキーマの参照がサポートされます (カンマを区切り文字に使用)。
スキーマコンテンツを追加するには、スキーマとスキーマコンテンツの両方ではなくいずれかのみを指定します。​[Schemas (スキーマ)]​ 項目でファイルをアップロードするか、または ​[Schema contents (スキーマコンテンツ)]​ 項目で直接スキーマテキストコンテンツを手動で追加することができます。
#### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Schemas (スキーマ)

String (文字列)

スキーマファイルへのパス。カンマ区切り文字を使用して複数のスキーマの場所を指定できます。

x

Schema Contents (スキーマコンテンツ)

スキーマ検証を実行するためのスキーマテキストコンテンツ。

Schema Language (スキーマ言語)

Enumeration (列挙)。次のいずれかになります。

  • W3C

  • RELAXNG

使用するスキーマ言語。

W3C

Content (コンテンツ)

Binary (バイナリ)

検証する XML コンテンツ。

#[payload]

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

#### [](#次の設定の場合)次の設定の場合 [デフォルト設定](#config) #### [](#スロー)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:INVALID\_SCHEMA - XML-MODULE:SCHEMA\_NOT\_FOUND - XML-MODULE:SCHEMA\_NOT\_HONOURED - XML-MODULE:TRANSFORMATION - XML-MODULE:SCHEMA\_INPUT\_ERROR​ ### [](#xpathExtract)XPath Extract `` 入力コンテンツの XPath 式を評価し、結果を返します。

XPath 式は各要素の任意の数値に一致する可能性があるため、この操作によって文字列のリストが返されます。式に一致する要素がなかった場合、空のリストが返されます。

XPath 式も名前空間に対応しています。この操作で名前空間のマッピングを設定できるのはこのためです。これらのマッピングは、参照される名前空間ディレクトリで必要に応じて定義されるマッピングとマージされます。つまり、評価では両方の名前空間のマッピングのセットが組み合わされます。 #### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

XPath が評価される XML コンテンツ。

#[payload]

Xpath

String (文字列)

XPath スクリプト。

x

Context Properties (コンテキストプロパティ)

Object (オブジェクト)

変換コンテキストに対して使用可能になるプロパティ。

名前空間

この評価で使用される名前空間のマッピング。config 要素のマッピングと組み合わされます。

Namespace Directory (名前空間ディレクトリ)

ベース名前空間マッピングを取得する名前空間ディレクトリ。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力)出力

型

Array of String (文字列の配列)

#### [](#次の設定の場合-2)次の設定の場合 [デフォルト設定](#config) #### [](#スロー-2)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:INVALID\_XPATH\_EXPRESSION - XML-MODULE:NULL\_CONTEXT\_PROPERTY - XML-MODULE:TRANSFORMATION ### [](#xqueryTransform)XQuery Transform `` XQuery を使用して入力コンテンツを変換します。XQuery 実行で使用可能になる変換コンテキストプロパティを設定できます。 #### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

変換する XML コンテンツ。

#[payload]

Xquery

String (文字列)

XQuery スクリプト定義。

x

Context Properties (コンテキストプロパティ)

Object (オブジェクト)

変換コンテキストに対して使用可能になるプロパティ。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-2)出力

型

Array of String (文字列の配列)

#### [](#次の設定の場合-3)次の設定の場合 [デフォルト設定](#config) #### [](#スロー-3)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:NULL\_CONTEXT\_PROPERTY - XML-MODULE:TRANSFORMATION ### [](#xsltTransform)XSLT Transform `` XSLT を使用して入力コンテンツを変換します。スタイルシートで使用可能になる変換コンテキストプロパティを設定できます。 #### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Content (コンテンツ)

Binary (バイナリ)

変換する XML コンテンツ。

#[payload]

Xslt

String (文字列)

XSLT スクリプト定義。

x

Context Properties (コンテキストプロパティ)

Object (オブジェクト)

変換コンテキストに対して使用可能になるプロパティ。

Expand Entities (エンティティを拡張)

Enumeration (列挙)。次のいずれかになります。

  • NEVER

  • INTERNAL

  • ALL (すべて)

XXE 攻撃および DoS 攻撃を防ぐには NEVER (指定しない) に設定します。

Output Mime Type (出力 MIME タイプ)

String (文字列)

この操作で出力されるペイロードの MIME タイプ。

Target Variable (対象変数)

String (文字列)

操作の出力が格納される変数の名前

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。その式の結果は対象変数に保存されます。

#[payload]

#### [](#出力-3)出力

型

String (文字列)

#### [](#次の設定の場合-4)次の設定の場合 [デフォルト設定](#config) #### [](#スロー-4)スロー - XML-MODULE:INVALID\_INPUT\_XML - XML-MODULE:NULL\_CONTEXT\_PROPERTY - XML-MODULE:TRANSFORMATION ## [](#型)型 ### [](#namespace)Namespace (名前空間)
項目 型 説明 デフォルト値 必須

Prefix (プレフィックス)

String (文字列)

XML ドキュメントで使用されるプレフィックス。

x

Uri

String (文字列)

名前空間の URI。

x

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime 属性の時間単位

### [](#SchemaContent)Schema Content (スキーマコンテンツ)
項目 型 説明 デフォルト値 必須

Schema Name (スキーマ名)

String (文字列)

定義するスキーマ名コンテンツ。

x

Schema Text (スキーマテキスト)

String (文字列)

定義するスキーマテキストコンテンツ。

x

### [](#namespaceDirectory)Namespace Directory (名前空間ディレクトリ)
項目 型 説明 デフォルト値 必須

名前空間

グローバルにプレフィックスを名前空間の URI にマップします。このバージョンでは、xpath-extract 操作はこうしたマッピングをコンシュームする唯一の操作です。

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # XML Module を使用した XSD スキーマに対するドキュメントの検証 ``​ 操作は、入力コンテンツが指定されたスキーマに準拠していることを検証します。この操作は、相互を含む多数のスキーマの参照 (区切り文字としてカンマを使用) をサポートしています。 次の例は、ウィリアム・シェイクスピアの戯曲『オセロ』の脚本を記載した XML を処理する方法を示しています。XML ファイルは次のようになります。 ```xml ``` この操作はデフォルトで、メッセージペイロードレベルで入力ドキュメントを検索します。他方、次のような独自の入力を行うこともできます。 ```xml #[vars.xmlDoc] ``` ``​ 要素内の ​``​ コンポーネントを使用できます。 ## [](#検証エラーの処理)検証エラーの処理 検証に成功した場合は何も起こらず、フローの次の操作に進みます。失敗した場合は、​`XML-MODULE:SCHEMA_NOT_HONOURED`​ エラーが生じます。 `XML-MODULE:SCHEMA_NOT_HONOURED`​ は複雑なエラーです。検証に失敗する理由は多数あるため、エラーにはメッセージのリストが含まれます。各メッセージには、次のような構造の ​`SchemaViolation`​ オブジェクトが含まれます。 SchemaViolation オブジェクト ```yaml { lineNumber: Number, columnNumber: Number, description: String } ``` 次の例を考えてみます。 ```xml (1) (2) (3) ``` ```none ERROR 2018-02-16 14:35:45,722 [[MuleRuntime].cpuIntensive.01: [SchemaValidationTestCase#extractErrorsUsingExpressions].extractErrorsFromException.CPU_INTENSIVE @411e886b] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: At line: -1, column: -1 -> cvc-complex-type.2.4.a: Invalid content was found starting with element 'fail'. One of '{used}' is expected. ``` ## [](#関連情報)関連情報 [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/1.2/) # XML Module を使用した XSD スキーマに対するドキュメントの検証 XML Module の ​**Validate schema**​ 操作は、入力コンテンツが指定した XSD スキーマに準拠していることを検証します。操作では、カンマ (​`,`​) を区切り文字として使用して多数のスキーマを参照できます。 デフォルトではこの操作はメッセージペイロードレベルで入力ドキュメントを検索しますが、独自の入力を指定することもできます。 Validation Module の ​**All**​ スコープ内で ​**Validate schema**​ 操作を使用できます。 ## [](#studio-で-validation-schema-操作を設定する)Studio で Validation Schema 操作を設定する 次の例では、スクリプトが含まれる XML スキーマを検証します。 1. Studio で、​**Validate schema**​ 操作をフローにドラッグします。 **\[Schemas (スキーマ)\]**​ 項目で、カンマを使用してファイル名を区切ってスキーマファイルを追加します (例: `schema1.xsd, schema2.xsd`​)。 2. **\[Flow Reference\]**​ コンポーネントを ​**\[Validate schema\]**​ 操作の右にドラッグします。 3. **\[Flow name (ファイル名)\]**​ を ​`processValidDocument`​ に設定します。 ![「Schemas (スキーマ)」 項目で、スキーマ名ファイルを追加します。](/mulesoft/current/ja-jp/xml-module/1.3/_images/xml-validate-schema-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` 次の例では、独自の入力を行って ​**Validate schema**​ 操作を設定します。 1. Studio で、​**File Read**​ 操作をフローにドラッグします。 2. 設定画面で、​**\[File Path (ファイルパス)\]**​ を ​`document.xml`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで、​**\[Target Variable (対象変数)\]**​ を ​`xmlDoc`​ に設定します。 4. XML Module の ​**\[Validate schema\]**​ 操作を ​**\[Read\]**​ 操作の右にドラッグします。 5. **\[Schemas (スキーマ)\]**​ 項目で、スキーマを追加し、カンマを使用してそれらの名前を区切ります (例: `schema1.xsd, schema2.xsd`​)。 6. **\[Content (コンテンツ)\]**​ 項目を検証する XML コンテンツに設定します (例: `#[vars.xmlDoc]`​)。 7. **\[Flow Reference\]**​ コンポーネントを ​**\[Validate schema\]**​ 操作の右にドラッグします。 8. **\[Flow name (ファイル名)\]**​ を ​`processValidDocument`​ に設定します。 ![「Content (コンテンツ)」 項目で、検証する XML コンテンツファイルを追加します。](/mulesoft/current/ja-jp/xml-module/1.3/_images/xml-validate-schema-2.png) **設定 XML**​ エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml #[vars.xmlDoc] ``` ## [](#検証エラーを管理する)検証エラーを管理する 検証に成功した場合はフローの次の操作に進みます。ただし、検証に失敗すると、​`XML-MODULE:SCHEMA_NOT_HONOURED`​ エラーが発生します。 検証に失敗する理由は複数あるため、エラーの説明にはメッセージのリストが含まれます。各メッセージには、次のような構造の ​`SchemaViolation`​ オブジェクトが含まれます。 ```yaml { lineNumber: Number, columnNumber: Number, description: String } ``` 次の例では、​**Validate schema**​ 操作と Error Handler コンポーネントの ​`XML-MODULE:SCHEMA_NOT_HONOURED`​ エラーを設定します。 1. Studio で ​**Try**​ スコープコンポーネントをフローにドラッグします。 2. XML Module の ​**\[Validate schema\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントにドラッグします。 3. **\[Schemas (スキーマ)\]**​ 項目で、スキーマを追加します (例: `schema.xsd`​)。 4. フローで、​**\[Error handling (エラー処理)\]**​ 矢印をクリックして、\[error-handling (エラー処理)\] セクションを展開します。 5. **\[On Error Propagate\]**​ コンポーネントを ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 6. **\[Type (種別)\]**​ 項目をこの On-Error 戦略によって処理される Mule エラーに設定します (例: `XML-MODULE:SCHEMA_NOT_HONOURED`​)。 7. **\[Enable Notifications (通知を有効化)\]**​ および ​**\[Log Exception (例外を記録)\]**​ 項目をオフにします。 8. **\[For Each\]**​ スコープコンポーネントを ​**\[On Error Propagate\]**​ コンポーネントにドラッグして各 ​`errorMessage.payload`​ を反復処理します。 9. **\[Collection (コレクション)\]**​ 項目を、ペイロードを各部分に分割する式に設定します (例: `#[error.errorMessage.payload]`​)。 10. **\[Logger\]**​ コンポーネントを ​**\[For Each\]**​ スコープコンポーネントにドラッグして、XML Module エラーを記録します。 11. **\[Message (メッセージ)\]**​ 項目を、メッセージを記述する ​`SchemaViolation`​ オブジェクトが含まれる式に設定します (例: `#['At line: $(payload.lineNumber), column: $(payload.columnNumber) → $(payload.description)']`​)。 12. 変更を保存します。 13. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\] > \[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ をクリックします。 14. コンソールビューに移動して、ロガーメッセージを読み取ります。 ```none ERROR 2018-02-16 14:35:45,722 [[MuleRuntime].cpuIntensive.01: [SchemaValidationTestCase#extractErrorsUsingExpressions].extractErrorsFromException.CPU_INTENSIVE @411e886b] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: At line: -1, column: -1 -> cvc-complex-type.2.4.a: Invalid content was found starting with element 'fail'. One of '{used}' is expected. ``` ![XML Module で検証エラーを管理するフロー](/mulesoft/current/ja-jp/xml-module/1.3/_images/xml-validate-schema-3.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [XML Module の例](https://docs.mulesoft.com/jp/xml-module/1.3/xml-module-examples) - [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/1.3/) # XML Module を使用した XSD スキーマに対するドキュメントの検証 XML Module の ​**Validate schema**​ 操作は、入力コンテンツが指定した XSD スキーマに準拠していることを検証します。操作では、カンマ (​`,`​) を区切り文字として使用して多数のスキーマを参照できます。 デフォルトではこの操作はメッセージペイロードレベルで入力ドキュメントを検索しますが、独自の入力を指定することもできます。 Validation Module の ​**All**​ スコープ内で ​**Validate schema**​ 操作を使用できます。 ## [](#studio-で-validation-schema-操作を設定する)Studio で Validation Schema 操作を設定する 次の例では、スクリプトが含まれる XML スキーマを検証します。 1. Studio で、​**Validate schema**​ 操作をフローにドラッグします。 **\[Schemas (スキーマ)\]**​ 項目で、カンマを使用してファイル名を区切ってスキーマファイルを追加します (例: `schema1.xsd, schema2.xsd`​)。 2. **\[Flow Reference\]**​ コンポーネントを ​**\[Validate schema\]**​ 操作の右にドラッグします。 3. **\[Flow name (ファイル名)\]**​ を ​`processValidDocument`​ に設定します。 ![「Schemas (スキーマ)」 項目で、スキーマ名ファイルを追加します。](/mulesoft/current/ja-jp/xml-module/latest/_images/xml-validate-schema-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` 次の例では、独自の入力を行って ​**Validate schema**​ 操作を設定します。 1. Studio で、​**File Read**​ 操作をフローにドラッグします。 2. 設定画面で、​**\[File Path (ファイルパス)\]**​ を ​`document.xml`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで、​**\[Target Variable (対象変数)\]**​ を ​`xmlDoc`​ に設定します。 4. XML Module の ​**\[Validate schema\]**​ 操作を ​**\[Read\]**​ 操作の右にドラッグします。 5. **\[Schemas (スキーマ)\]**​ 項目で、スキーマを追加し、カンマを使用してそれらの名前を区切ります (例: `schema1.xsd, schema2.xsd`​)。 6. **\[Content (コンテンツ)\]**​ 項目を検証する XML コンテンツに設定します (例: `#[vars.xmlDoc]`​)。 7. **\[Flow Reference\]**​ コンポーネントを ​**\[Validate schema\]**​ 操作の右にドラッグします。 8. **\[Flow name (ファイル名)\]**​ を ​`processValidDocument`​ に設定します。 ![「Content (コンテンツ)」 項目で、検証する XML コンテンツファイルを追加します。](/mulesoft/current/ja-jp/xml-module/latest/_images/xml-validate-schema-2.png) **設定 XML**​ エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml #[vars.xmlDoc] ``` ## [](#検証エラーを管理する)検証エラーを管理する 検証に成功した場合はフローの次の操作に進みます。ただし、検証に失敗すると、​`XML-MODULE:SCHEMA_NOT_HONOURED`​ エラーが発生します。 検証に失敗する理由は複数あるため、エラーの説明にはメッセージのリストが含まれます。各メッセージには、次のような構造の ​`SchemaViolation`​ オブジェクトが含まれます。 ```yaml { lineNumber: Number, columnNumber: Number, description: String } ``` 次の例では、​**Validate schema**​ 操作と Error Handler コンポーネントの ​`XML-MODULE:SCHEMA_NOT_HONOURED`​ エラーを設定します。 1. Studio で ​**Try**​ スコープコンポーネントをフローにドラッグします。 2. XML Module の ​**\[Validate schema\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントにドラッグします。 3. **\[Schemas (スキーマ)\]**​ 項目で、スキーマを追加します (例: `schema.xsd`​)。 4. フローで、​**\[Error handling (エラー処理)\]**​ 矢印をクリックして、\[error-handling (エラー処理)\] セクションを展開します。 5. **\[On Error Propagate\]**​ コンポーネントを ​**\[Error handling (エラー処理)\]**​ セクションにドラッグします。 6. **\[Type (種別)\]**​ 項目をこの On-Error 戦略によって処理される Mule エラーに設定します (例: `XML-MODULE:SCHEMA_NOT_HONOURED`​)。 7. **\[Enable Notifications (通知を有効化)\]**​ および ​**\[Log Exception (例外を記録)\]**​ 項目をオフにします。 8. **\[For Each\]**​ スコープコンポーネントを ​**\[On Error Propagate\]**​ コンポーネントにドラッグして各 ​`errorMessage.payload`​ を反復処理します。 9. **\[Collection (コレクション)\]**​ 項目を、ペイロードを各部分に分割する式に設定します (例: `#[error.errorMessage.payload]`​)。 10. **\[Logger\]**​ コンポーネントを ​**\[For Each\]**​ スコープコンポーネントにドラッグして、XML Module エラーを記録します。 11. **\[Message (メッセージ)\]**​ 項目を、メッセージを記述する ​`SchemaViolation`​ オブジェクトが含まれる式に設定します (例: `#['At line: $(payload.lineNumber), column: $(payload.columnNumber) → $(payload.description)']`​)。 12. 変更を保存します。 13. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\] > \[Run As (別のユーザーとして実行)\] > \[Mule Application (Mule アプリケーション)\]**​ をクリックします。 14. コンソールビューに移動して、ロガーメッセージを読み取ります。 ```none ERROR 2018-02-16 14:35:45,722 [[MuleRuntime].cpuIntensive.01: [SchemaValidationTestCase#extractErrorsUsingExpressions].extractErrorsFromException.CPU_INTENSIVE @411e886b] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: At line: -1, column: -1 -> cvc-complex-type.2.4.a: Invalid content was found starting with element 'fail'. One of '{used}' is expected. ``` ![XML Module で検証エラーを管理するフロー](/mulesoft/current/ja-jp/xml-module/latest/_images/xml-validate-schema-3.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#スキーマテキストコンテンツを設定する)スキーマテキストコンテンツを設定する 次の例では、​**Validate schema**​ 操作の ​**\[Schema contents (スキーマコンテンツ)\]**​ 項目を設定します。スキーマテキストをこの項目に入力して、スキーマ検証を実行します。
スキーマコンテンツを追加するには、スキーマとスキーマコンテンツの両方ではなくいずれかのみを指定します。​[Schemas (スキーマ)]​ 項目でファイルをアップロードするか、または ​[Schema contents (スキーマコンテンツ)]​ 項目で直接スキーマテキストコンテンツを手動で追加することができます。
1. Studio で、フローから ​**Validate schema**​ 操作を選択します。 2. **Validate schema**​ 操作の設定画面で、​**\[Schema contents (スキーマコンテンツ)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 ![Validate schema の設定画面で \[Edit inline (インライン編集)\] に設定された \[Schema content (スキーマコンテンツ)\] 項目](_images/xml-schema-content-1.png) 1. プラス記号をクリックして、スキーマ名とテキストを追加します。 2. **\[Schema content (スキーマコンテンツ)\]**​ ウィンドウの ​**\[Schema name (スキーマ名)\]**​ 項目に、​`schema1.xsd`​ などのスキーマ名を入力します。 3. **\[Schema text (スキーマテキスト)\]**​ 項目に、次のようなスキーマテキストコンテンツを入力します。 ```xml ``` ![「Schema name (スキーマ名)」 項目と 「Schema text (スキーマテキスト)」 項目が含まれる 「Schema content (スキーマコンテンツ)」 ウィンドウ](/mulesoft/current/ja-jp/xml-module/latest/_images/xml-schema-content-2.png) 1. **\[Finish (完了)\]**​ をクリックします。 ## [](#関連情報)関連情報 - [XML Module の例](https://docs.mulesoft.com/jp/xml-module/latest/xml-module-examples) - [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/latest/) # XML Module を使用した XSLT 変換 ``​ 要素は入力 XML ドキュメントを受け入れ、XSL スタイルシートを使用して変換できます。 MuleSoft は XSLT 標準をサポートしていますが、XML ドキュメントを抽出して変換するツールとして DataWeave をお勧めします。 XML 入力ドキュメントの例を次に示します。 ```xml ``` 次のように XML 入力ドキュメントを変換できます。 ```xml
Country City List Population
]]>
``` このスクリプトは、次のドキュメントを出力します。 ```xml
Country City List Population
italy milan, venice 6
france paris, lyon 9
germany munich 4
``` この操作はデフォルトでメッセージペイロードレベルで入力ドキュメントを検索しますが、独自の入力を指定できます。たとえば、都市がペイロード内の JSON 配列であるとします。その場合、最初に JSON を XML に変換し、次に XSL 変換を実行することもできます。 ```xml ``` ## [](#xsl-スタイルシートの個別のファイルへの外部化)XSL スタイルシートの個別のファイルへの外部化 XSLT スクリプトを Mule アプリケーションに組み込まずに済むように、次のように、ファイルを使用してモジュールに渡すことができます。 ```xml ${file::xslt/cities.xslt} ``` より複雑なユースケースでは、使用するスクリプトが外的な条件に応じて異なる場合もあります。たとえば、使用する変換が ​`userId`​ に応じて異なるマルチテナントのインテグレーションを考えてみます。 ```xml // 1 #[vars.xslt] ``` 1. フロー例は HTTP 要求によってトリガーされます。 2. この例は、クエリパラメーターとして提供される ​`userId`​ 値と、正しい XSL が含まれるファイルを読み取って変数に保存するために使用される File Connector に基づきます。 3. この例では次に、​`Read`​ 操作を使用して取得された XSL シートを参照する式を使用して変換を実行します。 HTTP Connector と File Connector は単に例として使用しており、同様のユースケースを実行するために必要なわけではありません。 ## [](#コンテキストプロパティの使用)コンテキストプロパティの使用 XML Module は XSL 言語と同じように、変換にパラメーターを渡すことができるコンテキストプロパティを提供します。次の例では、​``​ 要素に引数マップを作成する DataWeave 式が含まれています。 ```xml (1) (2) ]]> #[{'vtn' : 'some value'}] (3) ``` 1. XSL スタイルシートは ​`vtn`​ と呼ばれる ​`param`​ を宣言します。 2. スタイルシートは ​`$`​ プレフィックスを使用して ​`param`​ の割り当てられた値を参照します。 3. この例では、​`context-properties`​ パラメーターを使用して値を内部に渡します。 ## [](#出力-mime-タイプ)出力 MIME タイプ XSLT の最も一般的なユースケースは新しい XML ドキュメントの出力です。ただし、XSLT は JSON、CSV、またはテキストや数値などの他の形式でドキュメントを生成することもできます。つまり、生成された値では特定の MIME タイプが割り当てられません。​`outputMimeType`​ パラメーターを使用して MIME タイプを指定する必要があります。 ## [](#関連情報)関連情報 [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/1.2/) # XML Module を使用した XSLT 変換 ``​ 要素は入力 XML ドキュメントを受け入れ、XSL スタイルシートを使用して変換できます。 MuleSoft は XSLT 標準をサポートしていますが、XML ドキュメントを抽出して変換するツールとして DataWeave をお勧めします。 XML 入力ドキュメントの例を次に示します。 ```xml ``` 次のように XML 入力ドキュメントを変換できます。 ```xml
Country City List Population
]]>
``` このスクリプトは、次のドキュメントを出力します。 ```xml
Country City List Population
italy milan, venice 6
france paris, lyon 9
germany munich 4
``` この操作はデフォルトでメッセージペイロードレベルで入力ドキュメントを検索しますが、独自の入力を指定できます。たとえば、都市がペイロード内の JSON 配列であるとします。その場合、最初に JSON を XML に変換し、次に XSL 変換を実行することもできます。 ```xml ``` ## [](#xsl-スタイルシートの個別のファイルへの外部化)XSL スタイルシートの個別のファイルへの外部化 XSLT スクリプトを Mule アプリケーションに組み込まずに済むように、次のように、ファイルを使用してモジュールに渡すことができます。 ```xml ${file::xslt/cities.xslt} ``` より複雑なユースケースでは、使用するスクリプトが外的な条件に応じて異なる場合もあります。たとえば、使用する変換が ​`userId`​ に応じて異なるマルチテナントのインテグレーションを考えてみます。 ```xml // 1 #[vars.xslt] ``` 1. フロー例は HTTP 要求によってトリガーされます。 2. この例は、クエリパラメーターとして提供される ​`userId`​ 値と、正しい XSL が含まれるファイルを読み取って変数に保存するために使用される File Connector に基づきます。 3. この例では次に、​`Read`​ 操作を使用して取得された XSL シートを参照する式を使用して変換を実行します。 HTTP Connector と File Connector は単に例として使用しており、同様のユースケースを実行するために必要なわけではありません。 ## [](#コンテキストプロパティの使用)コンテキストプロパティの使用 XML Module は XSL 言語と同じように、変換にパラメーターを渡すことができるコンテキストプロパティを提供します。次の例では、​``​ 要素に引数マップを作成する DataWeave 式が含まれています。 ```xml (1) (2) ]]> #[{'vtn' : 'some value'}] (3) ``` 1. XSL スタイルシートは ​`vtn`​ と呼ばれる ​`param`​ を宣言します。 2. スタイルシートは ​`$`​ プレフィックスを使用して ​`param`​ の割り当てられた値を参照します。 3. この例では、​`context-properties`​ パラメーターを使用して値を内部に渡します。 ## [](#出力-mime-タイプ)出力 MIME タイプ XSLT の最も一般的なユースケースは新しい XML ドキュメントの出力です。ただし、XSLT は JSON、CSV、またはテキストや数値などの他の形式でドキュメントを生成することもできます。つまり、生成された値では特定の MIME タイプが割り当てられません。​`outputMimeType`​ パラメーターを使用して MIME タイプを指定する必要があります。 ## [](#関連情報)関連情報 [XML Module の概要](https://docs.mulesoft.com/jp/xml-module/1.3/) # XML Module を使用した XSLT 変換 ``​ 要素は入力 XML ドキュメントを受け入れ、XSL スタイルシートを使用して変換できます。 MuleSoft は XSLT 標準をサポートしていますが、XML ドキュメントを抽出して変換するツールとして DataWeave をお勧めします。 XML 入力ドキュメントの例を次に示します。 ```xml ``` 次のように XML 入力ドキュメントを変換できます。 ```xml
Country City List Population
]]>
``` このスクリプトは、次のドキュメントを出力します。 ```xml
Country City List Population
italy milan, venice 6
france paris, lyon 9
germany munich 4
``` この操作はデフォルトでメッセージペイロードレベルで入力ドキュメントを検索しますが、独自の入力を指定できます。たとえば、都市がペイロード内の JSON 配列であるとします。その場合、最初に JSON を XML に変換し、次に XSL 変換を実行することもできます。 ```xml ``` ## [](#xsl-スタイルシートの個別のファイルへの外部化)XSL スタイルシートの個別のファイルへの外部化 XSLT スクリプトを Mule アプリケーションに組み込まずに済むように、次のように、ファイルを使用してモジュールに渡すことができます。 ```xml ${file::xslt/cities.xslt} ``` より複雑なユースケースでは、使用するスクリプトが外的な条件に応じて異なる場合もあります。たとえば、使用する変換が ​`userId`​ に応じて異なるマルチテナントのインテグレーションを考えてみます。 ```xml // 1 #[vars.xslt] ``` 1. フロー例は HTTP 要求によってトリガーされます。 2. この例は、クエリパラメーターとして提供される ​`userId`​ 値と、正しい XSL が含まれるファイルを読み取って変数に保存するために使用される File Connector に基づきます。 3. この例では次に、​`Read`​ 操作を使用して取得された XSL シートを参照する式を使用して変換を実行します。 HTTP Connector と File Connector は単に例として使用しており、同様のユースケースを実行するために必要なわけではありません。 ## [](#コンテキストプロパティの使用)コンテキストプロパティの使用 XML Module は XSL 言語と同じように、変換にパラメーターを渡すことができるコンテキストプロパティを提供します。次の例では、​``​ 要素に引数マップを作成する DataWeave 式が含まれています。 ```xml (1) (2) ]]> #[{'vtn' : 'some value'}] (3) ``` 1. XSL スタイルシートは ​`vtn`​ と呼ばれる ​`param`​ を宣言します。 2. スタイルシートは ​`$`​ プレフィックスを使用して ​`param`​ の割り当てられた値を参照します。 3. この例では、​`context-properties`​ パラメーターを使用して値を内部に渡します。 ## [](#出力-mime-タイプ)出力 MIME タイプ XSLT の最も一般的なユースケースは新しい XML ドキュメントの出力です。ただし、XSLT は JSON、CSV、またはテキストや数値などの他の形式でドキュメントを生成することもできます。つまり、生成された値では特定の MIME タイプが割り当てられません。​`outputMimeType`​ パラメーターを使用して MIME タイプを指定する必要があります。 ## [](#関連情報)関連情報 [XML Module](https://docs.mulesoft.com/jp/xml-module/latest/)