---
schema_version: "1"
id: 92b5876df2837cff61ae3fa578e76f89e9721493a35db4354eb98bca61de96d1
title: X12 EDI スキーマ言語リファレンス
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/x12-edi-connector/2.1/x12-edi-schema-language-reference.md
canonical_url: https://docs.mulesoft.com/jp/x12-edi-connector/2.1/x12-edi-schema-language-reference
source_site: docs.mulesoft.com
content_type: documentation
content_hash: bd9c20fe015d19e5de6dff44f78039b47f7f2718582bbb39e094bd4c4bc90030
description: MuleSoft Documentation Site
release: "2.1"
latest: false
---
# X12 EDI スキーマ言語リファレンス

X12 EDI Module では ESL (EDI スキーマ言語) と呼ばれる YAML 形式を使用して EDI スキーマを表現します。基本 ESL は、構造、セグメント、複合、要素の観点で EDI メッセージの構造を定義します。ESL は X12、EDIFACT、TRADACOMS、HL7 をサポートしています。

## [](#esl-ドキュメントのコンポーネント)ESL ドキュメントのコンポーネント

ESL ドキュメントの最上位の定義には、使用されている EDI 標準 (X12、EDIFACT、HL7、TRADACOMS がサポートされている)、その標準のバージョン、インポート ESL の省略可能リスト、構造、セグメント、複合、要素定義の任意の組み合わせがあります。次に、`/x12/005010/850.esl`​ スキーマからこれらの最上位の定義の例を示します。

```yaml
form: X12
version: '005010'
imports: [ '/x12/005010/basedefs.esl' ]
structures:
- id: '850'
  name: Purchase Order
  class: PO
  ...
```

このモジュールには `basedefs.esl`​ という名前の各 X12 および EDIFACT バージョンの ESL が含まれており、標準セグメント、複合、要素定義が提供されます。この 850 購入注文の例では、これらをインポートして注文構造の定義で定義を再利用します。

## [](#構造定義)構造定義

構造定義は X12 トランザクションセットまたは EDIFACT メッセージを表し、標準特性のキーと値のペアと実際の構造を構成するセグメントのリストで構成されています。セグメントリストは見出し、詳細、概要の各セクションに分かれています。セグメントは、反復する可能性のある一連のセグメントで構成されるグループにさらに整理することができます。

次に、再び `/x12/005010/850.esl`​ スキーマから構造定義のサンプルの一部を示します。

```yaml
- id: '850'
  name: Purchase Order
  class: PO
  heading:
  - { idRef: 'ST', position: '0100', usage: M }
  - { idRef: 'BEG', position: '0200', usage: M }
  - { idRef: 'CUR', position: '0400', usage: O }
  - { idRef: 'REF', position: '0500', usage: O, count: '>1' }
  - { idRef: 'PER', position: '0600', usage: O, count: 3 }
  - { idRef: 'TAX', position: '0700', usage: O, count: '>1' }
  - { idRef: 'FOB', position: '0800', usage: O, count: '>1' }
  - { idRef: 'CTP', position: '0900', usage: O, count: '>1' }
  - { idRef: 'PAM', position: '0950', usage: O, count: 10 }
  - { idRef: 'CSH', position: '1100', usage: O, count: 5 }
  - { idRef: 'TC2', position: '1150', usage: O, count: '>1' }
  - groupId: 'SAC'
    usage: O
    count: 25
    items:
    - { idRef: 'SAC', position: '1200', usage: O }
    - { idRef: 'CUR', position: '1250', usage: O }
  - { idRef: 'ITD', position: '1300', usage: O, count: '>1' }
  - { idRef: 'DIS', position: '1400', usage: O, count: 20 }
  ...
```

基本的な構造値は次のようになります。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<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"><div class="content"><div class="paragraph">
<p>id</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>name (名前)</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>クラス</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>構造のクラス。X12 機能グループ識別子に相当 - EDIFACT 構造定義では無視されます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>heading (見出し)</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>detail (詳細)</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>summary (概要)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>構造の見出しセクション内のセグメントおよびグループのリスト。</p>
</div></div></td>
</tr>
</tbody>
</table>

