다음을 통해 공유


위치 레코드 내의 필드 위치 지정

위치 레코드를 정의하려면 해당 레코드에 있는 필드의 위치 및 길이에 대한 정보를 제공해야 합니다. 레코드에 하위 레코드가 포함되어 있으면 하위 레코드에 있는 필드의 위치 및 길이를 합산하여 포함하는 레코드에 대한 위치 및 길이 정보를 결정합니다.

특정 Field 요소 또는 필드특성 노드에 대한 위치 오프셋Positional Length 속성에 대해 지정한 값의 합계는 해당 필드 전용 문자 수를 결정합니다. 레코드 및 하위 레코드에 있는 모든 필드에서 이 두 속성 값을 더하여 계산한 일련의 결과 값에 따라 레코드에 있는 필드 경계가 결정됩니다.

참고

스키마 노드의 Count Positions In Bytes 속성이 예로 설정되면 위치 길이위치 오프셋 속성은 문자가 아닌 바이트를 지정합니다.

UI 지침 및 개발자 API 네임스페이스 참조에서 이러한 속성에 대한 자세한 내용을 참조하세요.

위치 오프셋 속성

플랫 파일 디스어셈블러가 플랫 파일 instance 메시지를 동등한 XML instance 메시지로 변환하는 경우 Positional Offset 속성에 지정하는 값은 instance 메시지의 해당 위치에서 무시되고 건너뛰는 여러 문자(또는 바이트)를 정의합니다. 즉, 플랫 파일 instance 메시지의 시작 위치 및 길이(위치 오프셋 속성에 지정된 후자)에서 발생하는 모든 정보는 메시지의 XML 버전으로 복사되지 않습니다.

플랫 파일 어셈블러가 XML instance 메시지를 동등한 플랫 파일 instance 메시지로 변환하는 경우 Positional Offset 속성에 지정한 값은 생성되는 플랫 파일 instance 메시지 내에서 시작 위치에 공백 문자로 채워진 여러 문자(또는 바이트)를 정의합니다. 오프셋 위치를 채우는 데는 항상 공백 문자가 사용되며 사용된 문자는 구성할 수 없습니다.

위치 오프셋 속성은 위치 레코드의 내용을 유연하게 해석할 수 있습니다. 기본적으로 이 속성을 사용하면 0이 아닌 값으로 설정된 필드 앞에 나오는 고정 길이 데이터를 무시할 수 있습니다. 해당 고정 길이 데이터는 하나 이상의 전체 데이터 필드 또는 필드와 연결된 태그와 같은 특정 유형의 상수 데이터일 수 있습니다. 플랫 파일 인스턴스 메시지의 동등 XML 메시지에는 이러한 데이터를 포함시킬 필요가 없습니다. 자세한 내용은 다음 예를 참조하십시오.

위치 길이 속성

플랫 파일 디스어셈블러가 플랫 파일 instance 메시지를 동등한 XML instance 메시지로 변환하는 경우 Positional Length 속성에 지정한 값은 instance 메시지의 해당 위치에 있는 필드와 연결된 문자(또는 바이트)의 수를 정의합니다. 플랫 파일 instance 메시지의 시작 위치 및 길이에서 발생하는 정보는 관련 JustificationPad 문자 속성에서 제공하는 추가 정보에 따라 필드의 데이터를 구성합니다. 근거 및 필드 안쪽 여백에 대한 자세한 개념 정보는 필드 근거필드 안쪽 여백을 참조하세요.

플랫 파일 어셈블러가 XML instance 메시지를 동등한 플랫 파일 instance 메시지로 변환하는 경우 Positional Length 속성에 지정한 값은 해당 필드와 연결된 데이터를 작성하는 데 사용할 수 있는 문자(또는 바이트)를 정의합니다. 지정된 필드 길이보다 데이터 문자 수가 더 작으면 적절한 채움 문자를 사용하여 차이를 상쇄합니다. 필드의 지정된 길이보다 많은 데이터 문자가 있는 경우 데이터의 시작 또는 끝은 Justification 속성의 설정에 따라 잘리며 생성되는 플랫 파일 instance 메시지에 포함되지 않습니다.

참고

왼쪽 맞춤 데이터의 후행 부분과 오른쪽 맞춤 데이터의 선행 부분이 잘려 삭제됩니다.

예제

레코드의 필드를 다음과 같이 정의할 수 있습니다.

필드 노드 이름 Offset 길이 채움 문자 근거
Field1 0 6 기본값(공백) 왼쪽
Field2 0 4 * 오른쪽
Field3 2 6 * 왼쪽
Field4 4 6 기본값(공백) 오른쪽

이와 같은 필드가 정의된 레코드의 시작 위치에 다음 문자 스트림이 나올 수 있습니다. 첫 번째 줄은 문자 위치를 계산하는 데 사용됩니다.

123456789012345678901234567890123456789012345678901234567890  
abc   **12345678**skip  here  

이러한 필드 정의를 이 샘플 레코드 데이터에 적용하면 flat file disassembler는 상응하는 다음 XML 데이터를 생성합니다. 여기서 이 데이터는 굵게 표시됩니다.

<Field1>abc</Field1>  
<Field2>12</Field2>  
<Field3>5678</Field3>  
<Field4>here</Field4>  

이 데이터의 구문 분석 방법은 다음과 같습니다.

  • Field1과 연결된 문자(오프셋이 없는 길이 6)는 "abc 이지만 공백 문자는 Field1의 (기본) 패드 문자이고 Field1은 왼쪽 맞춤으로 정의되기 때문에 공백은 XML에 포함되지 않습니다.

  • Field2와 연결된 문자(오프셋이 없는 길이 4)는 "**12"이지만 별표 문자는 Field2에 정의된 패드 문자이고 Field2는 오른쪽 맞춤으로 정의되므로 별표는 XML에 포함되지 않습니다.

  • Field3(길이 6과 오프셋 2)과 연결된 문자는 "345678**"이지만 오프셋 때문에 3과 4는 XML에 포함되지 않습니다. 또한 별표 문자가 Field3에 대해 정의된 채움 문자이고 Field3이 왼쪽 맞춤으로 정의되어 있으므로 별표 또한 XML에 포함되지 않습니다.

  • Field4와 연결된 문자(길이 6 및 오프셋 4)는 "skip here"이지만 오프셋 때문에 문자 시퀀스 "skip"가 XML에 포함되지 않습니다. 공백 문자가 Field4에 대한 (기본) 채움 문자이고 Field4가 오른쪽 맞춤으로 정의되어 있으므로 2개의 공백 문자 또한 XML에 포함되지 않습니다.

    이 예제의 플랫 파일 디스어셈블러에서 생성된 XML이 동일한 필드 정의를 사용하여 플랫 파일 어셈블러에 전달되면 두 가지 예외를 제외하고 동일한 플랫 파일 데이터가 생성됩니다. 삭제된 오프셋 시퀀스 34 및 skip은 공백 문자(데이터 다음 줄의 문자로 ^ 표시됨)로 채워집니다.

123456789012345678901234567890123456789012345678901234567890  
abc   **12  5678**      here  
          ^^      ^^^^  
  

참고 항목