Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB7
Expertise: Intermediate
Oct 19, 2002



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Include schema information in a DataSet's DiffGram

In the .NET Framework, the DataSet's WriteXml method when used to create a DiffGram does not provide the capability to include schema information along with the data. This is more of a design choice than an objective difficulty, though. When you return a DataSet object from a Web service method your clients receive a special flavor of DiffGram object made of schema and data. The output is shown here:

  <xs:schema> ... </xs:schema>
  <diffgr:diffgram ... > 
Technically speaking, the Web service serialization of a DataSet object is not obtained through WriteXml and the final output is not a true DiffGram, but rather a new XML format that incorporates a DiffGram. Such a new format is not produced by WriteXml but comes care of the XML serializer--the XmlSerializer class. The following code shows how to serialize a DataSet object to obtain a DiffGram with schema.

Dim sw As StreamWriter = New StreamWriter(fileName)
Dim writer As XmlTextWriter = New XmlTextWriter(sw)
writer.Formatting = Formatting.Indented

Dim ds As DataSet = InitializeTheDataSet()
Dim ser As XmlSerializer = New XmlSerializer(GetType(DataSet))
ser.Serialize(writer, ds)
It should be clear by now that you need the XML deserializer to read this new breed of DiffGram. The code is the following:

Dim ser As XmlSerializer = New XmlSerializer(GetType(DataSet))
Dim ds As DataSet = CType(ser.Deserialize(writer, ds), DataSet) 

Source: Applied XML Programming for Microsoft .NET, Dino Esposito, Microsoft Press 2002
Dino Esposito
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date