위치 형식과 구분 형식의 혼합 예제

이 태스크 정보

이 예제는 위치 형식과 구분 형식이 혼합된 데이터를 구문 분석할 수 있도록 플랫 파일 스키마를 빌드하는 방법을 보여줍니다. 플랫 파일 스키마를 작성하려면, 먼저 플랫 파일 데이터를 분석하여 플랫 파일 스키마에 추가되는 필드 및 노드를 판별해야 합니다. 이 예제에서는 다음 두 데이터 행의 플랫 파일 스키마를 작성합니다.

BuyRight Pharmacy;USACAMVI334;!389!22;34980;

Taylor Drugs;USANJWLB128;!778!23!523;5667;

다음 단계에서와 같이 하향식 접근 방식을 사용하여 플랫 파일 스키마의 레코드 및 필드를 정의하십시오.

프로시저

  1. 루트 노드를 작성하십시오.
    1. Project 탭에서, Flat File Schemas 폴더를 마우스 오른쪽 단추로 클릭하고 New Flat File Schema를 선택하십시오. Basic Wizard 대화 상자가 열립니다.
    2. Name 필드에 Order를 입력하십시오.
    3. OK를 클릭하십시오. 플랫 파일 스키마 편집기가 열리고 프로젝트 탭의 플랫 파일 스키마 폴더 아래에 플랫 파일 스키마가 표시됩니다. 또한 동일한 이름의 루트 노드가 Schema Layout 탭에 표시됩니다.
  2. 데이터에서 구조의 상위 레벨을 판별하십시오. 이 예제에서는 레코드를 나타내는 두 행의 구조가 가장 큽니다. 이 플랫 파일 데이터의 두 레코드는 두 레코드 사이에 있는 행 끝으로 구분됩니다(그림 1 참조).
    그림 1. 혼합 예제 1: 파일의 레코드가 레코드를 구성하는 문자 사이에 있는 행 끝으로 구분됩니다.혼합 예제 1
  3. 다음과 같은 기준에 따라 Order라고 하는 루트 노드를 구성하여 하위 반복 레코드를 구문 분석하십시오.
    • 구분 기호를 사용하여 레코드에 데이터 분리
    • 마지막 레코드가 구분 기호로 끝나지 않으므로 문서가 EOS(End Of Stream)로 끝나도록 예상
    • 행 끝 구분 기호를 사용하여 하위 레코드 구분
    • 데이터 사이에 구분 기호 예상
    • 반복 하위 레코드 예상
    • 행 끝 구분 기호를 사용하여 하위 반복 레코드 구분

    이러한 기준을 사용하여 Order 노드의 Basic PropertiesDelimiters 분할창에 다음과 같은 값을 지정하십시오(그림 2 참조).

    그림 2. 혼합 예제 분할창 1: 구조가 구분 형식으로 설정되어 있고, EOS(스트림 끝)로 끝나는 문서 상자가 선택되어 있습니다. 행 끝 옵션이 선택되어 있고 하위 구분 기호 위치가 사이로 설정되어 있습니다.혼합 예제
