XMLStructure
단순 특성 XMLStructure는 레코드 파트에서 필드로 표시되는 XML 요소의 잠재적인 구조를 식별합니다. 이 주제에서는 레코드 데이터를 XML 문자열로 전송하는 경우 발생하는 결과에 대해 설명하는 예제를 표시합니다. 그러나 관계는 반대 방향으로도 적용되며 이 경우 EGL 런타임이 입력 레코드에 대한 XML 문자열의 전송 유효성을 검증합니다.
XMLStructure에 지원되는 값은
다음과 같습니다.
- sequence(기본값)
- 출력 시 XML 문자열에는 레코드 파트의 모든 필드가 레코드
필드가 나열된 순서대로 포함되어야 합니다. 다음 레코드
파트와 XML 문자열이 관련됩니다.
Record Employee {XMLStructure = XMLStructureKind.sequence} EmpNo INT; LastName STRING; end <Employee> <EmpNo>10</EmpNo> <LastName>Smith</LastName> </Employee> - choice
- 출력 시 XML 문자열에는 레코드 필드에 해당하는 하위
요소가 하나만 포함되어야 합니다. 예를 들어, 다음
레코드 파트를 검토합니다.
Record Employee{XMLStructure = XMLStructureKind.choice} ImmigrationStatus STRING?; YearsOfCitizenship INT?; end다음 XML 문자열 중 하나가 올바릅니다.<Employee> <ImmigrationStatus>A1</ImmigrationStatus> </Employee><Employee> <YearsOfCitizenship>20</YearsOfCitizenship> </Employee>이 경우 XML 문자열은 두 요소 유형을 모두 포함할 수 없ㅅ브니다.
레코드에 XMLStructure 값 "choice"가 있는 경우 예제에서 물음표로 표시된 것처럼 각 필드는 널 입력 가능해야 합니다. 또한 한 필드의 값이 널이 아니어야 하며 단 하나의 필드 값만 널이 아닐 수 있습니다. 입력 레코드의 모든 필드가 널이거나 둘 이상의 필드가 널이 아닌 경우 XMLLib.convertToXML 함수가 RuntimeException을 발행합니다.
- simpleContent
- 출력 시 XML 문자열에 전송된 단순 컨텐츠는
속성 세트와 함께 상위 레코드에 있는 필드의 값입니다.
예를 들면, 다음 굵은체 레코드 파트와 XML 컨텐츠가
관련됩니다.
Record Employee{XMLStructure = XMLStructureKind.sequence} EmpNo EmpNumber; LastName STRING; end Record EmpNumber {XMLStructure = XMLStructureKind.simpleContent} department STRING {@XMLAttribute{}}; value INT; // any field name is acceptable here end <Employee> <EmpNo department="Sales">10</EmpNo> <LastName>Smith</LastName> </Employee>하위 레코드(여기서는 EmpNumber)는 STRING 유형이고 @XMLAttribute 특성이 있는 여러 필드에 0을 포함할 수 있습니다. 특성은 주어진 필드가 속성을 나타냄을 표시합니다. 동일한 하위 레코드에 @XMLAttribute 특성이 없는 필드가 있을 수 있고 속성이 없는 필드가 있는 경우 이 필드는 관련 요소의 값을 보유합니다. 속성이 없는 필드는 모든 이름을 가질 수 있습니다.
- unordered
- XML 문자열은 지정된 요소를 순서에 상관 없이 포함할 수 있습니다. 다음
레코드 파트는 후속 XML 문자열 중 하나를 설명합니다.
Record Employee {XMLStructure = XMLStructureKind.unordered} EmpNo INT; LastName STRING; end <Employee> <LastName>Jones</LastName> <EmpNo>20</EmpNo> </Employee> <Employee> <EmpNo>20</EmpNo> <LastName>Jones</LastName> </Employee>
해당 값은 xmlStructureKind 열거를 구성합니다.