構造の異なるセクションのセグメントのリストはすべて同じフォームを使用します。リスト内の各項目はセグメント参照またはグループ定義です。セグメント参照はコンパクト YAML 構文を使用して示されます。この構文では、各参照の値は、中括弧で囲まれたカンマ区切りのキー-値ペアとして提供されます。

次の値があります。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<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"><div class="content"><div class="paragraph">
<p>idRef</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>参照されるセグメント ID。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>position (位置)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>セクション内のセグメントの位置 (EDI 規定により、これらは先行ゼロを含む可能性がある数値であり、引用符で囲まれて文字列として処理されます)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>usage (使用方法)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>使用コード。次の値が考えられます。</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Conditional (条件) の「C」</p>
</li>
<li>
<p>M: 必須</p>
</li>
<li>
<p>O: 省略可能</p>
</li>
<li>
<p>U: 不使用。データから項目を完全に除外する</p>
</li>
<li>
<p>I: 無視。データに存在しても構わないが (HL セグメントの場合は存在する必要がある) メタデータとしてユーザーには表示しない</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>count (数)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>最大反復数の値。数値、または任意の反復数を意味する特殊な値 <code>&gt;1</code>​ を使用できます (省略可能。指定しない場合は 1 の値が使用される)。</p>
</div></div></td>
</tr>
</tbody>
</table>

グループ定義は拡張形式で表示され、キーと値のペアが個別の行に表示されます。グループ定義内の値を次に示します。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<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"><div class="content"><div class="paragraph">
<p>groupId</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>usage (使用方法)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>使用コード。次の値が考えられます。</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Conditional (条件) の「C」</p>
</li>
<li>
<p>M: 必須</p>
</li>
<li>
<p>O: 省略可能</p>
</li>
<li>
<p>U: 不使用。データから項目を完全に除外する</p>
</li>
<li>
<p>I: 無視。データに存在しても構わないが (HL セグメントの場合は存在する必要がある) メタデータとしてユーザーには表示しない</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>count (数)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>最大反復数の値。数値、または任意の反復数を意味する特殊な値 <code>&gt;1</code>​ を使用できます (省略可能、指定しない場合は 1 の値が使用される)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>items (項目)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>グループを構成するセグメント (およびネストされている可能性のあるグループ) のリスト。</p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#セグメント定義)セグメント定義

セグメント定義も同様に標準文字のキーと値のペアと実際のセグメントを構成する値 (要素および複合) のリストで構成されています。次に、`/x12/005010/basedefs.esl`​ スキーマからセグメント定義のサンプルの一部を示します - usage: M は mandatory (必須)、O は Optional (省略可能) です。

```yaml
- id: 'BAK'
  name: Beginning Segment for Purchase Order Acknowledgment
  values:
  - { idRef: '353', usage: M }
  - { idRef: '587', usage: M }
  - { idRef: '324', usage: M }
  - { idRef: '373', usage: M }
  - { idRef: '328', usage: O }
  - { idRef: '326', usage: O }
```

セグメント定義値は次のとおりです。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<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"><div class="content"><div class="paragraph">
<p>id</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>name (名前)</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>values</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>セグメント内の要素および複合のリスト。</p>
</div></div></td>
</tr>
</tbody>
</table>

