1. XML GENERATE

XML GENERATE statement는 데이터를 XML 형식으로 변환한다.

figure pd xml generate
XML GENERATE Statement Format

다음은 XML GENERATE statement 형식의 각 항목에 대한 설명이다.

  • identifier-1

    • 생성되는 XML 문서를 받는 영역이다.

    • identifier-1은 다음 중 하나를 참조해야 한다.

      • alphanumeric 의 기본 데이터 항목

      • alphanumeric 그룹 항목

      identifier-1이 alphanumeric 그룹 항목을 참조할 때 identifier-1은 alphanumeric 의 기본 데이터 항목인 것처럼 취급된다.

      identifier-1은 JUSTIFIED 절이 포함된 데이터가 될 수 없고, function identifier도 될 수 없다. identifier-1은 subscript나 reference modified를 가질 수 있다. identifier-1은 identifier-2와 identifier-3과 겹칠 수 없다.

      identifier-1은 생성되는 XML 문서를 포함할 수 있은 만큼 충분히 커야 한다. 일반적으로 identifier-2 내의 데이터 이름 또는 데이터 이름의 길이에 따라서 identifier-2 의 크기의 5배에서 10배 사이즈를 사용하는 것이 좋다. 만약 identifier-2이 충분히 크지 않으면 XML GENEARTE statement의 끝에 오류 조건이 존재한다.

  • identifier-2

    • XML 형식으로 변환되는 기본 데이터 항목 또는 그룹을나타낸다.

    • identifier-2는 function identifier이거나 reference modified를 가질 수 없지만, subscript는 가질 수 있다. identifier-2는 identifier-1과 identifier-3과 겹칠 수 없다. identifier-2는 RENAMES 절을 지정하면 안된다.

      identifier-2로 지정된 다음과 같은 데이터 항목은 XML GENERATE statement에서 무시된다.

      • 종속된 이름 없는 기본 데이터 항목 또는 기본 FILLER 데이터 항목

      • SYNCHRONIZED 항목에 대해 삽입된 임의의 여유 바이트

      • REDEFINES 절로 설명되거나 이러한 재정의된 항목에 종속된 모든 데이터 항목

      • RENAMES 절로 설명한 항목에 종속된 모든 데이터 항목

      • 하위 데이터 항목이 모두 무시되는 모든 그룹 데이터 항목

    • 위의 규칙에 따라 무시되지 않는 identifier-2에 의해 지정된 모든 데이터 항목은 다음 조건을 충족해야 한다.

      • 각 기본 데이터 항목은 alphabetic, alphanumeric, numeric 또는 index 데이터 항목이어야 한다.

      • 이러한 기본 데이터 항목이 하나 이상 있어야 한다.

      • FILLER가 아닌 데이터 이름은 바로 중첩된 그룹 데이터 항목 내에서 고유한 이름을 가져야 한다.

      • 데이터 항목은 DATA FORMAT 절을 지정해서는 안된다.

  • identifier-3

    • COUNT IN 구문을 지정한 경우 identifier-3은 XML GENERATE statement 실행 후에 생성된 XML 문자의 인코딩 단위의 갯수를 포함한다. 일반적으로 갯수는 바이트이다.

    • identifier-3은 picture 문자열에서 P 없이 정의된 정수 데이터 항목이어야 한다. identifier-3은 identifier-1, identifier-2와 겹치지 않아야 한다.

      • Indexed file에 대하여 sequential access이고, OUTPUT으로 open되었을 때 prime record key 값이 이전 레코드보다 크지 않은 경우

      • Indexed file에 대하여 I-O 또는 OUTPUT으로 open되었을 때 prime record key 값이 이미 존재하는 레코드의 prime record key 값과 같은 경우

      • Relative file에 대하여 random 또는 dynamic access일 때 RELATIVE KEY가 이미 존재하는 레코드의 RELATIVE KEY와 같은 경우

  • ON EXCEPTION phrase

    • XML 문서를 생성하는 동안 오류가 발생할 경우 예외 조건이 있다. 예를 들어 identifier-1이 생성된 XML 문서를 포함할 만큼 크지 않은 경우 XML 생성이 중지되고 identifier-1의 내용은 정의되지 않는다. 만약 COUNT IN 구문이 지정되어 있었다면 dientifier-3에는 0에서 identifier-1의 길이까지의 범위로 생성된 문자 위치의 수가 포함되어 있다.

    • ON EXCEPTION 구문이 지정된 경우 제어는 imperative-statement-1로 전송된다. ON EXCEPTION 구문이 지정되어 있지 않으면 NOT ON EXCEPTION 구문이 있더라도 무시되고 제어는 XML GENERATE statement의 끝으로 전송된다.

  • NOT ON EXCEPTION phrase

    • NOT ON EXCEPTION 구문이 지정되어 있으면 XML 문서를 생성하는 동안 예외 조건이 발생하지 않으면 제어는 imperative-statement-2로 전송되며, 그렇지 않으면 XML GENERATE statement의 끝으로 전송된다. ON EXCEPTION 구문이 지정되어 있으면 무시된다.

  • END-XML phrase

    • XML GENERATE 또는 XML PARSE statement의 끝을 나타낸다.