Compartir a través de


Generación de relaciones de conjuntos de datos a partir del esquema XML (XSD)

En un DataSet, se forma una asociación entre dos o más columnas al crear una relación entre padre e hijo. Hay tres maneras de representar una DataSet relación dentro de un esquema de lenguaje de definición de esquemas XML (XSD):

  • Especificar tipos complejos anidados.

  • Use la anotación msdata:Relationship .

  • Especifique un xs:keyref sin la anotación msdata:ConstraintOnly .

Tipos complejos anidados

Las definiciones de tipos complejos anidados en un esquema indican las relaciones de elementos primarios y secundarios. El siguiente fragmento de esquema XML muestra que OrderDetail es un elemento secundario del Order elemento .

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

El proceso de asignación del esquema XML crea tablas en el DataSet que corresponden a los tipos complejos anidados del esquema. También crea columnas adicionales que se utilizan como columnas primarias y secundarias para las tablas generadas. Tenga en cuenta que estas columnas primaria-secundaria especifican relaciones, lo cual no es lo mismo que especificar restricciones de clave principal y clave externa.

Anotación msdata:Relationship

La anotación msdata:Relationship le permite especificar explícitamente relaciones primaria-secundaria entre los elementos del esquema que no están anidados. En el ejemplo siguiente se muestra la estructura del Relationship elemento .

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

Los atributos de la anotación msdata:Relationship identifican los elementos implicados en la relación padre-hijo, así como los elementos parentkey y childkey, y los atributos implicados en la relación. El proceso de asignación usa esta información para generar tablas en DataSet y para crear la relación de clave principal/clave externa entre estas tablas.

Por ejemplo, el siguiente fragmento de esquema especifica los elementos Order y OrderDetail en el mismo nivel y no anidados. El esquema especifica una anotación msdata:Relationship, que especifica la relación padre-hijo entre estos dos elementos. En este caso, se debe especificar una relación explícita mediante la anotación 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>

El proceso de asignación usa el Relationship elemento para crear una relación padre-hijo entre la OrderNumber columna en la Order tabla y la OrderNo columna en la OrderDetail tabla en el DataSet. El proceso de asignación sólo especifica la relación; no especifica automáticamente ninguna restricción para los valores de estas columnas, como ocurre en las restricciones de clave principal y clave externa de las bases de datos relacionales.

En esta sección

Asignar relaciones implícitas entre elementos de esquema anidados Describe las restricciones y relaciones que se crean implícitamente en un DataSet cuando se encuentran elementos anidados en el esquema XML.

Relaciones de mapa especificadas para elementos anidados Describe cómo establecer explícitamente las relaciones en para DataSet los elementos anidados en el esquema XML.

Especificar relaciones entre elementos sin anidamiento Describe cómo crear relaciones en un DataSet entre elementos del esquema XML que no están anidados.

Derivación de la estructura relacional del DataSet del esquema XML (XSD) Describe la estructura relacional o el esquema de un DataSet que se crea a partir del esquema del lenguaje de definición de esquemas XML (XSD).

Asignación de restricciones de esquema XML (XSD) a restricciones de DataSet Describe los elementos del esquema XML usados para crear restricciones de clave única y claves externas en un DataSet.

Consulte también