Appendix B. ADO.NET XML Extensions

Microsoft defines two namespaces for configuring DataSet schema files: codegen (urn:schemas-microsoft-com:xml-msprop) and msdata (urn:schemas-microsoft-com:xml-msdata). These namespaces extend the XSD format, allowing it to represent additional database-specific properties and allowing you to configure how typed DataSets are generated. In addition, the diffgr , or DiffGram namespace (urn:schemas-microsoft-com:xml-diffgram-v1), defines attributes that provide a way for XML documents to track DataSet changes and row insertions and deletions.

The structure of the XSD file for a DataSet is as follows:

<?xml version="1.0" encoding="utf-8"?>

<xs:schema id="DataSetName">



  <xs:element name="DataSetName" >

    <xs:complexType>

      <xs:choice maxOccurs="unbounded">



        <xs:element name="DataTableName" >

          <xs:complexType>

            <xs:sequence>



              <xs:element name="FieldName" />



          </xs:complexType>

        </xs:element>



      </xs:choice>

    </xs:complexType>



    <xs:unique name="ConstraintName" />

    <xs:keyref name="RelationName" />



  </xs:element>

</xs:schema>

The structure of the DiffGram format is shown next. All DiffGrams contains three sections: the current data, the original data, and any errors.

<?xml version="1.0"?> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- Data goes here. Changed rows are flagged. --> <diffgr:before> <!-- Contains the original data. --> </diffgr:before> ...

Get ADO.NET in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.