// ------------------------------------------------------------------------------
//  <auto-generated>
//    Generated by Xsd2Code. Version 3.3.0.20459
//    <NameSpace>OSGeo.MapGuide.ObjectModels.Capabilities</NameSpace><Collection>BindingList</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitializeFields>True</EnableInitializeFields>
//  </auto-generated>
// ------------------------------------------------------------------------------
namespace OSGeo.MapGuide.ObjectModels.Capabilities {
    using System;
    using System.Diagnostics;
    using System.Xml.Serialization;
    using System.Collections;
    using System.Xml.Schema;
    using System.ComponentModel;
    using System.IO;
    
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlRootAttribute("FeatureProviderCapabilities", Namespace="", IsNullable=false)]
    public partial class FdoProviderCapabilities : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesProvider providerField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesConnection connectionField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesSchema schemaField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesCommand commandField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesFilter filterField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesExpression expressionField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesRaster rasterField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesTopology topologyField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesGeometry geometryField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilities class constructor
        /// </summary>
        public FdoProviderCapabilities() {
            this.geometryField = new FdoProviderCapabilitiesGeometry();
            this.topologyField = new FdoProviderCapabilitiesTopology();
            this.rasterField = new FdoProviderCapabilitiesRaster();
            this.expressionField = new FdoProviderCapabilitiesExpression();
            this.filterField = new FdoProviderCapabilitiesFilter();
            this.commandField = new FdoProviderCapabilitiesCommand();
            this.schemaField = new FdoProviderCapabilitiesSchema();
            this.connectionField = new FdoProviderCapabilitiesConnection();
            this.providerField = new FdoProviderCapabilitiesProvider();
        }
        
        public FdoProviderCapabilitiesProvider Provider {
            get {
                return this.providerField;
            }
            set {
                if ((this.providerField != null)) {
                    if ((providerField.Equals(value) != true)) {
                        this.providerField = value;
                        this.OnPropertyChanged("Provider");
                    }
                }
                else {
                    this.providerField = value;
                    this.OnPropertyChanged("Provider");
                }
            }
        }
        
        public FdoProviderCapabilitiesConnection Connection {
            get {
                return this.connectionField;
            }
            set {
                if ((this.connectionField != null)) {
                    if ((connectionField.Equals(value) != true)) {
                        this.connectionField = value;
                        this.OnPropertyChanged("Connection");
                    }
                }
                else {
                    this.connectionField = value;
                    this.OnPropertyChanged("Connection");
                }
            }
        }
        
        public FdoProviderCapabilitiesSchema Schema {
            get {
                return this.schemaField;
            }
            set {
                if ((this.schemaField != null)) {
                    if ((schemaField.Equals(value) != true)) {
                        this.schemaField = value;
                        this.OnPropertyChanged("Schema");
                    }
                }
                else {
                    this.schemaField = value;
                    this.OnPropertyChanged("Schema");
                }
            }
        }
        
        public FdoProviderCapabilitiesCommand Command {
            get {
                return this.commandField;
            }
            set {
                if ((this.commandField != null)) {
                    if ((commandField.Equals(value) != true)) {
                        this.commandField = value;
                        this.OnPropertyChanged("Command");
                    }
                }
                else {
                    this.commandField = value;
                    this.OnPropertyChanged("Command");
                }
            }
        }
        
        public FdoProviderCapabilitiesFilter Filter {
            get {
                return this.filterField;
            }
            set {
                if ((this.filterField != null)) {
                    if ((filterField.Equals(value) != true)) {
                        this.filterField = value;
                        this.OnPropertyChanged("Filter");
                    }
                }
                else {
                    this.filterField = value;
                    this.OnPropertyChanged("Filter");
                }
            }
        }
        
        public FdoProviderCapabilitiesExpression Expression {
            get {
                return this.expressionField;
            }
            set {
                if ((this.expressionField != null)) {
                    if ((expressionField.Equals(value) != true)) {
                        this.expressionField = value;
                        this.OnPropertyChanged("Expression");
                    }
                }
                else {
                    this.expressionField = value;
                    this.OnPropertyChanged("Expression");
                }
            }
        }
        
        public FdoProviderCapabilitiesRaster Raster {
            get {
                return this.rasterField;
            }
            set {
                if ((this.rasterField != null)) {
                    if ((rasterField.Equals(value) != true)) {
                        this.rasterField = value;
                        this.OnPropertyChanged("Raster");
                    }
                }
                else {
                    this.rasterField = value;
                    this.OnPropertyChanged("Raster");
                }
            }
        }
        
        public FdoProviderCapabilitiesTopology Topology {
            get {
                return this.topologyField;
            }
            set {
                if ((this.topologyField != null)) {
                    if ((topologyField.Equals(value) != true)) {
                        this.topologyField = value;
                        this.OnPropertyChanged("Topology");
                    }
                }
                else {
                    this.topologyField = value;
                    this.OnPropertyChanged("Topology");
                }
            }
        }
        
        public FdoProviderCapabilitiesGeometry Geometry {
            get {
                return this.geometryField;
            }
            set {
                if ((this.geometryField != null)) {
                    if ((geometryField.Equals(value) != true)) {
                        this.geometryField = value;
                        this.OnPropertyChanged("Geometry");
                    }
                }
                else {
                    this.geometryField = value;
                    this.OnPropertyChanged("Geometry");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilities));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilities object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilities object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilities object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilities obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilities);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilities obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilities Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilities)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilities object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilities object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilities object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilities obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilities);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilities obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilities LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilities object
        /// </summary>
        public virtual FdoProviderCapabilities Clone() {
            return ((FdoProviderCapabilities)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesProvider : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private string nameField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private string valueField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Name {
            get {
                return this.nameField;
            }
            set {
                if ((this.nameField != null)) {
                    if ((nameField.Equals(value) != true)) {
                        this.nameField = value;
                        this.OnPropertyChanged("Name");
                    }
                }
                else {
                    this.nameField = value;
                    this.OnPropertyChanged("Name");
                }
            }
        }
        
        [System.Xml.Serialization.XmlTextAttribute()]
        public string Value {
            get {
                return this.valueField;
            }
            set {
                if ((this.valueField != null)) {
                    if ((valueField.Equals(value) != true)) {
                        this.valueField = value;
                        this.OnPropertyChanged("Value");
                    }
                }
                else {
                    this.valueField = value;
                    this.OnPropertyChanged("Value");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesProvider));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesProvider object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesProvider object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesProvider object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesProvider obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesProvider);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesProvider obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesProvider Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesProvider)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesProvider object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesProvider object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesProvider object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesProvider obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesProvider);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesProvider obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesProvider LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesProvider object
        /// </summary>
        public virtual FdoProviderCapabilitiesProvider Clone() {
            return ((FdoProviderCapabilitiesProvider)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesConnection : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesConnectionThreadCapability threadCapabilityField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesConnectionType> spatialContextExtentField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsLockingField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsTimeoutField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsTransactionsField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsLongTransactionsField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsSQLField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsConfigurationField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesConnection class constructor
        /// </summary>
        public FdoProviderCapabilitiesConnection() {
            this.spatialContextExtentField = new BindingList<FdoProviderCapabilitiesConnectionType>();
        }
        
        public FdoProviderCapabilitiesConnectionThreadCapability ThreadCapability {
            get {
                return this.threadCapabilityField;
            }
            set {
                if ((threadCapabilityField.Equals(value) != true)) {
                    this.threadCapabilityField = value;
                    this.OnPropertyChanged("ThreadCapability");
                }
            }
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Type", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesConnectionType> SpatialContextExtent {
            get {
                return this.spatialContextExtentField;
            }
            set {
                if ((this.spatialContextExtentField != null)) {
                    if ((spatialContextExtentField.Equals(value) != true)) {
                        this.spatialContextExtentField = value;
                        this.OnPropertyChanged("SpatialContextExtent");
                    }
                }
                else {
                    this.spatialContextExtentField = value;
                    this.OnPropertyChanged("SpatialContextExtent");
                }
            }
        }
        
        public bool SupportsLocking {
            get {
                return this.supportsLockingField;
            }
            set {
                if ((supportsLockingField.Equals(value) != true)) {
                    this.supportsLockingField = value;
                    this.OnPropertyChanged("SupportsLocking");
                }
            }
        }
        
        public bool SupportsTimeout {
            get {
                return this.supportsTimeoutField;
            }
            set {
                if ((supportsTimeoutField.Equals(value) != true)) {
                    this.supportsTimeoutField = value;
                    this.OnPropertyChanged("SupportsTimeout");
                }
            }
        }
        
        public bool SupportsTransactions {
            get {
                return this.supportsTransactionsField;
            }
            set {
                if ((supportsTransactionsField.Equals(value) != true)) {
                    this.supportsTransactionsField = value;
                    this.OnPropertyChanged("SupportsTransactions");
                }
            }
        }
        
        public bool SupportsLongTransactions {
            get {
                return this.supportsLongTransactionsField;
            }
            set {
                if ((supportsLongTransactionsField.Equals(value) != true)) {
                    this.supportsLongTransactionsField = value;
                    this.OnPropertyChanged("SupportsLongTransactions");
                }
            }
        }
        
        public bool SupportsSQL {
            get {
                return this.supportsSQLField;
            }
            set {
                if ((supportsSQLField.Equals(value) != true)) {
                    this.supportsSQLField = value;
                    this.OnPropertyChanged("SupportsSQL");
                }
            }
        }
        
        public bool SupportsConfiguration {
            get {
                return this.supportsConfigurationField;
            }
            set {
                if ((supportsConfigurationField.Equals(value) != true)) {
                    this.supportsConfigurationField = value;
                    this.OnPropertyChanged("SupportsConfiguration");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesConnection));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesConnection object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesConnection object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesConnection object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesConnection obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesConnection);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesConnection obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesConnection Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesConnection)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesConnection object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesConnection object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesConnection object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesConnection obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesConnection);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesConnection obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesConnection LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesConnection object
        /// </summary>
        public virtual FdoProviderCapabilitiesConnection Clone() {
            return ((FdoProviderCapabilitiesConnection)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesConnectionThreadCapability {
        
        /// <remarks/>
        SingleThreaded,
        
        /// <remarks/>
        PerConnectionThreaded,
        
        /// <remarks/>
        PerCommandThreaded,
        
        /// <remarks/>
        MultiThreaded,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesConnectionType {
        
        /// <remarks/>
        Static,
        
        /// <remarks/>
        Dynamic,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesSchema : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesSchemaType> classField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesSchemaType1> dataField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsInheritanceField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsMultipleSchemasField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsObjectPropertiesField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsAssociationPropertiesField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsSchemaOverridesField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsNetworkModelField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsAutoIdGenerationField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsDataStoreScopeUniqueIdGenerationField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes> supportedAutoGeneratedTypesField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsSchemaModificationField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesSchema class constructor
        /// </summary>
        public FdoProviderCapabilitiesSchema() {
            this.supportedAutoGeneratedTypesField = new BindingList<FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes>();
            this.dataField = new BindingList<FdoProviderCapabilitiesSchemaType1>();
            this.classField = new BindingList<FdoProviderCapabilitiesSchemaType>();
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Type", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesSchemaType> Class {
            get {
                return this.classField;
            }
            set {
                if ((this.classField != null)) {
                    if ((classField.Equals(value) != true)) {
                        this.classField = value;
                        this.OnPropertyChanged("Class");
                    }
                }
                else {
                    this.classField = value;
                    this.OnPropertyChanged("Class");
                }
            }
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Type", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesSchemaType1> Data {
            get {
                return this.dataField;
            }
            set {
                if ((this.dataField != null)) {
                    if ((dataField.Equals(value) != true)) {
                        this.dataField = value;
                        this.OnPropertyChanged("Data");
                    }
                }
                else {
                    this.dataField = value;
                    this.OnPropertyChanged("Data");
                }
            }
        }
        
        public bool SupportsInheritance {
            get {
                return this.supportsInheritanceField;
            }
            set {
                if ((supportsInheritanceField.Equals(value) != true)) {
                    this.supportsInheritanceField = value;
                    this.OnPropertyChanged("SupportsInheritance");
                }
            }
        }
        
        public bool SupportsMultipleSchemas {
            get {
                return this.supportsMultipleSchemasField;
            }
            set {
                if ((supportsMultipleSchemasField.Equals(value) != true)) {
                    this.supportsMultipleSchemasField = value;
                    this.OnPropertyChanged("SupportsMultipleSchemas");
                }
            }
        }
        
        public bool SupportsObjectProperties {
            get {
                return this.supportsObjectPropertiesField;
            }
            set {
                if ((supportsObjectPropertiesField.Equals(value) != true)) {
                    this.supportsObjectPropertiesField = value;
                    this.OnPropertyChanged("SupportsObjectProperties");
                }
            }
        }
        
        public bool SupportsAssociationProperties {
            get {
                return this.supportsAssociationPropertiesField;
            }
            set {
                if ((supportsAssociationPropertiesField.Equals(value) != true)) {
                    this.supportsAssociationPropertiesField = value;
                    this.OnPropertyChanged("SupportsAssociationProperties");
                }
            }
        }
        
        public bool SupportsSchemaOverrides {
            get {
                return this.supportsSchemaOverridesField;
            }
            set {
                if ((supportsSchemaOverridesField.Equals(value) != true)) {
                    this.supportsSchemaOverridesField = value;
                    this.OnPropertyChanged("SupportsSchemaOverrides");
                }
            }
        }
        
        public bool SupportsNetworkModel {
            get {
                return this.supportsNetworkModelField;
            }
            set {
                if ((supportsNetworkModelField.Equals(value) != true)) {
                    this.supportsNetworkModelField = value;
                    this.OnPropertyChanged("SupportsNetworkModel");
                }
            }
        }
        
        public bool SupportsAutoIdGeneration {
            get {
                return this.supportsAutoIdGenerationField;
            }
            set {
                if ((supportsAutoIdGenerationField.Equals(value) != true)) {
                    this.supportsAutoIdGenerationField = value;
                    this.OnPropertyChanged("SupportsAutoIdGeneration");
                }
            }
        }
        
        public bool SupportsDataStoreScopeUniqueIdGeneration {
            get {
                return this.supportsDataStoreScopeUniqueIdGenerationField;
            }
            set {
                if ((supportsDataStoreScopeUniqueIdGenerationField.Equals(value) != true)) {
                    this.supportsDataStoreScopeUniqueIdGenerationField = value;
                    this.OnPropertyChanged("SupportsDataStoreScopeUniqueIdGeneration");
                }
            }
        }
        
        [System.Xml.Serialization.XmlElementAttribute("SupportedAutoGeneratedTypes")]
        public BindingList<FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes> SupportedAutoGeneratedTypes {
            get {
                return this.supportedAutoGeneratedTypesField;
            }
            set {
                if ((this.supportedAutoGeneratedTypesField != null)) {
                    if ((supportedAutoGeneratedTypesField.Equals(value) != true)) {
                        this.supportedAutoGeneratedTypesField = value;
                        this.OnPropertyChanged("SupportedAutoGeneratedTypes");
                    }
                }
                else {
                    this.supportedAutoGeneratedTypesField = value;
                    this.OnPropertyChanged("SupportedAutoGeneratedTypes");
                }
            }
        }
        
        public bool SupportsSchemaModification {
            get {
                return this.supportsSchemaModificationField;
            }
            set {
                if ((supportsSchemaModificationField.Equals(value) != true)) {
                    this.supportsSchemaModificationField = value;
                    this.OnPropertyChanged("SupportsSchemaModification");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesSchema));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesSchema object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesSchema object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesSchema object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesSchema obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesSchema);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesSchema obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesSchema Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesSchema)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesSchema object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesSchema object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesSchema object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesSchema obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesSchema);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesSchema obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesSchema LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesSchema object
        /// </summary>
        public virtual FdoProviderCapabilitiesSchema Clone() {
            return ((FdoProviderCapabilitiesSchema)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesSchemaType {
        
        /// <remarks/>
        Class,
        
        /// <remarks/>
        FeatureClass,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesSchemaType1 {
        
        /// <remarks/>
        Boolean,
        
        /// <remarks/>
        Byte,
        
        /// <remarks/>
        DateTime,
        
        /// <remarks/>
        Decimal,
        
        /// <remarks/>
        Double,
        
        /// <remarks/>
        Int16,
        
        /// <remarks/>
        Int32,
        
        /// <remarks/>
        Int64,
        
        /// <remarks/>
        Single,
        
        /// <remarks/>
        String,
        
        /// <remarks/>
        BLOB,
        
        /// <remarks/>
        CLOB,
        
        /// <remarks/>
        UniqueID,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypesType typeField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool typeFieldSpecified;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        public FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypesType Type {
            get {
                return this.typeField;
            }
            set {
                if ((typeField.Equals(value) != true)) {
                    this.typeField = value;
                    this.OnPropertyChanged("Type");
                }
            }
        }
        
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool TypeSpecified {
            get {
                return this.typeFieldSpecified;
            }
            set {
                if ((typeFieldSpecified.Equals(value) != true)) {
                    this.typeFieldSpecified = value;
                    this.OnPropertyChanged("TypeSpecified");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes object
        /// </summary>
        public virtual FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes Clone() {
            return ((FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypes)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesSchemaSupportedAutoGeneratedTypesType {
        
        /// <remarks/>
        Boolean,
        
        /// <remarks/>
        Byte,
        
        /// <remarks/>
        DateTime,
        
        /// <remarks/>
        Decimal,
        
        /// <remarks/>
        Double,
        
        /// <remarks/>
        Int16,
        
        /// <remarks/>
        Int32,
        
        /// <remarks/>
        Int64,
        
        /// <remarks/>
        Single,
        
        /// <remarks/>
        String,
        
        /// <remarks/>
        BLOB,
        
        /// <remarks/>
        CLOB,
        
        /// <remarks/>
        UniqueID,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesCommand : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesCommandName> supportedCommandsField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsParametersField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsTimeoutField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsSelectExpressionsField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsSelectFunctionsField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsSelectDistinctField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsSelectOrderingField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsSelectGroupingField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesCommand class constructor
        /// </summary>
        public FdoProviderCapabilitiesCommand() {
            this.supportedCommandsField = new BindingList<FdoProviderCapabilitiesCommandName>();
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Name", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesCommandName> SupportedCommands {
            get {
                return this.supportedCommandsField;
            }
            set {
                if ((this.supportedCommandsField != null)) {
                    if ((supportedCommandsField.Equals(value) != true)) {
                        this.supportedCommandsField = value;
                        this.OnPropertyChanged("SupportedCommands");
                    }
                }
                else {
                    this.supportedCommandsField = value;
                    this.OnPropertyChanged("SupportedCommands");
                }
            }
        }
        
        public bool SupportsParameters {
            get {
                return this.supportsParametersField;
            }
            set {
                if ((supportsParametersField.Equals(value) != true)) {
                    this.supportsParametersField = value;
                    this.OnPropertyChanged("SupportsParameters");
                }
            }
        }
        
        public bool SupportsTimeout {
            get {
                return this.supportsTimeoutField;
            }
            set {
                if ((supportsTimeoutField.Equals(value) != true)) {
                    this.supportsTimeoutField = value;
                    this.OnPropertyChanged("SupportsTimeout");
                }
            }
        }
        
        public bool SupportsSelectExpressions {
            get {
                return this.supportsSelectExpressionsField;
            }
            set {
                if ((supportsSelectExpressionsField.Equals(value) != true)) {
                    this.supportsSelectExpressionsField = value;
                    this.OnPropertyChanged("SupportsSelectExpressions");
                }
            }
        }
        
        public bool SupportsSelectFunctions {
            get {
                return this.supportsSelectFunctionsField;
            }
            set {
                if ((supportsSelectFunctionsField.Equals(value) != true)) {
                    this.supportsSelectFunctionsField = value;
                    this.OnPropertyChanged("SupportsSelectFunctions");
                }
            }
        }
        
        public bool SupportsSelectDistinct {
            get {
                return this.supportsSelectDistinctField;
            }
            set {
                if ((supportsSelectDistinctField.Equals(value) != true)) {
                    this.supportsSelectDistinctField = value;
                    this.OnPropertyChanged("SupportsSelectDistinct");
                }
            }
        }
        
        public bool SupportsSelectOrdering {
            get {
                return this.supportsSelectOrderingField;
            }
            set {
                if ((supportsSelectOrderingField.Equals(value) != true)) {
                    this.supportsSelectOrderingField = value;
                    this.OnPropertyChanged("SupportsSelectOrdering");
                }
            }
        }
        
        public bool SupportsSelectGrouping {
            get {
                return this.supportsSelectGroupingField;
            }
            set {
                if ((supportsSelectGroupingField.Equals(value) != true)) {
                    this.supportsSelectGroupingField = value;
                    this.OnPropertyChanged("SupportsSelectGrouping");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesCommand));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesCommand object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesCommand object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesCommand object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesCommand obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesCommand);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesCommand obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesCommand Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesCommand)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesCommand object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesCommand object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesCommand object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesCommand obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesCommand);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesCommand obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesCommand LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesCommand object
        /// </summary>
        public virtual FdoProviderCapabilitiesCommand Clone() {
            return ((FdoProviderCapabilitiesCommand)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesCommandName {
        
        /// <remarks/>
        Select,
        
        /// <remarks/>
        Insert,
        
        /// <remarks/>
        Delete,
        
        /// <remarks/>
        Update,
        
        /// <remarks/>
        DescribeSchema,
        
        /// <remarks/>
        DescribeSchemaMapping,
        
        /// <remarks/>
        ApplySchema,
        
        /// <remarks/>
        DestroySchema,
        
        /// <remarks/>
        ActivateSpatialContext,
        
        /// <remarks/>
        CreateSpatialContext,
        
        /// <remarks/>
        DestroySpatialContext,
        
        /// <remarks/>
        GetSpatialContexts,
        
        /// <remarks/>
        CreateMeasureUnit,
        
        /// <remarks/>
        DestroyMeasureUnit,
        
        /// <remarks/>
        GetMeasureUnits,
        
        /// <remarks/>
        SQLCommand,
        
        /// <remarks/>
        AcquireLock,
        
        /// <remarks/>
        GetLockInfo,
        
        /// <remarks/>
        GetLockedObjects,
        
        /// <remarks/>
        GetLockOwners,
        
        /// <remarks/>
        ReleaseLock,
        
        /// <remarks/>
        ActivateLongTransaction,
        
        /// <remarks/>
        DeactivateLongTransaction,
        
        /// <remarks/>
        CommitLongTransaction,
        
        /// <remarks/>
        CreateLongTransaction,
        
        /// <remarks/>
        GetLongTransactions,
        
        /// <remarks/>
        FreezeLongTransaction,
        
        /// <remarks/>
        RollbackLongTransaction,
        
        /// <remarks/>
        ActivateLongTransactionCheckpoint,
        
        /// <remarks/>
        CreateLongTransactionCheckpoint,
        
        /// <remarks/>
        GetLongTransactionCheckpoints,
        
        /// <remarks/>
        RollbackLongTransactionCheckpoint,
        
        /// <remarks/>
        ChangeLongTransactionPrivileges,
        
        /// <remarks/>
        GetLongTransactionPrivileges,
        
        /// <remarks/>
        ChangeLongTransactionSet,
        
        /// <remarks/>
        GetLongTransactionsInSet,
        
        /// <remarks/>
        NetworkShortestPath,
        
        /// <remarks/>
        NetworkAllPaths,
        
        /// <remarks/>
        NetworkReachableNodes,
        
        /// <remarks/>
        NetworkReachingNodes,
        
        /// <remarks/>
        NetworkNearestNeighbors,
        
        /// <remarks/>
        NetworkWithinCost,
        
        /// <remarks/>
        NetworkTSP,
        
        /// <remarks/>
        ActivateTopologyArea,
        
        /// <remarks/>
        DeactivateTopologyArea,
        
        /// <remarks/>
        ActivateTopologyInCommandResult,
        
        /// <remarks/>
        DeactivateTopologyInCommandResults,
        
        /// <remarks/>
        SelectAggregates,
        
        /// <remarks/>
        CreateDataStore,
        
        /// <remarks/>
        DestroyDataStore,
        
        /// <remarks/>
        ListDataStores,
        
        /// <remarks/>
        FirstProviderCommand,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesFilter : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesFilterType> conditionField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesFilterOperation> spatialField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesFilterOperation1> distanceField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsGeodesicDistanceField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsNonLiteralGeometricOperationsField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesFilter class constructor
        /// </summary>
        public FdoProviderCapabilitiesFilter() {
            this.distanceField = new BindingList<FdoProviderCapabilitiesFilterOperation1>();
            this.spatialField = new BindingList<FdoProviderCapabilitiesFilterOperation>();
            this.conditionField = new BindingList<FdoProviderCapabilitiesFilterType>();
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Type", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesFilterType> Condition {
            get {
                return this.conditionField;
            }
            set {
                if ((this.conditionField != null)) {
                    if ((conditionField.Equals(value) != true)) {
                        this.conditionField = value;
                        this.OnPropertyChanged("Condition");
                    }
                }
                else {
                    this.conditionField = value;
                    this.OnPropertyChanged("Condition");
                }
            }
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Operation", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesFilterOperation> Spatial {
            get {
                return this.spatialField;
            }
            set {
                if ((this.spatialField != null)) {
                    if ((spatialField.Equals(value) != true)) {
                        this.spatialField = value;
                        this.OnPropertyChanged("Spatial");
                    }
                }
                else {
                    this.spatialField = value;
                    this.OnPropertyChanged("Spatial");
                }
            }
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Operation", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesFilterOperation1> Distance {
            get {
                return this.distanceField;
            }
            set {
                if ((this.distanceField != null)) {
                    if ((distanceField.Equals(value) != true)) {
                        this.distanceField = value;
                        this.OnPropertyChanged("Distance");
                    }
                }
                else {
                    this.distanceField = value;
                    this.OnPropertyChanged("Distance");
                }
            }
        }
        
        public bool SupportsGeodesicDistance {
            get {
                return this.supportsGeodesicDistanceField;
            }
            set {
                if ((supportsGeodesicDistanceField.Equals(value) != true)) {
                    this.supportsGeodesicDistanceField = value;
                    this.OnPropertyChanged("SupportsGeodesicDistance");
                }
            }
        }
        
        public bool SupportsNonLiteralGeometricOperations {
            get {
                return this.supportsNonLiteralGeometricOperationsField;
            }
            set {
                if ((supportsNonLiteralGeometricOperationsField.Equals(value) != true)) {
                    this.supportsNonLiteralGeometricOperationsField = value;
                    this.OnPropertyChanged("SupportsNonLiteralGeometricOperations");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesFilter));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesFilter object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesFilter object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesFilter object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesFilter obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesFilter);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesFilter obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesFilter Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesFilter)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesFilter object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesFilter object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesFilter object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesFilter obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesFilter);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesFilter obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesFilter LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesFilter object
        /// </summary>
        public virtual FdoProviderCapabilitiesFilter Clone() {
            return ((FdoProviderCapabilitiesFilter)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesFilterType {
        
        /// <remarks/>
        Comparison,
        
        /// <remarks/>
        Like,
        
        /// <remarks/>
        In,
        
        /// <remarks/>
        Null,
        
        /// <remarks/>
        Spatial,
        
        /// <remarks/>
        Distance,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesFilterOperation {
        
        /// <remarks/>
        Contains,
        
        /// <remarks/>
        Crosses,
        
        /// <remarks/>
        Disjoint,
        
        /// <remarks/>
        Equals,
        
        /// <remarks/>
        Intersects,
        
        /// <remarks/>
        Overlaps,
        
        /// <remarks/>
        Touches,
        
        /// <remarks/>
        Within,
        
        /// <remarks/>
        CoveredBy,
        
        /// <remarks/>
        Inside,
        
        /// <remarks/>
        EnvelopeIntersects,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesFilterOperation1 {
        
        /// <remarks/>
        Beyond,
        
        /// <remarks/>
        Within,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesExpression : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesExpressionName> typeField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesExpressionFunctionDefinition> functionDefinitionListField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesExpression class constructor
        /// </summary>
        public FdoProviderCapabilitiesExpression() {
            this.functionDefinitionListField = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinition>();
            this.typeField = new BindingList<FdoProviderCapabilitiesExpressionName>();
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Name", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesExpressionName> Type {
            get {
                return this.typeField;
            }
            set {
                if ((this.typeField != null)) {
                    if ((typeField.Equals(value) != true)) {
                        this.typeField = value;
                        this.OnPropertyChanged("Type");
                    }
                }
                else {
                    this.typeField = value;
                    this.OnPropertyChanged("Type");
                }
            }
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("FunctionDefinition", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesExpressionFunctionDefinition> FunctionDefinitionList {
            get {
                return this.functionDefinitionListField;
            }
            set {
                if ((this.functionDefinitionListField != null)) {
                    if ((functionDefinitionListField.Equals(value) != true)) {
                        this.functionDefinitionListField = value;
                        this.OnPropertyChanged("FunctionDefinitionList");
                    }
                }
                else {
                    this.functionDefinitionListField = value;
                    this.OnPropertyChanged("FunctionDefinitionList");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesExpression));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpression object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesExpression object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpression object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpression obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpression);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpression obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpression Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesExpression)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpression object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesExpression object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpression object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpression obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpression);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpression obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpression LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesExpression object
        /// </summary>
        public virtual FdoProviderCapabilitiesExpression Clone() {
            return ((FdoProviderCapabilitiesExpression)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesExpressionName {
        
        /// <remarks/>
        Basic,
        
        /// <remarks/>
        Function,
        
        /// <remarks/>
        Parameter,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesExpressionFunctionDefinition : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private string nameField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private string descriptionField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesExpressionFunctionDefinitionCategoryType categoryTypeField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool isAggregateField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool isSupportsVariableArgumentsListField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool isSupportsVariableArgumentsListFieldSpecified;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition> signatureDefinitionCollectionField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesExpressionFunctionDefinition class constructor
        /// </summary>
        public FdoProviderCapabilitiesExpressionFunctionDefinition() {
            this.signatureDefinitionCollectionField = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition>();
        }
        
        public string Name {
            get {
                return this.nameField;
            }
            set {
                if ((this.nameField != null)) {
                    if ((nameField.Equals(value) != true)) {
                        this.nameField = value;
                        this.OnPropertyChanged("Name");
                    }
                }
                else {
                    this.nameField = value;
                    this.OnPropertyChanged("Name");
                }
            }
        }
        
        public string Description {
            get {
                return this.descriptionField;
            }
            set {
                if ((this.descriptionField != null)) {
                    if ((descriptionField.Equals(value) != true)) {
                        this.descriptionField = value;
                        this.OnPropertyChanged("Description");
                    }
                }
                else {
                    this.descriptionField = value;
                    this.OnPropertyChanged("Description");
                }
            }
        }
        
        public FdoProviderCapabilitiesExpressionFunctionDefinitionCategoryType CategoryType {
            get {
                return this.categoryTypeField;
            }
            set {
                if ((categoryTypeField.Equals(value) != true)) {
                    this.categoryTypeField = value;
                    this.OnPropertyChanged("CategoryType");
                }
            }
        }
        
        public bool IsAggregate {
            get {
                return this.isAggregateField;
            }
            set {
                if ((isAggregateField.Equals(value) != true)) {
                    this.isAggregateField = value;
                    this.OnPropertyChanged("IsAggregate");
                }
            }
        }
        
        public bool IsSupportsVariableArgumentsList {
            get {
                return this.isSupportsVariableArgumentsListField;
            }
            set {
                if ((isSupportsVariableArgumentsListField.Equals(value) != true)) {
                    this.isSupportsVariableArgumentsListField = value;
                    this.OnPropertyChanged("IsSupportsVariableArgumentsList");
                }
            }
        }
        
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsSupportsVariableArgumentsListSpecified {
            get {
                return this.isSupportsVariableArgumentsListFieldSpecified;
            }
            set {
                if ((isSupportsVariableArgumentsListFieldSpecified.Equals(value) != true)) {
                    this.isSupportsVariableArgumentsListFieldSpecified = value;
                    this.OnPropertyChanged("IsSupportsVariableArgumentsListSpecified");
                }
            }
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("SignatureDefinition", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition> SignatureDefinitionCollection {
            get {
                return this.signatureDefinitionCollectionField;
            }
            set {
                if ((this.signatureDefinitionCollectionField != null)) {
                    if ((signatureDefinitionCollectionField.Equals(value) != true)) {
                        this.signatureDefinitionCollectionField = value;
                        this.OnPropertyChanged("SignatureDefinitionCollection");
                    }
                }
                else {
                    this.signatureDefinitionCollectionField = value;
                    this.OnPropertyChanged("SignatureDefinitionCollection");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesExpressionFunctionDefinition));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpressionFunctionDefinition object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesExpressionFunctionDefinition object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpressionFunctionDefinition object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpressionFunctionDefinition obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpressionFunctionDefinition);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpressionFunctionDefinition obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpressionFunctionDefinition Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesExpressionFunctionDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpressionFunctionDefinition object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesExpressionFunctionDefinition object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpressionFunctionDefinition object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpressionFunctionDefinition obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpressionFunctionDefinition);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpressionFunctionDefinition obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpressionFunctionDefinition LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesExpressionFunctionDefinition object
        /// </summary>
        public virtual FdoProviderCapabilitiesExpressionFunctionDefinition Clone() {
            return ((FdoProviderCapabilitiesExpressionFunctionDefinition)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesExpressionFunctionDefinitionCategoryType {
        
        /// <remarks/>
        Aggregate,
        
        /// <remarks/>
        Conversion,
        
        /// <remarks/>
        Custom,
        
        /// <remarks/>
        Date,
        
        /// <remarks/>
        Geometry,
        
        /// <remarks/>
        Math,
        
        /// <remarks/>
        Numeric,
        
        /// <remarks/>
        String,
        
        /// <remarks/>
        Unspecified,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionPropertyType propertyTypeField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool propertyTypeFieldSpecified;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionDataType dataTypeField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool dataTypeFieldSpecified;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList argumentDefinitionListField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition class constructor
        /// </summary>
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition() {
            this.argumentDefinitionListField = new FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList();
        }
        
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionPropertyType PropertyType {
            get {
                return this.propertyTypeField;
            }
            set {
                if ((propertyTypeField.Equals(value) != true)) {
                    this.propertyTypeField = value;
                    this.OnPropertyChanged("PropertyType");
                }
            }
        }
        
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool PropertyTypeSpecified {
            get {
                return this.propertyTypeFieldSpecified;
            }
            set {
                if ((propertyTypeFieldSpecified.Equals(value) != true)) {
                    this.propertyTypeFieldSpecified = value;
                    this.OnPropertyChanged("PropertyTypeSpecified");
                }
            }
        }
        
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionDataType DataType {
            get {
                return this.dataTypeField;
            }
            set {
                if ((dataTypeField.Equals(value) != true)) {
                    this.dataTypeField = value;
                    this.OnPropertyChanged("DataType");
                }
            }
        }
        
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DataTypeSpecified {
            get {
                return this.dataTypeFieldSpecified;
            }
            set {
                if ((dataTypeFieldSpecified.Equals(value) != true)) {
                    this.dataTypeFieldSpecified = value;
                    this.OnPropertyChanged("DataTypeSpecified");
                }
            }
        }
        
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList ArgumentDefinitionList {
            get {
                return this.argumentDefinitionListField;
            }
            set {
                if ((this.argumentDefinitionListField != null)) {
                    if ((argumentDefinitionListField.Equals(value) != true)) {
                        this.argumentDefinitionListField = value;
                        this.OnPropertyChanged("ArgumentDefinitionList");
                    }
                }
                else {
                    this.argumentDefinitionListField = value;
                    this.OnPropertyChanged("ArgumentDefinitionList");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition object
        /// </summary>
        public virtual FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition Clone() {
            return ((FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinition)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionPropertyType {
        
        /// <remarks/>
        Data,
        
        /// <remarks/>
        Object,
        
        /// <remarks/>
        Geometry,
        
        /// <remarks/>
        Association,
        
        /// <remarks/>
        Raster,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionDataType {
        
        /// <remarks/>
        Boolean,
        
        /// <remarks/>
        Byte,
        
        /// <remarks/>
        DateTime,
        
        /// <remarks/>
        Decimal,
        
        /// <remarks/>
        Double,
        
        /// <remarks/>
        Int16,
        
        /// <remarks/>
        Int32,
        
        /// <remarks/>
        Int64,
        
        /// <remarks/>
        Single,
        
        /// <remarks/>
        String,
        
        /// <remarks/>
        BLOB,
        
        /// <remarks/>
        CLOB,
        
        /// <remarks/>
        UniqueID,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private string nameField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private string descriptionField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition> argumentDefinitionField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListPropertyType propertyTypeField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListDataType dataTypeField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool dataTypeFieldSpecified;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList class constructor
        /// </summary>
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList() {
            this.argumentDefinitionField = new BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition>();
        }
        
        public string Name {
            get {
                return this.nameField;
            }
            set {
                if ((this.nameField != null)) {
                    if ((nameField.Equals(value) != true)) {
                        this.nameField = value;
                        this.OnPropertyChanged("Name");
                    }
                }
                else {
                    this.nameField = value;
                    this.OnPropertyChanged("Name");
                }
            }
        }
        
        public string Description {
            get {
                return this.descriptionField;
            }
            set {
                if ((this.descriptionField != null)) {
                    if ((descriptionField.Equals(value) != true)) {
                        this.descriptionField = value;
                        this.OnPropertyChanged("Description");
                    }
                }
                else {
                    this.descriptionField = value;
                    this.OnPropertyChanged("Description");
                }
            }
        }
        
        [System.Xml.Serialization.XmlElementAttribute("ArgumentDefinition")]
        public BindingList<FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition> ArgumentDefinition {
            get {
                return this.argumentDefinitionField;
            }
            set {
                if ((this.argumentDefinitionField != null)) {
                    if ((argumentDefinitionField.Equals(value) != true)) {
                        this.argumentDefinitionField = value;
                        this.OnPropertyChanged("ArgumentDefinition");
                    }
                }
                else {
                    this.argumentDefinitionField = value;
                    this.OnPropertyChanged("ArgumentDefinition");
                }
            }
        }
        
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListPropertyType PropertyType {
            get {
                return this.propertyTypeField;
            }
            set {
                if ((propertyTypeField.Equals(value) != true)) {
                    this.propertyTypeField = value;
                    this.OnPropertyChanged("PropertyType");
                }
            }
        }
        
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListDataType DataType {
            get {
                return this.dataTypeField;
            }
            set {
                if ((dataTypeField.Equals(value) != true)) {
                    this.dataTypeField = value;
                    this.OnPropertyChanged("DataType");
                }
            }
        }
        
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DataTypeSpecified {
            get {
                return this.dataTypeFieldSpecified;
            }
            set {
                if ((dataTypeFieldSpecified.Equals(value) != true)) {
                    this.dataTypeFieldSpecified = value;
                    this.OnPropertyChanged("DataTypeSpecified");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList object
        /// </summary>
        public virtual FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList Clone() {
            return ((FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionList)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private string nameField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private string descriptionField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinitionPropertyType propertyTypeField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinitionDataType dataTypeField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool dataTypeFieldSpecified;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<string> propertyValueConstraintListField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition class constructor
        /// </summary>
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition() {
            this.propertyValueConstraintListField = new BindingList<string>();
        }
        
        public string Name {
            get {
                return this.nameField;
            }
            set {
                if ((this.nameField != null)) {
                    if ((nameField.Equals(value) != true)) {
                        this.nameField = value;
                        this.OnPropertyChanged("Name");
                    }
                }
                else {
                    this.nameField = value;
                    this.OnPropertyChanged("Name");
                }
            }
        }
        
        public string Description {
            get {
                return this.descriptionField;
            }
            set {
                if ((this.descriptionField != null)) {
                    if ((descriptionField.Equals(value) != true)) {
                        this.descriptionField = value;
                        this.OnPropertyChanged("Description");
                    }
                }
                else {
                    this.descriptionField = value;
                    this.OnPropertyChanged("Description");
                }
            }
        }
        
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinitionPropertyType PropertyType {
            get {
                return this.propertyTypeField;
            }
            set {
                if ((propertyTypeField.Equals(value) != true)) {
                    this.propertyTypeField = value;
                    this.OnPropertyChanged("PropertyType");
                }
            }
        }
        
        public FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinitionDataType DataType {
            get {
                return this.dataTypeField;
            }
            set {
                if ((dataTypeField.Equals(value) != true)) {
                    this.dataTypeField = value;
                    this.OnPropertyChanged("DataType");
                }
            }
        }
        
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DataTypeSpecified {
            get {
                return this.dataTypeFieldSpecified;
            }
            set {
                if ((dataTypeFieldSpecified.Equals(value) != true)) {
                    this.dataTypeFieldSpecified = value;
                    this.OnPropertyChanged("DataTypeSpecified");
                }
            }
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Value", IsNullable=false)]
        public BindingList<string> PropertyValueConstraintList {
            get {
                return this.propertyValueConstraintListField;
            }
            set {
                if ((this.propertyValueConstraintListField != null)) {
                    if ((propertyValueConstraintListField.Equals(value) != true)) {
                        this.propertyValueConstraintListField = value;
                        this.OnPropertyChanged("PropertyValueConstraintList");
                    }
                }
                else {
                    this.propertyValueConstraintListField = value;
                    this.OnPropertyChanged("PropertyValueConstraintList");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition object
        /// </summary>
        public virtual FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition Clone() {
            return ((FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinition)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinitionPropertyType {
        
        /// <remarks/>
        Data,
        
        /// <remarks/>
        Object,
        
        /// <remarks/>
        Geometry,
        
        /// <remarks/>
        Association,
        
        /// <remarks/>
        Raster,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListArgumentDefinitionDataType {
        
        /// <remarks/>
        Boolean,
        
        /// <remarks/>
        Byte,
        
        /// <remarks/>
        DateTime,
        
        /// <remarks/>
        Decimal,
        
        /// <remarks/>
        Double,
        
        /// <remarks/>
        Int16,
        
        /// <remarks/>
        Int32,
        
        /// <remarks/>
        Int64,
        
        /// <remarks/>
        Single,
        
        /// <remarks/>
        String,
        
        /// <remarks/>
        BLOB,
        
        /// <remarks/>
        CLOB,
        
        /// <remarks/>
        UniqueID,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListPropertyType {
        
        /// <remarks/>
        Data,
        
        /// <remarks/>
        Geometry,
        
        /// <remarks/>
        Object,
        
        /// <remarks/>
        Association,
        
        /// <remarks/>
        Raster,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesExpressionFunctionDefinitionSignatureDefinitionArgumentDefinitionListDataType {
        
        /// <remarks/>
        Boolean,
        
        /// <remarks/>
        Byte,
        
        /// <remarks/>
        DateTime,
        
        /// <remarks/>
        Decimal,
        
        /// <remarks/>
        Double,
        
        /// <remarks/>
        Int16,
        
        /// <remarks/>
        Int32,
        
        /// <remarks/>
        Int64,
        
        /// <remarks/>
        Single,
        
        /// <remarks/>
        String,
        
        /// <remarks/>
        BLOB,
        
        /// <remarks/>
        CLOB,
        
        /// <remarks/>
        UniqueID,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesRaster : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsRasterField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsStitchingField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsSubsamplingField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        public bool SupportsRaster {
            get {
                return this.supportsRasterField;
            }
            set {
                if ((supportsRasterField.Equals(value) != true)) {
                    this.supportsRasterField = value;
                    this.OnPropertyChanged("SupportsRaster");
                }
            }
        }
        
        public bool SupportsStitching {
            get {
                return this.supportsStitchingField;
            }
            set {
                if ((supportsStitchingField.Equals(value) != true)) {
                    this.supportsStitchingField = value;
                    this.OnPropertyChanged("SupportsStitching");
                }
            }
        }
        
        public bool SupportsSubsampling {
            get {
                return this.supportsSubsamplingField;
            }
            set {
                if ((supportsSubsamplingField.Equals(value) != true)) {
                    this.supportsSubsamplingField = value;
                    this.OnPropertyChanged("SupportsSubsampling");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesRaster));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesRaster object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesRaster object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesRaster object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesRaster obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesRaster);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesRaster obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesRaster Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesRaster)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesRaster object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesRaster object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesRaster object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesRaster obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesRaster);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesRaster obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesRaster LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesRaster object
        /// </summary>
        public virtual FdoProviderCapabilitiesRaster Clone() {
            return ((FdoProviderCapabilitiesRaster)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesTopology : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsTopologyField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool supportsTopologicalHierarchyField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool breaksCurveCrossingsAutomaticallyField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool activatesTopologyByAreaField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private bool constrainsFeatureMovementsField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        public bool SupportsTopology {
            get {
                return this.supportsTopologyField;
            }
            set {
                if ((supportsTopologyField.Equals(value) != true)) {
                    this.supportsTopologyField = value;
                    this.OnPropertyChanged("SupportsTopology");
                }
            }
        }
        
        public bool SupportsTopologicalHierarchy {
            get {
                return this.supportsTopologicalHierarchyField;
            }
            set {
                if ((supportsTopologicalHierarchyField.Equals(value) != true)) {
                    this.supportsTopologicalHierarchyField = value;
                    this.OnPropertyChanged("SupportsTopologicalHierarchy");
                }
            }
        }
        
        public bool BreaksCurveCrossingsAutomatically {
            get {
                return this.breaksCurveCrossingsAutomaticallyField;
            }
            set {
                if ((breaksCurveCrossingsAutomaticallyField.Equals(value) != true)) {
                    this.breaksCurveCrossingsAutomaticallyField = value;
                    this.OnPropertyChanged("BreaksCurveCrossingsAutomatically");
                }
            }
        }
        
        public bool ActivatesTopologyByArea {
            get {
                return this.activatesTopologyByAreaField;
            }
            set {
                if ((activatesTopologyByAreaField.Equals(value) != true)) {
                    this.activatesTopologyByAreaField = value;
                    this.OnPropertyChanged("ActivatesTopologyByArea");
                }
            }
        }
        
        public bool ConstrainsFeatureMovements {
            get {
                return this.constrainsFeatureMovementsField;
            }
            set {
                if ((constrainsFeatureMovementsField.Equals(value) != true)) {
                    this.constrainsFeatureMovementsField = value;
                    this.OnPropertyChanged("ConstrainsFeatureMovements");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesTopology));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesTopology object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesTopology object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesTopology object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesTopology obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesTopology);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesTopology obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesTopology Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesTopology)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesTopology object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesTopology object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesTopology object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesTopology obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesTopology);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesTopology obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesTopology LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesTopology object
        /// </summary>
        public virtual FdoProviderCapabilitiesTopology Clone() {
            return ((FdoProviderCapabilitiesTopology)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public partial class FdoProviderCapabilitiesGeometry : System.ComponentModel.INotifyPropertyChanged {
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesGeometryType> typesField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private BindingList<FdoProviderCapabilitiesGeometryType1> componentsField;
        
        [EditorBrowsable(EditorBrowsableState.Never)]
        private string dimensionalityField;
        
        private static System.Xml.Serialization.XmlSerializer serializer;
        
        /// <summary>
        /// FdoProviderCapabilitiesGeometry class constructor
        /// </summary>
        public FdoProviderCapabilitiesGeometry() {
            this.componentsField = new BindingList<FdoProviderCapabilitiesGeometryType1>();
            this.typesField = new BindingList<FdoProviderCapabilitiesGeometryType>();
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Type", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesGeometryType> Types {
            get {
                return this.typesField;
            }
            set {
                if ((this.typesField != null)) {
                    if ((typesField.Equals(value) != true)) {
                        this.typesField = value;
                        this.OnPropertyChanged("Types");
                    }
                }
                else {
                    this.typesField = value;
                    this.OnPropertyChanged("Types");
                }
            }
        }
        
        [System.Xml.Serialization.XmlArrayItemAttribute("Type", IsNullable=false)]
        public BindingList<FdoProviderCapabilitiesGeometryType1> Components {
            get {
                return this.componentsField;
            }
            set {
                if ((this.componentsField != null)) {
                    if ((componentsField.Equals(value) != true)) {
                        this.componentsField = value;
                        this.OnPropertyChanged("Components");
                    }
                }
                else {
                    this.componentsField = value;
                    this.OnPropertyChanged("Components");
                }
            }
        }
        
        [System.Xml.Serialization.XmlElementAttribute(DataType="integer")]
        public string Dimensionality {
            get {
                return this.dimensionalityField;
            }
            set {
                if ((this.dimensionalityField != null)) {
                    if ((dimensionalityField.Equals(value) != true)) {
                        this.dimensionalityField = value;
                        this.OnPropertyChanged("Dimensionality");
                    }
                }
                else {
                    this.dimensionalityField = value;
                    this.OnPropertyChanged("Dimensionality");
                }
            }
        }
        
        private static System.Xml.Serialization.XmlSerializer Serializer {
            get {
                if ((serializer == null)) {
                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(FdoProviderCapabilitiesGeometry));
                }
                return serializer;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        public virtual void OnPropertyChanged(string info) {
            System.ComponentModel.PropertyChangedEventHandler handler = this.PropertyChanged;
            if ((handler != null)) {
                handler(this, new System.ComponentModel.PropertyChangedEventArgs(info));
            }
        }
        
        #region Serialize/Deserialize
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesGeometry object into an XML document
        /// </summary>
        /// <returns>string XML value</returns>
        public virtual string Serialize() {
            System.IO.StreamReader streamReader = null;
            System.IO.MemoryStream memoryStream = null;
            try {
                memoryStream = new System.IO.MemoryStream();
                Serializer.Serialize(memoryStream, this);
                memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
                streamReader = new System.IO.StreamReader(memoryStream);
                return streamReader.ReadToEnd();
            }
            finally {
                if ((streamReader != null)) {
                    streamReader.Dispose();
                }
                if ((memoryStream != null)) {
                    memoryStream.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes workflow markup into an FdoProviderCapabilitiesGeometry object
        /// </summary>
        /// <param name="xml">string workflow markup to deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesGeometry object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesGeometry obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesGeometry);
            try {
                obj = Deserialize(xml);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool Deserialize(string xml, out FdoProviderCapabilitiesGeometry obj) {
            System.Exception exception = null;
            return Deserialize(xml, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesGeometry Deserialize(string xml) {
            System.IO.StringReader stringReader = null;
            try {
                stringReader = new System.IO.StringReader(xml);
                return ((FdoProviderCapabilitiesGeometry)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
            }
            finally {
                if ((stringReader != null)) {
                    stringReader.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Serializes current FdoProviderCapabilitiesGeometry object into file
        /// </summary>
        /// <param name="fileName">full path of outupt xml file</param>
        /// <param name="exception">output Exception value if failed</param>
        /// <returns>true if can serialize and save into file; otherwise, false</returns>
        public virtual bool SaveToFile(string fileName, out System.Exception exception) {
            exception = null;
            try {
                SaveToFile(fileName);
                return true;
            }
            catch (System.Exception e) {
                exception = e;
                return false;
            }
        }
        
        public virtual void SaveToFile(string fileName) {
            System.IO.StreamWriter streamWriter = null;
            try {
                string xmlString = Serialize();
                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
                streamWriter = xmlFile.CreateText();
                streamWriter.WriteLine(xmlString);
                streamWriter.Close();
            }
            finally {
                if ((streamWriter != null)) {
                    streamWriter.Dispose();
                }
            }
        }
        
        /// <summary>
        /// Deserializes xml markup from file into an FdoProviderCapabilitiesGeometry object
        /// </summary>
        /// <param name="fileName">string xml file to load and deserialize</param>
        /// <param name="obj">Output FdoProviderCapabilitiesGeometry object</param>
        /// <param name="exception">output Exception value if deserialize failed</param>
        /// <returns>true if this XmlSerializer can deserialize the object; otherwise, false</returns>
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesGeometry obj, out System.Exception exception) {
            exception = null;
            obj = default(FdoProviderCapabilitiesGeometry);
            try {
                obj = LoadFromFile(fileName);
                return true;
            }
            catch (System.Exception ex) {
                exception = ex;
                return false;
            }
        }
        
        public static bool LoadFromFile(string fileName, out FdoProviderCapabilitiesGeometry obj) {
            System.Exception exception = null;
            return LoadFromFile(fileName, out obj, out exception);
        }
        
        public static FdoProviderCapabilitiesGeometry LoadFromFile(string fileName) {
            System.IO.FileStream file = null;
            System.IO.StreamReader sr = null;
            try {
                file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
                sr = new System.IO.StreamReader(file);
                string xmlString = sr.ReadToEnd();
                sr.Close();
                file.Close();
                return Deserialize(xmlString);
            }
            finally {
                if ((file != null)) {
                    file.Dispose();
                }
                if ((sr != null)) {
                    sr.Dispose();
                }
            }
        }
        #endregion
        
        #region Clone method
        /// <summary>
        /// Create a clone of this FdoProviderCapabilitiesGeometry object
        /// </summary>
        public virtual FdoProviderCapabilitiesGeometry Clone() {
            return ((FdoProviderCapabilitiesGeometry)(this.MemberwiseClone()));
        }
        #endregion
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesGeometryType {
        
        /// <remarks/>
        None,
        
        /// <remarks/>
        Point,
        
        /// <remarks/>
        LineString,
        
        /// <remarks/>
        Polygon,
        
        /// <remarks/>
        MultiPoint,
        
        /// <remarks/>
        MultiLineString,
        
        /// <remarks/>
        MultiPolygon,
        
        /// <remarks/>
        MultiGeometry,
        
        /// <remarks/>
        CurveString,
        
        /// <remarks/>
        CurvePolygon,
        
        /// <remarks/>
        MultiCurveString,
        
        /// <remarks/>
        MultiCurvePolygon,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.20460")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
    public enum FdoProviderCapabilitiesGeometryType1 {
        
        /// <remarks/>
        LinearRing,
        
        /// <remarks/>
        ArcSegment,
        
        /// <remarks/>
        LinearSegment,
        
        /// <remarks/>
        CurveRing,
    }
}