XML VB.Net Tutorial

Imports System.IO
Imports System.Xml
Imports System.Xml.Schema
public class Test
   public Shared Sub Main
        ' Create the schema. This object acts as the root node.
        Dim XS As New XmlSchema()
        ' Define a personal reference type.
        Dim Personal As New XmlSchemaElement()
        Personal.Name = "Personal"
        Personal.SchemaTypeName = New XmlQualifiedName("boolean", "http://www.w3.org/2001/XMLSchema)
        ' Define a business reference type.
        Dim Business As New XmlSchemaElement()
        Business.Name = "BusType"
        Dim BusType As New XmlSchemaComplexType()
        Dim BusSeq As New XmlSchemaSequence()
        Dim Position As New XmlSchemaElement()
        Position.Name = "Position"
        Position.MinOccurs = 1
        Position.MaxOccurs = 1
        Position.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema)
        Dim CompanyName As New XmlSchemaElement()
        CompanyName.Name = "CompanyName"
        CompanyName.MinOccurs = 1
        CompanyName.MaxOccurs = 1
        CompanyName.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
        BusSeq.Items.Add(Position)
        BusSeq.Items.Add(CompanyName)
        BusType.Particle = BusSeq
        Business.SchemaType = BusType
        XS.Items.Add(Personal)
        XS.Items.Add(Business)
        Dim MyAddress As New XmlSchemaElement
        MyAddress.Name = "Addresses"
        Dim MyAddressType As New XmlSchemaComplexType()
        Dim MyAddressSeq As New XmlSchemaSequence()
        Dim Items As New XmlSchemaElement()
        Items.Name = "Item"
        Items.MinOccurs = 1
        Items.MaxOccursString = "unbounded"
        Dim ThisType As New XmlSchemaComplexType()
        Dim ThisSeq As New XmlSchemaSequence()
        Dim FName As New XmlSchemaElement()
        FName.Name = "FirstName"
        FName.MinOccurs = 1
        FName.MaxOccurs = 1
        FName.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
        Dim LName As New XmlSchemaElement()
        LName.Name = "LastName"
        LName.MinOccurs = 1
        LName.MaxOccurs = 1
        LName.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
        Dim Address As New XmlSchemaElement()
        Address.Name = "Address"
        Address.MinOccurs = 1
        Address.MaxOccursString = "unbounded"
        Address.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
        Dim City As New XmlSchemaElement()
        City.Name = "City"
        City.MinOccurs = 1
        City.MaxOccurs = 1
        City.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
        Dim Region As New XmlSchemaElement()
        Region.Name = "Region"
        Region.MinOccurs = 0
        Region.MaxOccurs = 1
        Region.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
        Dim PostalCode As New XmlSchemaElement()
        PostalCode.Name = "PostalCode"
        PostalCode.MinOccurs = 0
        PostalCode.MaxOccurs = 1
        PostalCode.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")
        Dim PersOrBus As New XmlSchemaChoice()
        PersOrBus.MinOccurs = 1
        PersOrBus.MaxOccurs = 1
        Dim PersRef As New XmlSchemaElement()
        PersRef.RefName = New XmlQualifiedName("Personal")
        PersOrBus.Items.Add(PersRef)
        Dim BusRef As New XmlSchemaElement()
        BusRef.RefName = New XmlQualifiedName("BusType")
        PersOrBus.Items.Add(BusRef)
        ThisSeq.Items.Add(FName)
        ThisSeq.Items.Add(LName)
        ThisSeq.Items.Add(PersOrBus)
        ThisSeq.Items.Add(Address)
        ThisSeq.Items.Add(City)
        ThisSeq.Items.Add(Region)
        ThisSeq.Items.Add(PostalCode)
        ThisType.Particle = ThisSeq
        Items.SchemaType = ThisType
        MyAddressSeq.Items.Add(Items)
        MyAddressType.Particle = MyAddressSeq
        MyAddress.SchemaType = MyAddressType
        XS.Items.Add(MyAddress)
        Dim Output As New XmlTextWriter("TestSchema.xsd", System.Text.Encoding.UTF8)
        XS.Write(Output)
        Output.Close()
   End Sub
End class