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.