Serialize Xml

Slacombe

New member
Joined
Jul 31, 2008
Messages
2
Programming Experience
Beginner
I been searching for 3 days how to serialize the class building so my final xml would looks like this:

Public class Building
HTML:
<Building>
  <name>
  </name>
  <age>
  </age>
  <Floors>
    <floor1>
      <Desks>
        <desk1>
        </desk1>
        <desk2>
        </desk2>
        <desk3>
        </desk3>
      </Desks>
    </floor1>
    <floor2>
      <Desks>
        <desk1>
        </desk1>
        <desk2>
        </desk2>
        <desk3>
        </desk3>
      </Desks>
    </floor2>
  </Floors>
</Building>


The quantity of Floors is unknow and the quantity of desk for each floor is unknow. I'm complely new to vb.net. I managed to serialise class, nested class but i'm stuck with the combined classes.


Should i use arraylist for Floors and Desk? and how can i serialize an arraylist.

Thx in advance!
 
NEVERMIND The problem below been solved!:eek:



Thx alot, this sure helped me,but i still got an issue

XSD.exe generated this shema whitch has a couple of object arrays nested
VB.NET:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="Policy">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="PolicyNumber" type="xs:string" minOccurs="0" />
	<xs:element name="EffectiveDate" type="xs:date" minOccurs="0" />
	<xs:element name="ExpirationDate" type="xs:date" minOccurs="0" />
	<xs:element name="AgentName" type="xs:string" minOccurs="0" />
	<xs:element name="UnderwriterName" type="xs:string" minOccurs="0" />
	<xs:element name="UnitName" type="xs:string" minOccurs="0" />
	<xs:element name="ProgramPackage" type="xs:string" minOccurs="0" />
	<xs:element name="CreditScore" type="xs:integer" minOccurs="0" />
	<xs:element name="OriginalDate" type="xs:date" minOccurs="0" />
	<xs:element name="BusinessSince" type="xs:integer" minOccurs="0" />
	<xs:element name="CoopPolicyCount" type="xs:integer" minOccurs="0" />
	<xs:element name="ClaimExperience" type="xs:boolean" minOccurs="0" />
	<xs:element name="ApplyClaimExperience" type="xs:string" minOccurs="0" />
	<xs:element name="PolicyNotes" type="xs:string" minOccurs="0" />

        <xs:element name="Locations" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Location" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Occupancies" minOccurs="0" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Occupancy" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Coverages" minOccurs="0" maxOccurs="unbounded">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="Coverage" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="Policy" />
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>



But when he generate the VB code i guess only 3 classes which shouldn't be.

VB.NET:
<System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42"),  _
 System.SerializableAttribute(),  _
 System.Diagnostics.DebuggerStepThroughAttribute(),  _
 System.ComponentModel.DesignerCategoryAttribute("code"),  _
 System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=true),  _
 System.Xml.Serialization.XmlRootAttribute([Namespace]:="", IsNullable:=false)>  _
