Liquid XML Data Binder 2019
AccountAdminRequest.vb
Option Explicit On
Option Strict On

Imports System
Imports System.Xml

'**********************************************************************************************
'* Copyright (c) 2001-2019 Liquid Technologies Limited. All rights reserved.
'* See www.liquid-technologies.com for product details.
'*
'* Please see products End User License Agreement for distribution permissions.
'*
'* WARNING: THIS FILE IS GENERATED
'* Changes made outside of ##HAND_CODED_BLOCK_START blocks will be overwritten
'*
'* Generation  :  by Liquid XML Data Binder 17.0.1.9233
'* Using Schema: SimpleChoice.xsd
'**********************************************************************************************

Namespace SimpleChoiceLib

    ''' <summary>
    ''' This class represents the Element AccountAdminRequest
    ''' </summary>
    <LiquidTechnologies.Runtime.Net45.XmlObjectInfo(LiquidTechnologies.Runtime.Net45.XmlObjectBase.XmlElementGroupType.Choice, _
                                                    LiquidTechnologies.Runtime.Net45.XmlObjectBase.XmlElementType.Element, _
                                                    "AccountAdminRequest", "", true, false, false)> _
    Public Partial Class AccountAdminRequest
        Inherits SimpleChoiceLib.XmlCommonBase

        #Region "Constructors"
        ''' <summary>
        '''    Constructor for AccountAdminRequest
        ''' </summary>
        ''' <remarks>
        '''    The class is created with all the mandatory fields populated with the
        '''    default data. 
        '''    All Collection object are created.
        '''    However any 1-n relationships (these are represented as collections) are
        '''    empty. To comply with the schema these must be populated before the xml
        '''    obtained from ToXml is valid against the schema SimpleChoice.xsd
        ''' </remarks>
        Public Sub New()
            _elementName = "AccountAdminRequest"
            Init()
        End Sub
        
        Public Sub New(ByVal elementName As String)
            _elementName = elementName
            Init()
        End Sub
        #End Region

        #Region "Initialization methods for the class"
        ''' <summary>
        '''    Initializes the class
        ''' </summary>
        ''' <remarks>
        '''    This creates all the mandatory fields (populated with the default data) 
        '''    All Collection object are created.
        '''    However any 1-n relationships (these are represented as collections) are
        '''    empty. To comply with the schema these must be populated before the xml
        '''    obtained from ToXml is valid against the schema SimpleChoice.xsd.
        ''' </remarks>
        Protected Overrides Sub Init()
            SimpleChoiceLib.Registration.iRegistrationIndicator = 0 ' causes registration to take place
            _CreateAccount = Nothing
            _DeleteAccount = Nothing
            _ChangeAccountPassword = Nothing

            _validElement = ""
' ##HAND_CODED_BLOCK_START ID="Additional Inits"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS

' Add Additional initialization code here...

' ##HAND_CODED_BLOCK_END ID="Additional Inits"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS
        End Sub

        Protected Sub ClearChoice(ByVal selectedElement As String)
            _CreateAccount = Nothing
            _DeleteAccount = Nothing
            _ChangeAccountPassword = Nothing
            _validElement = selectedElement
        End Sub
        #End Region

        #Region "ICloneable Interface"
        ''' <summary>
        '''    Allows the class to be copied
        ''' </summary>
        ''' <remarks>
        '''    Performs a 'deep copy' of all the data in the class (and its children)
        ''' </remarks>
        Public Overrides Function Clone() As Object
            Dim newObject As New SimpleChoiceLib.AccountAdminRequest(_elementName)
            Dim o As Object
            newObject._CreateAccount = Nothing
            if Not _CreateAccount Is Nothing Then
                newObject._CreateAccount = CType(_CreateAccount.Clone(), SimpleChoiceLib.CreateAccount)
            End If
            newObject._DeleteAccount = Nothing
            if Not _DeleteAccount Is Nothing Then
                newObject._DeleteAccount = CType(_DeleteAccount.Clone(), SimpleChoiceLib.DeleteAccount)
            End If
            newObject._ChangeAccountPassword = Nothing
            if Not _ChangeAccountPassword Is Nothing Then
                newObject._ChangeAccountPassword = CType(_ChangeAccountPassword.Clone(), SimpleChoiceLib.ChangeAccountPassword)
            End If

            o = Nothing

            newObject._validElement = _validElement
' ##HAND_CODED_BLOCK_START ID="Additional clone"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS

' Add Additional clone code here...

