1. XML GENERATE
XML GENERATE statement는 데이터를 XML 형식으로 변환한다.
다음은 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의 끝을 나타낸다.
-