dcsimg
Login | Register   
LinkedIn
Google+
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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


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

WEBINAR:

On-Demand

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:

<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
Thanks for your registration, follow us on our social networks to keep up-to-date