Partial Public Class Policy
    
    Private policyNumberField As String
    
    Private effectiveDateField As Date
    
    Private effectiveDateFieldSpecified As Boolean
    
    Private expirationDateField As Date
    
    Private expirationDateFieldSpecified As Boolean
    
    Private agentNameField As String
    
    Private underwriterNameField As String
    
    Private unitNameField As String
    
    Private programPackageField As String
    
    Private creditScoreField As String
    
    Private originalDateField As Date
    
    Private originalDateFieldSpecified As Boolean
    
    Private businessSinceField As String
    
    Private coopPolicyCountField As String
    
    Private claimExperienceField As Boolean
    
    Private claimExperienceFieldSpecified As Boolean
    
    Private applyClaimExperienceField As String
    
    Private policyNotesField As String
    
    Private locationsField()()()()() As PolicyLocationsLocationOccupanciesOccupancyCoverages
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)>  _
    Public Property PolicyNumber() As String
        Get
            Return Me.policyNumberField
        End Get
        Set
            Me.policyNumberField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType:="date")>  _
    Public Property EffectiveDate() As Date
        Get
            Return Me.effectiveDateField
        End Get
        Set
            Me.effectiveDateField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlIgnoreAttribute()>  _
    Public Property EffectiveDateSpecified() As Boolean
        Get
            Return Me.effectiveDateFieldSpecified
        End Get
        Set
            Me.effectiveDateFieldSpecified = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType:="date")>  _
    Public Property ExpirationDate() As Date
        Get
            Return Me.expirationDateField
        End Get
        Set
            Me.expirationDateField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlIgnoreAttribute()>  _
    Public Property ExpirationDateSpecified() As Boolean
        Get
            Return Me.expirationDateFieldSpecified
        End Get
        Set
            Me.expirationDateFieldSpecified = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)>  _
    Public Property AgentName() As String
        Get
            Return Me.agentNameField
        End Get
        Set
            Me.agentNameField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)>  _
    Public Property UnderwriterName() As String
        Get
            Return Me.underwriterNameField
        End Get
        Set
            Me.underwriterNameField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)>  _
    Public Property UnitName() As String
        Get
            Return Me.unitNameField
        End Get
        Set
            Me.unitNameField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)>  _
    Public Property ProgramPackage() As String
        Get
            Return Me.programPackageField
        End Get
        Set
            Me.programPackageField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType:="integer")>  _
    Public Property CreditScore() As String
        Get
            Return Me.creditScoreField
        End Get
        Set
            Me.creditScoreField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType:="date")>  _
    Public Property OriginalDate() As Date
        Get
            Return Me.originalDateField
        End Get
        Set
            Me.originalDateField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlIgnoreAttribute()>  _
    Public Property OriginalDateSpecified() As Boolean
        Get
            Return Me.originalDateFieldSpecified
        End Get
        Set
            Me.originalDateFieldSpecified = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType:="integer")>  _
    Public Property BusinessSince() As String
        Get
            Return Me.businessSinceField
        End Get
        Set
            Me.businessSinceField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType:="integer")>  _
    Public Property CoopPolicyCount() As String
        Get
            Return Me.coopPolicyCountField
        End Get
        Set
            Me.coopPolicyCountField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)>  _
    Public Property ClaimExperience() As Boolean
        Get
            Return Me.claimExperienceField
        End Get
        Set
            Me.claimExperienceField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlIgnoreAttribute()>  _
    Public Property ClaimExperienceSpecified() As Boolean
        Get
            Return Me.claimExperienceFieldSpecified
        End Get
        Set
            Me.claimExperienceFieldSpecified = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)>  _
    Public Property ApplyClaimExperience() As String
        Get
            Return Me.applyClaimExperienceField
        End Get
        Set
            Me.applyClaimExperienceField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)>  _
    Public Property PolicyNotes() As String
        Get
            Return Me.policyNotesField
        End Get
        Set
            Me.policyNotesField = value
        End Set
    End Property
    
    '''<remarks/>
    <System.Xml.Serialization.XmlArrayAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified),  _
     System.Xml.Serialization.XmlArrayItemAttribute("Location", GetType(PolicyLocationsLocationOccupanciesOccupancyCoverages()()()), _
Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable:=false),  _
     System.Xml.Serialization.XmlArrayItemAttribute("Occupancies", GetType(PolicyLocationsLocationOccupanciesOccupancyCoverages()()), _
Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable:=false, NestingLevel:=1),  _
     System.Xml.Serialization.XmlArrayItemAttribute("Occupancy", GetType(PolicyLocationsLocationOccupanciesOccupancyCoverages()), _
Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable:=false, NestingLevel:=2),  _
     System.Xml.Serialization.XmlArrayItemAttribute("Coverages", GetType(PolicyLocationsLocationOccupanciesOccupancyCoverages), _
Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable:=false, NestingLevel:=3)>  _
    Public Property Locations() As PolicyLocationsLocationOccupanciesOccupancyCoverages()()()()()
        Get
            Return Me.locationsField
        End Get
        Set
            Me.locationsField = value
        End Set
    End Property
End Class

'''<remarks/>
<System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42"),  _
 System.SerializableAttribute(),  _
 System.Diagnostics.DebuggerStepThroughAttribute(),  _
 System.ComponentModel.DesignerCategoryAttribute("code"),  _
 System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=true)>  _
Partial Public Class PolicyLocationsLocationOccupanciesOccupancyCoverages
    
    Private coverageField As String
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)>  _
    Public Property Coverage() As String
        Get
            Return Me.coverageField
        End Get
        Set
            Me.coverageField = value
        End Set
    End Property
End Class

'''<remarks/>
<System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42"),  _
 System.SerializableAttribute(),  _
 System.Diagnostics.DebuggerStepThroughAttribute(),  _
 System.ComponentModel.DesignerCategoryAttribute("code"),  _
 System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=true),  _
 System.Xml.Serialization.XmlRootAttribute([Namespace]:="", IsNullable:=false)>  _
Partial Public Class NewDataSet
    
    Private itemsField() As Policy
    
    '''<remarks/>
    <System.Xml.Serialization.XmlElementAttribute("Policy")>  _
    Public Property Items() As Policy()
        Get
            Return Me.itemsField
        End Get
        Set
            Me.itemsField = value
        End Set
    End Property
End Class


are there any ways to fix my problem?
 
Last edited:
Back
Top