Create XML Schema : XML Schema « 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








25.5.XML Schema
25.5.1.Create XML Schema
25.5.2.Validating XML documents against Schemas
25.5.3.XmlSchema Set Example