---
schema_version: "1"
id: b7314a2a61369390ee89d591d7602164cc1655310a1b71208d8b5d8cfcafdfb4
title: XML Module を使用した XSD スキーマに対するドキュメントの検証
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/xml-module/1.2/xml-schema-validation.md
canonical_url: https://docs.mulesoft.com/jp/xml-module/1.2/xml-schema-validation
source_site: docs.mulesoft.com
content_type: documentation
content_hash: e5652516053162fedd8d0a0a6c5b2ddfb1174d64866324d58bda558f12cb569e
description: MuleSoft Documentation Site
release: "1.2"
latest: false
---
# XML Module を使用した XSD スキーマに対するドキュメントの検証

`<xml-module:validate-schema>`​ 操作は、入力コンテンツが指定されたスキーマに準拠していることを検証します。この操作は、相互を含む多数のスキーマの参照 (区切り文字としてカンマを使用) をサポートしています。

次の例は、ウィリアム・シェイクスピアの戯曲『オセロ』の脚本を記載した XML を処理する方法を示しています。XML ファイルは次のようになります。

```xml
<flow name="process">
    <xml-module:validate-schema schemas="schema1.xsd, schema2.xsd" />
    <flow-ref name="processValidDocument" />
</flow>
```

この操作はデフォルトで、メッセージペイロードレベルで入力ドキュメントを検索します。他方、次のような独自の入力を行うこともできます。

```xml
<flow name="process">
    <file:read path="document.xml" target="xmlDoc" />
    <xml-module:validate-schema schemas="schema1.xsd, schema2.xsd">
        <xml-module:content>#[vars.xmlDoc]</xml-module:content>
    </xml:module:validate-schema>
    <flow-ref name="processValidDocument" />
</flow>
```

`<validation:all>`​ 要素内の ​`<xml-module:validate-schema>`​ コンポーネントを使用できます。

## [](#検証エラーの処理)検証エラーの処理

検証に成功した場合は何も起こらず、フローの次の操作に進みます。失敗した場合は、​`XML-MODULE:SCHEMA_NOT_HONOURED`​ エラーが生じます。

`XML-MODULE:SCHEMA_NOT_HONOURED`​ は複雑なエラーです。検証に失敗する理由は多数あるため、エラーにはメッセージのリストが含まれます。各メッセージには、次のような構造の ​`SchemaViolation`​ オブジェクトが含まれます。

SchemaViolation オブジェクト

```yaml
{
  lineNumber: Number,
  columnNumber: Number,
  description: String
}
```

次の例を考えてみます。

```xml
 <flow name="extractErrorsFromException">
    <try>
        <xml-module:validate-schema schemas="schema.xsd" /> (1)
        <error-handler>
            <on-error-propagate type="XML-MODULE:SCHEMA_NOT_HONOURED"> (2)
                <foreach collection="#[error.errorMessage.payload]">
                    <logger level="ERROR" message="#['At line: $(payload.lineNumber), column: $(payload.columnNumber) -> $(payload.description)']" /> (3)
                </foreach>
            </on-error-propagate>
        </error-handler>
    </try>
</flow>
```

```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/)