공통 노드 기능

모든 데이터 뷰 노드에 세 가지 기능은 다음과 같습니다.

  • 노드 ID

  • 노드 표시 이름

  • 자식 노드

노드 ID

노드 Id는 사용 되는 컨텍스트에 따라 두 종류가 있습니다. 개체를 원본으로 사용 하지 않는 노드는 정적 노드를 지정 된 노드의 id가 들어 있는 노드 id가 정적이 아닌 노드에 대해 지정 된 다른 값, 즉 개체를 원본으로 사용 하는 노드.

참고 노드 ID에 대 한 참조를 DataViewSupport 스키마에 정의 된 틀립니다 XML 특성에 해당 합니다.

고정 된 노드에 대 한 노드 ID

정적 노드 노드 ID는 정적이 아닌 노드를 앞에 경로 나타내는 정적이 아닌 노드의 전체 이름 부분입니다. 예를 들어, 다음 정적이 아닌 노드가 고 정적 노드 "테이블"를 포함 하는 "authors" 테이블의 전체 이름 (전체 경로)를 나타냅니다. "/ Tables/UserTables/Table[pubs.dbo.authors]".

이 경우에 노드 ID가 "/ 테이블/UserTables /"의 노드를 연결 하는 경로 이기 때문에.

노드의 전체 이름의 형식에 대 한 설명은 참조 하십시오. FullName.

고정 되지 않은 노드에 대 한 노드 ID

그러나 정적이 아닌 노드의 노드 ID 선택 아래에 있는 개체에 대 한 속성이 들어 있는 노드를 나타냅니다. 이 노드는 일반적으로 부모 노드를 선택 하려면 개체입니다. 특히, 첫 번째 부모 노드 ID를 다음 상위 계층에서 검사 하는 정규화 된 부모를 찾을 때까지 이러한 속성을 제공 하지 않을 경우, 개체를 선택 하면에 대 한 속성이 있는 뷰 계층 구조에서 다음 상위 노드의 노드 ID 개체 선택 프로세스를 찾습니다.

예를 들어, "au_id" 및 "au_name" 라는 두 개의 열이 포함 된 "만든 이" 라고는 뷰 계층 구조에서 비정적 테이블 노드의 존재를 가정 합니다. "테이블" 정적 노드 아래에서이 테이블과 다른 테이블입니다. 이러한 열을 선택 하려면 클라이언트 노드 ID는이 예제에서 테이블 선택 영역 노드의 노드 ID 열 선택의 부모를 식별 해야 합니다. 아래의 XML이 예제를 보여 줍니다.

<StaticNode nodeId="Tables">
   <Children>
      <Selection type="Table">
         <SelectionNode nodeId="Table">
            <Children>
               <Selection type="Column" restrictions="{Table.Name}">
               ...
               </Selection>
            </Children>
         </SelectionNode>
      </Selection>
   </Children>
</StaticNode>

노드 표시 이름

계층 구조 노드 Visual Studio 자신의 아이콘으로 표시 되는 표시 이름을 가질 수 있습니다 서버 탐색기. 다른 노드 형식에 대 한 유추 될 수 있는 대로 정적 연결 노드를 포함 하 여 정적 노드만 표시 이름이 필요 합니다.

사용 하는 노드 표시 이름을 사용 하는 DisplayName 요소입니다. 표시 이름 형식을 지정 하는 방법을 지정 하려면 뿐만 아니라 IDE에 표시 되는 노드의 이름을 지정할 수 있습니다. (연결 노드의 경우, 적절 한 요소 라고는 InitialDisplayName 요소 연결 노드에 대 한 표시 이름을 사용자가 수정할 수 있기 때문에.) 표시 이름에 서식을 지정 하려면 간단한 문자열 콘텐츠를 사용 하거나 XML의 리소스 섹션에서 노출 되는 리소스를 참조 합니다.

옵션을 사용 하 여 표시 이름을 적용할 수 있습니다 when 특성을 조건에 따라, 특정된 조건 집합에 지정 된 형식이 올바른지 결정 합니다 계산 되는 식을 지정할 수 있습니다.

조건부 응용 프로그램 표시 이름 및 형식에 대 한 여러 가지 이유로 발생할 수 있습니다. 예를 들어, 소유자 이름 테이블 이름은 소유자 이름이 현재 사용자 이름에서 다릅니다 된 조건 옆에 표시할 수도 있습니다.

다음 예제 코드에서는 XML 담당자 조건부 응용 프로그램의 표시 이름 처리 하는 위의 시나리오에서 설명한 것 처럼 표시 됩니다.

<SelectionNode>
    <DisplayName when="NOT ({Schema} = {Database.UserName})">
        {Name} ({Schema})
    </DisplayName>
</SelectionNode>

그러나이 조건부 표현식이 리터럴 식입니다:이 선택한 노드에 대 한 테이블 스키마 않은 데이터베이스의 현재 사용자에 게 동일한 경우에서 대괄호 안에 테이블 소유자가 다음에 데이터베이스 테이블 이름을 표시 이름 값 이어야 합니다.

이 예제에는 기본 표시 이름이 없는 있지만 조건부 식으로 지정 된 이름 형식이 아니라입니다. 이러한 노드 형식은 내부 개체 로부터 파생 될 기본 형식 허용 하므로이 개체 연결 노드 및 선택한 노드에 허용 됩니다. 정적 연결 노드에 대 한 반면, 스키마는 적어도 하나 이상의 이루어 DisplayName 될 요소를 제공 합니다.

자식 노드

노드를 사용 해야 합니다을 Children 요소를 해당 자식 노드를 지정 합니다.

세 가지 형식의 자식 노드가 있습니다.

  • 정적입니다. 모든 노드가 다른 정적 노드를 포함 하는 자식에 대 한 정적 노드를 가질 수 있습니다. "시스템 테이블" 및 "사용자 테이블" 확장 된 "자료 Tables" 컬렉션에 표시 될 수 있습니다 예를 들어,

  • 선택 영역입니다. 이 자식 노드 종류의 여러 서버에서 열거 된 개체를 기반으로 하는 자식 노드의 수를 확장 합니다. 이 보여 주기 위해 데이터 원본에서 테이블 목록을 표시할 데이터 뷰에서 가정 합니다. 이 위해 다음과 같은 XML을 작성할 수 있습니다.

    <StaticNode>
        <DisplayName>Tables</DisplayName>
        <Children>
            <Selection type="Table"/>
        </Children>
    </StaticNode>
    

    위의 XML 표시 하는 다음과 같은 계층 구조를 생성 하지.

    - Tables  
       - <Table 1>
       - <Table 2>
    - ...  
    

참고 항목

개념

데이터 뷰 노드

특정 노드 기능