Compartir a través de


Generar la estructura relacional de DataSet desde la definición de esquema XML (XSD)

Esta sección ofrece información general sobre cómo se crea el esquema relacional de un DataSet a partir del documento de esquema del lenguaje de definición de esquema XML (XSD). En general, para cada elemento secundario complexType de un elemento del esquema se genera una tabla en el DataSet. La estructura de la tabla está determinada por la definición del tipo complejo. Se crean tablas en el DataSet para los elementos de nivel superior del esquema. Sin embargo, sólo se crea una tabla para un elemento complexType de nivel superior cuando el elemento complexType está anidado dentro de otro elemento complexType, en cuyo caso el elemento complexType anidado se asigna a una DataTable dentro del DataSet.

Para obtener más información acerca del lenguaje de definición de esquema XML (XSD), vea los siguientes temas del consorcio W3C, XML Schema Part 0: Primer Recommendation (recomendación base del esquema XML), XML Schema Part 1: Structures Recommendation (recomendación sobre estructuras del esquema XML) y XML Schema Part 2: Datatypes Recommendation (recomendación sobre tipos de datos del esquema XML), en la dirección http://www.w3.org/TR/.

En el siguiente ejemplo se muestra un esquema XML donde customers es el elemento secundario del elemento MyDataSet, que es un elemento DataSet.

 <xs:schema id="SomeID" 
              
             xmlns:xs="http://www.w3.org/2001/XMLSchema" 
             xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="MyDataSet" msdata:IsDataSet="true">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="customers" > 
            <xs:complexType >
              <xs:sequence>
                <xs:element name="CustomerID" type="xs:integer" 
                             minOccurs="0" />
                <xs:element name="CompanyName" type="xs:string" 
                             minOccurs="0" />
                <xs:element name="Phone" type="xs:string" />
              </xs:sequence>
            </xs:complexType>
           </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>

En el ejemplo anterior, customers es un elemento de tipo complejo. Por tanto, se analiza la definición del tipo complejo y el proceso de asignación crea la tabla siguiente.

Customers (CustomerID , CompanyName, Phone)

El tipo de datos de cada columna de la tabla se deriva del tipo de esquema XML del correspondiente elemento o atributo especificado. Para obtener una lista de tipos de datos del esquema XML y sus correspondientes tipos de datos de .NET Framework, vea Compatibilidad de tipos de datos entre tipos de esquema XML (XSD) y tipos de .NET Framework.

Nota   Si el elemento customers es de un tipo de datos simple de esquema XML como integer, no se generará ninguna tabla. Sólo se crean tablas para elementos de nivel superior que sean de tipos complejos.

En el siguiente esquema XML, el elemento Schema tiene dos elementos secundarios: InStateCustomers y OutOfStateCustomers.

 <xs:schema id="SomeID" 
              
             xmlns:xs="http://www.w3.org/2001/XMLSchema" 
             xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="InStateCustomers" type="customerType" />
    <xs:element name="OutOfStateCustomers" type="customerType" />
     <xs:complexType name="customerType" >
         ...
      </xs:complexType>

    <xs:element name="MyDataSet" msdata:IsDataSet="true">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="customers" />
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>

Los dos elementos secundarios InStateCustomers y OutOfStateCustomers son elementos de tipo complejo (customerType). Por tanto, el proceso de asignación genera las dos siguientes tablas idénticas en el DataSet.

InStateCustomers (CustomerID , CompanyName, Phone)
OutOfStateCustomers (CustomerID , CompanyName, Phone)

En esta sección

Secciones relacionadas

  • XML y DataSet
    Describe cómo cargar y hacer persistentes la estructura relacional y los datos de un DataSet como datos XML.
  • Referencia de esquemas XML (XSD)
    Proporciona una referencia del lenguaje de definición de esquema XML (XSD).