' ##HAND_CODED_BLOCK_END ID="Additional clone"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS

            Return newObject
        End Function
        #End Region

        #Region "Member variables"

        Protected Overrides Readonly Property TargetNamespace() As String
            Get 
                Return ""
            End Get
        End Property

        #Region "Attribute - CreateAccount"
        ''' <summary>
        ''' Represents an optional Element in the XML document
        ''' </summary>
        ''' <remarks>
        ''' This property is represented as an Element in the XML.
        ''' It is optional, initially it is Nothing.
        ''' Only one Element within this class may be set at a time, setting this property when another element is already set will raise an exception. setting this property to Nothing will allow another element to be selected
        ''' </remarks>
        <LiquidTechnologies.Runtime.Net45.ElementInfoChoiceClsOpt("CreateAccount", "", LiquidTechnologies.Runtime.Net45.XmlObjectBase.XmlElementType.Element, GetType(SimpleChoiceLib.CreateAccount))> _
        Public Property CreateAccount() As SimpleChoiceLib.CreateAccount
            Get 
                Return _CreateAccount
            End Get
            Set(ByVal value As SimpleChoiceLib.CreateAccount)
                ' The class represents a choice, so prevent more than one element from being selected
                If value Is Nothing Then ClearChoice("") Else ClearChoice("CreateAccount") ' remove selection
                If value Is Nothing Then
                    _CreateAccount = Nothing
                Else
                    SetElementName(value, "CreateAccount")
                    _CreateAccount = value 
                End If
            End Set
        End Property
        Protected _CreateAccount As SimpleChoiceLib.CreateAccount
        
        #End Region
    
        #Region "Attribute - DeleteAccount"
        ''' <summary>
        ''' Represents an optional Element in the XML document
        ''' </summary>
        ''' <remarks>
        ''' This property is represented as an Element in the XML.
        ''' It is optional, initially it is Nothing.
        ''' Only one Element within this class may be set at a time, setting this property when another element is already set will raise an exception. setting this property to Nothing will allow another element to be selected
        ''' </remarks>
        <LiquidTechnologies.Runtime.Net45.ElementInfoChoiceClsOpt("DeleteAccount", "", LiquidTechnologies.Runtime.Net45.XmlObjectBase.XmlElementType.Element, GetType(SimpleChoiceLib.DeleteAccount))> _
        Public Property DeleteAccount() As SimpleChoiceLib.DeleteAccount
            Get 
                Return _DeleteAccount
            End Get
            Set(ByVal value As SimpleChoiceLib.DeleteAccount)
                ' The class represents a choice, so prevent more than one element from being selected
                If value Is Nothing Then ClearChoice("") Else ClearChoice("DeleteAccount") ' remove selection
                If value Is Nothing Then
                    _DeleteAccount = Nothing
                Else
                    SetElementName(value, "DeleteAccount")
                    _DeleteAccount = value 
                End If
            End Set
        End Property
        Protected _DeleteAccount As SimpleChoiceLib.DeleteAccount
        
        #End Region
    
        #Region "Attribute - ChangeAccountPassword"
        ''' <summary>
        ''' Represents an optional Element in the XML document
        ''' </summary>
        ''' <remarks>
        ''' This property is represented as an Element in the XML.
        ''' It is optional, initially it is Nothing.
        ''' Only one Element within this class may be set at a time, setting this property when another element is already set will raise an exception. setting this property to Nothing will allow another element to be selected
        ''' </remarks>
        <LiquidTechnologies.Runtime.Net45.ElementInfoChoiceClsOpt("ChangeAccountPassword", "", LiquidTechnologies.Runtime.Net45.XmlObjectBase.XmlElementType.Element, GetType(SimpleChoiceLib.ChangeAccountPassword))> _
        Public Property ChangeAccountPassword() As SimpleChoiceLib.ChangeAccountPassword
            Get 
                Return _ChangeAccountPassword
            End Get
            Set(ByVal value As SimpleChoiceLib.ChangeAccountPassword)
                ' The class represents a choice, so prevent more than one element from being selected
                If value Is Nothing Then ClearChoice("") Else ClearChoice("ChangeAccountPassword") ' remove selection
                If value Is Nothing Then
                    _ChangeAccountPassword = Nothing
                Else
                    SetElementName(value, "ChangeAccountPassword")
                    _ChangeAccountPassword = value 
                End If
            End Set
        End Property
        Protected _ChangeAccountPassword As SimpleChoiceLib.ChangeAccountPassword
        
        #End Region
    
        Public Readonly Property ChoiceSelectedElement() As String
            Get 
                Return _validElement 
            End Get
        End Property
        Protected _validElement As String
        #Region "Attribute - Namespace"
        Public Overrides Readonly Property [Namespace]() As String
            Get 
                Return ""
            End Get
        End Property
        #End Region

        #Region "Attribute - GetBase"
        Public Overrides Function GetBase() As LiquidTechnologies.Runtime.Net45.XmlObjectBase
            Return Me
        End Function
        #End Region
        #End Region


' ##HAND_CODED_BLOCK_START ID="Additional Methods"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS

' Add Additional Methods and members here...

' ##HAND_CODED_BLOCK_END ID="Additional Methods"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS
    End Class
End Namespace