Mega Code Archive

 
Categories / VB.Net / XML
 

Load xml document to DataSet

Imports System Imports System.Xml Imports System.Xml.Schema Imports System.IO Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Collections Imports System.Data Imports System.Windows.Forms Public Class MainClass          Shared Sub Main()         Dim DSStudentClasses As New DataSet()         Dim tmpNode As XmlNode         ' Load the schema into the DataSet         DSStudentClasses.ReadXmlSchema("StudentClasses.xsd")         ' Load the DataSet into the data document         Dim XDocStudents As New XmlDataDocument(DSStudentClasses)         ' Load the data into the data document         XDocStudents.Load("Students.xml")         Console.WriteLine("Students in DataSet:")         Dim Row As DataRow         For Each Row In DSStudentClasses.Tables("Student").Rows             Console.WriteLine("{0}:{1}", Row("Name"), Row("GPA"))             tmpNode = XDocStudents.GetElementFromRow(Row)             Console.WriteLine( _                   "   Locker Combination (from XML, not DataSet): {0}", _                   tmpNode.SelectSingleNode("LockerCombination").InnerText)             Dim Subject As DataRow             For Each Subject In Row.GetChildRows("StudentClasses")                 Console.WriteLine("   {0}", Subject("Title"))             Next         Next     End Sub End Class 'student.xml '<?xml version="1.0" encoding="utf-8" ?> '<Students> '  <Student ID="1"> '    <Name>Joe Wang</Name> '    <Age>30</Age> '    <GPA>2.95</GPA> '    <LockerCombination>10-12-35</LockerCombination> '    <Class Title="Biology" Room="100" /> '    <Class Title="English Lit" Room="101" /> '  </Student> '</Students> 'student.xsd '<?xml version="1.0" standalone="yes"?> '<xs:schema id="Students" xmlns="" '                        xmlns:xs="http://www.w3.org/2001/XMLSchema"                         xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> '  <xs:element name="Students" msdata:IsDataSet="true"> '    <xs:complexType> '      <xs:choice maxOccurs="unbounded"> '        <xs:element name="Student"> '          <xs:complexType> '            <xs:sequence> '              <xs:element name="Name" type="xs:string" '                          minOccurs="0" msdata:Ordinal="0" /> '              <xs:element name="GPA" type="xs:float" '                          minOccurs="0" msdata:Ordinal="2" /> '              <xs:element name="Class" '                          minOccurs="0" maxOccurs="unbounded"> '                <xs:complexType> '                 <xs:attribute name="Title" type="xs:string" /> '                  <xs:attribute name="Room" type="xs:string" /> '                  <xs:attribute name="StudentID" type="xs:int" '                                use="prohibited" /> '                </xs:complexType> '              </xs:element> '            </xs:sequence> '            <xs:attribute name="ID" type="xs:int" /> '          </xs:complexType> '        </xs:element> '      </xs:choice> '    </xs:complexType> '    <xs:unique name="StudentID" msdata:PrimaryKey="true"> '      <xs:selector xpath=".//Student" /> '      <xs:field xpath="@ID" /> '    </xs:unique> '    <xs:keyref name="StudentClasses" refer="StudentID" '               msdata:IsNested="true"> '      <xs:selector xpath=".//Class" /> '      <xs:field xpath="@StudentID" /> '    </xs:keyref> '  </xs:element> '</xs:schema>