場合によって、形式固有のプロパティを使用して、形式の各側面を変更または指定することが必要になることがあります。たとえば、separator (または区切り文字) など、CSV ファイルで使用する、CSV の入力および出力プロパティを指定できます。
Cobol コピーブックでは、schemaPath プロパティを使用して、スキーマファイルへのパスを指定する必要があります。
Mule アプリケーション内の特定のコンポーネントの MIME タイプ (outputMimeType) 属性にリーダープロパティを追加できます。Listeners および Read 操作ではこの設定が受け入れられます。たとえば、この新規ファイルリスナーの例では、CSV 入力ファイルの , 区切り文字を識別します。
例: CSV リーダーのプロパティ
<file:listener doc:name="On New File" config-ref="File_Config" outputMimeType='application/csv; separator=","'>
<scheduling-strategy >
<fixed-frequency frequency="45" timeUnit="SECONDS"/>
</scheduling-strategy>
<file:matcher filenamePattern="comma_separated.csv" />
</file:listener>
上記の outputMimeType 設定は、ライターではなく CSV リーダーが comma_separated.csv 入力ファイルの形式と区切り文字を解釈するのに役立ちます。
出力形式を指定するには、File Write 操作で使用する CSV または JSON ライターなど、ライターの MIME タイプと任意のライタープロパティを提供できます。たとえば、CSV 出力のペイロードで、入力で使用する他の区切り文字ではなくパイプ (|) 区切り文字を記述しなければならない場合があります。これを行うには、プロパティとその値を DataWeave 式の output ディレクティブに追加します。たとえば、次の Write 操作ではパイプを separator として指定しています。
例: CSV ライターの出力ディレクティブ
<file:write doc:name="Write" config-ref="File_Config" path="my_transform">
<file:content ><![CDATA[#[output application/csv separator="|" --- payload]]]></file:content>
</file:write>
次の例は、output ディレクティブで 2 つのライタープロパティを指定する DataWeave スクリプトを示しています。1 つは CSV 項目の区切り文字用で、もう 1 つはヘッダーがないことを示します。
%dw 2.0
output application/csv separator=";", header=false
---
payload
ライタープロパティは形式によって異なります。次の例では、JSON ライタープロパティ skipNullOn を使用します。
%dw 2.0
output application/json skipNullOn="everywhere"
---
payload
次の例では、DataWeave スクリプトが非表示の ASCII 文字を CSV 出力の区切り文字として使用しています。区切り文字のプロパティ値は \u001E です。\u はエスケープシーケンス表現で、001E はレコード区切り文字 (RS) である ASCII 文字の 16 進表現です。
%dw 2.0
output application/csv separator = "\u001E"
---
[
{
"Name" : "Tom",
"UID" : 2569,
"ShipOrderID" : "ui-288188"
},
{
"Name" : "Alan",
"UID" : 7756,
"ShipOrderID" : "xj-232142"
},
{
"Name" : "Dan",
"UID" : 7821,
"ShipOrderID" : "uk-259459"
}
]
NameUIDShipOrderID
Tom2569ui-288188
Alan7756xj-232142
Dan7821uk-259459
read または readUrl メソッドを使用するスクリプトでは、readerProperties パラメーターを介してリーダープロパティを指定することもできます。「read」の例を参照してください。ただし、CSV リーダーの例に示されるように、リーダープロパティは HTTP リスナーなどのメッセージソースでより一般的に使用されます。