분할창 1
  4. 루트 노드에 하위 노드를 추가하여 레코드를 나타내십시오. Schema Layout 탭에서 Order 노드를 마우스 오른쪽 단추로 클릭하십시오. 메뉴에서 New Child > Record를 선택하고 purchaseOrder를 입력한 다음 OK를 클릭하십시오.
  5. 데이터에서 구조의 다음 레벨을 판별하십시오. 이 예제에서, 구조의 다음 레벨은 세미콜론으로 구분된 필드입니다(그림 3 참조).
    그림 3. 혼합 예제 2: 레코드의 개별 필드가 세미콜론으로 구분되어 있습니다.혼합 예제 2
  6. 다음과 같은 기준에 따라 purchaseOrder 노드를 구성하여 이러한 필드를 구문 분석하십시오.
    • purchaseOrder 노드에 하나 이상의 발생 사용 가능
    • 구분 기호를 사용하여 레코드의 데이터를 하위 필드에 구문 분석
    • 데이터 사이에 세미콜론을 구분 기호로 사용
    • 데이터 뒤에 구분 기호 예상

    이러한 기준을 사용하여 purchaseOrder 노드의 Basic Properties 및 Delimiters 분할창에 다음과 같은 값을 지정하십시오(그림 4 참조).

    그림 4. 혼합 예제 분할창 2: 구조가 구분 형식으로 설정되어 있고, 최대 무제한 및 문자 옵션이 선택되어 있습니다. 하위 구분 기호 위치가 뒤로 설정되어 있습니다.혼합 예제 분할창 2
  7. Schema Layout 탭에서 purchaseOrder 노드를 마우스 오른쪽 단추로 클릭하고 목록에서 New Children 옵션을 선택하여 purchaseOrder 노드의 필드를 추가하십시오. Bulk Add 대화 상자가 표시됩니다.
  8. Bulk Add 대화 상자에서, purchaseOrder 노드의 모든 하위 record 및 field를 추가하십시오.
    • Add를 클릭하고 field1storeName으로 변경하십시오. Node TypeField 설정 상태로 유지하십시오.
    • Add를 클릭하고 field2originCode로 변경하십시오. 노드 유형record로 변경하십시오.
    • Add를 클릭하고 field3items로 변경하십시오. Node Typerecord로 변경하십시오.
    • Add를 클릭하고 field4orderID로 변경하십시오. Node TypeField 설정 상태로 유지하십시오.
    • OK를 클릭하십시오.
  9. 데이터에서 구조의 다음 레벨을 판별하십시오. 이 예제에서, 구조의 다음 레벨은 originCode 레코드에 있는 위치 데이터 세트입니다(그림 5 참조).
    그림 5. 혼합 예제 3: originCode가 구분 레코드에 있는 위치 데이터의 섹션입니다.혼합 예제 3
  10. originCode 레코드를 위치 형식으로 구성하십시오.
    1. Schema Layout 탭에서 originCode 노드를 선택하십시오. Basic Properties가 표시됩니다.
    2. Structure 목록에서 Positional을 선택하십시오.
  11. Schema Layout 탭에서 originCode 노드를 마우스 오른쪽 단추로 클릭하고 목록에서 New Children 옵션을 선택하여 originCode 노드의 위치 필드를 추가하십시오. Bulk Add 대화 상자가 열립니다.
  12. Bulk Add 대화 상자에서, originCode 노드의 모든 하위 record 및 field를 추가하십시오.
    1. Add를 클릭하고 field1countryCode로 변경하십시오. Node TypeField 설정 상태로 유지하십시오.
    2. Add를 클릭하고 field2stateCode로 변경하십시오. Node TypeField 설정 상태로 유지하십시오.
    3. Add를 클릭하고 field3cityCode로 변경하십시오. Node TypeField 설정 상태로 유지하십시오.
    4. Add를 클릭하고 field4storeCode로 변경하십시오. Node TypeField 설정 상태로 유지하십시오.
    5. OK를 클릭하십시오.
  13. 각 위치 필드의 Positional Properties를 구성하십시오. originCode 노드의 각 하위 노드마다 스키마 레이아웃 탭의 노드를 클릭하고 특성 분할창의 끝에서 다음 목록에 표시된 대로 필드 오프셋필드 길이의 값을 설정하십시오.
    • countryCode -
      위치 prop 국가
    • stateCode -
      위치 prop 주
    • cityCode -
      위치 prop 구/군/시
    • storeCode -
      위치 prop 상점

    Field OffsetoriginCode 문자열이 처리될 때 각 필드의 originCode 문자열 시작 부분이 아닌 현재 문자 위치에서 교정됩니다. 이 예제에서, countryCode가 처리되고 originString의 처음 3개 문자가 countryCode에 지정됩니다. stateCode가 처리되는 경우, 현재 문자 위치가 세 번째 문자 위치에 있으므로 stateCode 1의 Field Offset이 현재 문자 위치에 추가되어 stateCode 문자열을 처리하는 시작점에 도달합니다(그림 6 참조).

    그림 6. 혼합 예제 4: 현재 커서 위치 및 필드 오프셋을 보여줍니다.혼합 예제 4
  14. 데이터에서 구조의 다음 레벨을 판별하십시오. 이 예제에서, 구조의 다음 레벨은 느낌표로 구분된 반복 필드입니다(그림 7 참조).
    그림 7. 혼합 예제 5: 구분 데이터가 느낌표로 표시되어 있습니다.혼합 예제 5
  15. 다음과 같은 기준에 따라 items 노드를 구성하여 하위 반복 레코드를 구문 분석하십시오.
    • 구분 기호를 사용하여 필드에 데이터 분리
    • 느낌표를 구분 기호로 사용하여 하위 필드 구분
    • 데이터 앞에 구분 기호 예상
    • 하나 이상의 반복 하위 필드 예상
    • 느낌표를 구분 기호로 사용하여 하위 반복 필드 구분

    이러한 기준을 사용하여 items 노드의 기본 특성 및 구분 기호 분할창에 다음과 같은 값을 지정하십시오(그림 8 참조).

    그림 8. 혼합 예제 분할창 3: 하위 구분 기호 위치가 앞으로 설정되어 있습니다.혼합 예제 분할창 3
  16. Schema Layout 탭에서 items 노드를 마우스 오른쪽 단추로 클릭하고 목록에서 New Child > Field 옵션을 선택하여 items 노드에 반복 하위 필드를 추가하십시오. New Field 대화 상자가 열립니다.
  17. Field Name에서 item을 입력하고 OK를 클릭하십시오.
  18. item 노드에 하나 이상의 발생이 포함되도록 구성하십시오(그림 9 참조).
    그림 9. 혼합 예제 분할창 4: 최대 반복이 무제한으로 설정되어 있습니다.혼합 예제 분할창 4
    플랫 파일 스키마가 완료되어 테스트할 수 있습니다.
  19. 다음 텍스트를 테스트 분할창의 왼쪽 하위 분할창에 붙여넣으십시오.

    BuyRight Pharmacy;USACAMVI334;!389!22;34980;

    Taylor Drugs;USANJWLB128;!778!23!523;5667;

    이 데이터는 mixedData.txt 파일에도 제공됩니다. Studio 설치 중에 기본값을 채택한 경우 이 파일은 C:\Program Files\IBM\WebSphere Iron Systems\Cast Iron Studio 3.X\Samples\FlatFileSchema 디렉토리에 있습니다.
    주의: 마지막 행 뒤에 캐리지 리턴을 추가하지 마십시오.
  20. Test 아이콘을 클릭하십시오.
    Test 아이콘
    Save Confirmation 대화 상자가 열립니다.
  21. Yes를 클릭하십시오. 테스트 분할창에 다음과 같은 데이터 XML 표현이 표시됩니다.
    <?xml version="1.0" encoding="UTF-8"?>
    <Order>
    	<purchaseOrder>
    		<storeName>BuyRight Pharmacy</storeName>
    		<originCode>
    			<countryCode>USA</countryCode>
    			<stateCode>CA</stateCode
    			<cityCode>MVI</cityCode>
    			<storeCode>334</storeCode>
    		</originCode>
    		<items>
    			<item>389</item>
    			<item>22</item>
    		</items>
    		<orderId>34980</orderId>
    	</purchaseOrder>
    	<purchaseOrder>
    		<storeName>Taylor Drugs</storeName>
    		<originCode>
    			<countryCode>USA</countryCode>
    			<stateCode>NJ</stateCode>
    			<cityCode>WLB</cityCode>
    			<storeCode>128</storeCode>
    		</originCode>
    		<items>
    			<item>778</item>
    			<item>23</item>
    			<item>523</item>
    		</items>
    		<orderId>5667</orderId>
    	</purchaseOrder>
    </Order>
  22. Schema Layout 탭에서 item 노드를 클릭하십시오. Test 분할창의 오른쪽 하위 분할창에서, item 노드에 구문 분석된 데이터가 강조표시됩니다(그림 10 참조).
    그림 10. item 노드가 강조표시됨혼합 예제 테스트
  23. state 노드를 클릭하여 state 노드에 지정된 데이터를 확인하십시오.
    참고: Order 플랫 파일 스키마의 참조 구현은 FlatFileSchemasExample 프로젝트에 제공됩니다. FlatFileSchemasExample 프로젝트를 확인하고 열려면 그룹 예제의 1단계와 2단계를 따르고Order 플랫 파일 스키마를 두 번 클릭하십시오. 주문 플랫 파일 스키마의 노드가 Schema Layout 탭에 표시되고 Order 루트 노드의 특성이 오른쪽 분할창에 나타납니다.



피드백 | 주의사항


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