Udostępnij przez


Generowanie relacji zestawu danych na podstawie schematu XML (XSD)

W obiekcie DataSettworzy się skojarzenie między co najmniej dwiema kolumnami, tworząc relację nadrzędny-podrzędny. Istnieją trzy sposoby reprezentowania DataSet relacji w schemacie języka definicji schematu XML (XSD):

  • Określ zagnieżdżone typy złożone.

  • Użyj adnotacji msdata:Relationship .

  • Określ element xs:keyref bez adnotacji msdata:ConstraintOnly .

Zagnieżdżone typy złożone

Zagnieżdżone złożone definicje typów w schemacie wskazują relacje między elementami typu nadrzędnego i podrzędnego. Poniższy fragment schematu XML pokazuje, że OrderDetail jest elementem podrzędnym Order elementu .

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

Proces mapowania schematu XML tworzy tabele w elemencie DataSet, które odpowiadają zagnieżdżonym typom złożonym w schemacie. Tworzy również dodatkowe kolumny, które są używane jako kolumny nadrzędne i podrzędne dla wygenerowanych tabel. Należy pamiętać, że te kolumny nadrzędne i podrzędne specyfikują relacje, ale nie są tym samym co określenie ograniczeń klucza podstawowego/klucza obcego.

msdata:Adnotacja relacji

Adnotacja msdata:Relationship umożliwia jawne określenie relacji między rodzicem a dzieckiem między elementami w schemacie, które nie występują jako zagnieżdżone. Poniższy przykład przedstawia strukturę Relationship elementu.

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

Atrybuty adnotacji msdata:Relationship identyfikują elementy zaangażowane w relację nadrzędny-podrzędny, a także elementy i atrybuty parentkey oraz childkey uczestniczące w tej relacji. Proces mapowania używa tych informacji do generowania tabel w DataSet oraz do utworzenia relacji klucza podstawowego/klucza obcego między tymi tabelami.

Na przykład poniższy fragment schematu określa elementy Order i OrderDetail, które są na tym samym poziomie (nie są zagnieżdżone). Schemat określa adnotację msdata:Relationship , która określa relację nadrzędny-podrzędny między tymi dwoma elementami. W takim przypadku należy określić jawną relację przy użyciu adnotacji 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>

Proces mapowania używa elementu Relationship do utworzenia relacji nadrzędny-podrzędny między kolumną OrderNumber w tabeli Order a kolumną OrderNo w tabeli OrderDetail w DataSet. Proces mapowania określa tylko relację; Nie określa on automatycznie żadnych ograniczeń dotyczących wartości w tych kolumnach, podobnie jak ograniczenia klucza podstawowego/klucza obcego w relacyjnych bazach danych.

W tej Sekcji

Mapuj niejawne relacje między zagnieżdżonymi elementami schematu Opisuje ograniczenia i relacje, które są niejawnie tworzone DataSet podczas napotkania zagnieżdżonych elementów w schemacie XML.

Mapowanie relacji określonych dla zagnieżdżonych elementów Opisuje sposób jawnego ustawiania relacji w DataSet dla obiektu zagnieżdżonych elementów w schemacie XML.

Określanie relacji między elementami bez zagnieżdżania Opisuje, jak utworzyć relacje w DataSet między elementami schematu XML, które nie są zagnieżdżone.

Wyprowadzanie struktury relacyjnej zestawu danych ze schematu XML (XSD) Opisuje strukturę relacyjną lub schemat schematu DataSet utworzonego na podstawie schematu języka definicji schematu XML (XSD).

Mapowanie ograniczeń schematu XML (XSD) na ograniczenia zestawu danych Opisuje elementy schematu XML używane do tworzenia unikatowych i obcych ograniczeń klucza w zestawie danych.

Zobacz także