この SELECT 句の拡張バージョンは、ファイル名を XML ストリームに割り当てます。
形式

構文規則
- file-name-1 は、XML ストリームを含むファイルの名前です。
- LINE ADVANCING は、改行を出力に含めることを指定します。
- NOT LINE ADVANCING は、改行を出力に含めないことを指定します。
- literal-1 は英数字の文字定数にする必要があります。
- liteal-1 または data-name-1 は、COBOL ファイル指定子にする必要があります。
- data-name-2 は、実行時に XML データを含む英数字のデータ項目です。
- pointer-name-1 は XML データを含むメモリ バッファーのアドレスです。
- data-name-3 は pointer-name-1 で指定されたバッファーの長さです。
- EXTERNAL は、この XML ストリームが準拠するスキーマが外部であることを示します。これは、単に情報を示すためのもので、入力や出力には影響しません。
- OMITTED は、XML ファイルにスキーマを関連付けないことを指定します。
- literal-2 または data-name-4 は、レコードが準拠するスキーマの生成された名前または外部名です。たとえば、外部スキーマの場合は、ファイルに対する完全な URL (「http://www.microfocus.com/nx40/cobol/v2.0/foo.xsd」 など) になります。
- data-name-5 は PIC S9(9) (使用方法は問いません) としてデータ部で宣言する必要があり、最後の入出力動作に対するファイル状態を保持します。
一般規則
- LINE ADVANCING も NOT LINE ADVANCING も指定されていない場合、改行は出力に含まれます。
- Web ベースでないアプリケーションでの literal-1 または data-name-1 は、次のような COBOL ファイル指定子です。
- literal-1 または data-name-1 は、クライアント側の Web ベースのアプリケーションでは次のようになります。
- Web サイトにある CGI プログラム (「http://www.bookdb.com:80/cgibin/xmlprog.exe」など)
- XML ファイル (「http://localhost/xmlfile.xml」など)
- CGI での literal-1 または data-name-1 は、サーバー側の Web アプリケーションでは 「:CGI:」 です。この場合、標準入力ストリーム (stdin) を読み込む際に、環境変数 CONTENT_LENGTH が想定されます。「:CGI:」 は、開かれた INPUT または OUTPUT であり、I-O または EXTEND ではありません。
- DOCUMENT-TYPE が指定されていない場合、スキーマは XML ファイルに関連付けられません。次に例を示します。
次のコードは、
SELECT xml-addressdb
ASSIGN 'address.xml'
ORGANIZATION IS XML
DOCUMENT-TYPE IS OMITTED
FILE STATUS xml-status.
次の文に相当します。
SELECT xml-addressdb
ASSIGN 'address.xml'
ORGANIZATION IS XML
FILE STATUS xml-status.
- CHECK 句は複数回繰り返すことができます。次に例を示します。
SELECT foobar
ASSIGN TO "foobar.xml"
ORGANIZATION IS XML
DOCUMENT TYPE IS "foobar.xsd"
CHECK VALIDITY ON INPUT
CHECK OUTPUT.