DDEX 데이터 작업 형식 및 MappedTypes
스키마에 단일 루트 요소를 정의 DataObjectSupport, Visual Studio 외부 데이터 개체 형식을 지 원하는 요소의 계층의 경계가 어떤.
DataObjectSupport 요소
DataObjectSupport 요소에 있는 네 가지 종류의 자식 요소:
0 개 이상의 Import 요소
0 개 이상의 Define 요소
0 번 이상 Types 요소
0 번 이상 MappedTypes 요소
Import 요소와 Define 요소 정의 외부 데이터 개체 지원 원본에서 가져올 수 있도록 또는 각각의 XML의 다른 부분에서 다시 사용 하는 요소를 정의 합니다 제공 됩니다 하지만 핵심 데이터 공급자 형식을 정의 하 고 형식을 제네릭 형식을 하지 않습니다. 데이터 객체 지원 XML을 쉽게 제작 하도록 사용할 수 있습니다. 그러나 종류와 관련 된 요소가 구성의 Types 요소를 포함할 수는 RootType 및 하나 이상의 Type 요소를 하는 MappedTypes 요소를 하나 이상 포함할 수 있습니다 MappedType 요소. 일련의 Type 요소는 데이터 공급자가 제공한 개체 형식 정의 및 데이터 소스에 한정 됩니다. 이러한 개체 유형을 통해 매핑되는 해당 MappedType 다시 해당 합니다 링크 요소 Type 요소의 underlyingType 특성을 통해.
XML의 레이아웃을 보여는 Type 및 MappedType 요소에는 DataObjectSupport 최상위 요소입니다.
<DataObjectSupport xmlns=http://.../DataObjectSupport.xsd>
<Types>
<RootType>
...
</RootType>
<Type name="Column">
...
</Type>
<Type name="View">
...
</Type>
...
</Types>
<MappedTypes>
<MappedType name="TableColumn" underlyingMember="Column">
...
</MappedType>
<MappedType name="View" underlyingMember="View">
...
</MappedType>
...
</MappedTypes>
</DataObjectSupport>
형식 요소 자식
Type 요소에 있는 세 가지 허용 가능한 자식 요소:
Identifier. 필수 요소. 종류의 고유 식별자를 지정합니다. 예를 들어 있는 Table 개체에는 데이터베이스, 스키마 및 이름 조합으로 확인 될 수 있습니다. 에 대 한 자세한 내용은 식별자 및 식별자 부분을 참조 하십시오. 제네릭 형식에 형식 식별자 개체 및 속성 매핑.
Properties. 선택적 요소. 컬렉션을 사용 하 여 지정 된 속성에는 지정 된 개체 형식의 정의 Property 요소입니다. 예를 들어 있는 Table 개체 CreateDate 속성이 있을 수 있습니다.
Services. 선택적 요소. 지정 된 각 서비스의 컬렉션을 정의 Service 요소 형식에 대해 구현 하는 서비스를 의미 합니다.
또한 각 유형에 다음과 같은 특성이 있어야 합니다.
- 개체 형식의 이름을 나타내는 name 특성입니다.
각 형식 필요에 따라 다음과 같은 특성을 가질 수 있습니다.
개체 (a)은 이름 속성이 있는 또는 (b) "이름"이 아닌 다른 값으로 이름 속성을 가진 경우에 name 속성이 특성입니다.
PreferredOrdering 형식의 개체를 선택할 때 해당 specificies 기본 정렬 순서는 특성입니다.
형식 요소와 특성에 대 한 설명
Identifier 요소
유형 식별자 컬렉션의 데이터 원본 개체 형식에서 열거형을 반환 하는 데이터 개체를 고유 하 게 식별 합니다. 식별자는 호출자가 지정 된 개체를 같은 종류의 다른 구별할 수 있도록 데이터 부분으로 구성 됩니다. 예를 들어 식별자 SQL Server 데이터베이스 테이블에 대 한 데이터베이스 이름, 스키마 이름 및 테이블 이름 중 구성 됩니다.
참고
개체 형식 사이 루트 형식 식별자 규칙의 예외입니다.때문에 항상 루트 형식 인스턴스가 하나만 루트 형식 식별자가 필요 하지 않습니다.
식별자 절 형식 정의의 집합을 지정 Part 요소입니다. 각 파트는 필요한 사용 name 특성 및 지정 하는 선택적 형식 특성을 합니다.NET Framework 형식입니다. 형식 특성을 지정 하지 않으면 기본 형식인 System.String. 모두는 Part 요소가 전체적으로 고유 식별자를 구성 합니다. 식별자가 지정 된는 Identifier 요소입니다. 식별자 두 번 정의 하는 xml을 통해 다음 다시 사용할 수 선택적으로 IdentifierRef 요소입니다.
XML 유형 식별자의 예를 보여 줍니다.
<Type name="Table">
<Identifier>
<Part name="Database" />
<Part name="Schema" />
<Part name="Name" />
</Identifier>
</Type>
이 코드는 XML 설명은 설명는 Table 세 부분 식별자가 유형. 각 Part 요소 식별자의 특정 부분에 설명 하 고도 포함 되어 있는 name 열거형에 지정 된 개체 식별자 부분에 대 한 데이터를 참조 하는 특성입니다.
속성 요소
개체 유형을 필요에 따라 속성을 가질 수 있습니다. 주어진된 형식 정의의 속성 섹션 열거형의 각 속성에 대 한 데이터를 지정 하는 이름/형식-값 쌍을 설명 합니다. 속성을 사용 하 여 지정 되는 Properties 개별 그룹 요소를 Property 요소. 각 Property 요소를 차례로 포함는 name 형식의 이름을 지정 하는 선택적 특성 type 는 specifiyies 특성을.NET Framework 형식 속성입니다. 또한 속성 두 번 정의 고 수 XML에 다시 사용 합니다. 이 추가 하 여 수행할 수 있습니다는 PropertyRef 요소에는 Properties group 요소에 정의 된 요소를 다시 사용할 수 하거나 추가 하 여는 PropertyListRef 이전에 정의 된 속성 그룹을 다시 사용할 수 있는 요소입니다.
다음 코드는 속성 정의 형식 요소에 대 한 모양을 보여 줍니다.
<Define name="ColumnProperties">
<Property name="Name" isIdentifierPart="true" />
<Property name="Id" type="System.Int32" />
<PropertyListRef name="DataTypeProperties" />
<Property name="Nullable" type="System.Boolean" />
<Property name="IsIdentity" type="System.Boolean" />
<Property name="IdentitySeed" type="System.Int32" />
<Property name="IdentityIncrement" type="System.Int32" />
</Define>
<Type name="Column" preferredOrdering="Database, Schema, Table, Id">
<IdentifierRef name="SubSchemaObjectTypeIdentifier" arguments="Table" />
<Properties>
<PropertyListRef name="ColumnProperties" />
<Property name="Computed" type="System.Boolean" />
</Properties>
</Type>
앞의 코드 예제에서는 Computed 속성 및 미리 정의 된 목록 열 속성에 대 한 참조를 사용할 수 있는 두는 인라인 속성 정의 보여 줍니다.
지정 된 등록 정보에 지정 된 서버 버전을 사용할 수 있도록 속성 버전을 사용할 수 있습니다.
서비스 요소
서비스 정의 될 수 있습니다 개체 형식에 대 한 각 서비스에 추가 하 여는 Service 의 일부 요소는 Services 그룹. 서비스 유형, 또는 일반적인 서비스의 특수화에 특정 될 수 있습니다. 문자열에서 서비스를 구현 하는 클래스를 지정할 수 있습니다는 implementationType 특성에 Service 가 공급자의 개체 팩터리를 해결할 수 있습니다 요소를 GetType() 메서드 (에 IVsDataProviderObjectFactory). 공급자 구현 형식이 지정 되어 있지 않으면 글로벌 구현 서비스를 제공 해야 합니다는 IVsDataConnectionSupport 는 공급자에 의해 구현 된 엔터티를 지원 합니다. 또한 서비스에 대 한 매개 변수를 지정 하는 경우 서비스 또한 구현 해야는 IVsDataObjectSupport 엔터티를 지원 합니다.
다음 코드는 IVsDataObjectSelector 서비스를 정의 하는 방법을 보여 줍니다.
<Type name="Column" preferredOrdering="Database, Schema, Table, Id">
<IdentifierRef name="SubSchemaObjectTypeIdentifier" arguments="Table" />
<Properties>
...
</Properties>
<Services>
<Service type="IVsDataObjectSelector">
<Parameters method="SelectObjects">
<Parameter>
<ParameterRef name="UrnPart" arguments="Database, 0" />
<ParameterRef name="UrnPartWithSchema" arguments="$(parentUrnPartName), 1, 2" />
<ParameterRef name="UrnPart" arguments="$(urnPartName), 3"/>
</Parameter>
<Parameter>
<ParameterRef name="SelectorMapping" arguments="Database, Database_Name" />
<ParameterRef name="SelectorMapping" arguments="Schema, $(parentUrnPartName)_Schema" />
<ParameterRef name="SelectorMapping" arguments="$(parentType), $(parentUrnPartName)_Name" />
<ParameterListRef name="$(selectorMappings)" />
</Parameter>
</Parameters>
</Service>
...
</Services>
</Type>
참고 위의 코드 예제는 ParameterRef 포인트는 이전에 정의 된 매개 변수를 사용 하는 Define 요소입니다. 마찬가지로 ParameterListRef 그룹에 이전에 정의 된 매개 변수를 가리킵니다. 이러한 정의에 코드 예제를 포함 되지 않습니다.
특성 이름
name 특성은 개체 형식의 이름을 지정 합니다.
name 속성이 특성
개체 형식을 사용 하 여 정규화 되지 않은 개체의 속성 이름을 지정 하는 속성을 정의할 수 있습니다의 nameProperty 특성입니다. 이 특성은 비 정규화 된 이름 형식의 인스턴스를 나타내는 형식에 정의 된 속성의 이름을 지정 합니다. 지정 되지 않은 경우 "이름" 이라는 속성이 있을 경우 그렇지 않은 형식 인스턴스의 이름이 없는 간주 됩니다 선택 됩니다.
preferredOrdering 속성
형식을 사용할 수 있습니다에서 preferredOrdering 특성에서 지정 된 형식의 개체 저장소에서 반환 된 개체의 정렬 순서를 지정 합니다.
일반적으로 다양 한 식별자 부분에 오름차순입니다 하지만 꼭 그런 것은 아닙니다. 일부 경우에는 논리적인 기준에 정렬 예를 들어, 순서를 알파벳에서 열 이름 순서 보다는 열 서 수를 제공 하 하려는 수도 있습니다.
MappedType 요소 자식
MappedType 요소에 있는 세 가지 허용 가능한 자식 요소:
Selection. 필수 요소. 매핑된 개체의 개체 선택 하에 해당 하는 데이터 소스에서 내부 개체를 반환할 수 있습니다 매핑 정보를 포함 합니다.
Identifier. 선택적 요소. 매핑된 종류의 고유 식별자를 지정 하 고 데이터 소스 형식 식별자에 대 한 매핑을 제공 합니다.
Properties. 선택적 요소. 컬렉션을 사용 하 여 지정 된 속성에 매핑된 개체 형식 정의 Property 요소입니다. 예를 들어,는 Table 일반 개체 CreateDate 일반 속성이 있는 않을 수 있습니다.
또한 각 유형에 다음과 같은 특성이 있어야 합니다.
- 매핑된 개체의 형식 이름을 나타내는 name 특성입니다.
각 형식 필요에 따라 다음과 같은 특성을 가질 수 있습니다.
- 제네릭 형식이 매핑된 해당 데이터 소스 형식에 연결 하는 underlyingType 특성입니다.
MappedType 요소와 특성에 대 한 설명
선택 요소
Selection 개체 저장소에서 반환 되는 데이터를 제한 하는 매핑 정보를 제공 하 여 선택한 데이터 원본에서 개체 요소를 사용 합니다. restrictions 특성 식별자 제한 선택 호출에서 반환 된 개체의 크기를 제한 하는 데 있습니다. 참고 속성 제한 DDEX 현재 버전에서 지원 되지 않습니다. 일반 제한 하는 내부 식별자 부분 사이 일대일 매핑이 없으면 SubstitutionValue 요소에 추가 해야 해당 SubstitutionValues ; 필요한 변환을 수행 하기 위한 그룹 이 경우 의해 식별자 부분을 교체 해야 {n} 여기서 n 대체 값의 0부터 시작 하는 정수 인덱스입니다. 사이 일대일 매핑이 없으면 뿐만 아니라 제네릭 형식 및 내부 데이터 소스 형식에 매핑되는 filter 의 세트를 더 좁히기 위해 추가 필터링 조건을 추가 하려면 반환 된 개체 특성을 추가할 수 있습니다. 또한 데이터 원본에서 반환 되는 개체의 순서를 지정 하는 ordering 특성을 추가할 수 있습니다.
다음 코드 예제를 보여 줍니다 있는 Selection 요소:
<MappedType name="Table" underlyingType="Table">
<Selection restrictions="{Catalog},{Schema},{Name}" />
...
</MappedType>
Identifier 요소
매핑된 종류의 고유 식별자를 지정 하 고 데이터 소스 형식 식별자에 대 한 매핑을 제공 합니다. 식별자 식별자 부분 구성 됩니다 데이터베이스 개체는 모두 고유 하 게 있는 매핑된 형식을 식별 합니다. 각 Part 변환은 변환 단계 표현 요소를 포함할 수 있는 Conversion 일반 식별자 부품 값 데이터 소스 식별자 부분 값에 매핑하는 데 필요한 요소입니다.
다음 코드 예제를 보여 줍니다 있는 Identifier 및 Part 요소입니다.
<MappedType name="Table" underlyingType="Table">
<Identifier>
<Part name="Catalog" underlyingMember="Database" />
<Part name="Schema" underlyingMember="Schema" />
<Part name="Name" underlyingMember="Name" />
</Identifier>
</MappedType>
속성 요소
매핑된 형식의 속성을 통해 데이터 소스 속성에 매핑되는 속성을 일반 설명의 underlyingMember 의 특성은 Property 요소. 각 속성에는 필수 있습니다 name 일반 속성의 이름을 지정 하는 특성입니다.isIdentifierPart 특성을 지정 하는 식별자 부분 이름이 같은 속성에 해당 하는지 여부입니다. 변환은 변환 단계 표현 속성이 포함 될 수 있습니다 속성 값의 데이터 소스 속성에서 일반 속성을 변환 하는 Conversion 요소입니다.
또한 속성 두 번 정의 고 수 XML에 다시 사용 합니다. 이 추가 하 여 수행할 수 있습니다는 PropertyRef 요소에는 Properties group 요소에 정의 된 요소를 다시 사용할 수 하거나 추가 하 여는 PropertyListRef 이전에 정의 된 속성 그룹을 다시 사용할 수 있는 요소입니다.
다음 코드는 매핑된 형식 요소에 대 한 속성 정의가 어떻게 보여 줍니다.
<MappedType name="TableColumn" underlyingType="Column">
<Selection restrictions="{Catalog},{Schema},{Table},{Name}" />
<IdentifierRef name="MappedSubTypeIdentifier" arguments="Table" />
<Properties>
<Property name="Name" isIdentifierPart="true" />
<Property name="Ordinal" underlyingMember="ID" />
<Property name="DataType" underlyingMember="DataType" />
<Property name="IsNullable" underlyingMember="Nullable" />
<Property name="IsComputed" underlyingMember="Computed" />
</Properties>
</MappedType>
특성 이름
매핑된 개체의 형식 이름을 name 특성을 지정합니다.
underlyingType 속성
매핑된 개체 형식에서 해당 멤버를 검색 합니다 내부 데이터 소스 형식의 이름을이 특성을 지정 합니다.
DDEX 데이터 개체 형식 및 MappedType 함수
데이터 개체 형식은 네 가지 주요 기능이 있습니다. 설명:
Visual Studio 메타 데이터 엔진에서가 열거 요청을 수락 하 여 내부 개체 선택 인터페이스를 사용 하 여에 해당 하는 요청을 변환 하는 방법 (IVsDataObjectSelector 에 있는 Microsoft.VisualStudio.Data.Services.SupportEntities 네임 스페이스)입니다.
개체 선택 기술의 식별자와 속성에서 반환 하는 데이터입니다.
작성 하는 방법은 DSRef 를 사용 하 여 개체의 IDSRefBuilder 인터페이스.
형식, 식별자 및 해당 연결에 대 한 일반적인 방식으로 입력 하 고 적절 한 속성입니다.
위에 나열 된 4 가지 기능에 대해서는 다음 항목에서 설명 합니다.