---
schema_version: "1"
id: fcff11e9f8f936418acddffb7c4426d0843e2699a67f1a978b20f2985a8c81a6
title: XML 形式
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/dataweave/2.6/dataweave-formats-xml.md
canonical_url: https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-formats-xml
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 776907b280f8aecce48c0674bfff07bd9ff1612de5e68e90b55e1e9b98ea8996
description: MuleSoft Documentation Site
release: "2.6"
latest: false
---
# XML 形式

MIME タイプ: `application/xml`

ID: `xml`

XML データ構造は、他のオブジェクト、文字列、または ​`null`​ 値が含まれている可能性がある DataWeave オブジェクトにマップされます。XML で無制限要素を使用してコレクションを表します。コレクションは DataWeave オブジェクトの反復キーにマップされます。また、DataWeave では ​`namespaces`​、​`CData`​、​`xsi:types`​ がネイティブにサポートされます。

XML 入力の DataWeave リーダーでは、次の解析戦略がサポートされます。

- インデックス付き
- メモリ内
- ストリーミング

DataWeave リーダーおよびライターでこの形式に適用できる解析戦略を理解するには、​[「DataWeave 解析戦略」](https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-formats#dw_readers_writers)​を参照してください。

## [](#format_xml_cdata)`CData`​ カスタム型

`CData`​ は、文字データ (CDATA) ブロックを識別するために使用する XML のカスタム DataWeave データ型です。​`CData`​ 型により、XML ライターは ​`CDATA`​ ブロック内でコンテンツをラップしたり、​`CDATA`​ ブロック内に入力文字列があるかどうかを確認したりできるようになります。DataWeave では、​`CData`​ は型 ​`String`​ から継承されます。

## [](#doctype-カスタム型)`DocType`​ カスタム型

`DocType`​ は、文書型宣言 (DTD) を識別するために使用する XML のカスタム DataWeave データ型です。

## [](#dtd-の読み取りおよび書き込み)DTD の読み取りおよび書き込み

_DataWeave 2.5.0 で導入されました。Mule 4.5.0 以降でサポートされます。_

DataWeave は、XML ファイルの文書型宣言の読み取りおよび書き込みを行うことができます。

DataWeave は、読み取りフェーズで文書型宣言を解析して、コンテンツをルート要素のメタデータとして保存します。​`DocType`​ 値は、​`docType`​ 変数に保存されます。 [メタデータセレクター](https://docs.mulesoft.com/dataweave/latest/dataweave-selectors)​ (​`^`​) を使用して、次のような式でその変数の値を抽出できます。

- `payload.^docType`
    
    例​[例: DTD 値を読み取る](#example12)​、​[例: DTD 値を書き込む](#example13)​、​[例: DTD 値を文字列表現に変換する](#example14)​を参照してください。

[メタデータセレクター](https://docs.mulesoft.com/dataweave/latest/dataweave-selectors.adoc)​を使用してアクセスできます。

NOTE

デフォルトでは、宣言が読み取りおよび書き込みされる場合でも、DTD は無効になっています。詳細は、​[Reader のプロパティ](#reader_properties)​の XML リーダープロパティ ​`supportDtd`​ を参照してください。

## [](#examples)例

次の例は、XML 形式の使用方法を示しています。

- [例: 入力 XML データをストリーミング](#example1)
- [例: XML の null または空の文字列](#example2)
- [例: 欠落している XML 値に対して ​`null`​ 値を出力](#example3)
- [例: 欠落している XML 値に対して ​`null`​ 値を出力](#example4)
- [例: XML 属性を DataWeave (dw) 形式で表す](#example5)
- [例: XML 名前空間を DataWeave (dw) 形式で表す](#example6)
- [例: CDATA 要素を作成](#example7)
- [例: `String`​ に CDATA があるかどうかを確認](#example8)
- [例: `inlineCloseOn`​ ライタープロパティを使用](#example9)
- [例: 反復 JSON キーを反復 XML 要素に変換](#example10)
- [例: XML 要素を JSON に変換して文字を置換する](#example11)
- [例: DTD 値を読み取る](#example12)
- [例: DTD 値を書き込む](#example13)
- [例: DTD 値を文字列表現に変換する](#example14)

さまざまなデータ形式で使用可能なリーダーとライターのプロパティについての詳細は、​[「サポートされるデータ形式」](https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-formats)​を参照してください。

### [](#example1)例: 入力 XML データをストリーミング

次の例は、XML ストリーミングのセットアップ方法を示しています。ユーザーは次のリーダープロパティを指定する必要があります。

- `streaming=true`
- `collectionPath="root.repeated"`

`collectionPath`​ 設定では、ストリーミングする要素を選択します。

ストリーミング時は、XML パーサーはすべての XML コンテンツがなくてもコンテンツの処理を開始できます。

#### [](#入力)入力

次の XML が DataWeave ソースへの入力ペイロードとして機能します。これは ​`myXML.xml`​ という XML ファイルのコンテンツであるとします。

myXML.xml

```xml
<root>
    <text>
        Text
    </text>
    <repeated>
        <user>
            <name>Mariano</name>
            <lastName>de Achaval</lastName>
            <age>36</age>
        </user>
        <user>
            <lastName>Shokida</lastName>
            <name>Leandro</name>
            <age>30</age>
        </user>
        <user>
            <age>29</age>
            <name>Ana</name>
            <lastName>Felissati</lastName>

        </user>
        <user>
            <age>29</age>
            <lastName>Chibana</lastName>
            <name>Christian</name>
        </user>

    </repeated>
</root>
```

#### [](#ソース)ソース

DataWeave スクリプトのリーダープロパティ設定は、入力をストリーミングして反復キーを処理するように XML リーダーに指示します。スクリプトは DataWeave ​`map`​ 関数を使用して反復キーを反復処理します。

```dataweave
%dw 2.0
var myInput  readUrl('classpath://myXML.xml', 'application/xml', {streaming:true, collectionPath: "root.repeated"})
output application/dw
---
myInput.root.repeated.*user map {
    n: $.name,
    l: $.lastName,
    a: $.age
}
```

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

スクリプトは、マップされた入力 XML を DataWeave (dw) 形式および MIME タイプに変換します。

```json
[
  {
    "n": "Mariano",
    "l": "de Achaval",
    "a": "36"
  },
  {
    "n": "Leandro",
    "l": "Shokida",
    "a": "30"
  },
  {
    "n": "Ana",
    "l": "Felissati",
    "a": "29"
  },
  {
    "n": "Christian",
    "l": "Chibana",
    "a": "29"
  }
]
```

### [](#example2)例: XML の null または空の文字列

XML で ​`null`​ 値を表す標準の方法はないため、​`nil`​ 属性が ​`true`​ に設定されている場合、リーダーは値を ​`null`​ にマップします。

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

次の XML が DataWeave ソースへの入力ペイロードとして機能します。 `<xsi:nil="true"`​/> の ​`nil`​ 設定に注意してください。

```xml
<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <author xsi:nil="true"/>
</book>
```

#### [](#ソース-2)ソース

DataWeave スクリプトは入力 XML を JSON 形式および MIME タイプに変換します。

```dataweave
%dw 2.0
output application/json
---
payload
```

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

出力は JSON 形式です。入力の ​`nil`​ 値が ​`null`​ に変換されていることに注意してください。

```json
{
  "book": {
    "author": null
  }
}
```

### [](#example3)例: 欠落している XML 値に対して ​`null`​ 値を出力

XML リーダープロパティ ​`nullValueOn`​ は、値 ​`blank`​ (デフォルト) または ​`empty`​ を受け入れます。

次の例では ​`nullValueOn`​ のデフォルトを使用するため、​`title`​ および ​`author`​ 要素の値を ​`null`​ にマップします。

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

次の XML が DataWeave ソースへの入力として機能します。​`title`​ および ​`author`​ 要素の値がないことに注意してください。

この入力はファイル ​`myInput.xml`​ 内のコンテンツであるとします。

myXML.xml コンテンツ:

```xml
<book>
    <author></author>
    <title>

</title>
</book>
```

#### [](#ソース-3)ソース

DataWeave スクリプトは XML 入力を JSON に変換します。デモ目的で ​`nullValueOn`​ のデフォルト (​`blank`​) が明示的に設定されていることに注意してください。

```dataweave
%dw 2.0
var myInput readUrl('classpath://myXML.xml', 'application/xml', {nullValueOn: "blank"})
output application/json
---
myInput
```

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

JSON 出力の ​`title`​ および ​`author`​ キーは ​`null`​ 値に割り当てられます。

```json
{
  "book": {
    "author": null,
    "title": null
  }
}
```

### [](#example4)例: 欠落している XML 値に対して ​`null`​ 値を出力

XML リーダープロパティ ​`nullValueOn`​ は、値 ​`blank`​ (デフォルト) または ​`empty`​ を受け入れます。

次の例では、XML リーダープロパティ ​`nullValueOn`​ が ​`empty`​ に設定されているため、​`title`​ 要素の値を ​`String`​ にマップし、​`author`​ 要素の値を ​`null`​ にマップします。

#### [](#入力-4)入力

次の XML が DataWeave ソースへの入力として機能します。​`title`​ および ​`author`​ 要素の値がないことに注意してください。この 2 つの要素の違いは、開始タグと終了タグ間のスペースにあります。​`title`​ 要素のタグは改行 (非表示文字 ​`\n`​) によって分割されていますが、​`author`​ 要素のタグはどの文字によっても分割されていません。

この入力はファイル ​`myInput.xml`​ 内のコンテンツであるとします。

myXML.xml コンテンツ:

```xml
<book>
    <author></author>
    <title>

</title>
</book>
```

#### [](#ソース-4)ソース

DataWeave スクリプトは DataWeave 変数を使用して ​`myXML.xml`​ のコンテンツを入力し、​`nullValueOn: "empty"`​ を適用します。スクリプトは XML 入力を JSON に変換します。

```dataweave
%dw 2.0
var myInput readUrl('classpath://myXML.xml', 'application/xml', {nullValueOn: "empty"})
output application/json
---
myInput
```

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

JSON 出力では ​`author`​ 要素の値が ​`null`​ にマップされ、​`title`​ 要素の値が ​`String`​ 値の ​`"\n\n"`​ (改行文字) にマップされます。

```json
{
  "book": {
    "author": null,
    "title": "\n\n"
  }
}
```

### [](#example5)例: XML 属性を DataWeave (dw) 形式で表す

次の例では、XML 属性を正規 DataWeave 表現 (​`application/dw`​ 形式および MIME タイプ) にマップします。

#### [](#入力-5)入力

この XML が DataWeave ソースへの入力ペイロードとして機能します。入力に XML 属性が含まれていることに注意してください。

```xml
<users>
  <company>MuleSoft</company>
  <user name="Leandro" lastName="Shokida"/>
  <user name="Mariano" lastName="Achaval"/>
</users>
```

#### [](#ソース-5)ソース

DataWeave スクリプトは XML 入力ペイロードを DataWeave (dw) 形式および MIME タイプに変換します。

```dataweave
%dw 2.0
output application/dw
---
payload
```

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

出力は、XML 入力が DataWeave (dw) 形式でどのように表されるかを示しています。XML 入力からの属性と空の値がどのように表されているかに注意してください。

```dataweave
{
  users: {
    company: "MuleSoft",
    user @(name: "Leandro",lastName: "Shokida"): "",
    user @(name: "Mariano",lastName: "Achaval"): ""
  }
}
```

### [](#example6)例: XML 名前空間を DataWeave (dw) 形式で表す

次の例では、XML 名前空間を正規 DataWeave 表現 (​`application/dw`​ 形式および MIME タイプ) にマップします。

#### [](#入力-6)入力

この XML が DataWeave ソースへの入力ペイロードとして機能します。入力に XML 名前空間が含まれていることに注意してください。

```xml
<root>
    <h:table xmlns:h="http://www.w3.org/TR/html4/">
      <h:tr>
        <h:td>Apples</h:td>
        <h:td>Bananas</h:td>
      </h:tr>
    </h:table>

    <f:table xmlns:f="https://www.w3schools.com/furniture">
      <f:name>African Coffee Table</f:name>
      <f:width>80</f:width>
      <f:length>120</f:length>
    </f:table>
</root>
```

#### [](#ソース-6)ソース

DataWeave スクリプトは XML 入力ペイロードを DataWeave (dw) 形式および MIME タイプに変換します。

```dataweave
%dw 2.0
output application/dw
---
payload
```

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

出力は、XML 入力が DataWeave (dw) 形式でどのように表されるかを示しています。XML からの名前空間がどのように表されているかに注意してください。

```dataweave
ns h http://www.w3.org/TR/html4/
ns f https://www.w3schools.com/furniture
---
{
  root: {
      h#table: {
        h#tr: {
          h#td: "Apples",
          h#td: "Bananas"
        }
      },
      f#table: {
        f#name: "African Coffee Table",
        f#width: "80",
        f#length: "120"
      }
  }
}
```

### [](#example7)例: CDATA 要素を作成

次の例は、​`CData`​ 型を使用して XML 出力内で CDATA 要素を作成する方法を示しています。

#### [](#ソース-7)ソース

DataWeave スクリプトの本文では、​`String`​ 値が ​`CData`​ 型に型強制されます。

```dataweave
%dw 2.0
output application/xml
---
{
    test: "A text <a>" as CData
}
```

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

出力では、入力の ​`String`​ 値が CDATA ブロックで囲まれ、CDATA ブロックには入力からの特殊文字 (​`<`​ と ​`>`​) が含まれます。

```xml
<?xml version='1.0' encoding='UTF-8'?>
<test><![CDATA[A text <a>]]></test>
```

### [](#example8)例: `String`​ に CDATA があるかどうかを確認

次の例は、提供された ​`String`​ 値が CDATA かどうかを示しています。

#### [](#入力-7)入力

この XML が DataWeave ソースへの入力ペイロードとして機能します。​`test`​ 要素に CDATA ブロックが含まれていることに注意してください。

```xml
<?xml version='1.0' encoding='UTF-8'?>
<test><![CDATA[A text <a>]]></test>
```

#### [](#ソース-8)ソース

DataWeave スクリプトは ​`is CData`​ 式を使用して ​`String`​ 値が CDATA かどうかを判別します。

```dataweave
%dw 2.0
output application/json
---
{
    test: payload.test is CDATA
}
```

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

JSON 出力には、入力の ​`String`​ 値が CDATA であることを示す値 ​`true`​ が含まれます。

```json
{
    "test": true
}
```

### [](#example9)例: `inlineCloseOn`​ ライタープロパティを使用

次の例では、​`inlineCloseOn`​ ライタープロパティを値 ​`none`​ と共に使用して、入力からのキー-値ペアに基づいてアクションを実行します。

#### [](#ソース-9)ソース

DataWeave スクリプトは本文コンテンツを XML に変換します。​`emptyElement`​ キーの値が ​`null`​ であることに注意してください。

```dataweave
%dw 2.0
output application/xml inlineCloseOn="none"
---
{
  someXml: {
    parentElement: {
      emptyElement1: null,
      emptyElement2: null,
      emptyElement3: null
    }
  }
}
```

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

`emptyElement`​ 要素は空です。これに値 ​`null`​ は含まれません。

```xml
<?xml version='1.0' encoding='UTF-8'?>
<someXml>
  <parentElement>
    <emptyElement1></emptyElement1>
    <emptyElement2></emptyElement2>
    <emptyElement3></emptyElement3>
  </parentElement>
</someXml>
```

### [](#example10)例: 反復 JSON キーを反復 XML 要素に変換

XML は反復 (無制限) 要素を使用してコレクションをエンコードします。DataWeave では、同じキーを繰り返して無制限の要素を表します。

次の例は、オブジェクトの JSON 配列内の反復キーを反復 XML 要素に変換する方法を示しています。

#### [](#入力-8)入力

この JSON 入力が DataWeave ソースへのペイロードとして機能します。配列内の ​`name`​ キーが反復していることに注意してください。

```json
{
  "friends": [
    {"name": "Mariano"},
    {"name": "Shoki"},
    {"name": "Tomo"},
    {"name": "Ana"}
  ]
}
```

#### [](#ソース-10)ソース

DataWeave スクリプトは、​`friends`​ キーの値を選択します。

```dataweave
%dw 2.0
output application/xml
---
friends: {
    (payload.friends)
}
```

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

出力では、​`name`​ キーが XML 要素として表されます。

```xml
<?xml version='1.0' encoding='UTF-8'?>
<friends>
  <name>Mariano</name>
  <name>Shoki</name>
  <name>Tomo</name>
  <name>Ana</name>
</friends>
```

[「自己終了 XML タグの出力」の例](https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-cookbook-output-self-closing-xml-tags)​も参照してください。

### [](#example11)例: XML 要素を JSON に変換して文字を置換する

この例では、​`Id`​、​`Name`​、​`Address`​ など、従業員の詳細を含む XML ファイルを反復処理して、ファイルを JSON 形式に変換します。DataWeave スクリプトでは、​`replace`​ 関数を使用して各 ​`Address`​ 要素を反復処理し、文字 ​`-`​ と ​`/`​ を空白スペースに置き換えます。

#### [](#入力-9)入力

この XML 入力が DataWeave ソースへのペイロードとして機能します。​`Address`​ 要素に ​`-`​ と ​`/`​ の文字が含まれていることに注意してください。

```xml
<?xml version='1.0' encoding='UTF-8'?>
<root>
  <employees>
    <Id>1</Id>
    <Name>Mule</Name>
    <Address>MuleSoft Avenue - 123</Address>
  </employees>
  <employees>
    <Id>2</Id>
    <Name>Max</Name>
    <Address>MuleSoft Avenue-456/5/e</Address>
  </employees>
</root>
```

#### [](#ソース-11)ソース

次の DataWeave スクリプトでは、ペイロード要素を反復処理して、オブジェクトへのマッピングを実行します。​`payload01.Address replace /([\-\,\/])/ with " "`​ の指示により、​`-`​ と ​`/`​ の文字が空白スペースに置き換えられます。

```dataweave
%dw 2.0
output application/json
---
payload.root.*employees map ((payload01 , indexOfPayload01) ->
  {
     Id: payload01.Id as String,
     Name: payload01.Name as String,
     Address: payload01.Address replace /([\-\,\/])/ with " "
  }
)
```

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

出力は、JSON に変換された XML 要素を表します。

```JSON
[
  {
    "Id": "1",
    "Name": "Mule",
    "Address": "MuleSoft Avenue   123"
  },
  {
    "Id": "2",
    "Name": "Max",
    "Address": "MuleSoft Avenue 456 5 e"
  }
]
```

### [](#example12)例: DTD 値を読み取る

次の DataWeave スクリプトは、​`DocType`​ 値が含まれる XML 入力ペイロードを JSON に変換します。式 ​`payload.^docType`​ を使用して、その文書型ディレクティブの値を抽出します。

#### [](#入力-10)入力

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML xml:lang="en-US" payloadID="1615232861.000506@prd327utl1.int.coupahost.com" timestamp="2021-03-08T11:47:42-08:00">
    <Header>
        <From>
            <Credential domain="NetworkID">
                <Identity>TestIdentity</Identity>
            </Credential>
        </From>
        <To>
            <Credential domain="TEST">
                <Identity>Identity</Identity>
            </Credential>
        </To>
    </Header>
</cXML>
```

#### [](#ソース-12)ソース

```dataweave
%dw 2.0
output application/json
---
{
    header: {
        senderId: payload.cXML.Header.From.Credential.Identity,
        receiverId: payload.cXML.Header.To.Credential.Identity,
        docType: payload.^docType
    }
}
```

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

```json
{
  "header": {
    "senderId": "Identity",
    "receiverId": "TestIdentity",
    "docType": {
      "rootName": "cXML",
      "systemId": "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd"
    }
  }
}
```

### [](#example13)例: DTD 値を書き込む

次の例は、​`docType`​ メタデータを使用して XML 出力内で ​`DocType`​ 値を作成する方法を示しています。

#### [](#ソース-13)ソース

```dataweave
%dw 2.0
output application/xml
ns xml http://www.w3.org/XML/1998/namespace

var cXmlObj = {
  cXML @(payloadID: "9949494", xml#lang: "en-US", timestamp: "2002-02-04T18:39:09-08:00"): {
      Header: {
        From: {
          Credential @(domain: "NetworkId"): {
            Identity: "Identity"
          }
        }
    }
  }
} as Object {
    docType: { rootName: "cXML", systemId: "http://xml.cXML.org/schemas/cXML/1.2.014/cXML.dtd" }
}
---
cXmlObj
```

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

```xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE cXML SYSTEM "http://xml.cXML.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML payloadID="9949494" xml:lang="en-US" timestamp="2002-02-04T18:39:09-08:00">
  <Header>
    <From>
      <Credential domain="NetworkId">
        <Identity>Identity</Identity>
      </Credential>
    </From>
  </Header>
</cXML>
```

### [](#example14)例: DTD 値を文字列表現に変換する

次の例では、​[Dtd Module (dw::xml::Dtd)](https://docs.mulesoft.com/jp/dataweave/2.6/dw-dtd)​ を使用して、​`systemId`​ が含まれる ​`DocType`​ 値を文字列表現に変換します。

#### [](#入力-11)入力

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML xml:lang="en-US" payloadID="1615232861.000506@prd327utl1.int.coupahost.com" timestamp="2021-03-08T11:47:42-08:00">
    <Header>
        <From>
            <Credential domain="NetworkID">
                <Identity>Identity</Identity>
            </Credential>
        </From>
        <To>
            <Credential domain="TEST">
                <Identity>Identity</Identity>
            </Credential>
        </To>
    </Header>
</cXML>
```

#### [](#ソース-14)ソース

```dataweave
%dw 2.0
output application/json
import * from dw::xml::Dtd
---
docTypeAsString(payload.^docType)
```

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

```JSON
"cXML SYSTEM http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd"
```

## [](#properties)Configuration のプロパティ

DataWeave では、この形式の以下の設定プロパティがサポートされています。

### [](#reader_properties)Reader のプロパティ

この形式は、入力データを読み取るための指示を提供するプロパティを受け入れます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 50.0002%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">型</th>
<th class="tableblock halign-left valign-top">デフォルト</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>collectionPath</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>コレクションが配置されているドキュメント内の場所へのパスを設定します。ストリーミングする要素の場所を識別するパス式を受け入れます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>externalEntities</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>外部エンティティを処理するかどうかを示します。デフォルトでは、XML 外部エンティティ (XXE) 攻撃を回避するために無効になっています。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>indexedReader</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>しきい値に達したとき、デフォルトでインデックス付きリーダーを使用します。US-ASCII、UTF-8、および ISO-8859-1 エンコードのみをサポートします。他のエンコードの場合、DataWeave ではメモリ内リーダーを使用します。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>maxAttributeSize</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Number</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-1</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>XML 属性で受け入れられる最大文字数を設定します。  <em>Mule 4.2.1 以降で使用できます。</em></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>maxEntityCount</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Number</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>1</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>エンティティ拡張の最大数を設定します。この制限は Billion Laughs 攻撃の回避に役立ちます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>nullValueOn</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>'blank'</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>空または空白のテキストを含む要素を ​<code>null</code>​ 値として読み取るかどうかを示します。</p>
</div>
<div class="paragraph">
<p>有効な値は ​<code>empty</code>​、​<code>none</code>​、​<code>blank</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>optimizeFor</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>'speed'</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>使用する XML パーサーの最適化の種別を設定します。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>speed</code>​ または ​<code>memory</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>streaming</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code>​ に設定すると、入力をストリーミングします。エントリを順次アクセスする場合のみ使用します。入力は最上位の配列である必要があります。​<a href="#example2">ストリーミング例</a>​と <a href="https://docs.mulesoft.com/dataweave/latest/dataweave-formats#dw_readers_writers">「DataWeave リーダー」</a>​を参照してください。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>supportDtd</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>DTD サポートを有効または無効にします。無効にすると、内部および外部のサブセットがスキップされ、処理されません。Mule システムプロパティ ​<code>com.mulesoft.dw.xml.supportDTD</code>​ を設定してこのプロパティを有効にすることもできます。このプロパティのデフォルトは、Mule バージョン 4.3.0-20210601 (2021 年 6 月の DataWeave バージョン 2.3.0 のパッチを含む) で ​<code>true</code>​ から ​<code>false</code>​ に変更されました。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
</tbody>
</table>

### [](#writer_properties)Writer のプロパティ

この形式は、出力データを書き込むための指示を提供するプロパティを受け入れます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 16.6666%;">
<col style="width: 50.0002%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">型</th>
<th class="tableblock halign-left valign-top">デフォルト</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bufferSize</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Number</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>8192</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>バッファライターのサイズ (バイト)。値は ​<code>8</code>​ よりも大きい必要があります。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>defaultNamespace</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>出力 XML のデフォルトの名前空間を指定します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>deferred</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code>​ に設定すると、出力をデータストリームとして生成し、スクリプトの実行は生成されたコンテンツがコンシュームされるまで延期されます。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>doubleQuoteInDeclaration</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code>​ に設定すると、XML 宣言の二重引用符をエスケープします。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>encoding</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>出力で使用するエンコード (UTF-8 など)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>escapeCR</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code>​ に設定すると、​<code>CR</code>​ 文字をエスケープします。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>escapeGT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code>​ に設定すると、「&gt;」文字をエスケープします。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>indent</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>デフォルトでは出力をインデントして読みやすくします。​<code>false</code>​ に設定すると、出力を 1 行に圧縮します。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>inlineCloseOn</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>'empty'</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>インラインの終了タグを出力します。この値が ​<code>null</code>​ の場合は明示的に開始および終了タグを出力します。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>empty</code>​ または ​<code>none</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>onInvalidChar</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>有効な値は ​<code>base64</code>​、​<code>ignore</code>​、​<code>none</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>skipNullOn</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>指定されたデータ構造の ​<code>null</code>​ 値をスキップします。デフォルトではスキップしません。</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>elements</code>​ + XML 出力内の ​<code>null</code>​ 要素を無視して除外します。たとえば、​<code>output application/xml skipNullOn="arrays"</code>​ のようにします。</p>
</li>
<li>
<p><code>attributes `​ + XML 内の ​`null</code>​ 属性を無視して除外します。たとえば、​<code>output application/xml skipNullOn="objects"</code>​ のようにします。</p>
</li>
<li>
<p><code>everywhere</code>​ + ​<code>skipNullOn</code>​ を要素と属性に適用します。たとえば、​<code>output application/xml skipNullOn="everywhere"</code>​ のようにします。</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>有効な値は ​<code>elements</code>​、​<code>attributes</code>​、​<code>everywhere</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>writeDeclaration</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code>​ に設定すると、XML ヘッダー宣言を出力します。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>writeDeclaredNamespaces</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>null</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>XML のルート要素内の宣言する名前空間をマークします。</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>All</code>​: ルート要素内の宣言された名前空間をすべて出力します。</p>
</li>
<li>
<p><code>ids:&lt;comma separated namespace id&gt;</code>​: 指定された名前空間のみを出力します。</p>
</li>
<li>
<p><code>regex:&lt;regex&gt;</code>​: 一致する名前空間のみを出力します。</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>writeNilOnNull</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このプロパティが ​<code>true</code>​ に設定されている場合、​<code>null</code>​ 値の ​<code>nil</code>​ 属性を出力します。</p>
</div>
<div class="paragraph">
<p>有効な値は、​<code>true</code>​ または ​<code>false</code>​ です。</p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#mime_types)サポートされる MIME タイプ

この形式では、次の MIME タイプがサポートされます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 100%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">MIME タイプ</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>*/xml</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><strong>/</strong>​+xml</code></p></td>
</tr>
</tbody>
</table>