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