値リストは ID によって要素および複合を参照し、各参照の値が中括弧で囲まれたカンマ区切りのキーと値のペアとして指定されるコンパクトな YAML 構文を使用して表示されます。この参照の値を次に示します。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<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"><div class="content"><div class="paragraph">
<p>idRef</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>参照される要素または複合 ID。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>position (位置)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>セグメント内の値の位置 (省略可能。通常は使用されず、デフォルトでは、位置は 1 から始まり、連続する値ごとに 1 ずつ増加する)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>name (名前)</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>usage (使用方法)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>使用コード。次の値が考えられます。</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Conditional (条件) の「C」</p>
</li>
<li>
<p>M: 必須</p>
</li>
<li>
<p>O: 省略可能</p>
</li>
<li>
<p>U: 不使用。データから項目を完全に除外する</p>
</li>
<li>
<p>I: 無視。データに存在しても構わないが (HL セグメントの場合は存在する必要がある) メタデータとしてユーザーには表示しない</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>count (数)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>最大反復数の値。任意の数値、または任意の反復数を意味する特殊な値「&gt;1」を使用できます (省略可能。指定しない場合は 1 の値が使用される)。</p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#複合定義)複合定義

複合定義はセグメント定義とよく似ており、同様に標準文字のキーと値のペアと実際の複合を構成する値 (要素および複合) のリストで構成されています。次に、`/x12/005010/basedefs.esl`​ スキーマから複合定義のサンプルの一部を示します。

```yaml
- id: 'C022'
  name: 'Health Care Code Information'
  values:
  - { idRef: '1270', usage: M }
  - { idRef: '1271', usage: M }
  - { idRef: '1250', usage: C }
  - { idRef: '1251', usage: C }
  - { idRef: '782', usage: O }
```

複合定義値は次のとおりです。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name (名前)</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>id</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>name (名前)</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>values</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>複合内の要素と複合のリスト。</p>
</div></div></td>
</tr>
</tbody>
</table>

値リストは ID によって要素および複合を参照し、各参照の値が中括弧で囲まれたカンマ区切りのキーと値のペアとして指定されるコンパクトな YAML 構文を使用して表示されます。この参照の値を次に示します。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name (名前)</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>idRef</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>参照される要素または複合 ID。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>position (位置)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>複合内の値の位置 (省略可能。通常は使用されず、デフォルトでは、位置は 1 から始まり、連続する値ごとに 1 ずつ増加する)。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>usage (使用方法)</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>使用コード。次の値が考えられます。</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Conditional (条件) の「C」</p>
</li>
<li>
<p>M: 必須</p>
</li>
<li>
<p>O: 省略可能</p>
</li>
<li>
<p>U: 不使用。データから項目を完全に除外する</p>
</li>
<li>
<p>I: 無視。データに存在しても構わないが (HL セグメントの場合は存在する必要がある) メタデータとしてユーザーには表示しない</p>
</li>
</ul>
</div></div></td>
</tr>
</tbody>
</table>

## [](#要素定義)要素定義

要素定義は非常にシンプルで、標準文字の基本的なキーと値のペアで構成されます。

次に、`/x12/005010/basedefs.esl`​ スキーマから要素定義をいくつか示します。

```yaml
elements:
  - { id: '1', name: 'Route Code', type: AN, minLength: 1,
      maxLength: 13 }
  - { id: '100', name: 'Currency Code', type: ID, minLength: 3,
      maxLength: 3 }
  - { id: '1000', name: 'Service Characteristics Qualifier',
      type: AN, minLength: 2, maxLength: 3 }
```

要素定義値は次のとおりです。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name (名前)</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>id</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>name (名前)</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>型</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>値種別コード。次の値を使用できます (Binary (バイナリ) データ型は現在サポートされていません)。</p>
</div>
<div class="ulist">
<ul>
<li>
<p>整数の場合は N。</p>
</li>
<li>
<p>指定された位置に暗黙の小数点を含む数値の場合は N0-N9 (N0 は N に相当)。</p>
</li>
<li>
<p>小数の場合は R。</p>
</li>
<li>
<p>識別子の場合は ID。</p>
</li>
<li>
<p>英数字の文字列の場合は AN。</p>
</li>
<li>
<p>日付の場合は DT。</p>
</li>
<li>
<p>時刻の場合は TM。</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>minLength</p>
</div></div></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"><div class="content"><div class="paragraph">
<p>maxLength</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>値の有意文字の最大数。</p>
</div></div></td>
</tr>
</tbody>
</table>