Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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:

<DataSet>
  <xs:schema> ... </xs:schema>
  <diffgr:diffgram ... > 
  ...
  </diffgr:diffgram>
</DataSet> 
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.

 

 

Sitemap