MF 

XML 構文 - SELECT 句

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

形式


XML Syntax - SELECT clause

構文規則:

  1. file-name-1 は、XML ストリームを含むファイルの名前である。
  2. LINE ADVANCING は、改行を出力に含めることを指定する。
  3. NOT LINE ADVANCING は、改行を出力に含めないことを指定する。
  4. literal-1 は英数字定数とする。
  5. liteal-1 または data-name-1 は、COBOL ファイル指定子とする。
  6. data-name-2 は、実行時に XML データを含む英数字データ項目である。
  7. pointer-name-1 は、XML データを含むメモリ バッファーのアドレスである。
  8. data-name-3 は、pointer-name-1 にポイントされるバッファーの長さである。
  9. EXTERNAL は、この XML ストリームが準拠するスキーマが外部であることを示す。これは、単に情報を示すためのもので、入力や出力には影響しない。
  10. OMITTED は、XML ファイルにスキーマを関連付けないことを指定する。
  11. literal-2 または data-name-4 は、レコードが準拠するスキーマの生成された名前または外部名である。たとえば、外部スキーマの場合は、ファイルに対する完全な URL (「http://www.microfocus.com/nx40/cobol/v2.0/foo.xsd」など) になる。
  12. data-name-5 は、PIC S9(9) (用途は問わない) としてデータ部で宣言する必要があり、最後の入出力操作に対するファイル状態を保持する。

一般規則:

  1. LINE ADVANCING も NOT LINE ADVANCING も指定されていない場合は、改行が出力に含まれる。
  2. Web ベースでないアプリケーションでの literal-1 または data-name-1 は、次のような COBOL ファイル指定子になる。
    • stdin (標準入力) の場合は、「:CI:」を使用
    • stout (標準出力) の場合は、「:CO:」を使用
    • ファイルの場合は、「.myxmlfileを使用

      ここで、myxmlfile はファイルの名前である。一般に、XML ファイルの拡張子には .xml が使用される。

    • パイプの場合は、「<myprog」、「>myprog」、または「|myprogを使用

      ここで、myprog は、パイプを介した通信を行う stdin または stdout (あるいはその両方) を使用するプログラムの名前である。

  3. literal-1 または data-name-1 は、クライアント側の Web ベースのアプリケーションでは次のようになる。
    • Web サイトでホストされている CGI プログラム (「http://www.bookdb.com:80/cgibin/xmlprog.exe」など)
    • XML ファイル (「http://localhost/xmlfile.xml」など)
  4. CGI での literal-1 または data-name-1 は、サーバー側の Web アプリケーションでは「:CGI:」になる。この場合、標準入力ストリーム (stdin) を読み取る際に、環境変数 CONTENT_LENGTH が想定される。「:CGI:」は、INPUT または OUTPUT でのみ開くことができ、I-O または EXTEND では開けない。
  5. 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.
    
  6. CHECK 句は複数回反復できる。次に例を示す。
    SELECT foobar 
        ASSIGN TO "foobar.xml" 
        ORGANIZATION IS XML 
        DOCUMENT TYPE IS "foobar.xsd" 
        CHECK VALIDITY ON INPUT
        CHECK OUTPUT.