선택적 필드 및 레코드 지정

이 태스크 정보

선택적 필드 또는 레코드를 플랫 파일 스키마로 작성할 때, 모호성을 피해서 플랫 파일 스키마를 디자인할 수 있도록 플랫 파일 데이터가 구문 분석되는 방식을 이해하는 것이 중요합니다. 예를 들어 플랫 파일 스키마를 구분된 루트 노드와 세 개의 하위 문자열 필드(field1은 필수, field2는 선택적, field3은 필수)로 작성하는 경우, 런타임 동안 다음 데이터가 구문 분석될 때 표시된 대로 스키마의 문법이 모호합니다.

A,C

이 플랫 파일 데이터는 다음 두 가지 방식으로 구문 분석될 수 있습니다.
  • field1은 A와 같고 field2는 B와 같음
  • field1은 A와 같고 field3은 C와 같음

선택적 필드 후에 필수 필드를 지정하면 올바르게 구문 분석될 수 없는 모호한 문법을 정의합니다. 선택적 필드 후에 필수 레코드를 지정해도 올바르게 구문 분석될 수 없는 모호한 문법을 정의합니다.

이 플랫 파일 스키마를 field1은 필수, field2field3는 선택사항으로 하여 세 개의 하위 문자열 필드를 포함하도록 재정의하면 플랫 파일 데이터 A,C가 구문 분석될 때 field1은 A와 같고 field2는 C와 같으므로 이 문제점이 수정되지 않습니다. 이는 원하는 결과가 아니므로 스키마의 문법이 다시 모호합니다. 원하는 결과는 field3에 C 값이 지정되는 것이었습니다. 필수 레코드 뒤에 두 개의 선택적 레코드를 지정해도 모호한 문법을 정의합니다.




피드백 | 주의사항


시간소인 아이콘 마지막 업데이트 날짜: 2013년 11월 6일 수요일