Derivar una estructura relacional de un conjunto de datos a partir de un 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, solo 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 sobre el XSD, vea los siguientes temas del consorcio W3C, XML Schema Part 0: Recomendación base del esquema XML, XML Schema Part 1: Recomendación de estructuras y XML Schema Part 2: Recomendación sobre tipos de datos.
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=""
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.
Nota
Si el elemento customers
es de un tipo de datos simple de esquema XML como integer, no se generará ninguna tabla. Solo 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=""
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
Asignar restricciones de un esquema XML (XSD) a restricciones de conjuntos de datos
Describe los elementos de esquema XML utilizados para crear restricciones de clave única y externa en un DataSet
.
Generar relaciones de objetos DataSet en un esquema XML (XSD)
Describe los elementos de esquema XML utilizados para crear relaciones entre columnas de tabla de un DataSet
.
Restricciones y relaciones del esquema XML
Describe cómo se crean implícitamente relaciones cuando se utilizan elementos de esquema XML para crear restricciones en un DataSet
.
Secciones relacionadas
Usar XML en un conjunto de datos
Describe cómo cargar y hacer persistentes la estructura relacional y los datos de un DataSet
como datos XML.