The System.Xml Namespace

IOTA^_^    

ASP.NET Developer's JumpStart
By Paul D. Sheriff, Ken Getz
Table of Contents
Chapter 4.  Overview of .NET Framework Classes


The System.Xml Namespace

You'll use the System.Xml namespace for processing XML data. This namespace supports an ever-expanding host of XML standards, such as the following:

  • XML 1.0

  • Namespaces

  • Schemas

  • XSL/T

  • SOAP 1.1

The System.Xml namespace contains classes that represent the various XML elements, similar to the objects provided by the MSXML library for Visual Basic 6.0 developers. For example, you'll find an XmlDocument class, an XmlEntity class, and an XmlNode class. You can also use XmlValidatingReader in order to read XML and validate it against a Document Type Definition (DTD), XML Data Reduced (XDR) schema, or an XML Schema Definition (XSD).

The System.Xml namespace includes reader and writer classes that provide fast, forward-only reading and writing of XML streams. Back in the System.Data discussion, you learned about the DataReader class, which is used for fast forward-only data access. XmlTextReader provides the same basic functionality against an XML stream.

When you use a reader object to read XML, you can use properties of the reader to determine each node type and act accordingly. A writer class has methods such as WriteCData, WriteDocType, and WriteNode in order to create an XML document, element by element.

A System.Xml Example

The example in Listing 4.5 combines several of the namespaces covered in this chapter. First, it uses System.Data classes to read data from SQL Server. Next, it uses System.IO classes to output that data into an XML file. Finally, it reopens the original XML file and uses System.Xml to read the contents of the file and copy the data into a text box. Here's the code:

NOTE

More node types are possible when reading in an XML document than are shown in the Select Case statement. However, for brevity, the number of types examined is small.


Listing 4.5 Use an XmlTextReader Class to Parse an XML Document
 Imports System.IO Imports System.XML Imports System.Text Imports System.Data.OleDb Private Sub XMLWrite()   Dim strConn As String   Dim strSQL As String   Dim strName As String   Dim strXML As String   Dim sw As StreamWriter   Dim sr As XmlTextReader   Dim sb As New StringBuilder(256)   Dim da As OleDbDataAdapter   Dim ds As DataSet   strConn = "Provider=sqloledb;" & _    "Data Source=(local);" & _    "Initial Catalog=Northwind;" & _    "User ID=sa"   strSQL = "SELECT ProductID, ProductName FROM Products"   da = New OleDbDataAdapter(strSQL, strConn)   ds = New DataSet()   da.Fill(ds)   strName = "c:\test.xml"   sw = File.CreateText(strName)   sw.WriteLine(ds.GetXml)   sw.Close()   sr = New XmlTextReader(strName)   sr.WhitespaceHandling = WhitespaceHandling.None   ' Parse the file and display each of the nodes.   While sr.Read()     Select Case sr.NodeType       Case XmlNodeType.Element         sb.AppendFormat("<{0}>", sr.Name)       Case XmlNodeType.Text         sb.Append(sr.Value)       Case XmlNodeType.XmlDeclaration         sb.Append("<?xml version='1.0'?>")       Case XmlNodeType.Document       Case XmlNodeType.DocumentType         sb.AppendFormat("<!DOCTYPE {0}[{1}]", _          sr.Name, sr.Value)       Case XmlNodeType.EndElement         sb.AppendFormat("</{0} >", sr.Name)     End Select   End While   txtXML.Text = sb.ToString() End Sub 

    IOTA^_^    
    Top


    ASP. NET Developer's JumpStart
    ASP.NET Developers JumpStart
    ISBN: 0672323575
    EAN: 2147483647
    Year: 2002
    Pages: 234

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net