다음을 통해 공유


XSD(XML 스키마)에서 데이터 세트 관계 생성

DataSet에서 부모-자식 관계를 만들어 두 개 이상의 열 간에 연관성을 형성합니다. XSD(XML 스키마 정의 언어) 스키마 내에서 데이터 세트 관계를 나타내는 세 가지 방법이 있습니다.

  • 중첩된 복합 형식을 지정합니다.

  • msdata:Relationship 주석을 사용합니다.

  • msdata:ConstraintOnly 주석 없이 xs:keyref를 지정합니다.

중첩된 복합 형식

스키마의 중첩된 복합 형식 정의는 요소의 부모-자식 관계를 나타냅니다. 다음 XML 스키마 조각은 OrderDetailOrder 요소의 자식 요소임을 보여줍니다.

<xs:element name="Order">  
  <xs:complexType>  
     <xs:sequence>
       <xs:element name="OrderDetail" />  
           <xs:complexType>
           </xs:complexType>  
     </xs:sequence>  
  </xs:complexType>  
</xs:element>  

XML 스키마 매핑 프로세스는 스키마의 중첩된 복합 형식에 해당하는 테이블을 DataSet 에 만듭니다. 또한 생성된 테이블에 대한 부모-자식 열로 사용되는 추가 열을 만듭니다. 이러한 부모-자식 열은 기본 키/외래 키 제약 조건을 지정하는 것과 동일하지 않은 관계를 지정합니다.

msdata:관계 주석

msdata:Relationship 주석을 사용하면 중첩되지 않은 스키마의 요소 간에 부모-자식 관계를 명시적으로 지정할 수 있습니다. 다음 예제에서는 Relationship 요소의 구조를 보여 줍니다.

<msdata:Relationship name="CustOrderRelationship"
msdata:parent=""
msdata:child=""
msdata:parentkey=""
msdata:childkey="" />  

msdata:Relationship 주석의 특성은 부모-자식 관계에 관련된 요소뿐만 아니라 관계에 관련된 부모 키자식 키 요소 및 특성을 식별합니다. 매핑 프로세스는 이 정보를 사용하여 DataSet 에서 테이블을 생성하고 이러한 테이블 간에 기본 키/외래 키 관계를 만듭니다.

예를 들어 다음 스키마 조각은 같은 수준의 OrderOrderDetail 요소를 지정합니다(중첩되지 않음). 스키마는 msdata:Relationship 주석을 지정합니다. 이 주석은 이러한 두 요소 간의 부모-자식 관계를 지정합니다. 이 경우 msdata:Relationship 주석을 사용하여 명시적 관계를 지정해야 합니다.

 <xs:element name="MyDataSet" msdata:IsDataSet="true">  
  <xs:complexType>  
    <xs:choice maxOccurs="unbounded">  
        <xs:element name="OrderDetail">  
          <xs:complexType>  
  
          </xs:complexType>  
       </xs:element>  
       <xs:element name="Order">  
          <xs:complexType>  
  
          </xs:complexType>  
       </xs:element>  
    </xs:choice>  
  </xs:complexType>  
</xs:element>  
   <xs:annotation>  
     <xs:appinfo>  
       <msdata:Relationship name="OrdOrdDetailRelation"  
          msdata:parent="Order"  
          msdata:child="OrderDetail"
          msdata:parentkey="OrderNumber"  
          msdata:childkey="OrderNo"/>  
     </xs:appinfo>  
  </xs:annotation>  

매핑 프로세스는 Relationship 요소를 사용하여 Order 테이블의 OrderNumber 열과 DataSetOrderDetail 테이블에 있는 OrderNo 열 간에 부모-자식 관계를 만듭니다. 매핑 프로세스는 관계만 지정합니다. 관계형 데이터베이스의 기본 키/외래 키 제약 조건과 마찬가지로 이러한 열의 값에 대한 제약 조건은 자동으로 지정하지 않습니다.

이 섹션 안에

중첩된 스키마 요소 간의 암시적 관계 매핑
XML 스키마에서 중첩된 요소가 발생할 때 DataSet 에서 암시적으로 만들어지는 제약 조건 및 관계에 대해 설명합니다.

중첩된 요소에 대해 지정된 지도 관계
XML 스키마의 중첩된 요소에 대한 데이터 세트 의 관계를 명시적으로 설정하는 방법을 설명합니다.

중첩 없이 요소 간 관계를 지정하기
중첩되지 않은 XML 스키마 요소 간에 DataSet 에서 관계를 만드는 방법을 설명합니다.

XSD(XML 스키마)에서 데이터 세트 관계형 구조 파생
XSD(XML 스키마 정의 언어) 스키마에서 만든 DataSet 의 관계형 구조 또는 스키마에 대해 설명합니다.

XSD(XML 스키마) 제약 조건을 데이터 세트 제약 조건에 매핑
DataSet에서 고유 및 외래 키 제약 조건을 만드는 데 사용되는 XML 스키마 요소에 대해 설명합니다.

참고하십시오