속성 승격
속성 승격에는 스키마의 Field 요소 또는 필드 특성 노드를 고유 필드 또는 속성 필드로 승격하는 작업이 포함됩니다. 간단한 콘텐츠가 있는 경우 레코드 노드를 속성 필드로 승격할 수도 있습니다(Record 노드의 콘텐츠 형식 속성은 SimpleContent로 설정됨). 이 섹션에서는 노드를 고유 필드 또는 속성 필드로 승격하기 위한 단계별 지침을 제공합니다.
레코드(간단한 콘텐츠 포함), Field 요소 또는 필드 특성 노드를 속성 필드로 승격하려면 먼저 속성 스키마라는 특수 형식의 스키마를 정의할 수 있습니다. 속성 스키마는 Record(간단한 콘텐츠 포함), Field Element 또는 FieldAttribute 노드를 승격하는 비정형 Field 요소 노드 집합을 정의합니다. 속성 스키마를 만들기 위한 단계별 지침은 속성 스키 마를 만드는 방법을 참조하세요.
또는 새 Field 요소, 필드 특성 또는 레코드(간단한 콘텐츠 포함) 노드를 승격할 때마다 단일 속성 스키마를 자동으로 만들고 업데이트하는 빠른 승격 기능을 사용할 수 있습니다.
참고
필드를 고유 필드와 속성필드로 승격할 수 있습니다.
참고
빠른 승격 기능은 승격된 노드의 이름으로 새 속성을 삽입하여 속성 스키마를 수정합니다.
중요
스키마에서 필드를 승격한 다음에는 필드를 이동하거나 이름을 바꾸지 마십시오. 스키마 필드를 이동하거나 이름을 바꿀 때 BizTalk 편집기에서 승격된 필드의 위치를 정의하는 XPath가 업데이트되지 않습니다.
XSD 및 CLR 데이터 유형
속성 승격과 같은 일부 경우에 XSD 데이터 유형은 CLR(공용 언어 런타임) 데이터 유형으로 승격됩니다. 다음 표는 승격할 수 있는 XSD 데이터 유형과 해당 CLR 데이터 유형을 보여 줍니다.
XSD 데이터 유형 | CLR 데이터 형식 |
---|---|
anyURI | 문자열 |
Boolean | 부울 |
Byte | sbyte |
Date | DateTime |
dateTime | DateTime |
Decimal | Decimal |
Double | Double |
엔터티 | 문자열 |
Float | Single |
gDay | DateTime |
gMonth | DateTime |
gMonthDay | DateTime |
gYear | DateTime |
gYearMonth | DateTime |
ID | String |
IDREF | 문자열 |
Int | Int32 |
정수 | Decimal |
언어 | String |
이름 | String |
NCName | 문자열 |
negativeInteger | Decimal |
NMTOKEN | 문자열 |
nonNegativeInteger | Decimal |
nonPositiveInteger | Decimal |
normalizedString | 문자열 |
NOTATION | 문자열 |
positiveInteger | Decimal |
QName | String |
Short | Int16 |
String | 문자열 |
Time | DateTime |
토큰 | 문자열 |
unsignedByte | Byte |
unsignedInt | UInt32 |
unsignedShort | UInt16 |
참고
base64Binary, duration, ENTITES, hexBinary, IDREFS, long, NMTOKENS 및 unsignedLong의 XSD 데이터 유형은 승격할 수 없습니다.
속성 승격 제한
속성을 승격할 때는 다음 사항을 고려해야 합니다.
승격 속성의 길이는 256자로 제한되지만 직접 쓴 속성에는 길이 제한이 없습니다.
승격 속성은 메시지 라우팅에 사용되며 비교 및 스토리지 작업의 효율성을 위해 크기가 제한됩니다. 직접 쓴 속성에는 고정된 크기 제한이 없지만 컨텍스트에 너무 큰 값을 사용하는 경우 해당 값도 처리되고 메시지와 함께 전달되어야 하므로 성능에 영향을 미치게 됩니다. 고유 필드는 작성된 속성의 예입니다.
레코드 노드는 고유 필드로 승격할 수 없습니다.
승격 속성은 반복되지 않는 요소/특성으로 제한됩니다.
같은 루트 노드에 속하는 필드를 같은 속성으로 승격하지 마십시오. 이러한 승격을 수행하면 컴파일 또는 배포 오류가 발생합니다.
메시지 컨텍스트 내에는 승격되지 않아 사용할 수 없는 일부 속성이 있습니다. 이러한 속성 중 하나가 BTS.ReceiveLocationName 속성입니다. 새 속성 스키마 또는 새 BizTalk Server 프로젝트를 개발에 추가할 수 있는 경우에는 오케스트레이션 내에서 이 속성에 액세스할 수 있습니다.
속성 값은 속성 대상 네임스페이스 및 속성 이름으로 식별됩니다. 다음 예에서는 코드에서 수신 위치에 액세스하는 방법을 보여 줍니다.
string receiveLocationName = pInMsg.Context.Read("ReceiveLocationName", sysNamespace);