[mapguide-commits] r5940 - in trunk/Tools/Maestro: ExtendedModels/LayerDefinition-1.2.0 ExtendedModels/LayerDefinition-1.3.0 ExtendedModels/LayerDefinition-2.3.0 Generated Maestro.Base/Editor Maestro.Editors/LayerDefinition/Vector/Scales Maestro.Editors/SymbolDefinition Maestro.Shared.UI OSGeo.MapGuide.MaestroAPI/ObjectModels

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Jun 22 10:49:33 EDT 2011


Author: jng
Date: 2011-06-22 07:49:33 -0700 (Wed, 22 Jun 2011)
New Revision: 5940

Modified:
   trunk/Tools/Maestro/ExtendedModels/LayerDefinition-1.2.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj
   trunk/Tools/Maestro/ExtendedModels/LayerDefinition-1.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj
   trunk/Tools/Maestro/ExtendedModels/LayerDefinition-2.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-2.3.0.csproj
   trunk/Tools/Maestro/Generated/LayerDefinition-1.1.0.designer.cs
   trunk/Tools/Maestro/Generated/LayerDefinition-1.2.0.designer.cs
   trunk/Tools/Maestro/Generated/LayerDefinition-1.3.0.designer.cs
   trunk/Tools/Maestro/Generated/LayerDefinition-2.3.0.designer.cs
   trunk/Tools/Maestro/Generated/WatermarkDefinition-2.3.0.designer.cs
   trunk/Tools/Maestro/Maestro.Base/Editor/LayerDefinitionEditor.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ConditionListButtons.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRange.designer.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRange.resx
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.designer.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.resx
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeList.designer.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeList.resx
   trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolGraphicsCtrl.cs
   trunk/Tools/Maestro/Maestro.Shared.UI/ErrorDialog.resx
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
Log:
#1714: Submit further work on editor support for symbol definitions. Many symbol-related interfaces had to be changed


Modified: trunk/Tools/Maestro/ExtendedModels/LayerDefinition-1.2.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj
===================================================================
--- trunk/Tools/Maestro/ExtendedModels/LayerDefinition-1.2.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/ExtendedModels/LayerDefinition-1.2.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.2.0.csproj	2011-06-22 14:49:33 UTC (rev 5940)
@@ -77,6 +77,10 @@
       <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
       <Name>OSGeo.MapGuide.MaestroAPI</Name>
     </ProjectReference>
+    <ProjectReference Include="..\SymbolDefinition-1.1.0\OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj">
+      <Project>{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}</Project>
+      <Name>OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0</Name>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 

Modified: trunk/Tools/Maestro/ExtendedModels/LayerDefinition-1.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj
===================================================================
--- trunk/Tools/Maestro/ExtendedModels/LayerDefinition-1.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/ExtendedModels/LayerDefinition-1.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-1.3.0.csproj	2011-06-22 14:49:33 UTC (rev 5940)
@@ -77,6 +77,10 @@
       <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
       <Name>OSGeo.MapGuide.MaestroAPI</Name>
     </ProjectReference>
+    <ProjectReference Include="..\SymbolDefinition-1.1.0\OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj">
+      <Project>{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}</Project>
+      <Name>OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0</Name>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 

Modified: trunk/Tools/Maestro/ExtendedModels/LayerDefinition-2.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-2.3.0.csproj
===================================================================
--- trunk/Tools/Maestro/ExtendedModels/LayerDefinition-2.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-2.3.0.csproj	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/ExtendedModels/LayerDefinition-2.3.0/OSGeo.MapGuide.ObjectModels.LayerDefinition-2.3.0.csproj	2011-06-22 14:49:33 UTC (rev 5940)
@@ -71,6 +71,10 @@
       <Project>{80FA3158-8B5F-48D1-A393-0378AFE48A7E}</Project>
       <Name>OSGeo.MapGuide.MaestroAPI</Name>
     </ProjectReference>
+    <ProjectReference Include="..\SymbolDefinition-1.1.0\OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0.csproj">
+      <Project>{BF6E996E-27AF-44CD-B3CF-A40874E15B2E}</Project>
+      <Name>OSGeo.MapGuide.ObjectModels.SymbolDefinition-1.1.0</Name>
+    </ProjectReference>
     <ProjectReference Include="..\WatermarkDefinition-2.3.0\OSGeo.MapGuide.ObjectModels.WatermarkDefinition-2.3.0.csproj">
       <Project>{F84E21EE-360C-46EC-BD01-E66F8D9F5B3E}</Project>
       <Name>OSGeo.MapGuide.ObjectModels.WatermarkDefinition-2.3.0</Name>

Modified: trunk/Tools/Maestro/Generated/LayerDefinition-1.1.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/LayerDefinition-1.1.0.designer.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Generated/LayerDefinition-1.1.0.designer.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -15,5918 +15,10 @@
     using System.ComponentModel;
     using System.IO;
     using OSGeo.MapGuide.ObjectModels.LayerDefinition;
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
-    [System.Xml.Serialization.XmlRootAttribute("SimpleSymbolDefinition", Namespace="", IsNullable=false)]
-    public partial class SimpleSymbolDefinition1 : SimpleSymbolDefinition, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string versionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public SimpleSymbolDefinition1() {
-            this.versionField = "1.0.0";
-        }
-        
-        [System.Xml.Serialization.XmlAttributeAttribute()]
-        public string version {
-            get {
-                return this.versionField;
-            }
-            set {
-                if ((this.versionField != null)) {
-                    if ((versionField.Equals(value) != true)) {
-                        this.versionField = value;
-                        this.OnPropertyChanged("version");
-                    }
-                }
-                else {
-                    this.versionField = value;
-                    this.OnPropertyChanged("version");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbolDefinition1));
-                }
-                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 SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition1);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition1 Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbolDefinition1)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition1);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        public virtual SimpleSymbolDefinition1 Clone() {
-            return ((SimpleSymbolDefinition1)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
+    using OSGeo.MapGuide.ObjectModels.Common;
+    using OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_0_0;
+   
     /// <summary>
-    /// A 2D simple symbol for stylization.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SimpleSymbolDefinition : SymbolDefinitionBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<GraphicBase> graphicsField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ResizeBox resizeBoxField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private PointUsage pointUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private LineUsage lineUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private AreaUsage areaUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ParameterDefinition parameterDefinitionField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        /// <summary>
-        /// The collection of graphic elements defining this symbol.
-        /// </summary>
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Image), IsNullable=false)]
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Path), IsNullable=false)]
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Text), IsNullable=false)]
-        public BindingList<GraphicBase> Graphics {
-            get {
-                return this.graphicsField;
-            }
-            set {
-                if ((this.graphicsField != null)) {
-                    if ((graphicsField.Equals(value) != true)) {
-                        this.graphicsField = value;
-                        this.OnPropertyChanged("Graphics");
-                    }
-                }
-                else {
-                    this.graphicsField = value;
-                    this.OnPropertyChanged("Graphics");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The optional box used to resize and reposition select graphic elements.  The graphical extent of all elements with ResizeControl set to AddToResizeBox will be added to this box, potentially causing it to grow in size.  Any change in size causes all elements with ResizeControl set to AdjustToResizeBox to be proportionally resized and repositioned.
-        /// </summary>
-        public ResizeBox ResizeBox {
-            get {
-                return this.resizeBoxField;
-            }
-            set {
-                if ((this.resizeBoxField != null)) {
-                    if ((resizeBoxField.Equals(value) != true)) {
-                        this.resizeBoxField = value;
-                        this.OnPropertyChanged("ResizeBox");
-                    }
-                }
-                else {
-                    this.resizeBoxField = value;
-                    this.OnPropertyChanged("ResizeBox");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of point features.
-        /// </summary>
-        public PointUsage PointUsage {
-            get {
-                return this.pointUsageField;
-            }
-            set {
-                if ((this.pointUsageField != null)) {
-                    if ((pointUsageField.Equals(value) != true)) {
-                        this.pointUsageField = value;
-                        this.OnPropertyChanged("PointUsage");
-                    }
-                }
-                else {
-                    this.pointUsageField = value;
-                    this.OnPropertyChanged("PointUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of linear features.
-        /// </summary>
-        public LineUsage LineUsage {
-            get {
-                return this.lineUsageField;
-            }
-            set {
-                if ((this.lineUsageField != null)) {
-                    if ((lineUsageField.Equals(value) != true)) {
-                        this.lineUsageField = value;
-                        this.OnPropertyChanged("LineUsage");
-                    }
-                }
-                else {
-                    this.lineUsageField = value;
-                    this.OnPropertyChanged("LineUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of area features.
-        /// </summary>
-        public AreaUsage AreaUsage {
-            get {
-                return this.areaUsageField;
-            }
-            set {
-                if ((this.areaUsageField != null)) {
-                    if ((areaUsageField.Equals(value) != true)) {
-                        this.areaUsageField = value;
-                        this.OnPropertyChanged("AreaUsage");
-                    }
-                }
-                else {
-                    this.areaUsageField = value;
-                    this.OnPropertyChanged("AreaUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
-        /// </summary>
-        public ParameterDefinition ParameterDefinition {
-            get {
-                return this.parameterDefinitionField;
-            }
-            set {
-                if ((this.parameterDefinitionField != null)) {
-                    if ((parameterDefinitionField.Equals(value) != true)) {
-                        this.parameterDefinitionField = value;
-                        this.OnPropertyChanged("ParameterDefinition");
-                    }
-                }
-                else {
-                    this.parameterDefinitionField = value;
-                    this.OnPropertyChanged("ParameterDefinition");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbolDefinition));
-                }
-                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 SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition 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 SimpleSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbolDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbolDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition 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 SimpleSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbolDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        public virtual SimpleSymbolDefinition Clone() {
-            return ((SimpleSymbolDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Image : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private object itemField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Image() {
-            this.sizeXField = "1.0";
-            this.sizeYField = "1.0";
-            this.sizeScalableField = "true";
-            this.angleField = "0.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-        }
-        
-        [System.Xml.Serialization.XmlElementAttribute("Content", typeof(byte[]), DataType="base64Binary")]
-        [System.Xml.Serialization.XmlElementAttribute("Reference", typeof(ImageReference))]
-        public object Item {
-            get {
-                return this.itemField;
-            }
-            set {
-                if ((this.itemField != null)) {
-                    if ((itemField.Equals(value) != true)) {
-                        this.itemField = value;
-                        this.OnPropertyChanged("Item");
-                    }
-                }
-                else {
-                    this.itemField = value;
-                    this.OnPropertyChanged("Item");
-                }
-            }
-        }
-        
-        public string SizeX {
-            get {
-                return this.sizeXField;
-            }
-            set {
-                if ((this.sizeXField != null)) {
-                    if ((sizeXField.Equals(value) != true)) {
-                        this.sizeXField = value;
-                        this.OnPropertyChanged("SizeX");
-                    }
-                }
-                else {
-                    this.sizeXField = value;
-                    this.OnPropertyChanged("SizeX");
-                }
-            }
-        }
-        
-        public string SizeY {
-            get {
-                return this.sizeYField;
-            }
-            set {
-                if ((this.sizeYField != null)) {
-                    if ((sizeYField.Equals(value) != true)) {
-                        this.sizeYField = value;
-                        this.OnPropertyChanged("SizeY");
-                    }
-                }
-                else {
-                    this.sizeYField = value;
-                    this.OnPropertyChanged("SizeY");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string SizeScalable {
-            get {
-                return this.sizeScalableField;
-            }
-            set {
-                if ((this.sizeScalableField != null)) {
-                    if ((sizeScalableField.Equals(value) != true)) {
-                        this.sizeScalableField = value;
-                        this.OnPropertyChanged("SizeScalable");
-                    }
-                }
-                else {
-                    this.sizeScalableField = value;
-                    this.OnPropertyChanged("SizeScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Image));
-                }
-                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 Image 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 Image object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Image 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 Image obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Image);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Image obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Image Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Image)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Image 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 Image object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Image 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 Image obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Image);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Image obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Image 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 Image object
-        /// </summary>
-        public virtual Image Clone() {
-            return ((Image)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ImageReference : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string resourceIdField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string libraryItemNameField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public string ResourceId {
-            get {
-                return this.resourceIdField;
-            }
-            set {
-                if ((this.resourceIdField != null)) {
-                    if ((resourceIdField.Equals(value) != true)) {
-                        this.resourceIdField = value;
-                        this.OnPropertyChanged("ResourceId");
-                    }
-                }
-                else {
-                    this.resourceIdField = value;
-                    this.OnPropertyChanged("ResourceId");
-                }
-            }
-        }
-        
-        public string LibraryItemName {
-            get {
-                return this.libraryItemNameField;
-            }
-            set {
-                if ((this.libraryItemNameField != null)) {
-                    if ((libraryItemNameField.Equals(value) != true)) {
-                        this.libraryItemNameField = value;
-                        this.OnPropertyChanged("LibraryItemName");
-                    }
-                }
-                else {
-                    this.libraryItemNameField = value;
-                    this.OnPropertyChanged("LibraryItemName");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ImageReference));
-                }
-                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 ImageReference 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 ImageReference object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ImageReference 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 ImageReference obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ImageReference);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ImageReference obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ImageReference Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ImageReference)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ImageReference 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 ImageReference object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ImageReference 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 ImageReference obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ImageReference);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ImageReference obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ImageReference 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 ImageReference object
-        /// </summary>
-        public virtual ImageReference Clone() {
-            return ((ImageReference)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SimpleSymbol : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private object itemField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string renderingPassField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public SimpleSymbol() {
-            this.renderingPassField = "0";
-        }
-        
-        [System.Xml.Serialization.XmlElementAttribute("ResourceId", typeof(string))]
-        [System.Xml.Serialization.XmlElementAttribute("SimpleSymbolDefinition", typeof(SimpleSymbolDefinition))]
-        public object Item {
-            get {
-                return this.itemField;
-            }
-            set {
-                if ((this.itemField != null)) {
-                    if ((itemField.Equals(value) != true)) {
-                        this.itemField = value;
-                        this.OnPropertyChanged("Item");
-                    }
-                }
-                else {
-                    this.itemField = value;
-                    this.OnPropertyChanged("Item");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The optional rendering pass in which this symbol definition draws.  If specified this must be greater than or equal to zero.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0")]
-        public string RenderingPass {
-            get {
-                return this.renderingPassField;
-            }
-            set {
-                if ((this.renderingPassField != null)) {
-                    if ((renderingPassField.Equals(value) != true)) {
-                        this.renderingPassField = value;
-                        this.OnPropertyChanged("RenderingPass");
-                    }
-                }
-                else {
-                    this.renderingPassField = value;
-                    this.OnPropertyChanged("RenderingPass");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbol));
-                }
-                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 SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbol 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 SimpleSymbol obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbol);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbol obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbol Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbol)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbol 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 SimpleSymbol obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbol);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbol obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        public virtual SimpleSymbol Clone() {
-            return ((SimpleSymbol)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
-
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private System.Xml.XmlElement[] anyField;
-
-        private static System.Xml.Serialization.XmlSerializer serializer;
-
-        [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public System.Xml.XmlElement[] Any
-        {
-            get
-            {
-                return this.anyField;
-            }
-            set
-            {
-                if ((this.anyField != null))
-                {
-                    if ((anyField.Equals(value) != true))
-                    {
-                        this.anyField = value;
-                        this.OnPropertyChanged("Any");
-                    }
-                }
-                else
-                {
-                    this.anyField = value;
-                    this.OnPropertyChanged("Any");
-                }
-            }
-        }
-
-        private static System.Xml.Serialization.XmlSerializer Serializer
-        {
-            get
-            {
-                if ((serializer == null))
-                {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ExtendedDataType));
-                }
-                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 ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ExtendedDataType 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 ExtendedDataType obj, out System.Exception exception)
-        {
-            exception = null;
-            obj = default(ExtendedDataType);
-            try
-            {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex)
-            {
-                exception = ex;
-                return false;
-            }
-        }
-
-        public static bool Deserialize(string xml, out ExtendedDataType obj)
-        {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-
-        public static ExtendedDataType Deserialize(string xml)
-        {
-            System.IO.StringReader stringReader = null;
-            try
-            {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ExtendedDataType)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally
-            {
-                if ((stringReader != null))
-                {
-                    stringReader.Dispose();
-                }
-            }
-        }
-
-        /// <summary>
-        /// Serializes current ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ExtendedDataType 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 ExtendedDataType obj, out System.Exception exception)
-        {
-            exception = null;
-            obj = default(ExtendedDataType);
-            try
-            {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex)
-            {
-                exception = ex;
-                return false;
-            }
-        }
-
-        public static bool LoadFromFile(string fileName, out ExtendedDataType obj)
-        {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-
-        public static ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        public virtual ExtendedDataType Clone()
-        {
-            return ((ExtendedDataType)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Parameter : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string identifierField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string defaultValueField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string displayNameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string descriptionField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private DataType dataTypeField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Parameter() {
-            this.dataTypeField = DataType.String;
-        }
-        
-        /// <summary>
-        /// The parameter identifier as used in the symbol.
-        /// </summary>
-        public string Identifier {
-            get {
-                return this.identifierField;
-            }
-            set {
-                if ((this.identifierField != null)) {
-                    if ((identifierField.Equals(value) != true)) {
-                        this.identifierField = value;
-                        this.OnPropertyChanged("Identifier");
-                    }
-                }
-                else {
-                    this.identifierField = value;
-                    this.OnPropertyChanged("Identifier");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The default value of the parameter if no override is defined in the symbol instance.  This can be an expression.
-        /// </summary>
-        public string DefaultValue {
-            get {
-                return this.defaultValueField;
-            }
-            set {
-                if ((this.defaultValueField != null)) {
-                    if ((defaultValueField.Equals(value) != true)) {
-                        this.defaultValueField = value;
-                        this.OnPropertyChanged("DefaultValue");
-                    }
-                }
-                else {
-                    this.defaultValueField = value;
-                    this.OnPropertyChanged("DefaultValue");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional short description of the parameter.  This can be used, for example, to ask the user to specify a parameter value.
-        /// </summary>
-        public string DisplayName {
-            get {
-                return this.displayNameField;
-            }
-            set {
-                if ((this.displayNameField != null)) {
-                    if ((displayNameField.Equals(value) != true)) {
-                        this.displayNameField = value;
-                        this.OnPropertyChanged("DisplayName");
-                    }
-                }
-                else {
-                    this.displayNameField = value;
-                    this.OnPropertyChanged("DisplayName");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional long description of the parameter.  This might include a description of useful values for this parameter.
-        /// </summary>
-        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");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional data type declaration for the parameter.  This is a hint used by the UI when assigning a value to this parameter.  Defaults to String.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute(DataType.String)]
-        public DataType DataType {
-            get {
-                return this.dataTypeField;
-            }
-            set {
-                if ((dataTypeField.Equals(value) != true)) {
-                    this.dataTypeField = value;
-                    this.OnPropertyChanged("DataType");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Parameter));
-                }
-                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 Parameter 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 Parameter object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Parameter 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 Parameter obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Parameter);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Parameter obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Parameter Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Parameter)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Parameter 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 Parameter object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Parameter 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 Parameter obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Parameter);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Parameter obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Parameter 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 Parameter object
-        /// </summary>
-        public virtual Parameter Clone() {
-            return ((Parameter)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    public enum DataType {
-        
-        /// <remarks/>
-        String,
-        
-        /// <remarks/>
-        Boolean,
-        
-        /// <remarks/>
-        Integer,
-        
-        /// <remarks/>
-        Real,
-        
-        /// <remarks/>
-        Color,
-    }
-    
-    /// <summary>
-    /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ParameterDefinition : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<Parameter> parameterField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        [System.Xml.Serialization.XmlElementAttribute("Parameter")]
-        public BindingList<Parameter> Parameter {
-            get {
-                return this.parameterField;
-            }
-            set {
-                if ((this.parameterField != null)) {
-                    if ((parameterField.Equals(value) != true)) {
-                        this.parameterField = value;
-                        this.OnPropertyChanged("Parameter");
-                    }
-                }
-                else {
-                    this.parameterField = value;
-                    this.OnPropertyChanged("Parameter");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ParameterDefinition));
-                }
-                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 ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ParameterDefinition 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 ParameterDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ParameterDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ParameterDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ParameterDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ParameterDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ParameterDefinition 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 ParameterDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ParameterDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ParameterDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        public virtual ParameterDefinition Clone() {
-            return ((ParameterDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of area features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class AreaUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string clippingControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string bufferWidthField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public AreaUsage() {
-            this.angleControlField = "\'FromAngle\'";
-            this.originControlField = "\'Global\'";
-            this.clippingControlField = "\'Clip\'";
-            this.angleField = "0.0";
-            this.originXField = "0.0";
-            this.originYField = "0.0";
-            this.repeatXField = "0.0";
-            this.repeatYField = "0.0";
-            this.bufferWidthField = "0.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle (default) or FromGeometry.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromAngle\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol grid origin is defined.  This must evaluate to one of: Global (default), Local, or Centroid.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Global\'")]
-        public string OriginControl {
-            get {
-                return this.originControlField;
-            }
-            set {
-                if ((this.originControlField != null)) {
-                    if ((originControlField.Equals(value) != true)) {
-                        this.originControlField = value;
-                        this.OnPropertyChanged("OriginControl");
-                    }
-                }
-                else {
-                    this.originControlField = value;
-                    this.OnPropertyChanged("OriginControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the clipping behavior of the symbol at polygon boundaries.  This must evaluate to one of: Clip (default), Inside, or Overlap.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Clip\'")]
-        public string ClippingControl {
-            get {
-                return this.clippingControlField;
-            }
-            set {
-                if ((this.clippingControlField != null)) {
-                    if ((clippingControlField.Equals(value) != true)) {
-                        this.clippingControlField = value;
-                        this.OnPropertyChanged("ClippingControl");
-                    }
-                }
-                else {
-                    this.clippingControlField = value;
-                    this.OnPropertyChanged("ClippingControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the angle of each repeating symbol, in degrees.  Only applies if AngleControl evaluates to FromAngle.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The x-coordinate of the symbol grid origin, in mm.  Only applies if OriginControl evaluates to Global or Local.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginX {
-            get {
-                return this.originXField;
-            }
-            set {
-                if ((this.originXField != null)) {
-                    if ((originXField.Equals(value) != true)) {
-                        this.originXField = value;
-                        this.OnPropertyChanged("OriginX");
-                    }
-                }
-                else {
-                    this.originXField = value;
-                    this.OnPropertyChanged("OriginX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The y-coordinate of the symbol grid origin, in mm.  Only applies if OriginControl evaluates to Global or Local.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginY {
-            get {
-                return this.originYField;
-            }
-            set {
-                if ((this.originYField != null)) {
-                    if ((originYField.Equals(value) != true)) {
-                        this.originYField = value;
-                        this.OnPropertyChanged("OriginY");
-                    }
-                }
-                else {
-                    this.originYField = value;
-                    this.OnPropertyChanged("OriginY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The horizontal separation between symbols, in mm.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string RepeatX {
-            get {
-                return this.repeatXField;
-            }
-            set {
-                if ((this.repeatXField != null)) {
-                    if ((repeatXField.Equals(value) != true)) {
-                        this.repeatXField = value;
-                        this.OnPropertyChanged("RepeatX");
-                    }
-                }
-                else {
-                    this.repeatXField = value;
-                    this.OnPropertyChanged("RepeatX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The vertical separation between symbols, in mm.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string RepeatY {
-            get {
-                return this.repeatYField;
-            }
-            set {
-                if ((this.repeatYField != null)) {
-                    if ((repeatYField.Equals(value) != true)) {
-                        this.repeatYField = value;
-                        this.OnPropertyChanged("RepeatY");
-                    }
-                }
-                else {
-                    this.repeatYField = value;
-                    this.OnPropertyChanged("RepeatY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The width, in mm, of the buffer zone relative to the polygon boundary in which the symbol is rendered.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string BufferWidth {
-            get {
-                return this.bufferWidthField;
-            }
-            set {
-                if ((this.bufferWidthField != null)) {
-                    if ((bufferWidthField.Equals(value) != true)) {
-                        this.bufferWidthField = value;
-                        this.OnPropertyChanged("BufferWidth");
-                    }
-                }
-                else {
-                    this.bufferWidthField = value;
-                    this.OnPropertyChanged("BufferWidth");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(AreaUsage));
-                }
-                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 AreaUsage 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 AreaUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output AreaUsage 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 AreaUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(AreaUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out AreaUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static AreaUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((AreaUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current AreaUsage 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 AreaUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output AreaUsage 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 AreaUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(AreaUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out AreaUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static AreaUsage 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 AreaUsage object
-        /// </summary>
-        public virtual AreaUsage Clone() {
-            return ((AreaUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of linear features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class LineUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string unitsControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string startOffsetField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string endOffsetField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexAngleLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexJoinField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexMiterLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private Path defaultPathField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public LineUsage() {
-            this.angleControlField = "\'FromGeometry\'";
-            this.unitsControlField = "\'Absolute\'";
-            this.vertexControlField = "\'OverlapNone\'";
-            this.angleField = "0.0";
-            this.startOffsetField = "0.0";
-            this.endOffsetField = "0.0";
-            this.repeatField = "0.0";
-            this.vertexAngleLimitField = "0.0";
-            this.vertexJoinField = "\'Round\'";
-            this.vertexMiterLimitField = "5.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle or FromGeometry (default).
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromGeometry\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies whether the distribution parameters are interpreted as absolute values (in mm) or parametric values.  This must evaluate to one of: Absolute (default) or Parametric.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Absolute\'")]
-        public string UnitsControl {
-            get {
-                return this.unitsControlField;
-            }
-            set {
-                if ((this.unitsControlField != null)) {
-                    if ((unitsControlField.Equals(value) != true)) {
-                        this.unitsControlField = value;
-                        this.OnPropertyChanged("UnitsControl");
-                    }
-                }
-                else {
-                    this.unitsControlField = value;
-                    this.OnPropertyChanged("UnitsControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the symbol behavior at vertices.  This must evaluate to one of: OverlapNone (default), OverlapDirect, OverlapNoWrap, or OverlapWrap.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'OverlapNone\'")]
-        public string VertexControl {
-            get {
-                return this.vertexControlField;
-            }
-            set {
-                if ((this.vertexControlField != null)) {
-                    if ((vertexControlField.Equals(value) != true)) {
-                        this.vertexControlField = value;
-                        this.OnPropertyChanged("VertexControl");
-                    }
-                }
-                else {
-                    this.vertexControlField = value;
-                    this.OnPropertyChanged("VertexControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the symbol angle, in degrees.  Only applies if AngleControl evaluates to FromAngle.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies where the symbol distribution begins, relative to the start of the feature.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string StartOffset {
-            get {
-                return this.startOffsetField;
-            }
-            set {
-                if ((this.startOffsetField != null)) {
-                    if ((startOffsetField.Equals(value) != true)) {
-                        this.startOffsetField = value;
-                        this.OnPropertyChanged("StartOffset");
-                    }
-                }
-                else {
-                    this.startOffsetField = value;
-                    this.OnPropertyChanged("StartOffset");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies where the symbol distribution ends, relative to the end of the feature.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string EndOffset {
-            get {
-                return this.endOffsetField;
-            }
-            set {
-                if ((this.endOffsetField != null)) {
-                    if ((endOffsetField.Equals(value) != true)) {
-                        this.endOffsetField = value;
-                        this.OnPropertyChanged("EndOffset");
-                    }
-                }
-                else {
-                    this.endOffsetField = value;
-                    this.OnPropertyChanged("EndOffset");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the separation between repeating symbols.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Repeat {
-            get {
-                return this.repeatField;
-            }
-            set {
-                if ((this.repeatField != null)) {
-                    if ((repeatField.Equals(value) != true)) {
-                        this.repeatField = value;
-                        this.OnPropertyChanged("Repeat");
-                    }
-                }
-                else {
-                    this.repeatField = value;
-                    this.OnPropertyChanged("Repeat");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the limiting angle, in degrees, by a which the feature geometry can change before some of the VertexControl options take effect.  If specified this must be greater than or equal to zero.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string VertexAngleLimit {
-            get {
-                return this.vertexAngleLimitField;
-            }
-            set {
-                if ((this.vertexAngleLimitField != null)) {
-                    if ((vertexAngleLimitField.Equals(value) != true)) {
-                        this.vertexAngleLimitField = value;
-                        this.OnPropertyChanged("VertexAngleLimit");
-                    }
-                }
-                else {
-                    this.vertexAngleLimitField = value;
-                    this.OnPropertyChanged("VertexAngleLimit");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the wrapping behavior at vertices for all graphic elements.  Only applies if VertexControl evaluates to OverlapWrap.  This must evaluate to one of: None, Bevel, Round (default), or Miter.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string VertexJoin {
-            get {
-                return this.vertexJoinField;
-            }
-            set {
-                if ((this.vertexJoinField != null)) {
-                    if ((vertexJoinField.Equals(value) != true)) {
-                        this.vertexJoinField = value;
-                        this.OnPropertyChanged("VertexJoin");
-                    }
-                }
-                else {
-                    this.vertexJoinField = value;
-                    this.OnPropertyChanged("VertexJoin");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The limit to use when drawing miter vertex joins.  A miter vertex join is trimmed if the ratio of the miter length to symbol height is greater than the miter limit.  If specified this must be greater than zero.  Defaults to 5.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("5.0")]
-        public string VertexMiterLimit {
-            get {
-                return this.vertexMiterLimitField;
-            }
-            set {
-                if ((this.vertexMiterLimitField != null)) {
-                    if ((vertexMiterLimitField.Equals(value) != true)) {
-                        this.vertexMiterLimitField = value;
-                        this.OnPropertyChanged("VertexMiterLimit");
-                    }
-                }
-                else {
-                    this.vertexMiterLimitField = value;
-                    this.OnPropertyChanged("VertexMiterLimit");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the default path attributes to use when drawing the symbol.  These apply to any centerline that gets drawn where the symbol can't draw, and to path elements that don't specify attributes.  The geometry contained in this path is ignored and should be empty.
-        /// </summary>
-        public Path DefaultPath {
-            get {
-                return this.defaultPathField;
-            }
-            set {
-                if ((this.defaultPathField != null)) {
-                    if ((defaultPathField.Equals(value) != true)) {
-                        this.defaultPathField = value;
-                        this.OnPropertyChanged("DefaultPath");
-                    }
-                }
-                else {
-                    this.defaultPathField = value;
-                    this.OnPropertyChanged("DefaultPath");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(LineUsage));
-                }
-                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 LineUsage 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 LineUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output LineUsage 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 LineUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(LineUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out LineUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static LineUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((LineUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current LineUsage 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 LineUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output LineUsage 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 LineUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(LineUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out LineUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static LineUsage 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 LineUsage object
-        /// </summary>
-        public virtual LineUsage Clone() {
-            return ((LineUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Path : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string geometryField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fillColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineWeightField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineWeightScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineCapField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineJoinField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineMiterLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Path() {
-            this.lineWeightField = "0.0";
-            this.lineWeightScalableField = "true";
-            this.lineCapField = "\'Round\'";
-            this.lineJoinField = "\'Round\'";
-            this.lineMiterLimitField = "5.0";
-        }
-        
-        public string 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");
-                }
-            }
-        }
-        
-        public string FillColor {
-            get {
-                return this.fillColorField;
-            }
-            set {
-                if ((this.fillColorField != null)) {
-                    if ((fillColorField.Equals(value) != true)) {
-                        this.fillColorField = value;
-                        this.OnPropertyChanged("FillColor");
-                    }
-                }
-                else {
-                    this.fillColorField = value;
-                    this.OnPropertyChanged("FillColor");
-                }
-            }
-        }
-        
-        public string LineColor {
-            get {
-                return this.lineColorField;
-            }
-            set {
-                if ((this.lineColorField != null)) {
-                    if ((lineColorField.Equals(value) != true)) {
-                        this.lineColorField = value;
-                        this.OnPropertyChanged("LineColor");
-                    }
-                }
-                else {
-                    this.lineColorField = value;
-                    this.OnPropertyChanged("LineColor");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string LineWeight {
-            get {
-                return this.lineWeightField;
-            }
-            set {
-                if ((this.lineWeightField != null)) {
-                    if ((lineWeightField.Equals(value) != true)) {
-                        this.lineWeightField = value;
-                        this.OnPropertyChanged("LineWeight");
-                    }
-                }
-                else {
-                    this.lineWeightField = value;
-                    this.OnPropertyChanged("LineWeight");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string LineWeightScalable {
-            get {
-                return this.lineWeightScalableField;
-            }
-            set {
-                if ((this.lineWeightScalableField != null)) {
-                    if ((lineWeightScalableField.Equals(value) != true)) {
-                        this.lineWeightScalableField = value;
-                        this.OnPropertyChanged("LineWeightScalable");
-                    }
-                }
-                else {
-                    this.lineWeightScalableField = value;
-                    this.OnPropertyChanged("LineWeightScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string LineCap {
-            get {
-                return this.lineCapField;
-            }
-            set {
-                if ((this.lineCapField != null)) {
-                    if ((lineCapField.Equals(value) != true)) {
-                        this.lineCapField = value;
-                        this.OnPropertyChanged("LineCap");
-                    }
-                }
-                else {
-                    this.lineCapField = value;
-                    this.OnPropertyChanged("LineCap");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string LineJoin {
-            get {
-                return this.lineJoinField;
-            }
-            set {
-                if ((this.lineJoinField != null)) {
-                    if ((lineJoinField.Equals(value) != true)) {
-                        this.lineJoinField = value;
-                        this.OnPropertyChanged("LineJoin");
-                    }
-                }
-                else {
-                    this.lineJoinField = value;
-                    this.OnPropertyChanged("LineJoin");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("5.0")]
-        public string LineMiterLimit {
-            get {
-                return this.lineMiterLimitField;
-            }
-            set {
-                if ((this.lineMiterLimitField != null)) {
-                    if ((lineMiterLimitField.Equals(value) != true)) {
-                        this.lineMiterLimitField = value;
-                        this.OnPropertyChanged("LineMiterLimit");
-                    }
-                }
-                else {
-                    this.lineMiterLimitField = value;
-                    this.OnPropertyChanged("LineMiterLimit");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Path));
-                }
-                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 Path 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 Path object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Path 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 Path obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Path);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Path obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Path Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Path)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Path 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 Path object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Path 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 Path obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Path);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Path obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Path 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 Path object
-        /// </summary>
-        public virtual Path Clone() {
-            return ((Path)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Text))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Image))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Path))]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class GraphicBase : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string resizeControlField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public GraphicBase() {
-            this.resizeControlField = "\'ResizeNone\'";
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'ResizeNone\'")]
-        public string ResizeControl {
-            get {
-                return this.resizeControlField;
-            }
-            set {
-                if ((this.resizeControlField != null)) {
-                    if ((resizeControlField.Equals(value) != true)) {
-                        this.resizeControlField = value;
-                        this.OnPropertyChanged("ResizeControl");
-                    }
-                }
-                else {
-                    this.resizeControlField = value;
-                    this.OnPropertyChanged("ResizeControl");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(GraphicBase));
-                }
-                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 GraphicBase 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 GraphicBase object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output GraphicBase 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 GraphicBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(GraphicBase);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out GraphicBase obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static GraphicBase Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((GraphicBase)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current GraphicBase 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 GraphicBase object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output GraphicBase 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 GraphicBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(GraphicBase);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out GraphicBase obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static GraphicBase 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 GraphicBase object
-        /// </summary>
-        public virtual GraphicBase Clone() {
-            return ((GraphicBase)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Text : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string contentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fontNameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string boldField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string italicField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string underlinedField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string heightField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string heightScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string horizontalAlignmentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string verticalAlignmentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string justificationField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineSpacingField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string textColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string ghostColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private TextFrame frameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Text() {
-            this.fontNameField = "\'Arial\'";
-            this.boldField = "false";
-            this.italicField = "false";
-            this.underlinedField = "false";
-            this.heightField = "4.0";
-            this.heightScalableField = "true";
-            this.angleField = "0.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-            this.horizontalAlignmentField = "\'Center\'";
-            this.verticalAlignmentField = "\'Halfline\'";
-            this.justificationField = "\'FromAlignment\'";
-            this.lineSpacingField = "1.05";
-            this.textColorField = "ff000000";
-        }
-        
-        public string Content {
-            get {
-                return this.contentField;
-            }
-            set {
-                if ((this.contentField != null)) {
-                    if ((contentField.Equals(value) != true)) {
-                        this.contentField = value;
-                        this.OnPropertyChanged("Content");
-                    }
-                }
-                else {
-                    this.contentField = value;
-                    this.OnPropertyChanged("Content");
-                }
-            }
-        }
-        
-        public string FontName {
-            get {
-                return this.fontNameField;
-            }
-            set {
-                if ((this.fontNameField != null)) {
-                    if ((fontNameField.Equals(value) != true)) {
-                        this.fontNameField = value;
-                        this.OnPropertyChanged("FontName");
-                    }
-                }
-                else {
-                    this.fontNameField = value;
-                    this.OnPropertyChanged("FontName");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Bold {
-            get {
-                return this.boldField;
-            }
-            set {
-                if ((this.boldField != null)) {
-                    if ((boldField.Equals(value) != true)) {
-                        this.boldField = value;
-                        this.OnPropertyChanged("Bold");
-                    }
-                }
-                else {
-                    this.boldField = value;
-                    this.OnPropertyChanged("Bold");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Italic {
-            get {
-                return this.italicField;
-            }
-            set {
-                if ((this.italicField != null)) {
-                    if ((italicField.Equals(value) != true)) {
-                        this.italicField = value;
-                        this.OnPropertyChanged("Italic");
-                    }
-                }
-                else {
-                    this.italicField = value;
-                    this.OnPropertyChanged("Italic");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Underlined {
-            get {
-                return this.underlinedField;
-            }
-            set {
-                if ((this.underlinedField != null)) {
-                    if ((underlinedField.Equals(value) != true)) {
-                        this.underlinedField = value;
-                        this.OnPropertyChanged("Underlined");
-                    }
-                }
-                else {
-                    this.underlinedField = value;
-                    this.OnPropertyChanged("Underlined");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("4.0")]
-        public string Height {
-            get {
-                return this.heightField;
-            }
-            set {
-                if ((this.heightField != null)) {
-                    if ((heightField.Equals(value) != true)) {
-                        this.heightField = value;
-                        this.OnPropertyChanged("Height");
-                    }
-                }
-                else {
-                    this.heightField = value;
-                    this.OnPropertyChanged("Height");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string HeightScalable {
-            get {
-                return this.heightScalableField;
-            }
-            set {
-                if ((this.heightScalableField != null)) {
-                    if ((heightScalableField.Equals(value) != true)) {
-                        this.heightScalableField = value;
-                        this.OnPropertyChanged("HeightScalable");
-                    }
-                }
-                else {
-                    this.heightScalableField = value;
-                    this.OnPropertyChanged("HeightScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Center\'")]
-        public string HorizontalAlignment {
-            get {
-                return this.horizontalAlignmentField;
-            }
-            set {
-                if ((this.horizontalAlignmentField != null)) {
-                    if ((horizontalAlignmentField.Equals(value) != true)) {
-                        this.horizontalAlignmentField = value;
-                        this.OnPropertyChanged("HorizontalAlignment");
-                    }
-                }
-                else {
-                    this.horizontalAlignmentField = value;
-                    this.OnPropertyChanged("HorizontalAlignment");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Halfline\'")]
-        public string VerticalAlignment {
-            get {
-                return this.verticalAlignmentField;
-            }
-            set {
-                if ((this.verticalAlignmentField != null)) {
-                    if ((verticalAlignmentField.Equals(value) != true)) {
-                        this.verticalAlignmentField = value;
-                        this.OnPropertyChanged("VerticalAlignment");
-                    }
-                }
-                else {
-                    this.verticalAlignmentField = value;
-                    this.OnPropertyChanged("VerticalAlignment");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'FromAlignment\'")]
-        public string Justification {
-            get {
-                return this.justificationField;
-            }
-            set {
-                if ((this.justificationField != null)) {
-                    if ((justificationField.Equals(value) != true)) {
-                        this.justificationField = value;
-                        this.OnPropertyChanged("Justification");
-                    }
-                }
-                else {
-                    this.justificationField = value;
-                    this.OnPropertyChanged("Justification");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("1.05")]
-        public string LineSpacing {
-            get {
-                return this.lineSpacingField;
-            }
-            set {
-                if ((this.lineSpacingField != null)) {
-                    if ((lineSpacingField.Equals(value) != true)) {
-                        this.lineSpacingField = value;
-                        this.OnPropertyChanged("LineSpacing");
-                    }
-                }
-                else {
-                    this.lineSpacingField = value;
-                    this.OnPropertyChanged("LineSpacing");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("ff000000")]
-        public string TextColor {
-            get {
-                return this.textColorField;
-            }
-            set {
-                if ((this.textColorField != null)) {
-                    if ((textColorField.Equals(value) != true)) {
-                        this.textColorField = value;
-                        this.OnPropertyChanged("TextColor");
-                    }
-                }
-                else {
-                    this.textColorField = value;
-                    this.OnPropertyChanged("TextColor");
-                }
-            }
-        }
-        
-        public string GhostColor {
-            get {
-                return this.ghostColorField;
-            }
-            set {
-                if ((this.ghostColorField != null)) {
-                    if ((ghostColorField.Equals(value) != true)) {
-                        this.ghostColorField = value;
-                        this.OnPropertyChanged("GhostColor");
-                    }
-                }
-                else {
-                    this.ghostColorField = value;
-                    this.OnPropertyChanged("GhostColor");
-                }
-            }
-        }
-        
-        public TextFrame Frame {
-            get {
-                return this.frameField;
-            }
-            set {
-                if ((this.frameField != null)) {
-                    if ((frameField.Equals(value) != true)) {
-                        this.frameField = value;
-                        this.OnPropertyChanged("Frame");
-                    }
-                }
-                else {
-                    this.frameField = value;
-                    this.OnPropertyChanged("Frame");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Text));
-                }
-                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 Text 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 Text object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Text 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 Text obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Text);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Text obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Text Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Text)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Text 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 Text object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Text 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 Text obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Text);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Text obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Text 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 Text object
-        /// </summary>
-        public virtual Text Clone() {
-            return ((Text)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class TextFrame : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fillColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string offsetXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string offsetYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public TextFrame() {
-            this.offsetXField = "0.0";
-            this.offsetYField = "0.0";
-        }
-        
-        public string LineColor {
-            get {
-                return this.lineColorField;
-            }
-            set {
-                if ((this.lineColorField != null)) {
-                    if ((lineColorField.Equals(value) != true)) {
-                        this.lineColorField = value;
-                        this.OnPropertyChanged("LineColor");
-                    }
-                }
-                else {
-                    this.lineColorField = value;
-                    this.OnPropertyChanged("LineColor");
-                }
-            }
-        }
-        
-        public string FillColor {
-            get {
-                return this.fillColorField;
-            }
-            set {
-                if ((this.fillColorField != null)) {
-                    if ((fillColorField.Equals(value) != true)) {
-                        this.fillColorField = value;
-                        this.OnPropertyChanged("FillColor");
-                    }
-                }
-                else {
-                    this.fillColorField = value;
-                    this.OnPropertyChanged("FillColor");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OffsetX {
-            get {
-                return this.offsetXField;
-            }
-            set {
-                if ((this.offsetXField != null)) {
-                    if ((offsetXField.Equals(value) != true)) {
-                        this.offsetXField = value;
-                        this.OnPropertyChanged("OffsetX");
-                    }
-                }
-                else {
-                    this.offsetXField = value;
-                    this.OnPropertyChanged("OffsetX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OffsetY {
-            get {
-                return this.offsetYField;
-            }
-            set {
-                if ((this.offsetYField != null)) {
-                    if ((offsetYField.Equals(value) != true)) {
-                        this.offsetYField = value;
-                        this.OnPropertyChanged("OffsetY");
-                    }
-                }
-                else {
-                    this.offsetYField = value;
-                    this.OnPropertyChanged("OffsetY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(TextFrame));
-                }
-                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 TextFrame 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 TextFrame object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output TextFrame 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 TextFrame obj, out System.Exception exception) {
-            exception = null;
-            obj = default(TextFrame);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out TextFrame obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static TextFrame Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((TextFrame)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current TextFrame 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 TextFrame object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output TextFrame 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 TextFrame obj, out System.Exception exception) {
-            exception = null;
-            obj = default(TextFrame);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out TextFrame obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static TextFrame 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 TextFrame object
-        /// </summary>
-        public virtual TextFrame Clone() {
-            return ((TextFrame)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of point features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class PointUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originOffsetXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originOffsetYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public PointUsage() {
-            this.angleControlField = "\'FromAngle\'";
-            this.angleField = "0.0";
-            this.originOffsetXField = "0.0";
-            this.originOffsetYField = "0.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle (default) or FromGeometry.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromAngle\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the symbol angle, in degrees.  Only applies if AngleControl evaluates to FromAngle.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the horizontal offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginOffsetX {
-            get {
-                return this.originOffsetXField;
-            }
-            set {
-                if ((this.originOffsetXField != null)) {
-                    if ((originOffsetXField.Equals(value) != true)) {
-                        this.originOffsetXField = value;
-                        this.OnPropertyChanged("OriginOffsetX");
-                    }
-                }
-                else {
-                    this.originOffsetXField = value;
-                    this.OnPropertyChanged("OriginOffsetX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the vertical offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginOffsetY {
-            get {
-                return this.originOffsetYField;
-            }
-            set {
-                if ((this.originOffsetYField != null)) {
-                    if ((originOffsetYField.Equals(value) != true)) {
-                        this.originOffsetYField = value;
-                        this.OnPropertyChanged("OriginOffsetY");
-                    }
-                }
-                else {
-                    this.originOffsetYField = value;
-                    this.OnPropertyChanged("OriginOffsetY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(PointUsage));
-                }
-                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 PointUsage 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 PointUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output PointUsage 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 PointUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(PointUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out PointUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static PointUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((PointUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current PointUsage 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 PointUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output PointUsage 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 PointUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(PointUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out PointUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static PointUsage 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 PointUsage object
-        /// </summary>
-        public virtual PointUsage Clone() {
-            return ((PointUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// The optional box used to resize and reposition select graphic elements.  The graphical extent of all elements with ResizeControl set to AddToResizeBox will be added to this box, potentially causing it to grow in size.  Any change in size causes all elements with ResizeControl set to AdjustToResizeBox to be proportionally resized and repositioned.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ResizeBox : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string growControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public ResizeBox() {
-            this.sizeXField = "1.0";
-            this.sizeYField = "1.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-            this.growControlField = "\'GrowInXYMaintainAspect\'";
-        }
-        
-        /// <summary>
-        /// The initial width of the resize box, in mm.  This must be greater than or equal to zero.
-        /// </summary>
-        public string SizeX {
-            get {
-                return this.sizeXField;
-            }
-            set {
-                if ((this.sizeXField != null)) {
-                    if ((sizeXField.Equals(value) != true)) {
-                        this.sizeXField = value;
-                        this.OnPropertyChanged("SizeX");
-                    }
-                }
-                else {
-                    this.sizeXField = value;
-                    this.OnPropertyChanged("SizeX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial height of the resize box, in mm.  This must be greater than or equal to zero.
-        /// </summary>
-        public string SizeY {
-            get {
-                return this.sizeYField;
-            }
-            set {
-                if ((this.sizeYField != null)) {
-                    if ((sizeYField.Equals(value) != true)) {
-                        this.sizeYField = value;
-                        this.OnPropertyChanged("SizeY");
-                    }
-                }
-                else {
-                    this.sizeYField = value;
-                    this.OnPropertyChanged("SizeY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial x-coordinate of the resize box center, in mm.
-        /// </summary>
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial y-coordinate of the resize box center, in mm.
-        /// </summary>
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the resize box grows in size.  This must evaluate to one of: GrowInX, GrowInY, GrowInXY, or GrowInXYMaintainAspect (default).
-        /// </summary>
-        public string GrowControl {
-            get {
-                return this.growControlField;
-            }
-            set {
-                if ((this.growControlField != null)) {
-                    if ((growControlField.Equals(value) != true)) {
-                        this.growControlField = value;
-                        this.OnPropertyChanged("GrowControl");
-                    }
-                }
-                else {
-                    this.growControlField = value;
-                    this.OnPropertyChanged("GrowControl");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ResizeBox));
-                }
-                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 ResizeBox 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 ResizeBox object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ResizeBox 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 ResizeBox obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ResizeBox);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ResizeBox obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ResizeBox Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ResizeBox)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ResizeBox 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 ResizeBox object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ResizeBox 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 ResizeBox obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ResizeBox);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ResizeBox obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ResizeBox 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 ResizeBox object
-        /// </summary>
-        public virtual ResizeBox Clone() {
-            return ((ResizeBox)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompoundSymbolDefinition))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SimpleSymbolDefinition))]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SymbolDefinitionBase : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string nameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string descriptionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        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");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SymbolDefinitionBase));
-                }
-                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 SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SymbolDefinitionBase 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 SymbolDefinitionBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SymbolDefinitionBase);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SymbolDefinitionBase obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SymbolDefinitionBase Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SymbolDefinitionBase)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SymbolDefinitionBase 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 SymbolDefinitionBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SymbolDefinitionBase);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SymbolDefinitionBase obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        public virtual SymbolDefinitionBase Clone() {
-            return ((SymbolDefinitionBase)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// A 2D compound symbol for stylization.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class CompoundSymbolDefinition : SymbolDefinitionBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<SimpleSymbol> simpleSymbolField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        [System.Xml.Serialization.XmlElementAttribute("SimpleSymbol")]
-        public BindingList<SimpleSymbol> SimpleSymbol {
-            get {
-                return this.simpleSymbolField;
-            }
-            set {
-                if ((this.simpleSymbolField != null)) {
-                    if ((simpleSymbolField.Equals(value) != true)) {
-                        this.simpleSymbolField = value;
-                        this.OnPropertyChanged("SimpleSymbol");
-                    }
-                }
-                else {
-                    this.simpleSymbolField = value;
-                    this.OnPropertyChanged("SimpleSymbol");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(CompoundSymbolDefinition));
-                }
-                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 CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition 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 CompoundSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out CompoundSymbolDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((CompoundSymbolDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition 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 CompoundSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out CompoundSymbolDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        public virtual CompoundSymbolDefinition Clone() {
-            return ((CompoundSymbolDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
-    [System.Xml.Serialization.XmlRootAttribute("CompoundSymbolDefinition", Namespace="", IsNullable=false)]
-    public partial class CompoundSymbolDefinition1 : CompoundSymbolDefinition, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string versionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public CompoundSymbolDefinition1() {
-            this.versionField = "1.0.0";
-        }
-        
-        [System.Xml.Serialization.XmlAttributeAttribute()]
-        public string version {
-            get {
-                return this.versionField;
-            }
-            set {
-                if ((this.versionField != null)) {
-                    if ((versionField.Equals(value) != true)) {
-                        this.versionField = value;
-                        this.OnPropertyChanged("version");
-                    }
-                }
-                else {
-                    this.versionField = value;
-                    this.OnPropertyChanged("version");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(CompoundSymbolDefinition1));
-                }
-                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 CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition1);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out CompoundSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition1 Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((CompoundSymbolDefinition1)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition1);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out CompoundSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        public virtual CompoundSymbolDefinition1 Clone() {
-            return ((CompoundSymbolDefinition1)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
     /// The specification of the data source and stylization for a layer.
     /// </summary>
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]

Modified: trunk/Tools/Maestro/Generated/LayerDefinition-1.2.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/LayerDefinition-1.2.0.designer.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Generated/LayerDefinition-1.2.0.designer.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -15,6084 +15,10 @@
     using System.ComponentModel;
     using System.IO;
     using OSGeo.MapGuide.ObjectModels.LayerDefinition;
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
-    [System.Xml.Serialization.XmlRootAttribute("SimpleSymbolDefinition", Namespace="", IsNullable=false)]
-    public partial class SimpleSymbolDefinition1 : SimpleSymbolDefinition, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string versionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public SimpleSymbolDefinition1() {
-            this.versionField = "1.1.0";
-        }
-        
-        [System.Xml.Serialization.XmlAttributeAttribute()]
-        public string version {
-            get {
-                return this.versionField;
-            }
-            set {
-                if ((this.versionField != null)) {
-                    if ((versionField.Equals(value) != true)) {
-                        this.versionField = value;
-                        this.OnPropertyChanged("version");
-                    }
-                }
-                else {
-                    this.versionField = value;
-                    this.OnPropertyChanged("version");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbolDefinition1));
-                }
-                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 SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition1);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition1 Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbolDefinition1)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition1);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        public virtual SimpleSymbolDefinition1 Clone() {
-            return ((SimpleSymbolDefinition1)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// A 2D simple symbol for stylization.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SimpleSymbolDefinition : SymbolDefinitionBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<GraphicBase> graphicsField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ResizeBox resizeBoxField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private PointUsage pointUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private LineUsage lineUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private AreaUsage areaUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ParameterDefinition parameterDefinitionField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        /// <summary>
-        /// The collection of graphic elements defining this symbol.
-        /// </summary>
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Image), IsNullable=false)]
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Path), IsNullable=false)]
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Text), IsNullable=false)]
-        public BindingList<GraphicBase> Graphics {
-            get {
-                return this.graphicsField;
-            }
-            set {
-                if ((this.graphicsField != null)) {
-                    if ((graphicsField.Equals(value) != true)) {
-                        this.graphicsField = value;
-                        this.OnPropertyChanged("Graphics");
-                    }
-                }
-                else {
-                    this.graphicsField = value;
-                    this.OnPropertyChanged("Graphics");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The optional box used to resize and reposition select graphic elements.  The graphical extent of all elements with ResizeControl set to AddToResizeBox will be added to this box, potentially causing it to grow in size.  Any change in size causes all elements with ResizeControl set to AdjustToResizeBox to be proportionally resized and repositioned.
-        /// </summary>
-        public ResizeBox ResizeBox {
-            get {
-                return this.resizeBoxField;
-            }
-            set {
-                if ((this.resizeBoxField != null)) {
-                    if ((resizeBoxField.Equals(value) != true)) {
-                        this.resizeBoxField = value;
-                        this.OnPropertyChanged("ResizeBox");
-                    }
-                }
-                else {
-                    this.resizeBoxField = value;
-                    this.OnPropertyChanged("ResizeBox");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of point features.
-        /// </summary>
-        public PointUsage PointUsage {
-            get {
-                return this.pointUsageField;
-            }
-            set {
-                if ((this.pointUsageField != null)) {
-                    if ((pointUsageField.Equals(value) != true)) {
-                        this.pointUsageField = value;
-                        this.OnPropertyChanged("PointUsage");
-                    }
-                }
-                else {
-                    this.pointUsageField = value;
-                    this.OnPropertyChanged("PointUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of linear features.
-        /// </summary>
-        public LineUsage LineUsage {
-            get {
-                return this.lineUsageField;
-            }
-            set {
-                if ((this.lineUsageField != null)) {
-                    if ((lineUsageField.Equals(value) != true)) {
-                        this.lineUsageField = value;
-                        this.OnPropertyChanged("LineUsage");
-                    }
-                }
-                else {
-                    this.lineUsageField = value;
-                    this.OnPropertyChanged("LineUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of area features.
-        /// </summary>
-        public AreaUsage AreaUsage {
-            get {
-                return this.areaUsageField;
-            }
-            set {
-                if ((this.areaUsageField != null)) {
-                    if ((areaUsageField.Equals(value) != true)) {
-                        this.areaUsageField = value;
-                        this.OnPropertyChanged("AreaUsage");
-                    }
-                }
-                else {
-                    this.areaUsageField = value;
-                    this.OnPropertyChanged("AreaUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
-        /// </summary>
-        public ParameterDefinition ParameterDefinition {
-            get {
-                return this.parameterDefinitionField;
-            }
-            set {
-                if ((this.parameterDefinitionField != null)) {
-                    if ((parameterDefinitionField.Equals(value) != true)) {
-                        this.parameterDefinitionField = value;
-                        this.OnPropertyChanged("ParameterDefinition");
-                    }
-                }
-                else {
-                    this.parameterDefinitionField = value;
-                    this.OnPropertyChanged("ParameterDefinition");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbolDefinition));
-                }
-                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 SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition 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 SimpleSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbolDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbolDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition 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 SimpleSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbolDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        public virtual SimpleSymbolDefinition Clone() {
-            return ((SimpleSymbolDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Image : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private object itemField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Image() {
-            this.sizeXField = "1.0";
-            this.sizeYField = "1.0";
-            this.sizeScalableField = "true";
-            this.angleField = "0.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-        }
-        
-        [System.Xml.Serialization.XmlElementAttribute("Content", typeof(byte[]), DataType="base64Binary")]
-        [System.Xml.Serialization.XmlElementAttribute("Reference", typeof(ImageReference))]
-        public object Item {
-            get {
-                return this.itemField;
-            }
-            set {
-                if ((this.itemField != null)) {
-                    if ((itemField.Equals(value) != true)) {
-                        this.itemField = value;
-                        this.OnPropertyChanged("Item");
-                    }
-                }
-                else {
-                    this.itemField = value;
-                    this.OnPropertyChanged("Item");
-                }
-            }
-        }
-        
-        public string SizeX {
-            get {
-                return this.sizeXField;
-            }
-            set {
-                if ((this.sizeXField != null)) {
-                    if ((sizeXField.Equals(value) != true)) {
-                        this.sizeXField = value;
-                        this.OnPropertyChanged("SizeX");
-                    }
-                }
-                else {
-                    this.sizeXField = value;
-                    this.OnPropertyChanged("SizeX");
-                }
-            }
-        }
-        
-        public string SizeY {
-            get {
-                return this.sizeYField;
-            }
-            set {
-                if ((this.sizeYField != null)) {
-                    if ((sizeYField.Equals(value) != true)) {
-                        this.sizeYField = value;
-                        this.OnPropertyChanged("SizeY");
-                    }
-                }
-                else {
-                    this.sizeYField = value;
-                    this.OnPropertyChanged("SizeY");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string SizeScalable {
-            get {
-                return this.sizeScalableField;
-            }
-            set {
-                if ((this.sizeScalableField != null)) {
-                    if ((sizeScalableField.Equals(value) != true)) {
-                        this.sizeScalableField = value;
-                        this.OnPropertyChanged("SizeScalable");
-                    }
-                }
-                else {
-                    this.sizeScalableField = value;
-                    this.OnPropertyChanged("SizeScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Image));
-                }
-                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 Image 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 Image object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Image 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 Image obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Image);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Image obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Image Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Image)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Image 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 Image object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Image 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 Image obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Image);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Image obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Image 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 Image object
-        /// </summary>
-        public virtual Image Clone() {
-            return ((Image)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ImageReference : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string resourceIdField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string libraryItemNameField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public string ResourceId {
-            get {
-                return this.resourceIdField;
-            }
-            set {
-                if ((this.resourceIdField != null)) {
-                    if ((resourceIdField.Equals(value) != true)) {
-                        this.resourceIdField = value;
-                        this.OnPropertyChanged("ResourceId");
-                    }
-                }
-                else {
-                    this.resourceIdField = value;
-                    this.OnPropertyChanged("ResourceId");
-                }
-            }
-        }
-        
-        public string LibraryItemName {
-            get {
-                return this.libraryItemNameField;
-            }
-            set {
-                if ((this.libraryItemNameField != null)) {
-                    if ((libraryItemNameField.Equals(value) != true)) {
-                        this.libraryItemNameField = value;
-                        this.OnPropertyChanged("LibraryItemName");
-                    }
-                }
-                else {
-                    this.libraryItemNameField = value;
-                    this.OnPropertyChanged("LibraryItemName");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ImageReference));
-                }
-                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 ImageReference 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 ImageReference object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ImageReference 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 ImageReference obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ImageReference);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ImageReference obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ImageReference Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ImageReference)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ImageReference 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 ImageReference object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ImageReference 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 ImageReference obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ImageReference);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ImageReference obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ImageReference 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 ImageReference object
-        /// </summary>
-        public virtual ImageReference Clone() {
-            return ((ImageReference)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SimpleSymbol : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private object itemField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string renderingPassField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public SimpleSymbol() {
-            this.renderingPassField = "0";
-        }
-        
-        [System.Xml.Serialization.XmlElementAttribute("ResourceId", typeof(string))]
-        [System.Xml.Serialization.XmlElementAttribute("SimpleSymbolDefinition", typeof(SimpleSymbolDefinition))]
-        public object Item {
-            get {
-                return this.itemField;
-            }
-            set {
-                if ((this.itemField != null)) {
-                    if ((itemField.Equals(value) != true)) {
-                        this.itemField = value;
-                        this.OnPropertyChanged("Item");
-                    }
-                }
-                else {
-                    this.itemField = value;
-                    this.OnPropertyChanged("Item");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The optional rendering pass in which this symbol definition draws.  If specified this must be greater than or equal to zero.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0")]
-        public string RenderingPass {
-            get {
-                return this.renderingPassField;
-            }
-            set {
-                if ((this.renderingPassField != null)) {
-                    if ((renderingPassField.Equals(value) != true)) {
-                        this.renderingPassField = value;
-                        this.OnPropertyChanged("RenderingPass");
-                    }
-                }
-                else {
-                    this.renderingPassField = value;
-                    this.OnPropertyChanged("RenderingPass");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbol));
-                }
-                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 SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbol 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 SimpleSymbol obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbol);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbol obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbol Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbol)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbol 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 SimpleSymbol obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbol);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbol obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        public virtual SimpleSymbol Clone() {
-            return ((SimpleSymbol)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
+    using OSGeo.MapGuide.ObjectModels.Common;
+    using OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_1_0;
 
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private System.Xml.XmlElement[] anyField;
-
-        private static System.Xml.Serialization.XmlSerializer serializer;
-
-        [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public System.Xml.XmlElement[] Any
-        {
-            get
-            {
-                return this.anyField;
-            }
-            set
-            {
-                if ((this.anyField != null))
-                {
-                    if ((anyField.Equals(value) != true))
-                    {
-                        this.anyField = value;
-                        this.OnPropertyChanged("Any");
-                    }
-                }
-                else
-                {
-                    this.anyField = value;
-                    this.OnPropertyChanged("Any");
-                }
-            }
-        }
-
-        private static System.Xml.Serialization.XmlSerializer Serializer
-        {
-            get
-            {
-                if ((serializer == null))
-                {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ExtendedDataType));
-                }
-                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 ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ExtendedDataType 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 ExtendedDataType obj, out System.Exception exception)
-        {
-            exception = null;
-            obj = default(ExtendedDataType);
-            try
-            {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex)
-            {
-                exception = ex;
-                return false;
-            }
-        }
-
-        public static bool Deserialize(string xml, out ExtendedDataType obj)
-        {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-
-        public static ExtendedDataType Deserialize(string xml)
-        {
-            System.IO.StringReader stringReader = null;
-            try
-            {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ExtendedDataType)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally
-            {
-                if ((stringReader != null))
-                {
-                    stringReader.Dispose();
-                }
-            }
-        }
-
-        /// <summary>
-        /// Serializes current ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ExtendedDataType 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 ExtendedDataType obj, out System.Exception exception)
-        {
-            exception = null;
-            obj = default(ExtendedDataType);
-            try
-            {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex)
-            {
-                exception = ex;
-                return false;
-            }
-        }
-
-        public static bool LoadFromFile(string fileName, out ExtendedDataType obj)
-        {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-
-        public static ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        public virtual ExtendedDataType Clone()
-        {
-            return ((ExtendedDataType)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Parameter : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string identifierField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string defaultValueField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string displayNameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string descriptionField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private DataType dataTypeField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Parameter() {
-            this.dataTypeField = DataType.String;
-        }
-        
-        /// <summary>
-        /// The parameter identifier as used in the symbol.
-        /// </summary>
-        public string Identifier {
-            get {
-                return this.identifierField;
-            }
-            set {
-                if ((this.identifierField != null)) {
-                    if ((identifierField.Equals(value) != true)) {
-                        this.identifierField = value;
-                        this.OnPropertyChanged("Identifier");
-                    }
-                }
-                else {
-                    this.identifierField = value;
-                    this.OnPropertyChanged("Identifier");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The default value of the parameter if no override is defined in the symbol instance.  This can be an expression.
-        /// </summary>
-        public string DefaultValue {
-            get {
-                return this.defaultValueField;
-            }
-            set {
-                if ((this.defaultValueField != null)) {
-                    if ((defaultValueField.Equals(value) != true)) {
-                        this.defaultValueField = value;
-                        this.OnPropertyChanged("DefaultValue");
-                    }
-                }
-                else {
-                    this.defaultValueField = value;
-                    this.OnPropertyChanged("DefaultValue");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional short description of the parameter.  This can be used, for example, to ask the user to specify a parameter value.
-        /// </summary>
-        public string DisplayName {
-            get {
-                return this.displayNameField;
-            }
-            set {
-                if ((this.displayNameField != null)) {
-                    if ((displayNameField.Equals(value) != true)) {
-                        this.displayNameField = value;
-                        this.OnPropertyChanged("DisplayName");
-                    }
-                }
-                else {
-                    this.displayNameField = value;
-                    this.OnPropertyChanged("DisplayName");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional long description of the parameter.  This might include a description of useful values for this parameter.
-        /// </summary>
-        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");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional explicit declaration of data type or data usage context.  This is a hint used by the UI when assigning a value to this parameter.  Defaults to String.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute(DataType.String)]
-        public DataType DataType {
-            get {
-                return this.dataTypeField;
-            }
-            set {
-                if ((dataTypeField.Equals(value) != true)) {
-                    this.dataTypeField = value;
-                    this.OnPropertyChanged("DataType");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Parameter));
-                }
-                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 Parameter 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 Parameter object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Parameter 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 Parameter obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Parameter);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Parameter obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Parameter Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Parameter)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Parameter 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 Parameter object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Parameter 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 Parameter obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Parameter);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Parameter obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Parameter 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 Parameter object
-        /// </summary>
-        public virtual Parameter Clone() {
-            return ((Parameter)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    public enum DataType {
-        
-        /// <remarks/>
-        String,
-        
-        /// <remarks/>
-        Boolean,
-        
-        /// <remarks/>
-        Integer,
-        
-        /// <remarks/>
-        Real,
-        
-        /// <remarks/>
-        Color,
-        
-        /// <remarks/>
-        Angle,
-        
-        /// <remarks/>
-        FillColor,
-        
-        /// <remarks/>
-        LineColor,
-        
-        /// <remarks/>
-        LineWeight,
-        
-        /// <remarks/>
-        Content,
-        
-        /// <remarks/>
-        Markup,
-        
-        /// <remarks/>
-        FontName,
-        
-        /// <remarks/>
-        Bold,
-        
-        /// <remarks/>
-        Italic,
-        
-        /// <remarks/>
-        Underlined,
-        
-        /// <remarks/>
-        Overlined,
-        
-        /// <remarks/>
-        ObliqueAngle,
-        
-        /// <remarks/>
-        TrackSpacing,
-        
-        /// <remarks/>
-        FontHeight,
-        
-        /// <remarks/>
-        HorizontalAlignment,
-        
-        /// <remarks/>
-        VerticalAlignment,
-        
-        /// <remarks/>
-        Justification,
-        
-        /// <remarks/>
-        LineSpacing,
-        
-        /// <remarks/>
-        TextColor,
-        
-        /// <remarks/>
-        GhostColor,
-        
-        /// <remarks/>
-        FrameLineColor,
-        
-        /// <remarks/>
-        FrameFillColor,
-        
-        /// <remarks/>
-        StartOffset,
-        
-        /// <remarks/>
-        EndOffset,
-        
-        /// <remarks/>
-        RepeatX,
-        
-        /// <remarks/>
-        RepeatY,
-    }
-    
     /// <summary>
-    /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ParameterDefinition : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<Parameter> parameterField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        [System.Xml.Serialization.XmlElementAttribute("Parameter")]
-        public BindingList<Parameter> Parameter {
-            get {
-                return this.parameterField;
-            }
-            set {
-                if ((this.parameterField != null)) {
-                    if ((parameterField.Equals(value) != true)) {
-                        this.parameterField = value;
-                        this.OnPropertyChanged("Parameter");
-                    }
-                }
-                else {
-                    this.parameterField = value;
-                    this.OnPropertyChanged("Parameter");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ParameterDefinition));
-                }
-                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 ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ParameterDefinition 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 ParameterDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ParameterDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ParameterDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ParameterDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ParameterDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ParameterDefinition 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 ParameterDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ParameterDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ParameterDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        public virtual ParameterDefinition Clone() {
-            return ((ParameterDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of area features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class AreaUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string clippingControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string bufferWidthField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public AreaUsage() {
-            this.angleControlField = "\'FromAngle\'";
-            this.originControlField = "\'Global\'";
-            this.clippingControlField = "\'Clip\'";
-            this.angleField = "0.0";
-            this.originXField = "0.0";
-            this.originYField = "0.0";
-            this.repeatXField = "0.0";
-            this.repeatYField = "0.0";
-            this.bufferWidthField = "0.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle (default) or FromGeometry.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromAngle\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol grid origin is defined.  This must evaluate to one of: Global (default), Local, or Centroid.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Global\'")]
-        public string OriginControl {
-            get {
-                return this.originControlField;
-            }
-            set {
-                if ((this.originControlField != null)) {
-                    if ((originControlField.Equals(value) != true)) {
-                        this.originControlField = value;
-                        this.OnPropertyChanged("OriginControl");
-                    }
-                }
-                else {
-                    this.originControlField = value;
-                    this.OnPropertyChanged("OriginControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the clipping behavior of the symbol at polygon boundaries.  This must evaluate to one of: Clip (default), Inside, or Overlap.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Clip\'")]
-        public string ClippingControl {
-            get {
-                return this.clippingControlField;
-            }
-            set {
-                if ((this.clippingControlField != null)) {
-                    if ((clippingControlField.Equals(value) != true)) {
-                        this.clippingControlField = value;
-                        this.OnPropertyChanged("ClippingControl");
-                    }
-                }
-                else {
-                    this.clippingControlField = value;
-                    this.OnPropertyChanged("ClippingControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the angle of each repeating symbol, in degrees.  If AngleControl evaluates to FromAngle then this specifies the absolute angle of the symbol.  If AngleControl evaluates to FromGeometry then this specifies the symbol angle relative to the geometry.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The x-coordinate of the symbol grid origin, in mm.  Only applies if OriginControl evaluates to Global or Local.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginX {
-            get {
-                return this.originXField;
-            }
-            set {
-                if ((this.originXField != null)) {
-                    if ((originXField.Equals(value) != true)) {
-                        this.originXField = value;
-                        this.OnPropertyChanged("OriginX");
-                    }
-                }
-                else {
-                    this.originXField = value;
-                    this.OnPropertyChanged("OriginX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The y-coordinate of the symbol grid origin, in mm.  Only applies if OriginControl evaluates to Global or Local.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginY {
-            get {
-                return this.originYField;
-            }
-            set {
-                if ((this.originYField != null)) {
-                    if ((originYField.Equals(value) != true)) {
-                        this.originYField = value;
-                        this.OnPropertyChanged("OriginY");
-                    }
-                }
-                else {
-                    this.originYField = value;
-                    this.OnPropertyChanged("OriginY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The horizontal separation between symbols, in mm.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string RepeatX {
-            get {
-                return this.repeatXField;
-            }
-            set {
-                if ((this.repeatXField != null)) {
-                    if ((repeatXField.Equals(value) != true)) {
-                        this.repeatXField = value;
-                        this.OnPropertyChanged("RepeatX");
-                    }
-                }
-                else {
-                    this.repeatXField = value;
-                    this.OnPropertyChanged("RepeatX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The vertical separation between symbols, in mm.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string RepeatY {
-            get {
-                return this.repeatYField;
-            }
-            set {
-                if ((this.repeatYField != null)) {
-                    if ((repeatYField.Equals(value) != true)) {
-                        this.repeatYField = value;
-                        this.OnPropertyChanged("RepeatY");
-                    }
-                }
-                else {
-                    this.repeatYField = value;
-                    this.OnPropertyChanged("RepeatY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The width, in mm, of the buffer zone relative to the polygon boundary in which the symbol is rendered.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string BufferWidth {
-            get {
-                return this.bufferWidthField;
-            }
-            set {
-                if ((this.bufferWidthField != null)) {
-                    if ((bufferWidthField.Equals(value) != true)) {
-                        this.bufferWidthField = value;
-                        this.OnPropertyChanged("BufferWidth");
-                    }
-                }
-                else {
-                    this.bufferWidthField = value;
-                    this.OnPropertyChanged("BufferWidth");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(AreaUsage));
-                }
-                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 AreaUsage 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 AreaUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output AreaUsage 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 AreaUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(AreaUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out AreaUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static AreaUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((AreaUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current AreaUsage 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 AreaUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output AreaUsage 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 AreaUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(AreaUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out AreaUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static AreaUsage 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 AreaUsage object
-        /// </summary>
-        public virtual AreaUsage Clone() {
-            return ((AreaUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of linear features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class LineUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string unitsControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string startOffsetField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string endOffsetField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexAngleLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexJoinField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexMiterLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private Path defaultPathField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public LineUsage() {
-            this.angleControlField = "\'FromGeometry\'";
-            this.unitsControlField = "\'Absolute\'";
-            this.vertexControlField = "\'OverlapWrap\'";
-            this.angleField = "0.0";
-            this.repeatField = "0.0";
-            this.vertexAngleLimitField = "0.0";
-            this.vertexJoinField = "\'Round\'";
-            this.vertexMiterLimitField = "5.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle or FromGeometry (default).
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromGeometry\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies whether the distribution parameters are interpreted as absolute values (in mm) or parametric values.  This must evaluate to one of: Absolute (default) or Parametric.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Absolute\'")]
-        public string UnitsControl {
-            get {
-                return this.unitsControlField;
-            }
-            set {
-                if ((this.unitsControlField != null)) {
-                    if ((unitsControlField.Equals(value) != true)) {
-                        this.unitsControlField = value;
-                        this.OnPropertyChanged("UnitsControl");
-                    }
-                }
-                else {
-                    this.unitsControlField = value;
-                    this.OnPropertyChanged("UnitsControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the symbol behavior at vertices.  This must evaluate to one of: OverlapNone, OverlapDirect, or OverlapWrap (default).
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'OverlapWrap\'")]
-        public string VertexControl {
-            get {
-                return this.vertexControlField;
-            }
-            set {
-                if ((this.vertexControlField != null)) {
-                    if ((vertexControlField.Equals(value) != true)) {
-                        this.vertexControlField = value;
-                        this.OnPropertyChanged("VertexControl");
-                    }
-                }
-                else {
-                    this.vertexControlField = value;
-                    this.OnPropertyChanged("VertexControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the angle of each repeating symbol, in degrees.  If AngleControl evaluates to FromAngle then this specifies the absolute angle of the symbol.  If AngleControl evaluates to FromGeometry then this specifies the symbol angle relative to the geometry.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies where the symbol distribution begins, relative to the start of the feature.  If specified this must be greater than or equal to zero.
-        /// </summary>
-        public string StartOffset {
-            get {
-                return this.startOffsetField;
-            }
-            set {
-                if ((this.startOffsetField != null)) {
-                    if ((startOffsetField.Equals(value) != true)) {
-                        this.startOffsetField = value;
-                        this.OnPropertyChanged("StartOffset");
-                    }
-                }
-                else {
-                    this.startOffsetField = value;
-                    this.OnPropertyChanged("StartOffset");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies where the symbol distribution ends, relative to the end of the feature.  If specified this must be greater than or equal to zero.
-        /// </summary>
-        public string EndOffset {
-            get {
-                return this.endOffsetField;
-            }
-            set {
-                if ((this.endOffsetField != null)) {
-                    if ((endOffsetField.Equals(value) != true)) {
-                        this.endOffsetField = value;
-                        this.OnPropertyChanged("EndOffset");
-                    }
-                }
-                else {
-                    this.endOffsetField = value;
-                    this.OnPropertyChanged("EndOffset");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the separation between repeating symbols.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Repeat {
-            get {
-                return this.repeatField;
-            }
-            set {
-                if ((this.repeatField != null)) {
-                    if ((repeatField.Equals(value) != true)) {
-                        this.repeatField = value;
-                        this.OnPropertyChanged("Repeat");
-                    }
-                }
-                else {
-                    this.repeatField = value;
-                    this.OnPropertyChanged("Repeat");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the limiting angle, in degrees, by a which the feature geometry can change before some of the VertexControl options take effect.  If specified this must be greater than or equal to zero.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string VertexAngleLimit {
-            get {
-                return this.vertexAngleLimitField;
-            }
-            set {
-                if ((this.vertexAngleLimitField != null)) {
-                    if ((vertexAngleLimitField.Equals(value) != true)) {
-                        this.vertexAngleLimitField = value;
-                        this.OnPropertyChanged("VertexAngleLimit");
-                    }
-                }
-                else {
-                    this.vertexAngleLimitField = value;
-                    this.OnPropertyChanged("VertexAngleLimit");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the wrapping behavior at vertices for all graphic elements.  Only applies if VertexControl evaluates to OverlapWrap.  This must evaluate to one of: None, Bevel, Round (default), or Miter.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string VertexJoin {
-            get {
-                return this.vertexJoinField;
-            }
-            set {
-                if ((this.vertexJoinField != null)) {
-                    if ((vertexJoinField.Equals(value) != true)) {
-                        this.vertexJoinField = value;
-                        this.OnPropertyChanged("VertexJoin");
-                    }
-                }
-                else {
-                    this.vertexJoinField = value;
-                    this.OnPropertyChanged("VertexJoin");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The limit to use when drawing miter vertex joins.  A miter vertex join is trimmed if the ratio of the miter length to symbol height is greater than the miter limit.  If specified this must be greater than zero.  Defaults to 5.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("5.0")]
-        public string VertexMiterLimit {
-            get {
-                return this.vertexMiterLimitField;
-            }
-            set {
-                if ((this.vertexMiterLimitField != null)) {
-                    if ((vertexMiterLimitField.Equals(value) != true)) {
-                        this.vertexMiterLimitField = value;
-                        this.OnPropertyChanged("VertexMiterLimit");
-                    }
-                }
-                else {
-                    this.vertexMiterLimitField = value;
-                    this.OnPropertyChanged("VertexMiterLimit");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the default path attributes to use when drawing the symbol.  These apply to any centerline that gets drawn where the symbol can't draw, and to path elements that don't specify attributes.  The geometry contained in this path is ignored and should be empty.
-        /// </summary>
-        public Path DefaultPath {
-            get {
-                return this.defaultPathField;
-            }
-            set {
-                if ((this.defaultPathField != null)) {
-                    if ((defaultPathField.Equals(value) != true)) {
-                        this.defaultPathField = value;
-                        this.OnPropertyChanged("DefaultPath");
-                    }
-                }
-                else {
-                    this.defaultPathField = value;
-                    this.OnPropertyChanged("DefaultPath");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(LineUsage));
-                }
-                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 LineUsage 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 LineUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output LineUsage 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 LineUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(LineUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out LineUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static LineUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((LineUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current LineUsage 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 LineUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output LineUsage 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 LineUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(LineUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out LineUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static LineUsage 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 LineUsage object
-        /// </summary>
-        public virtual LineUsage Clone() {
-            return ((LineUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Path : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string geometryField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fillColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineWeightField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineWeightScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineCapField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineJoinField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineMiterLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Path() {
-            this.lineWeightField = "0.0";
-            this.lineWeightScalableField = "true";
-            this.lineCapField = "\'Round\'";
-            this.lineJoinField = "\'Round\'";
-            this.lineMiterLimitField = "5.0";
-        }
-        
-        public string 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");
-                }
-            }
-        }
-        
-        public string FillColor {
-            get {
-                return this.fillColorField;
-            }
-            set {
-                if ((this.fillColorField != null)) {
-                    if ((fillColorField.Equals(value) != true)) {
-                        this.fillColorField = value;
-                        this.OnPropertyChanged("FillColor");
-                    }
-                }
-                else {
-                    this.fillColorField = value;
-                    this.OnPropertyChanged("FillColor");
-                }
-            }
-        }
-        
-        public string LineColor {
-            get {
-                return this.lineColorField;
-            }
-            set {
-                if ((this.lineColorField != null)) {
-                    if ((lineColorField.Equals(value) != true)) {
-                        this.lineColorField = value;
-                        this.OnPropertyChanged("LineColor");
-                    }
-                }
-                else {
-                    this.lineColorField = value;
-                    this.OnPropertyChanged("LineColor");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string LineWeight {
-            get {
-                return this.lineWeightField;
-            }
-            set {
-                if ((this.lineWeightField != null)) {
-                    if ((lineWeightField.Equals(value) != true)) {
-                        this.lineWeightField = value;
-                        this.OnPropertyChanged("LineWeight");
-                    }
-                }
-                else {
-                    this.lineWeightField = value;
-                    this.OnPropertyChanged("LineWeight");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string LineWeightScalable {
-            get {
-                return this.lineWeightScalableField;
-            }
-            set {
-                if ((this.lineWeightScalableField != null)) {
-                    if ((lineWeightScalableField.Equals(value) != true)) {
-                        this.lineWeightScalableField = value;
-                        this.OnPropertyChanged("LineWeightScalable");
-                    }
-                }
-                else {
-                    this.lineWeightScalableField = value;
-                    this.OnPropertyChanged("LineWeightScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string LineCap {
-            get {
-                return this.lineCapField;
-            }
-            set {
-                if ((this.lineCapField != null)) {
-                    if ((lineCapField.Equals(value) != true)) {
-                        this.lineCapField = value;
-                        this.OnPropertyChanged("LineCap");
-                    }
-                }
-                else {
-                    this.lineCapField = value;
-                    this.OnPropertyChanged("LineCap");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string LineJoin {
-            get {
-                return this.lineJoinField;
-            }
-            set {
-                if ((this.lineJoinField != null)) {
-                    if ((lineJoinField.Equals(value) != true)) {
-                        this.lineJoinField = value;
-                        this.OnPropertyChanged("LineJoin");
-                    }
-                }
-                else {
-                    this.lineJoinField = value;
-                    this.OnPropertyChanged("LineJoin");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("5.0")]
-        public string LineMiterLimit {
-            get {
-                return this.lineMiterLimitField;
-            }
-            set {
-                if ((this.lineMiterLimitField != null)) {
-                    if ((lineMiterLimitField.Equals(value) != true)) {
-                        this.lineMiterLimitField = value;
-                        this.OnPropertyChanged("LineMiterLimit");
-                    }
-                }
-                else {
-                    this.lineMiterLimitField = value;
-                    this.OnPropertyChanged("LineMiterLimit");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Path));
-                }
-                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 Path 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 Path object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Path 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 Path obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Path);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Path obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Path Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Path)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Path 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 Path object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Path 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 Path obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Path);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Path obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Path 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 Path object
-        /// </summary>
-        public virtual Path Clone() {
-            return ((Path)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Text))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Image))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Path))]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class GraphicBase : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string resizeControlField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public GraphicBase() {
-            this.resizeControlField = "\'ResizeNone\'";
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'ResizeNone\'")]
-        public string ResizeControl {
-            get {
-                return this.resizeControlField;
-            }
-            set {
-                if ((this.resizeControlField != null)) {
-                    if ((resizeControlField.Equals(value) != true)) {
-                        this.resizeControlField = value;
-                        this.OnPropertyChanged("ResizeControl");
-                    }
-                }
-                else {
-                    this.resizeControlField = value;
-                    this.OnPropertyChanged("ResizeControl");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(GraphicBase));
-                }
-                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 GraphicBase 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 GraphicBase object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output GraphicBase 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 GraphicBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(GraphicBase);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out GraphicBase obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static GraphicBase Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((GraphicBase)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current GraphicBase 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 GraphicBase object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output GraphicBase 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 GraphicBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(GraphicBase);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out GraphicBase obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static GraphicBase 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 GraphicBase object
-        /// </summary>
-        public virtual GraphicBase Clone() {
-            return ((GraphicBase)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Text : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string contentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fontNameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string boldField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string italicField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string underlinedField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string overlinedField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string obliqueAngleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string trackSpacingField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string heightField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string heightScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string horizontalAlignmentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string verticalAlignmentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string justificationField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineSpacingField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string textColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string ghostColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private TextFrame frameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string markupField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Text() {
-            this.fontNameField = "\'Arial\'";
-            this.boldField = "false";
-            this.italicField = "false";
-            this.underlinedField = "false";
-            this.overlinedField = "false";
-            this.obliqueAngleField = "0.0";
-            this.trackSpacingField = "1.0";
-            this.heightField = "4.0";
-            this.heightScalableField = "true";
-            this.angleField = "0.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-            this.horizontalAlignmentField = "\'Center\'";
-            this.verticalAlignmentField = "\'Halfline\'";
-            this.justificationField = "\'FromAlignment\'";
-            this.lineSpacingField = "1.05";
-            this.textColorField = "ff000000";
-            this.markupField = "\'Plain\'";
-        }
-        
-        public string Content {
-            get {
-                return this.contentField;
-            }
-            set {
-                if ((this.contentField != null)) {
-                    if ((contentField.Equals(value) != true)) {
-                        this.contentField = value;
-                        this.OnPropertyChanged("Content");
-                    }
-                }
-                else {
-                    this.contentField = value;
-                    this.OnPropertyChanged("Content");
-                }
-            }
-        }
-        
-        public string FontName {
-            get {
-                return this.fontNameField;
-            }
-            set {
-                if ((this.fontNameField != null)) {
-                    if ((fontNameField.Equals(value) != true)) {
-                        this.fontNameField = value;
-                        this.OnPropertyChanged("FontName");
-                    }
-                }
-                else {
-                    this.fontNameField = value;
-                    this.OnPropertyChanged("FontName");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Bold {
-            get {
-                return this.boldField;
-            }
-            set {
-                if ((this.boldField != null)) {
-                    if ((boldField.Equals(value) != true)) {
-                        this.boldField = value;
-                        this.OnPropertyChanged("Bold");
-                    }
-                }
-                else {
-                    this.boldField = value;
-                    this.OnPropertyChanged("Bold");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Italic {
-            get {
-                return this.italicField;
-            }
-            set {
-                if ((this.italicField != null)) {
-                    if ((italicField.Equals(value) != true)) {
-                        this.italicField = value;
-                        this.OnPropertyChanged("Italic");
-                    }
-                }
-                else {
-                    this.italicField = value;
-                    this.OnPropertyChanged("Italic");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Underlined {
-            get {
-                return this.underlinedField;
-            }
-            set {
-                if ((this.underlinedField != null)) {
-                    if ((underlinedField.Equals(value) != true)) {
-                        this.underlinedField = value;
-                        this.OnPropertyChanged("Underlined");
-                    }
-                }
-                else {
-                    this.underlinedField = value;
-                    this.OnPropertyChanged("Underlined");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Overlined {
-            get {
-                return this.overlinedField;
-            }
-            set {
-                if ((this.overlinedField != null)) {
-                    if ((overlinedField.Equals(value) != true)) {
-                        this.overlinedField = value;
-                        this.OnPropertyChanged("Overlined");
-                    }
-                }
-                else {
-                    this.overlinedField = value;
-                    this.OnPropertyChanged("Overlined");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string ObliqueAngle {
-            get {
-                return this.obliqueAngleField;
-            }
-            set {
-                if ((this.obliqueAngleField != null)) {
-                    if ((obliqueAngleField.Equals(value) != true)) {
-                        this.obliqueAngleField = value;
-                        this.OnPropertyChanged("ObliqueAngle");
-                    }
-                }
-                else {
-                    this.obliqueAngleField = value;
-                    this.OnPropertyChanged("ObliqueAngle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("1.0")]
-        public string TrackSpacing {
-            get {
-                return this.trackSpacingField;
-            }
-            set {
-                if ((this.trackSpacingField != null)) {
-                    if ((trackSpacingField.Equals(value) != true)) {
-                        this.trackSpacingField = value;
-                        this.OnPropertyChanged("TrackSpacing");
-                    }
-                }
-                else {
-                    this.trackSpacingField = value;
-                    this.OnPropertyChanged("TrackSpacing");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("4.0")]
-        public string Height {
-            get {
-                return this.heightField;
-            }
-            set {
-                if ((this.heightField != null)) {
-                    if ((heightField.Equals(value) != true)) {
-                        this.heightField = value;
-                        this.OnPropertyChanged("Height");
-                    }
-                }
-                else {
-                    this.heightField = value;
-                    this.OnPropertyChanged("Height");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string HeightScalable {
-            get {
-                return this.heightScalableField;
-            }
-            set {
-                if ((this.heightScalableField != null)) {
-                    if ((heightScalableField.Equals(value) != true)) {
-                        this.heightScalableField = value;
-                        this.OnPropertyChanged("HeightScalable");
-                    }
-                }
-                else {
-                    this.heightScalableField = value;
-                    this.OnPropertyChanged("HeightScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Center\'")]
-        public string HorizontalAlignment {
-            get {
-                return this.horizontalAlignmentField;
-            }
-            set {
-                if ((this.horizontalAlignmentField != null)) {
-                    if ((horizontalAlignmentField.Equals(value) != true)) {
-                        this.horizontalAlignmentField = value;
-                        this.OnPropertyChanged("HorizontalAlignment");
-                    }
-                }
-                else {
-                    this.horizontalAlignmentField = value;
-                    this.OnPropertyChanged("HorizontalAlignment");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Halfline\'")]
-        public string VerticalAlignment {
-            get {
-                return this.verticalAlignmentField;
-            }
-            set {
-                if ((this.verticalAlignmentField != null)) {
-                    if ((verticalAlignmentField.Equals(value) != true)) {
-                        this.verticalAlignmentField = value;
-                        this.OnPropertyChanged("VerticalAlignment");
-                    }
-                }
-                else {
-                    this.verticalAlignmentField = value;
-                    this.OnPropertyChanged("VerticalAlignment");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'FromAlignment\'")]
-        public string Justification {
-            get {
-                return this.justificationField;
-            }
-            set {
-                if ((this.justificationField != null)) {
-                    if ((justificationField.Equals(value) != true)) {
-                        this.justificationField = value;
-                        this.OnPropertyChanged("Justification");
-                    }
-                }
-                else {
-                    this.justificationField = value;
-                    this.OnPropertyChanged("Justification");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("1.05")]
-        public string LineSpacing {
-            get {
-                return this.lineSpacingField;
-            }
-            set {
-                if ((this.lineSpacingField != null)) {
-                    if ((lineSpacingField.Equals(value) != true)) {
-                        this.lineSpacingField = value;
-                        this.OnPropertyChanged("LineSpacing");
-                    }
-                }
-                else {
-                    this.lineSpacingField = value;
-                    this.OnPropertyChanged("LineSpacing");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("ff000000")]
-        public string TextColor {
-            get {
-                return this.textColorField;
-            }
-            set {
-                if ((this.textColorField != null)) {
-                    if ((textColorField.Equals(value) != true)) {
-                        this.textColorField = value;
-                        this.OnPropertyChanged("TextColor");
-                    }
-                }
-                else {
-                    this.textColorField = value;
-                    this.OnPropertyChanged("TextColor");
-                }
-            }
-        }
-        
-        public string GhostColor {
-            get {
-                return this.ghostColorField;
-            }
-            set {
-                if ((this.ghostColorField != null)) {
-                    if ((ghostColorField.Equals(value) != true)) {
-                        this.ghostColorField = value;
-                        this.OnPropertyChanged("GhostColor");
-                    }
-                }
-                else {
-                    this.ghostColorField = value;
-                    this.OnPropertyChanged("GhostColor");
-                }
-            }
-        }
-        
-        public TextFrame Frame {
-            get {
-                return this.frameField;
-            }
-            set {
-                if ((this.frameField != null)) {
-                    if ((frameField.Equals(value) != true)) {
-                        this.frameField = value;
-                        this.OnPropertyChanged("Frame");
-                    }
-                }
-                else {
-                    this.frameField = value;
-                    this.OnPropertyChanged("Frame");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Plain\'")]
-        public string Markup {
-            get {
-                return this.markupField;
-            }
-            set {
-                if ((this.markupField != null)) {
-                    if ((markupField.Equals(value) != true)) {
-                        this.markupField = value;
-                        this.OnPropertyChanged("Markup");
-                    }
-                }
-                else {
-                    this.markupField = value;
-                    this.OnPropertyChanged("Markup");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Text));
-                }
-                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 Text 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 Text object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Text 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 Text obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Text);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Text obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Text Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Text)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Text 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 Text object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Text 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 Text obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Text);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Text obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Text 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 Text object
-        /// </summary>
-        public virtual Text Clone() {
-            return ((Text)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class TextFrame : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fillColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string offsetXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string offsetYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public TextFrame() {
-            this.offsetXField = "0.0";
-            this.offsetYField = "0.0";
-        }
-        
-        public string LineColor {
-            get {
-                return this.lineColorField;
-            }
-            set {
-                if ((this.lineColorField != null)) {
-                    if ((lineColorField.Equals(value) != true)) {
-                        this.lineColorField = value;
-                        this.OnPropertyChanged("LineColor");
-                    }
-                }
-                else {
-                    this.lineColorField = value;
-                    this.OnPropertyChanged("LineColor");
-                }
-            }
-        }
-        
-        public string FillColor {
-            get {
-                return this.fillColorField;
-            }
-            set {
-                if ((this.fillColorField != null)) {
-                    if ((fillColorField.Equals(value) != true)) {
-                        this.fillColorField = value;
-                        this.OnPropertyChanged("FillColor");
-                    }
-                }
-                else {
-                    this.fillColorField = value;
-                    this.OnPropertyChanged("FillColor");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OffsetX {
-            get {
-                return this.offsetXField;
-            }
-            set {
-                if ((this.offsetXField != null)) {
-                    if ((offsetXField.Equals(value) != true)) {
-                        this.offsetXField = value;
-                        this.OnPropertyChanged("OffsetX");
-                    }
-                }
-                else {
-                    this.offsetXField = value;
-                    this.OnPropertyChanged("OffsetX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OffsetY {
-            get {
-                return this.offsetYField;
-            }
-            set {
-                if ((this.offsetYField != null)) {
-                    if ((offsetYField.Equals(value) != true)) {
-                        this.offsetYField = value;
-                        this.OnPropertyChanged("OffsetY");
-                    }
-                }
-                else {
-                    this.offsetYField = value;
-                    this.OnPropertyChanged("OffsetY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(TextFrame));
-                }
-                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 TextFrame 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 TextFrame object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output TextFrame 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 TextFrame obj, out System.Exception exception) {
-            exception = null;
-            obj = default(TextFrame);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out TextFrame obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static TextFrame Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((TextFrame)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current TextFrame 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 TextFrame object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output TextFrame 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 TextFrame obj, out System.Exception exception) {
-            exception = null;
-            obj = default(TextFrame);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out TextFrame obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static TextFrame 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 TextFrame object
-        /// </summary>
-        public virtual TextFrame Clone() {
-            return ((TextFrame)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of point features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class PointUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originOffsetXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originOffsetYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public PointUsage() {
-            this.angleControlField = "\'FromAngle\'";
-            this.angleField = "0.0";
-            this.originOffsetXField = "0.0";
-            this.originOffsetYField = "0.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle (default) or FromGeometry.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromAngle\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the symbol angle, in degrees.  If AngleControl evaluates to FromAngle then this specifies the absolute angle of the symbol.  If AngleControl evaluates to FromGeometry then this specifies the symbol angle relative to the geometry.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the horizontal offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginOffsetX {
-            get {
-                return this.originOffsetXField;
-            }
-            set {
-                if ((this.originOffsetXField != null)) {
-                    if ((originOffsetXField.Equals(value) != true)) {
-                        this.originOffsetXField = value;
-                        this.OnPropertyChanged("OriginOffsetX");
-                    }
-                }
-                else {
-                    this.originOffsetXField = value;
-                    this.OnPropertyChanged("OriginOffsetX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the vertical offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginOffsetY {
-            get {
-                return this.originOffsetYField;
-            }
-            set {
-                if ((this.originOffsetYField != null)) {
-                    if ((originOffsetYField.Equals(value) != true)) {
-                        this.originOffsetYField = value;
-                        this.OnPropertyChanged("OriginOffsetY");
-                    }
-                }
-                else {
-                    this.originOffsetYField = value;
-                    this.OnPropertyChanged("OriginOffsetY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(PointUsage));
-                }
-                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 PointUsage 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 PointUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output PointUsage 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 PointUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(PointUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out PointUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static PointUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((PointUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current PointUsage 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 PointUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output PointUsage 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 PointUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(PointUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out PointUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static PointUsage 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 PointUsage object
-        /// </summary>
-        public virtual PointUsage Clone() {
-            return ((PointUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// The optional box used to resize and reposition select graphic elements.  The graphical extent of all elements with ResizeControl set to AddToResizeBox will be added to this box, potentially causing it to grow in size.  Any change in size causes all elements with ResizeControl set to AdjustToResizeBox to be proportionally resized and repositioned.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ResizeBox : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string growControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public ResizeBox() {
-            this.sizeXField = "1.0";
-            this.sizeYField = "1.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-            this.growControlField = "\'GrowInXYMaintainAspect\'";
-        }
-        
-        /// <summary>
-        /// The initial width of the resize box, in mm.  This must be greater than or equal to zero.
-        /// </summary>
-        public string SizeX {
-            get {
-                return this.sizeXField;
-            }
-            set {
-                if ((this.sizeXField != null)) {
-                    if ((sizeXField.Equals(value) != true)) {
-                        this.sizeXField = value;
-                        this.OnPropertyChanged("SizeX");
-                    }
-                }
-                else {
-                    this.sizeXField = value;
-                    this.OnPropertyChanged("SizeX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial height of the resize box, in mm.  This must be greater than or equal to zero.
-        /// </summary>
-        public string SizeY {
-            get {
-                return this.sizeYField;
-            }
-            set {
-                if ((this.sizeYField != null)) {
-                    if ((sizeYField.Equals(value) != true)) {
-                        this.sizeYField = value;
-                        this.OnPropertyChanged("SizeY");
-                    }
-                }
-                else {
-                    this.sizeYField = value;
-                    this.OnPropertyChanged("SizeY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial x-coordinate of the resize box center, in mm.
-        /// </summary>
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial y-coordinate of the resize box center, in mm.
-        /// </summary>
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the resize box grows in size.  This must evaluate to one of: GrowInX, GrowInY, GrowInXY, or GrowInXYMaintainAspect (default).
-        /// </summary>
-        public string GrowControl {
-            get {
-                return this.growControlField;
-            }
-            set {
-                if ((this.growControlField != null)) {
-                    if ((growControlField.Equals(value) != true)) {
-                        this.growControlField = value;
-                        this.OnPropertyChanged("GrowControl");
-                    }
-                }
-                else {
-                    this.growControlField = value;
-                    this.OnPropertyChanged("GrowControl");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ResizeBox));
-                }
-                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 ResizeBox 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 ResizeBox object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ResizeBox 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 ResizeBox obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ResizeBox);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ResizeBox obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ResizeBox Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ResizeBox)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ResizeBox 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 ResizeBox object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ResizeBox 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 ResizeBox obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ResizeBox);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ResizeBox obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ResizeBox 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 ResizeBox object
-        /// </summary>
-        public virtual ResizeBox Clone() {
-            return ((ResizeBox)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompoundSymbolDefinition))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SimpleSymbolDefinition))]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SymbolDefinitionBase : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string nameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string descriptionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        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");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SymbolDefinitionBase));
-                }
-                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 SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SymbolDefinitionBase 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 SymbolDefinitionBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SymbolDefinitionBase);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SymbolDefinitionBase obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SymbolDefinitionBase Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SymbolDefinitionBase)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SymbolDefinitionBase 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 SymbolDefinitionBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SymbolDefinitionBase);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SymbolDefinitionBase obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        public virtual SymbolDefinitionBase Clone() {
-            return ((SymbolDefinitionBase)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// A 2D compound symbol for stylization.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class CompoundSymbolDefinition : SymbolDefinitionBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<SimpleSymbol> simpleSymbolField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        [System.Xml.Serialization.XmlElementAttribute("SimpleSymbol")]
-        public BindingList<SimpleSymbol> SimpleSymbol {
-            get {
-                return this.simpleSymbolField;
-            }
-            set {
-                if ((this.simpleSymbolField != null)) {
-                    if ((simpleSymbolField.Equals(value) != true)) {
-                        this.simpleSymbolField = value;
-                        this.OnPropertyChanged("SimpleSymbol");
-                    }
-                }
-                else {
-                    this.simpleSymbolField = value;
-                    this.OnPropertyChanged("SimpleSymbol");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(CompoundSymbolDefinition));
-                }
-                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 CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition 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 CompoundSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out CompoundSymbolDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((CompoundSymbolDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition 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 CompoundSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out CompoundSymbolDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        public virtual CompoundSymbolDefinition Clone() {
-            return ((CompoundSymbolDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
-    [System.Xml.Serialization.XmlRootAttribute("CompoundSymbolDefinition", Namespace="", IsNullable=false)]
-    public partial class CompoundSymbolDefinition1 : CompoundSymbolDefinition, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string versionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public CompoundSymbolDefinition1() {
-            this.versionField = "1.1.0";
-        }
-        
-        [System.Xml.Serialization.XmlAttributeAttribute()]
-        public string version {
-            get {
-                return this.versionField;
-            }
-            set {
-                if ((this.versionField != null)) {
-                    if ((versionField.Equals(value) != true)) {
-                        this.versionField = value;
-                        this.OnPropertyChanged("version");
-                    }
-                }
-                else {
-                    this.versionField = value;
-                    this.OnPropertyChanged("version");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(CompoundSymbolDefinition1));
-                }
-                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 CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition1);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out CompoundSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition1 Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((CompoundSymbolDefinition1)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition1);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out CompoundSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        public virtual CompoundSymbolDefinition1 Clone() {
-            return ((CompoundSymbolDefinition1)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
     /// The specification of the data source and stylization for a layer.
     /// </summary>
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]

Modified: trunk/Tools/Maestro/Generated/LayerDefinition-1.3.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/LayerDefinition-1.3.0.designer.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Generated/LayerDefinition-1.3.0.designer.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -14,6084 +14,10 @@
     using System.ComponentModel;
     using System.IO;
     using OSGeo.MapGuide.ObjectModels.LayerDefinition;
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
-    [System.Xml.Serialization.XmlRootAttribute("SimpleSymbolDefinition", Namespace="", IsNullable=false)]
-    public partial class SimpleSymbolDefinition1 : SimpleSymbolDefinition, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string versionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public SimpleSymbolDefinition1() {
-            this.versionField = "1.1.0";
-        }
-        
-        [System.Xml.Serialization.XmlAttributeAttribute()]
-        public string version {
-            get {
-                return this.versionField;
-            }
-            set {
-                if ((this.versionField != null)) {
-                    if ((versionField.Equals(value) != true)) {
-                        this.versionField = value;
-                        this.OnPropertyChanged("version");
-                    }
-                }
-                else {
-                    this.versionField = value;
-                    this.OnPropertyChanged("version");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbolDefinition1));
-                }
-                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 SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition1);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition1 Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbolDefinition1)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition1);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        public virtual SimpleSymbolDefinition1 Clone() {
-            return ((SimpleSymbolDefinition1)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// A 2D simple symbol for stylization.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SimpleSymbolDefinition : SymbolDefinitionBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<GraphicBase> graphicsField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ResizeBox resizeBoxField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private PointUsage pointUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private LineUsage lineUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private AreaUsage areaUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ParameterDefinition parameterDefinitionField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        /// <summary>
-        /// The collection of graphic elements defining this symbol.
-        /// </summary>
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Image), IsNullable=false)]
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Path), IsNullable=false)]
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Text), IsNullable=false)]
-        public BindingList<GraphicBase> Graphics {
-            get {
-                return this.graphicsField;
-            }
-            set {
-                if ((this.graphicsField != null)) {
-                    if ((graphicsField.Equals(value) != true)) {
-                        this.graphicsField = value;
-                        this.OnPropertyChanged("Graphics");
-                    }
-                }
-                else {
-                    this.graphicsField = value;
-                    this.OnPropertyChanged("Graphics");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The optional box used to resize and reposition select graphic elements.  The graphical extent of all elements with ResizeControl set to AddToResizeBox will be added to this box, potentially causing it to grow in size.  Any change in size causes all elements with ResizeControl set to AdjustToResizeBox to be proportionally resized and repositioned.
-        /// </summary>
-        public ResizeBox ResizeBox {
-            get {
-                return this.resizeBoxField;
-            }
-            set {
-                if ((this.resizeBoxField != null)) {
-                    if ((resizeBoxField.Equals(value) != true)) {
-                        this.resizeBoxField = value;
-                        this.OnPropertyChanged("ResizeBox");
-                    }
-                }
-                else {
-                    this.resizeBoxField = value;
-                    this.OnPropertyChanged("ResizeBox");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of point features.
-        /// </summary>
-        public PointUsage PointUsage {
-            get {
-                return this.pointUsageField;
-            }
-            set {
-                if ((this.pointUsageField != null)) {
-                    if ((pointUsageField.Equals(value) != true)) {
-                        this.pointUsageField = value;
-                        this.OnPropertyChanged("PointUsage");
-                    }
-                }
-                else {
-                    this.pointUsageField = value;
-                    this.OnPropertyChanged("PointUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of linear features.
-        /// </summary>
-        public LineUsage LineUsage {
-            get {
-                return this.lineUsageField;
-            }
-            set {
-                if ((this.lineUsageField != null)) {
-                    if ((lineUsageField.Equals(value) != true)) {
-                        this.lineUsageField = value;
-                        this.OnPropertyChanged("LineUsage");
-                    }
-                }
-                else {
-                    this.lineUsageField = value;
-                    this.OnPropertyChanged("LineUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of area features.
-        /// </summary>
-        public AreaUsage AreaUsage {
-            get {
-                return this.areaUsageField;
-            }
-            set {
-                if ((this.areaUsageField != null)) {
-                    if ((areaUsageField.Equals(value) != true)) {
-                        this.areaUsageField = value;
-                        this.OnPropertyChanged("AreaUsage");
-                    }
-                }
-                else {
-                    this.areaUsageField = value;
-                    this.OnPropertyChanged("AreaUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
-        /// </summary>
-        public ParameterDefinition ParameterDefinition {
-            get {
-                return this.parameterDefinitionField;
-            }
-            set {
-                if ((this.parameterDefinitionField != null)) {
-                    if ((parameterDefinitionField.Equals(value) != true)) {
-                        this.parameterDefinitionField = value;
-                        this.OnPropertyChanged("ParameterDefinition");
-                    }
-                }
-                else {
-                    this.parameterDefinitionField = value;
-                    this.OnPropertyChanged("ParameterDefinition");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbolDefinition));
-                }
-                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 SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition 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 SimpleSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbolDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbolDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition 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 SimpleSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbolDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        public virtual SimpleSymbolDefinition Clone() {
-            return ((SimpleSymbolDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Image : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private object itemField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Image() {
-            this.sizeXField = "1.0";
-            this.sizeYField = "1.0";
-            this.sizeScalableField = "true";
-            this.angleField = "0.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-        }
-        
-        [System.Xml.Serialization.XmlElementAttribute("Content", typeof(byte[]), DataType="base64Binary")]
-        [System.Xml.Serialization.XmlElementAttribute("Reference", typeof(ImageReference))]
-        public object Item {
-            get {
-                return this.itemField;
-            }
-            set {
-                if ((this.itemField != null)) {
-                    if ((itemField.Equals(value) != true)) {
-                        this.itemField = value;
-                        this.OnPropertyChanged("Item");
-                    }
-                }
-                else {
-                    this.itemField = value;
-                    this.OnPropertyChanged("Item");
-                }
-            }
-        }
-        
-        public string SizeX {
-            get {
-                return this.sizeXField;
-            }
-            set {
-                if ((this.sizeXField != null)) {
-                    if ((sizeXField.Equals(value) != true)) {
-                        this.sizeXField = value;
-                        this.OnPropertyChanged("SizeX");
-                    }
-                }
-                else {
-                    this.sizeXField = value;
-                    this.OnPropertyChanged("SizeX");
-                }
-            }
-        }
-        
-        public string SizeY {
-            get {
-                return this.sizeYField;
-            }
-            set {
-                if ((this.sizeYField != null)) {
-                    if ((sizeYField.Equals(value) != true)) {
-                        this.sizeYField = value;
-                        this.OnPropertyChanged("SizeY");
-                    }
-                }
-                else {
-                    this.sizeYField = value;
-                    this.OnPropertyChanged("SizeY");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string SizeScalable {
-            get {
-                return this.sizeScalableField;
-            }
-            set {
-                if ((this.sizeScalableField != null)) {
-                    if ((sizeScalableField.Equals(value) != true)) {
-                        this.sizeScalableField = value;
-                        this.OnPropertyChanged("SizeScalable");
-                    }
-                }
-                else {
-                    this.sizeScalableField = value;
-                    this.OnPropertyChanged("SizeScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Image));
-                }
-                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 Image 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 Image object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Image 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 Image obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Image);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Image obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Image Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Image)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Image 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 Image object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Image 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 Image obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Image);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Image obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Image 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 Image object
-        /// </summary>
-        public virtual Image Clone() {
-            return ((Image)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ImageReference : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string resourceIdField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string libraryItemNameField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public string ResourceId {
-            get {
-                return this.resourceIdField;
-            }
-            set {
-                if ((this.resourceIdField != null)) {
-                    if ((resourceIdField.Equals(value) != true)) {
-                        this.resourceIdField = value;
-                        this.OnPropertyChanged("ResourceId");
-                    }
-                }
-                else {
-                    this.resourceIdField = value;
-                    this.OnPropertyChanged("ResourceId");
-                }
-            }
-        }
-        
-        public string LibraryItemName {
-            get {
-                return this.libraryItemNameField;
-            }
-            set {
-                if ((this.libraryItemNameField != null)) {
-                    if ((libraryItemNameField.Equals(value) != true)) {
-                        this.libraryItemNameField = value;
-                        this.OnPropertyChanged("LibraryItemName");
-                    }
-                }
-                else {
-                    this.libraryItemNameField = value;
-                    this.OnPropertyChanged("LibraryItemName");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ImageReference));
-                }
-                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 ImageReference 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 ImageReference object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ImageReference 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 ImageReference obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ImageReference);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ImageReference obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ImageReference Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ImageReference)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ImageReference 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 ImageReference object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ImageReference 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 ImageReference obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ImageReference);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ImageReference obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ImageReference 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 ImageReference object
-        /// </summary>
-        public virtual ImageReference Clone() {
-            return ((ImageReference)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SimpleSymbol : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private object itemField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string renderingPassField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public SimpleSymbol() {
-            this.renderingPassField = "0";
-        }
-        
-        [System.Xml.Serialization.XmlElementAttribute("ResourceId", typeof(string))]
-        [System.Xml.Serialization.XmlElementAttribute("SimpleSymbolDefinition", typeof(SimpleSymbolDefinition))]
-        public object Item {
-            get {
-                return this.itemField;
-            }
-            set {
-                if ((this.itemField != null)) {
-                    if ((itemField.Equals(value) != true)) {
-                        this.itemField = value;
-                        this.OnPropertyChanged("Item");
-                    }
-                }
-                else {
-                    this.itemField = value;
-                    this.OnPropertyChanged("Item");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The optional rendering pass in which this symbol definition draws.  If specified this must be greater than or equal to zero.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0")]
-        public string RenderingPass {
-            get {
-                return this.renderingPassField;
-            }
-            set {
-                if ((this.renderingPassField != null)) {
-                    if ((renderingPassField.Equals(value) != true)) {
-                        this.renderingPassField = value;
-                        this.OnPropertyChanged("RenderingPass");
-                    }
-                }
-                else {
-                    this.renderingPassField = value;
-                    this.OnPropertyChanged("RenderingPass");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbol));
-                }
-                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 SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbol 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 SimpleSymbol obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbol);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbol obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbol Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbol)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbol 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 SimpleSymbol obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbol);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbol obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        public virtual SimpleSymbol Clone() {
-            return ((SimpleSymbol)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
+    using OSGeo.MapGuide.ObjectModels.Common;
+    using OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_1_0;
 
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private System.Xml.XmlElement[] anyField;
-
-        private static System.Xml.Serialization.XmlSerializer serializer;
-
-        [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public System.Xml.XmlElement[] Any
-        {
-            get
-            {
-                return this.anyField;
-            }
-            set
-            {
-                if ((this.anyField != null))
-                {
-                    if ((anyField.Equals(value) != true))
-                    {
-                        this.anyField = value;
-                        this.OnPropertyChanged("Any");
-                    }
-                }
-                else
-                {
-                    this.anyField = value;
-                    this.OnPropertyChanged("Any");
-                }
-            }
-        }
-
-        private static System.Xml.Serialization.XmlSerializer Serializer
-        {
-            get
-            {
-                if ((serializer == null))
-                {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ExtendedDataType));
-                }
-                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 ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ExtendedDataType 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 ExtendedDataType obj, out System.Exception exception)
-        {
-            exception = null;
-            obj = default(ExtendedDataType);
-            try
-            {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex)
-            {
-                exception = ex;
-                return false;
-            }
-        }
-
-        public static bool Deserialize(string xml, out ExtendedDataType obj)
-        {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-
-        public static ExtendedDataType Deserialize(string xml)
-        {
-            System.IO.StringReader stringReader = null;
-            try
-            {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ExtendedDataType)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally
-            {
-                if ((stringReader != null))
-                {
-                    stringReader.Dispose();
-                }
-            }
-        }
-
-        /// <summary>
-        /// Serializes current ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ExtendedDataType 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 ExtendedDataType obj, out System.Exception exception)
-        {
-            exception = null;
-            obj = default(ExtendedDataType);
-            try
-            {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex)
-            {
-                exception = ex;
-                return false;
-            }
-        }
-
-        public static bool LoadFromFile(string fileName, out ExtendedDataType obj)
-        {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-
-        public static ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        public virtual ExtendedDataType Clone()
-        {
-            return ((ExtendedDataType)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Parameter : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string identifierField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string defaultValueField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string displayNameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string descriptionField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private DataType dataTypeField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Parameter() {
-            this.dataTypeField = DataType.String;
-        }
-        
-        /// <summary>
-        /// The parameter identifier as used in the symbol.
-        /// </summary>
-        public string Identifier {
-            get {
-                return this.identifierField;
-            }
-            set {
-                if ((this.identifierField != null)) {
-                    if ((identifierField.Equals(value) != true)) {
-                        this.identifierField = value;
-                        this.OnPropertyChanged("Identifier");
-                    }
-                }
-                else {
-                    this.identifierField = value;
-                    this.OnPropertyChanged("Identifier");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The default value of the parameter if no override is defined in the symbol instance.  This can be an expression.
-        /// </summary>
-        public string DefaultValue {
-            get {
-                return this.defaultValueField;
-            }
-            set {
-                if ((this.defaultValueField != null)) {
-                    if ((defaultValueField.Equals(value) != true)) {
-                        this.defaultValueField = value;
-                        this.OnPropertyChanged("DefaultValue");
-                    }
-                }
-                else {
-                    this.defaultValueField = value;
-                    this.OnPropertyChanged("DefaultValue");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional short description of the parameter.  This can be used, for example, to ask the user to specify a parameter value.
-        /// </summary>
-        public string DisplayName {
-            get {
-                return this.displayNameField;
-            }
-            set {
-                if ((this.displayNameField != null)) {
-                    if ((displayNameField.Equals(value) != true)) {
-                        this.displayNameField = value;
-                        this.OnPropertyChanged("DisplayName");
-                    }
-                }
-                else {
-                    this.displayNameField = value;
-                    this.OnPropertyChanged("DisplayName");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional long description of the parameter.  This might include a description of useful values for this parameter.
-        /// </summary>
-        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");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional explicit declaration of data type or data usage context.  This is a hint used by the UI when assigning a value to this parameter.  Defaults to String.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute(DataType.String)]
-        public DataType DataType {
-            get {
-                return this.dataTypeField;
-            }
-            set {
-                if ((dataTypeField.Equals(value) != true)) {
-                    this.dataTypeField = value;
-                    this.OnPropertyChanged("DataType");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Parameter));
-                }
-                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 Parameter 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 Parameter object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Parameter 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 Parameter obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Parameter);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Parameter obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Parameter Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Parameter)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Parameter 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 Parameter object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Parameter 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 Parameter obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Parameter);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Parameter obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Parameter 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 Parameter object
-        /// </summary>
-        public virtual Parameter Clone() {
-            return ((Parameter)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    public enum DataType {
-        
-        /// <remarks/>
-        String,
-        
-        /// <remarks/>
-        Boolean,
-        
-        /// <remarks/>
-        Integer,
-        
-        /// <remarks/>
-        Real,
-        
-        /// <remarks/>
-        Color,
-        
-        /// <remarks/>
-        Angle,
-        
-        /// <remarks/>
-        FillColor,
-        
-        /// <remarks/>
-        LineColor,
-        
-        /// <remarks/>
-        LineWeight,
-        
-        /// <remarks/>
-        Content,
-        
-        /// <remarks/>
-        Markup,
-        
-        /// <remarks/>
-        FontName,
-        
-        /// <remarks/>
-        Bold,
-        
-        /// <remarks/>
-        Italic,
-        
-        /// <remarks/>
-        Underlined,
-        
-        /// <remarks/>
-        Overlined,
-        
-        /// <remarks/>
-        ObliqueAngle,
-        
-        /// <remarks/>
-        TrackSpacing,
-        
-        /// <remarks/>
-        FontHeight,
-        
-        /// <remarks/>
-        HorizontalAlignment,
-        
-        /// <remarks/>
-        VerticalAlignment,
-        
-        /// <remarks/>
-        Justification,
-        
-        /// <remarks/>
-        LineSpacing,
-        
-        /// <remarks/>
-        TextColor,
-        
-        /// <remarks/>
-        GhostColor,
-        
-        /// <remarks/>
-        FrameLineColor,
-        
-        /// <remarks/>
-        FrameFillColor,
-        
-        /// <remarks/>
-        StartOffset,
-        
-        /// <remarks/>
-        EndOffset,
-        
-        /// <remarks/>
-        RepeatX,
-        
-        /// <remarks/>
-        RepeatY,
-    }
-    
     /// <summary>
-    /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ParameterDefinition : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<Parameter> parameterField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        [System.Xml.Serialization.XmlElementAttribute("Parameter")]
-        public BindingList<Parameter> Parameter {
-            get {
-                return this.parameterField;
-            }
-            set {
-                if ((this.parameterField != null)) {
-                    if ((parameterField.Equals(value) != true)) {
-                        this.parameterField = value;
-                        this.OnPropertyChanged("Parameter");
-                    }
-                }
-                else {
-                    this.parameterField = value;
-                    this.OnPropertyChanged("Parameter");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ParameterDefinition));
-                }
-                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 ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ParameterDefinition 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 ParameterDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ParameterDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ParameterDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ParameterDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ParameterDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ParameterDefinition 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 ParameterDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ParameterDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ParameterDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        public virtual ParameterDefinition Clone() {
-            return ((ParameterDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of area features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class AreaUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string clippingControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string bufferWidthField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public AreaUsage() {
-            this.angleControlField = "\'FromAngle\'";
-            this.originControlField = "\'Global\'";
-            this.clippingControlField = "\'Clip\'";
-            this.angleField = "0.0";
-            this.originXField = "0.0";
-            this.originYField = "0.0";
-            this.repeatXField = "0.0";
-            this.repeatYField = "0.0";
-            this.bufferWidthField = "0.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle (default) or FromGeometry.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromAngle\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol grid origin is defined.  This must evaluate to one of: Global (default), Local, or Centroid.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Global\'")]
-        public string OriginControl {
-            get {
-                return this.originControlField;
-            }
-            set {
-                if ((this.originControlField != null)) {
-                    if ((originControlField.Equals(value) != true)) {
-                        this.originControlField = value;
-                        this.OnPropertyChanged("OriginControl");
-                    }
-                }
-                else {
-                    this.originControlField = value;
-                    this.OnPropertyChanged("OriginControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the clipping behavior of the symbol at polygon boundaries.  This must evaluate to one of: Clip (default), Inside, or Overlap.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Clip\'")]
-        public string ClippingControl {
-            get {
-                return this.clippingControlField;
-            }
-            set {
-                if ((this.clippingControlField != null)) {
-                    if ((clippingControlField.Equals(value) != true)) {
-                        this.clippingControlField = value;
-                        this.OnPropertyChanged("ClippingControl");
-                    }
-                }
-                else {
-                    this.clippingControlField = value;
-                    this.OnPropertyChanged("ClippingControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the angle of each repeating symbol, in degrees.  If AngleControl evaluates to FromAngle then this specifies the absolute angle of the symbol.  If AngleControl evaluates to FromGeometry then this specifies the symbol angle relative to the geometry.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The x-coordinate of the symbol grid origin, in mm.  Only applies if OriginControl evaluates to Global or Local.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginX {
-            get {
-                return this.originXField;
-            }
-            set {
-                if ((this.originXField != null)) {
-                    if ((originXField.Equals(value) != true)) {
-                        this.originXField = value;
-                        this.OnPropertyChanged("OriginX");
-                    }
-                }
-                else {
-                    this.originXField = value;
-                    this.OnPropertyChanged("OriginX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The y-coordinate of the symbol grid origin, in mm.  Only applies if OriginControl evaluates to Global or Local.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginY {
-            get {
-                return this.originYField;
-            }
-            set {
-                if ((this.originYField != null)) {
-                    if ((originYField.Equals(value) != true)) {
-                        this.originYField = value;
-                        this.OnPropertyChanged("OriginY");
-                    }
-                }
-                else {
-                    this.originYField = value;
-                    this.OnPropertyChanged("OriginY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The horizontal separation between symbols, in mm.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string RepeatX {
-            get {
-                return this.repeatXField;
-            }
-            set {
-                if ((this.repeatXField != null)) {
-                    if ((repeatXField.Equals(value) != true)) {
-                        this.repeatXField = value;
-                        this.OnPropertyChanged("RepeatX");
-                    }
-                }
-                else {
-                    this.repeatXField = value;
-                    this.OnPropertyChanged("RepeatX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The vertical separation between symbols, in mm.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string RepeatY {
-            get {
-                return this.repeatYField;
-            }
-            set {
-                if ((this.repeatYField != null)) {
-                    if ((repeatYField.Equals(value) != true)) {
-                        this.repeatYField = value;
-                        this.OnPropertyChanged("RepeatY");
-                    }
-                }
-                else {
-                    this.repeatYField = value;
-                    this.OnPropertyChanged("RepeatY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The width, in mm, of the buffer zone relative to the polygon boundary in which the symbol is rendered.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string BufferWidth {
-            get {
-                return this.bufferWidthField;
-            }
-            set {
-                if ((this.bufferWidthField != null)) {
-                    if ((bufferWidthField.Equals(value) != true)) {
-                        this.bufferWidthField = value;
-                        this.OnPropertyChanged("BufferWidth");
-                    }
-                }
-                else {
-                    this.bufferWidthField = value;
-                    this.OnPropertyChanged("BufferWidth");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(AreaUsage));
-                }
-                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 AreaUsage 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 AreaUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output AreaUsage 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 AreaUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(AreaUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out AreaUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static AreaUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((AreaUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current AreaUsage 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 AreaUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output AreaUsage 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 AreaUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(AreaUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out AreaUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static AreaUsage 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 AreaUsage object
-        /// </summary>
-        public virtual AreaUsage Clone() {
-            return ((AreaUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of linear features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class LineUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string unitsControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string startOffsetField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string endOffsetField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexAngleLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexJoinField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexMiterLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private Path defaultPathField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public LineUsage() {
-            this.angleControlField = "\'FromGeometry\'";
-            this.unitsControlField = "\'Absolute\'";
-            this.vertexControlField = "\'OverlapWrap\'";
-            this.angleField = "0.0";
-            this.repeatField = "0.0";
-            this.vertexAngleLimitField = "0.0";
-            this.vertexJoinField = "\'Round\'";
-            this.vertexMiterLimitField = "5.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle or FromGeometry (default).
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromGeometry\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies whether the distribution parameters are interpreted as absolute values (in mm) or parametric values.  This must evaluate to one of: Absolute (default) or Parametric.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Absolute\'")]
-        public string UnitsControl {
-            get {
-                return this.unitsControlField;
-            }
-            set {
-                if ((this.unitsControlField != null)) {
-                    if ((unitsControlField.Equals(value) != true)) {
-                        this.unitsControlField = value;
-                        this.OnPropertyChanged("UnitsControl");
-                    }
-                }
-                else {
-                    this.unitsControlField = value;
-                    this.OnPropertyChanged("UnitsControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the symbol behavior at vertices.  This must evaluate to one of: OverlapNone, OverlapDirect, or OverlapWrap (default).
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'OverlapWrap\'")]
-        public string VertexControl {
-            get {
-                return this.vertexControlField;
-            }
-            set {
-                if ((this.vertexControlField != null)) {
-                    if ((vertexControlField.Equals(value) != true)) {
-                        this.vertexControlField = value;
-                        this.OnPropertyChanged("VertexControl");
-                    }
-                }
-                else {
-                    this.vertexControlField = value;
-                    this.OnPropertyChanged("VertexControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the angle of each repeating symbol, in degrees.  If AngleControl evaluates to FromAngle then this specifies the absolute angle of the symbol.  If AngleControl evaluates to FromGeometry then this specifies the symbol angle relative to the geometry.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies where the symbol distribution begins, relative to the start of the feature.  If specified this must be greater than or equal to zero.
-        /// </summary>
-        public string StartOffset {
-            get {
-                return this.startOffsetField;
-            }
-            set {
-                if ((this.startOffsetField != null)) {
-                    if ((startOffsetField.Equals(value) != true)) {
-                        this.startOffsetField = value;
-                        this.OnPropertyChanged("StartOffset");
-                    }
-                }
-                else {
-                    this.startOffsetField = value;
-                    this.OnPropertyChanged("StartOffset");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies where the symbol distribution ends, relative to the end of the feature.  If specified this must be greater than or equal to zero.
-        /// </summary>
-        public string EndOffset {
-            get {
-                return this.endOffsetField;
-            }
-            set {
-                if ((this.endOffsetField != null)) {
-                    if ((endOffsetField.Equals(value) != true)) {
-                        this.endOffsetField = value;
-                        this.OnPropertyChanged("EndOffset");
-                    }
-                }
-                else {
-                    this.endOffsetField = value;
-                    this.OnPropertyChanged("EndOffset");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the separation between repeating symbols.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Repeat {
-            get {
-                return this.repeatField;
-            }
-            set {
-                if ((this.repeatField != null)) {
-                    if ((repeatField.Equals(value) != true)) {
-                        this.repeatField = value;
-                        this.OnPropertyChanged("Repeat");
-                    }
-                }
-                else {
-                    this.repeatField = value;
-                    this.OnPropertyChanged("Repeat");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the limiting angle, in degrees, by a which the feature geometry can change before some of the VertexControl options take effect.  If specified this must be greater than or equal to zero.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string VertexAngleLimit {
-            get {
-                return this.vertexAngleLimitField;
-            }
-            set {
-                if ((this.vertexAngleLimitField != null)) {
-                    if ((vertexAngleLimitField.Equals(value) != true)) {
-                        this.vertexAngleLimitField = value;
-                        this.OnPropertyChanged("VertexAngleLimit");
-                    }
-                }
-                else {
-                    this.vertexAngleLimitField = value;
-                    this.OnPropertyChanged("VertexAngleLimit");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the wrapping behavior at vertices for all graphic elements.  Only applies if VertexControl evaluates to OverlapWrap.  This must evaluate to one of: None, Bevel, Round (default), or Miter.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string VertexJoin {
-            get {
-                return this.vertexJoinField;
-            }
-            set {
-                if ((this.vertexJoinField != null)) {
-                    if ((vertexJoinField.Equals(value) != true)) {
-                        this.vertexJoinField = value;
-                        this.OnPropertyChanged("VertexJoin");
-                    }
-                }
-                else {
-                    this.vertexJoinField = value;
-                    this.OnPropertyChanged("VertexJoin");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The limit to use when drawing miter vertex joins.  A miter vertex join is trimmed if the ratio of the miter length to symbol height is greater than the miter limit.  If specified this must be greater than zero.  Defaults to 5.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("5.0")]
-        public string VertexMiterLimit {
-            get {
-                return this.vertexMiterLimitField;
-            }
-            set {
-                if ((this.vertexMiterLimitField != null)) {
-                    if ((vertexMiterLimitField.Equals(value) != true)) {
-                        this.vertexMiterLimitField = value;
-                        this.OnPropertyChanged("VertexMiterLimit");
-                    }
-                }
-                else {
-                    this.vertexMiterLimitField = value;
-                    this.OnPropertyChanged("VertexMiterLimit");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the default path attributes to use when drawing the symbol.  These apply to any centerline that gets drawn where the symbol can't draw, and to path elements that don't specify attributes.  The geometry contained in this path is ignored and should be empty.
-        /// </summary>
-        public Path DefaultPath {
-            get {
-                return this.defaultPathField;
-            }
-            set {
-                if ((this.defaultPathField != null)) {
-                    if ((defaultPathField.Equals(value) != true)) {
-                        this.defaultPathField = value;
-                        this.OnPropertyChanged("DefaultPath");
-                    }
-                }
-                else {
-                    this.defaultPathField = value;
-                    this.OnPropertyChanged("DefaultPath");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(LineUsage));
-                }
-                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 LineUsage 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 LineUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output LineUsage 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 LineUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(LineUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out LineUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static LineUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((LineUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current LineUsage 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 LineUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output LineUsage 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 LineUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(LineUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out LineUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static LineUsage 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 LineUsage object
-        /// </summary>
-        public virtual LineUsage Clone() {
-            return ((LineUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Path : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string geometryField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fillColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineWeightField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineWeightScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineCapField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineJoinField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineMiterLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Path() {
-            this.lineWeightField = "0.0";
-            this.lineWeightScalableField = "true";
-            this.lineCapField = "\'Round\'";
-            this.lineJoinField = "\'Round\'";
-            this.lineMiterLimitField = "5.0";
-        }
-        
-        public string 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");
-                }
-            }
-        }
-        
-        public string FillColor {
-            get {
-                return this.fillColorField;
-            }
-            set {
-                if ((this.fillColorField != null)) {
-                    if ((fillColorField.Equals(value) != true)) {
-                        this.fillColorField = value;
-                        this.OnPropertyChanged("FillColor");
-                    }
-                }
-                else {
-                    this.fillColorField = value;
-                    this.OnPropertyChanged("FillColor");
-                }
-            }
-        }
-        
-        public string LineColor {
-            get {
-                return this.lineColorField;
-            }
-            set {
-                if ((this.lineColorField != null)) {
-                    if ((lineColorField.Equals(value) != true)) {
-                        this.lineColorField = value;
-                        this.OnPropertyChanged("LineColor");
-                    }
-                }
-                else {
-                    this.lineColorField = value;
-                    this.OnPropertyChanged("LineColor");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string LineWeight {
-            get {
-                return this.lineWeightField;
-            }
-            set {
-                if ((this.lineWeightField != null)) {
-                    if ((lineWeightField.Equals(value) != true)) {
-                        this.lineWeightField = value;
-                        this.OnPropertyChanged("LineWeight");
-                    }
-                }
-                else {
-                    this.lineWeightField = value;
-                    this.OnPropertyChanged("LineWeight");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string LineWeightScalable {
-            get {
-                return this.lineWeightScalableField;
-            }
-            set {
-                if ((this.lineWeightScalableField != null)) {
-                    if ((lineWeightScalableField.Equals(value) != true)) {
-                        this.lineWeightScalableField = value;
-                        this.OnPropertyChanged("LineWeightScalable");
-                    }
-                }
-                else {
-                    this.lineWeightScalableField = value;
-                    this.OnPropertyChanged("LineWeightScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string LineCap {
-            get {
-                return this.lineCapField;
-            }
-            set {
-                if ((this.lineCapField != null)) {
-                    if ((lineCapField.Equals(value) != true)) {
-                        this.lineCapField = value;
-                        this.OnPropertyChanged("LineCap");
-                    }
-                }
-                else {
-                    this.lineCapField = value;
-                    this.OnPropertyChanged("LineCap");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string LineJoin {
-            get {
-                return this.lineJoinField;
-            }
-            set {
-                if ((this.lineJoinField != null)) {
-                    if ((lineJoinField.Equals(value) != true)) {
-                        this.lineJoinField = value;
-                        this.OnPropertyChanged("LineJoin");
-                    }
-                }
-                else {
-                    this.lineJoinField = value;
-                    this.OnPropertyChanged("LineJoin");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("5.0")]
-        public string LineMiterLimit {
-            get {
-                return this.lineMiterLimitField;
-            }
-            set {
-                if ((this.lineMiterLimitField != null)) {
-                    if ((lineMiterLimitField.Equals(value) != true)) {
-                        this.lineMiterLimitField = value;
-                        this.OnPropertyChanged("LineMiterLimit");
-                    }
-                }
-                else {
-                    this.lineMiterLimitField = value;
-                    this.OnPropertyChanged("LineMiterLimit");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Path));
-                }
-                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 Path 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 Path object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Path 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 Path obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Path);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Path obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Path Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Path)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Path 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 Path object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Path 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 Path obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Path);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Path obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Path 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 Path object
-        /// </summary>
-        public virtual Path Clone() {
-            return ((Path)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Text))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Image))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Path))]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class GraphicBase : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string resizeControlField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public GraphicBase() {
-            this.resizeControlField = "\'ResizeNone\'";
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'ResizeNone\'")]
-        public string ResizeControl {
-            get {
-                return this.resizeControlField;
-            }
-            set {
-                if ((this.resizeControlField != null)) {
-                    if ((resizeControlField.Equals(value) != true)) {
-                        this.resizeControlField = value;
-                        this.OnPropertyChanged("ResizeControl");
-                    }
-                }
-                else {
-                    this.resizeControlField = value;
-                    this.OnPropertyChanged("ResizeControl");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(GraphicBase));
-                }
-                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 GraphicBase 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 GraphicBase object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output GraphicBase 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 GraphicBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(GraphicBase);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out GraphicBase obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static GraphicBase Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((GraphicBase)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current GraphicBase 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 GraphicBase object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output GraphicBase 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 GraphicBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(GraphicBase);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out GraphicBase obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static GraphicBase 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 GraphicBase object
-        /// </summary>
-        public virtual GraphicBase Clone() {
-            return ((GraphicBase)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Text : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string contentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fontNameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string boldField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string italicField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string underlinedField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string overlinedField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string obliqueAngleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string trackSpacingField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string heightField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string heightScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string horizontalAlignmentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string verticalAlignmentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string justificationField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineSpacingField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string textColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string ghostColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private TextFrame frameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string markupField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Text() {
-            this.fontNameField = "\'Arial\'";
-            this.boldField = "false";
-            this.italicField = "false";
-            this.underlinedField = "false";
-            this.overlinedField = "false";
-            this.obliqueAngleField = "0.0";
-            this.trackSpacingField = "1.0";
-            this.heightField = "4.0";
-            this.heightScalableField = "true";
-            this.angleField = "0.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-            this.horizontalAlignmentField = "\'Center\'";
-            this.verticalAlignmentField = "\'Halfline\'";
-            this.justificationField = "\'FromAlignment\'";
-            this.lineSpacingField = "1.05";
-            this.textColorField = "ff000000";
-            this.markupField = "\'Plain\'";
-        }
-        
-        public string Content {
-            get {
-                return this.contentField;
-            }
-            set {
-                if ((this.contentField != null)) {
-                    if ((contentField.Equals(value) != true)) {
-                        this.contentField = value;
-                        this.OnPropertyChanged("Content");
-                    }
-                }
-                else {
-                    this.contentField = value;
-                    this.OnPropertyChanged("Content");
-                }
-            }
-        }
-        
-        public string FontName {
-            get {
-                return this.fontNameField;
-            }
-            set {
-                if ((this.fontNameField != null)) {
-                    if ((fontNameField.Equals(value) != true)) {
-                        this.fontNameField = value;
-                        this.OnPropertyChanged("FontName");
-                    }
-                }
-                else {
-                    this.fontNameField = value;
-                    this.OnPropertyChanged("FontName");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Bold {
-            get {
-                return this.boldField;
-            }
-            set {
-                if ((this.boldField != null)) {
-                    if ((boldField.Equals(value) != true)) {
-                        this.boldField = value;
-                        this.OnPropertyChanged("Bold");
-                    }
-                }
-                else {
-                    this.boldField = value;
-                    this.OnPropertyChanged("Bold");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Italic {
-            get {
-                return this.italicField;
-            }
-            set {
-                if ((this.italicField != null)) {
-                    if ((italicField.Equals(value) != true)) {
-                        this.italicField = value;
-                        this.OnPropertyChanged("Italic");
-                    }
-                }
-                else {
-                    this.italicField = value;
-                    this.OnPropertyChanged("Italic");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Underlined {
-            get {
-                return this.underlinedField;
-            }
-            set {
-                if ((this.underlinedField != null)) {
-                    if ((underlinedField.Equals(value) != true)) {
-                        this.underlinedField = value;
-                        this.OnPropertyChanged("Underlined");
-                    }
-                }
-                else {
-                    this.underlinedField = value;
-                    this.OnPropertyChanged("Underlined");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Overlined {
-            get {
-                return this.overlinedField;
-            }
-            set {
-                if ((this.overlinedField != null)) {
-                    if ((overlinedField.Equals(value) != true)) {
-                        this.overlinedField = value;
-                        this.OnPropertyChanged("Overlined");
-                    }
-                }
-                else {
-                    this.overlinedField = value;
-                    this.OnPropertyChanged("Overlined");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string ObliqueAngle {
-            get {
-                return this.obliqueAngleField;
-            }
-            set {
-                if ((this.obliqueAngleField != null)) {
-                    if ((obliqueAngleField.Equals(value) != true)) {
-                        this.obliqueAngleField = value;
-                        this.OnPropertyChanged("ObliqueAngle");
-                    }
-                }
-                else {
-                    this.obliqueAngleField = value;
-                    this.OnPropertyChanged("ObliqueAngle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("1.0")]
-        public string TrackSpacing {
-            get {
-                return this.trackSpacingField;
-            }
-            set {
-                if ((this.trackSpacingField != null)) {
-                    if ((trackSpacingField.Equals(value) != true)) {
-                        this.trackSpacingField = value;
-                        this.OnPropertyChanged("TrackSpacing");
-                    }
-                }
-                else {
-                    this.trackSpacingField = value;
-                    this.OnPropertyChanged("TrackSpacing");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("4.0")]
-        public string Height {
-            get {
-                return this.heightField;
-            }
-            set {
-                if ((this.heightField != null)) {
-                    if ((heightField.Equals(value) != true)) {
-                        this.heightField = value;
-                        this.OnPropertyChanged("Height");
-                    }
-                }
-                else {
-                    this.heightField = value;
-                    this.OnPropertyChanged("Height");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string HeightScalable {
-            get {
-                return this.heightScalableField;
-            }
-            set {
-                if ((this.heightScalableField != null)) {
-                    if ((heightScalableField.Equals(value) != true)) {
-                        this.heightScalableField = value;
-                        this.OnPropertyChanged("HeightScalable");
-                    }
-                }
-                else {
-                    this.heightScalableField = value;
-                    this.OnPropertyChanged("HeightScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Center\'")]
-        public string HorizontalAlignment {
-            get {
-                return this.horizontalAlignmentField;
-            }
-            set {
-                if ((this.horizontalAlignmentField != null)) {
-                    if ((horizontalAlignmentField.Equals(value) != true)) {
-                        this.horizontalAlignmentField = value;
-                        this.OnPropertyChanged("HorizontalAlignment");
-                    }
-                }
-                else {
-                    this.horizontalAlignmentField = value;
-                    this.OnPropertyChanged("HorizontalAlignment");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Halfline\'")]
-        public string VerticalAlignment {
-            get {
-                return this.verticalAlignmentField;
-            }
-            set {
-                if ((this.verticalAlignmentField != null)) {
-                    if ((verticalAlignmentField.Equals(value) != true)) {
-                        this.verticalAlignmentField = value;
-                        this.OnPropertyChanged("VerticalAlignment");
-                    }
-                }
-                else {
-                    this.verticalAlignmentField = value;
-                    this.OnPropertyChanged("VerticalAlignment");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'FromAlignment\'")]
-        public string Justification {
-            get {
-                return this.justificationField;
-            }
-            set {
-                if ((this.justificationField != null)) {
-                    if ((justificationField.Equals(value) != true)) {
-                        this.justificationField = value;
-                        this.OnPropertyChanged("Justification");
-                    }
-                }
-                else {
-                    this.justificationField = value;
-                    this.OnPropertyChanged("Justification");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("1.05")]
-        public string LineSpacing {
-            get {
-                return this.lineSpacingField;
-            }
-            set {
-                if ((this.lineSpacingField != null)) {
-                    if ((lineSpacingField.Equals(value) != true)) {
-                        this.lineSpacingField = value;
-                        this.OnPropertyChanged("LineSpacing");
-                    }
-                }
-                else {
-                    this.lineSpacingField = value;
-                    this.OnPropertyChanged("LineSpacing");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("ff000000")]
-        public string TextColor {
-            get {
-                return this.textColorField;
-            }
-            set {
-                if ((this.textColorField != null)) {
-                    if ((textColorField.Equals(value) != true)) {
-                        this.textColorField = value;
-                        this.OnPropertyChanged("TextColor");
-                    }
-                }
-                else {
-                    this.textColorField = value;
-                    this.OnPropertyChanged("TextColor");
-                }
-            }
-        }
-        
-        public string GhostColor {
-            get {
-                return this.ghostColorField;
-            }
-            set {
-                if ((this.ghostColorField != null)) {
-                    if ((ghostColorField.Equals(value) != true)) {
-                        this.ghostColorField = value;
-                        this.OnPropertyChanged("GhostColor");
-                    }
-                }
-                else {
-                    this.ghostColorField = value;
-                    this.OnPropertyChanged("GhostColor");
-                }
-            }
-        }
-        
-        public TextFrame Frame {
-            get {
-                return this.frameField;
-            }
-            set {
-                if ((this.frameField != null)) {
-                    if ((frameField.Equals(value) != true)) {
-                        this.frameField = value;
-                        this.OnPropertyChanged("Frame");
-                    }
-                }
-                else {
-                    this.frameField = value;
-                    this.OnPropertyChanged("Frame");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Plain\'")]
-        public string Markup {
-            get {
-                return this.markupField;
-            }
-            set {
-                if ((this.markupField != null)) {
-                    if ((markupField.Equals(value) != true)) {
-                        this.markupField = value;
-                        this.OnPropertyChanged("Markup");
-                    }
-                }
-                else {
-                    this.markupField = value;
-                    this.OnPropertyChanged("Markup");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Text));
-                }
-                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 Text 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 Text object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Text 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 Text obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Text);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Text obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Text Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Text)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Text 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 Text object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Text 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 Text obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Text);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Text obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Text 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 Text object
-        /// </summary>
-        public virtual Text Clone() {
-            return ((Text)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class TextFrame : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fillColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string offsetXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string offsetYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public TextFrame() {
-            this.offsetXField = "0.0";
-            this.offsetYField = "0.0";
-        }
-        
-        public string LineColor {
-            get {
-                return this.lineColorField;
-            }
-            set {
-                if ((this.lineColorField != null)) {
-                    if ((lineColorField.Equals(value) != true)) {
-                        this.lineColorField = value;
-                        this.OnPropertyChanged("LineColor");
-                    }
-                }
-                else {
-                    this.lineColorField = value;
-                    this.OnPropertyChanged("LineColor");
-                }
-            }
-        }
-        
-        public string FillColor {
-            get {
-                return this.fillColorField;
-            }
-            set {
-                if ((this.fillColorField != null)) {
-                    if ((fillColorField.Equals(value) != true)) {
-                        this.fillColorField = value;
-                        this.OnPropertyChanged("FillColor");
-                    }
-                }
-                else {
-                    this.fillColorField = value;
-                    this.OnPropertyChanged("FillColor");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OffsetX {
-            get {
-                return this.offsetXField;
-            }
-            set {
-                if ((this.offsetXField != null)) {
-                    if ((offsetXField.Equals(value) != true)) {
-                        this.offsetXField = value;
-                        this.OnPropertyChanged("OffsetX");
-                    }
-                }
-                else {
-                    this.offsetXField = value;
-                    this.OnPropertyChanged("OffsetX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OffsetY {
-            get {
-                return this.offsetYField;
-            }
-            set {
-                if ((this.offsetYField != null)) {
-                    if ((offsetYField.Equals(value) != true)) {
-                        this.offsetYField = value;
-                        this.OnPropertyChanged("OffsetY");
-                    }
-                }
-                else {
-                    this.offsetYField = value;
-                    this.OnPropertyChanged("OffsetY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(TextFrame));
-                }
-                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 TextFrame 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 TextFrame object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output TextFrame 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 TextFrame obj, out System.Exception exception) {
-            exception = null;
-            obj = default(TextFrame);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out TextFrame obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static TextFrame Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((TextFrame)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current TextFrame 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 TextFrame object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output TextFrame 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 TextFrame obj, out System.Exception exception) {
-            exception = null;
-            obj = default(TextFrame);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out TextFrame obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static TextFrame 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 TextFrame object
-        /// </summary>
-        public virtual TextFrame Clone() {
-            return ((TextFrame)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of point features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class PointUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originOffsetXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originOffsetYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public PointUsage() {
-            this.angleControlField = "\'FromAngle\'";
-            this.angleField = "0.0";
-            this.originOffsetXField = "0.0";
-            this.originOffsetYField = "0.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle (default) or FromGeometry.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromAngle\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the symbol angle, in degrees.  If AngleControl evaluates to FromAngle then this specifies the absolute angle of the symbol.  If AngleControl evaluates to FromGeometry then this specifies the symbol angle relative to the geometry.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the horizontal offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginOffsetX {
-            get {
-                return this.originOffsetXField;
-            }
-            set {
-                if ((this.originOffsetXField != null)) {
-                    if ((originOffsetXField.Equals(value) != true)) {
-                        this.originOffsetXField = value;
-                        this.OnPropertyChanged("OriginOffsetX");
-                    }
-                }
-                else {
-                    this.originOffsetXField = value;
-                    this.OnPropertyChanged("OriginOffsetX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the vertical offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginOffsetY {
-            get {
-                return this.originOffsetYField;
-            }
-            set {
-                if ((this.originOffsetYField != null)) {
-                    if ((originOffsetYField.Equals(value) != true)) {
-                        this.originOffsetYField = value;
-                        this.OnPropertyChanged("OriginOffsetY");
-                    }
-                }
-                else {
-                    this.originOffsetYField = value;
-                    this.OnPropertyChanged("OriginOffsetY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(PointUsage));
-                }
-                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 PointUsage 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 PointUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output PointUsage 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 PointUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(PointUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out PointUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static PointUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((PointUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current PointUsage 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 PointUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output PointUsage 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 PointUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(PointUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out PointUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static PointUsage 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 PointUsage object
-        /// </summary>
-        public virtual PointUsage Clone() {
-            return ((PointUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// The optional box used to resize and reposition select graphic elements.  The graphical extent of all elements with ResizeControl set to AddToResizeBox will be added to this box, potentially causing it to grow in size.  Any change in size causes all elements with ResizeControl set to AdjustToResizeBox to be proportionally resized and repositioned.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ResizeBox : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string growControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public ResizeBox() {
-            this.sizeXField = "1.0";
-            this.sizeYField = "1.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-            this.growControlField = "\'GrowInXYMaintainAspect\'";
-        }
-        
-        /// <summary>
-        /// The initial width of the resize box, in mm.  This must be greater than or equal to zero.
-        /// </summary>
-        public string SizeX {
-            get {
-                return this.sizeXField;
-            }
-            set {
-                if ((this.sizeXField != null)) {
-                    if ((sizeXField.Equals(value) != true)) {
-                        this.sizeXField = value;
-                        this.OnPropertyChanged("SizeX");
-                    }
-                }
-                else {
-                    this.sizeXField = value;
-                    this.OnPropertyChanged("SizeX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial height of the resize box, in mm.  This must be greater than or equal to zero.
-        /// </summary>
-        public string SizeY {
-            get {
-                return this.sizeYField;
-            }
-            set {
-                if ((this.sizeYField != null)) {
-                    if ((sizeYField.Equals(value) != true)) {
-                        this.sizeYField = value;
-                        this.OnPropertyChanged("SizeY");
-                    }
-                }
-                else {
-                    this.sizeYField = value;
-                    this.OnPropertyChanged("SizeY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial x-coordinate of the resize box center, in mm.
-        /// </summary>
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial y-coordinate of the resize box center, in mm.
-        /// </summary>
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the resize box grows in size.  This must evaluate to one of: GrowInX, GrowInY, GrowInXY, or GrowInXYMaintainAspect (default).
-        /// </summary>
-        public string GrowControl {
-            get {
-                return this.growControlField;
-            }
-            set {
-                if ((this.growControlField != null)) {
-                    if ((growControlField.Equals(value) != true)) {
-                        this.growControlField = value;
-                        this.OnPropertyChanged("GrowControl");
-                    }
-                }
-                else {
-                    this.growControlField = value;
-                    this.OnPropertyChanged("GrowControl");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ResizeBox));
-                }
-                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 ResizeBox 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 ResizeBox object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ResizeBox 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 ResizeBox obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ResizeBox);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ResizeBox obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ResizeBox Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ResizeBox)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ResizeBox 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 ResizeBox object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ResizeBox 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 ResizeBox obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ResizeBox);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ResizeBox obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ResizeBox 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 ResizeBox object
-        /// </summary>
-        public virtual ResizeBox Clone() {
-            return ((ResizeBox)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompoundSymbolDefinition))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SimpleSymbolDefinition))]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SymbolDefinitionBase : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string nameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string descriptionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        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");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SymbolDefinitionBase));
-                }
-                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 SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SymbolDefinitionBase 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 SymbolDefinitionBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SymbolDefinitionBase);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SymbolDefinitionBase obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SymbolDefinitionBase Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SymbolDefinitionBase)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SymbolDefinitionBase 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 SymbolDefinitionBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SymbolDefinitionBase);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SymbolDefinitionBase obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        public virtual SymbolDefinitionBase Clone() {
-            return ((SymbolDefinitionBase)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// A 2D compound symbol for stylization.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class CompoundSymbolDefinition : SymbolDefinitionBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<SimpleSymbol> simpleSymbolField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        [System.Xml.Serialization.XmlElementAttribute("SimpleSymbol")]
-        public BindingList<SimpleSymbol> SimpleSymbol {
-            get {
-                return this.simpleSymbolField;
-            }
-            set {
-                if ((this.simpleSymbolField != null)) {
-                    if ((simpleSymbolField.Equals(value) != true)) {
-                        this.simpleSymbolField = value;
-                        this.OnPropertyChanged("SimpleSymbol");
-                    }
-                }
-                else {
-                    this.simpleSymbolField = value;
-                    this.OnPropertyChanged("SimpleSymbol");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(CompoundSymbolDefinition));
-                }
-                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 CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition 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 CompoundSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out CompoundSymbolDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((CompoundSymbolDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition 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 CompoundSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out CompoundSymbolDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        public virtual CompoundSymbolDefinition Clone() {
-            return ((CompoundSymbolDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
-    [System.Xml.Serialization.XmlRootAttribute("CompoundSymbolDefinition", Namespace="", IsNullable=false)]
-    public partial class CompoundSymbolDefinition1 : CompoundSymbolDefinition, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string versionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public CompoundSymbolDefinition1() {
-            this.versionField = "1.1.0";
-        }
-        
-        [System.Xml.Serialization.XmlAttributeAttribute()]
-        public string version {
-            get {
-                return this.versionField;
-            }
-            set {
-                if ((this.versionField != null)) {
-                    if ((versionField.Equals(value) != true)) {
-                        this.versionField = value;
-                        this.OnPropertyChanged("version");
-                    }
-                }
-                else {
-                    this.versionField = value;
-                    this.OnPropertyChanged("version");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(CompoundSymbolDefinition1));
-                }
-                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 CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition1);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out CompoundSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition1 Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((CompoundSymbolDefinition1)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition1);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out CompoundSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        public virtual CompoundSymbolDefinition1 Clone() {
-            return ((CompoundSymbolDefinition1)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
     /// The specification of the data source and stylization for a layer.
     /// </summary>
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]

Modified: trunk/Tools/Maestro/Generated/LayerDefinition-2.3.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/LayerDefinition-2.3.0.designer.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Generated/LayerDefinition-2.3.0.designer.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -14,6085 +14,11 @@
     using System.ComponentModel;
     using System.IO;
     using OSGeo.MapGuide.ObjectModels.LayerDefinition;
+    using OSGeo.MapGuide.ObjectModels.Common;
+    using OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_1_0;
     using OSGeo.MapGuide.ObjectModels.WatermarkDefinition_2_3_0;
     
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
-    [System.Xml.Serialization.XmlRootAttribute("SimpleSymbolDefinition", Namespace="", IsNullable=false)]
-    public partial class SimpleSymbolDefinition1 : SimpleSymbolDefinition, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string versionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public SimpleSymbolDefinition1() {
-            this.versionField = "1.1.0";
-        }
-        
-        [System.Xml.Serialization.XmlAttributeAttribute()]
-        public string version {
-            get {
-                return this.versionField;
-            }
-            set {
-                if ((this.versionField != null)) {
-                    if ((versionField.Equals(value) != true)) {
-                        this.versionField = value;
-                        this.OnPropertyChanged("version");
-                    }
-                }
-                else {
-                    this.versionField = value;
-                    this.OnPropertyChanged("version");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbolDefinition1));
-                }
-                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 SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition1);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition1 Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbolDefinition1)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition1);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition1 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 SimpleSymbolDefinition1 object
-        /// </summary>
-        public virtual SimpleSymbolDefinition1 Clone() {
-            return ((SimpleSymbolDefinition1)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
     /// <summary>
-    /// A 2D simple symbol for stylization.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SimpleSymbolDefinition : SymbolDefinitionBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<GraphicBase> graphicsField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ResizeBox resizeBoxField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private PointUsage pointUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private LineUsage lineUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private AreaUsage areaUsageField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ParameterDefinition parameterDefinitionField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        /// <summary>
-        /// The collection of graphic elements defining this symbol.
-        /// </summary>
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Image), IsNullable=false)]
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Path), IsNullable=false)]
-        [System.Xml.Serialization.XmlArrayItemAttribute(typeof(Text), IsNullable=false)]
-        public BindingList<GraphicBase> Graphics {
-            get {
-                return this.graphicsField;
-            }
-            set {
-                if ((this.graphicsField != null)) {
-                    if ((graphicsField.Equals(value) != true)) {
-                        this.graphicsField = value;
-                        this.OnPropertyChanged("Graphics");
-                    }
-                }
-                else {
-                    this.graphicsField = value;
-                    this.OnPropertyChanged("Graphics");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The optional box used to resize and reposition select graphic elements.  The graphical extent of all elements with ResizeControl set to AddToResizeBox will be added to this box, potentially causing it to grow in size.  Any change in size causes all elements with ResizeControl set to AdjustToResizeBox to be proportionally resized and repositioned.
-        /// </summary>
-        public ResizeBox ResizeBox {
-            get {
-                return this.resizeBoxField;
-            }
-            set {
-                if ((this.resizeBoxField != null)) {
-                    if ((resizeBoxField.Equals(value) != true)) {
-                        this.resizeBoxField = value;
-                        this.OnPropertyChanged("ResizeBox");
-                    }
-                }
-                else {
-                    this.resizeBoxField = value;
-                    this.OnPropertyChanged("ResizeBox");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of point features.
-        /// </summary>
-        public PointUsage PointUsage {
-            get {
-                return this.pointUsageField;
-            }
-            set {
-                if ((this.pointUsageField != null)) {
-                    if ((pointUsageField.Equals(value) != true)) {
-                        this.pointUsageField = value;
-                        this.OnPropertyChanged("PointUsage");
-                    }
-                }
-                else {
-                    this.pointUsageField = value;
-                    this.OnPropertyChanged("PointUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of linear features.
-        /// </summary>
-        public LineUsage LineUsage {
-            get {
-                return this.lineUsageField;
-            }
-            set {
-                if ((this.lineUsageField != null)) {
-                    if ((lineUsageField.Equals(value) != true)) {
-                        this.lineUsageField = value;
-                        this.OnPropertyChanged("LineUsage");
-                    }
-                }
-                else {
-                    this.lineUsageField = value;
-                    this.OnPropertyChanged("LineUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol is used in the context of area features.
-        /// </summary>
-        public AreaUsage AreaUsage {
-            get {
-                return this.areaUsageField;
-            }
-            set {
-                if ((this.areaUsageField != null)) {
-                    if ((areaUsageField.Equals(value) != true)) {
-                        this.areaUsageField = value;
-                        this.OnPropertyChanged("AreaUsage");
-                    }
-                }
-                else {
-                    this.areaUsageField = value;
-                    this.OnPropertyChanged("AreaUsage");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
-        /// </summary>
-        public ParameterDefinition ParameterDefinition {
-            get {
-                return this.parameterDefinitionField;
-            }
-            set {
-                if ((this.parameterDefinitionField != null)) {
-                    if ((parameterDefinitionField.Equals(value) != true)) {
-                        this.parameterDefinitionField = value;
-                        this.OnPropertyChanged("ParameterDefinition");
-                    }
-                }
-                else {
-                    this.parameterDefinitionField = value;
-                    this.OnPropertyChanged("ParameterDefinition");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbolDefinition));
-                }
-                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 SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition 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 SimpleSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbolDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbolDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbolDefinition 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 SimpleSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbolDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbolDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbolDefinition 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 SimpleSymbolDefinition object
-        /// </summary>
-        public virtual SimpleSymbolDefinition Clone() {
-            return ((SimpleSymbolDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Image : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private object itemField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Image() {
-            this.sizeXField = "1.0";
-            this.sizeYField = "1.0";
-            this.sizeScalableField = "true";
-            this.angleField = "0.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-        }
-        
-        [System.Xml.Serialization.XmlElementAttribute("Content", typeof(byte[]), DataType="base64Binary")]
-        [System.Xml.Serialization.XmlElementAttribute("Reference", typeof(ImageReference))]
-        public object Item {
-            get {
-                return this.itemField;
-            }
-            set {
-                if ((this.itemField != null)) {
-                    if ((itemField.Equals(value) != true)) {
-                        this.itemField = value;
-                        this.OnPropertyChanged("Item");
-                    }
-                }
-                else {
-                    this.itemField = value;
-                    this.OnPropertyChanged("Item");
-                }
-            }
-        }
-        
-        public string SizeX {
-            get {
-                return this.sizeXField;
-            }
-            set {
-                if ((this.sizeXField != null)) {
-                    if ((sizeXField.Equals(value) != true)) {
-                        this.sizeXField = value;
-                        this.OnPropertyChanged("SizeX");
-                    }
-                }
-                else {
-                    this.sizeXField = value;
-                    this.OnPropertyChanged("SizeX");
-                }
-            }
-        }
-        
-        public string SizeY {
-            get {
-                return this.sizeYField;
-            }
-            set {
-                if ((this.sizeYField != null)) {
-                    if ((sizeYField.Equals(value) != true)) {
-                        this.sizeYField = value;
-                        this.OnPropertyChanged("SizeY");
-                    }
-                }
-                else {
-                    this.sizeYField = value;
-                    this.OnPropertyChanged("SizeY");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string SizeScalable {
-            get {
-                return this.sizeScalableField;
-            }
-            set {
-                if ((this.sizeScalableField != null)) {
-                    if ((sizeScalableField.Equals(value) != true)) {
-                        this.sizeScalableField = value;
-                        this.OnPropertyChanged("SizeScalable");
-                    }
-                }
-                else {
-                    this.sizeScalableField = value;
-                    this.OnPropertyChanged("SizeScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Image));
-                }
-                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 Image 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 Image object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Image 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 Image obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Image);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Image obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Image Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Image)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Image 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 Image object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Image 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 Image obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Image);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Image obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Image 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 Image object
-        /// </summary>
-        public virtual Image Clone() {
-            return ((Image)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ImageReference : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string resourceIdField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string libraryItemNameField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public string ResourceId {
-            get {
-                return this.resourceIdField;
-            }
-            set {
-                if ((this.resourceIdField != null)) {
-                    if ((resourceIdField.Equals(value) != true)) {
-                        this.resourceIdField = value;
-                        this.OnPropertyChanged("ResourceId");
-                    }
-                }
-                else {
-                    this.resourceIdField = value;
-                    this.OnPropertyChanged("ResourceId");
-                }
-            }
-        }
-        
-        public string LibraryItemName {
-            get {
-                return this.libraryItemNameField;
-            }
-            set {
-                if ((this.libraryItemNameField != null)) {
-                    if ((libraryItemNameField.Equals(value) != true)) {
-                        this.libraryItemNameField = value;
-                        this.OnPropertyChanged("LibraryItemName");
-                    }
-                }
-                else {
-                    this.libraryItemNameField = value;
-                    this.OnPropertyChanged("LibraryItemName");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ImageReference));
-                }
-                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 ImageReference 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 ImageReference object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ImageReference 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 ImageReference obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ImageReference);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ImageReference obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ImageReference Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ImageReference)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ImageReference 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 ImageReference object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ImageReference 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 ImageReference obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ImageReference);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ImageReference obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ImageReference 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 ImageReference object
-        /// </summary>
-        public virtual ImageReference Clone() {
-            return ((ImageReference)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SimpleSymbol : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private object itemField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string renderingPassField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public SimpleSymbol() {
-            this.renderingPassField = "0";
-        }
-        
-        [System.Xml.Serialization.XmlElementAttribute("ResourceId", typeof(string))]
-        [System.Xml.Serialization.XmlElementAttribute("SimpleSymbolDefinition", typeof(SimpleSymbolDefinition))]
-        public object Item {
-            get {
-                return this.itemField;
-            }
-            set {
-                if ((this.itemField != null)) {
-                    if ((itemField.Equals(value) != true)) {
-                        this.itemField = value;
-                        this.OnPropertyChanged("Item");
-                    }
-                }
-                else {
-                    this.itemField = value;
-                    this.OnPropertyChanged("Item");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The optional rendering pass in which this symbol definition draws.  If specified this must be greater than or equal to zero.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0")]
-        public string RenderingPass {
-            get {
-                return this.renderingPassField;
-            }
-            set {
-                if ((this.renderingPassField != null)) {
-                    if ((renderingPassField.Equals(value) != true)) {
-                        this.renderingPassField = value;
-                        this.OnPropertyChanged("RenderingPass");
-                    }
-                }
-                else {
-                    this.renderingPassField = value;
-                    this.OnPropertyChanged("RenderingPass");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SimpleSymbol));
-                }
-                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 SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SimpleSymbol 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 SimpleSymbol obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbol);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SimpleSymbol obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SimpleSymbol Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SimpleSymbol)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SimpleSymbol 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 SimpleSymbol obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SimpleSymbol);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SimpleSymbol obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SimpleSymbol 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 SimpleSymbol object
-        /// </summary>
-        public virtual SimpleSymbol Clone() {
-            return ((SimpleSymbol)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged {
-
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private System.Xml.XmlElement[] anyField;
-
-        private static System.Xml.Serialization.XmlSerializer serializer;
-
-        [System.Xml.Serialization.XmlAnyElementAttribute()]
-        public System.Xml.XmlElement[] Any
-        {
-            get
-            {
-                return this.anyField;
-            }
-            set
-            {
-                if ((this.anyField != null))
-                {
-                    if ((anyField.Equals(value) != true))
-                    {
-                        this.anyField = value;
-                        this.OnPropertyChanged("Any");
-                    }
-                }
-                else
-                {
-                    this.anyField = value;
-                    this.OnPropertyChanged("Any");
-                }
-            }
-        }
-
-        private static System.Xml.Serialization.XmlSerializer Serializer
-        {
-            get
-            {
-                if ((serializer == null))
-                {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ExtendedDataType));
-                }
-                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 ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ExtendedDataType 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 ExtendedDataType obj, out System.Exception exception)
-        {
-            exception = null;
-            obj = default(ExtendedDataType);
-            try
-            {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex)
-            {
-                exception = ex;
-                return false;
-            }
-        }
-
-        public static bool Deserialize(string xml, out ExtendedDataType obj)
-        {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-
-        public static ExtendedDataType Deserialize(string xml)
-        {
-            System.IO.StringReader stringReader = null;
-            try
-            {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ExtendedDataType)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally
-            {
-                if ((stringReader != null))
-                {
-                    stringReader.Dispose();
-                }
-            }
-        }
-
-        /// <summary>
-        /// Serializes current ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ExtendedDataType 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 ExtendedDataType obj, out System.Exception exception)
-        {
-            exception = null;
-            obj = default(ExtendedDataType);
-            try
-            {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex)
-            {
-                exception = ex;
-                return false;
-            }
-        }
-
-        public static bool LoadFromFile(string fileName, out ExtendedDataType obj)
-        {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-
-        public static ExtendedDataType 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 ExtendedDataType object
-        /// </summary>
-        public virtual ExtendedDataType Clone()
-        {
-            return ((ExtendedDataType)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Parameter : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string identifierField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string defaultValueField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string displayNameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string descriptionField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private DataType dataTypeField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Parameter() {
-            this.dataTypeField = DataType.String;
-        }
-        
-        /// <summary>
-        /// The parameter identifier as used in the symbol.
-        /// </summary>
-        public string Identifier {
-            get {
-                return this.identifierField;
-            }
-            set {
-                if ((this.identifierField != null)) {
-                    if ((identifierField.Equals(value) != true)) {
-                        this.identifierField = value;
-                        this.OnPropertyChanged("Identifier");
-                    }
-                }
-                else {
-                    this.identifierField = value;
-                    this.OnPropertyChanged("Identifier");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The default value of the parameter if no override is defined in the symbol instance.  This can be an expression.
-        /// </summary>
-        public string DefaultValue {
-            get {
-                return this.defaultValueField;
-            }
-            set {
-                if ((this.defaultValueField != null)) {
-                    if ((defaultValueField.Equals(value) != true)) {
-                        this.defaultValueField = value;
-                        this.OnPropertyChanged("DefaultValue");
-                    }
-                }
-                else {
-                    this.defaultValueField = value;
-                    this.OnPropertyChanged("DefaultValue");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional short description of the parameter.  This can be used, for example, to ask the user to specify a parameter value.
-        /// </summary>
-        public string DisplayName {
-            get {
-                return this.displayNameField;
-            }
-            set {
-                if ((this.displayNameField != null)) {
-                    if ((displayNameField.Equals(value) != true)) {
-                        this.displayNameField = value;
-                        this.OnPropertyChanged("DisplayName");
-                    }
-                }
-                else {
-                    this.displayNameField = value;
-                    this.OnPropertyChanged("DisplayName");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional long description of the parameter.  This might include a description of useful values for this parameter.
-        /// </summary>
-        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");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// An optional explicit declaration of data type or data usage context.  This is a hint used by the UI when assigning a value to this parameter.  Defaults to String.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute(DataType.String)]
-        public DataType DataType {
-            get {
-                return this.dataTypeField;
-            }
-            set {
-                if ((dataTypeField.Equals(value) != true)) {
-                    this.dataTypeField = value;
-                    this.OnPropertyChanged("DataType");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Parameter));
-                }
-                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 Parameter 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 Parameter object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Parameter 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 Parameter obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Parameter);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Parameter obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Parameter Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Parameter)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Parameter 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 Parameter object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Parameter 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 Parameter obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Parameter);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Parameter obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Parameter 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 Parameter object
-        /// </summary>
-        public virtual Parameter Clone() {
-            return ((Parameter)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    public enum DataType {
-        
-        /// <remarks/>
-        String,
-        
-        /// <remarks/>
-        Boolean,
-        
-        /// <remarks/>
-        Integer,
-        
-        /// <remarks/>
-        Real,
-        
-        /// <remarks/>
-        Color,
-        
-        /// <remarks/>
-        Angle,
-        
-        /// <remarks/>
-        FillColor,
-        
-        /// <remarks/>
-        LineColor,
-        
-        /// <remarks/>
-        LineWeight,
-        
-        /// <remarks/>
-        Content,
-        
-        /// <remarks/>
-        Markup,
-        
-        /// <remarks/>
-        FontName,
-        
-        /// <remarks/>
-        Bold,
-        
-        /// <remarks/>
-        Italic,
-        
-        /// <remarks/>
-        Underlined,
-        
-        /// <remarks/>
-        Overlined,
-        
-        /// <remarks/>
-        ObliqueAngle,
-        
-        /// <remarks/>
-        TrackSpacing,
-        
-        /// <remarks/>
-        FontHeight,
-        
-        /// <remarks/>
-        HorizontalAlignment,
-        
-        /// <remarks/>
-        VerticalAlignment,
-        
-        /// <remarks/>
-        Justification,
-        
-        /// <remarks/>
-        LineSpacing,
-        
-        /// <remarks/>
-        TextColor,
-        
-        /// <remarks/>
-        GhostColor,
-        
-        /// <remarks/>
-        FrameLineColor,
-        
-        /// <remarks/>
-        FrameFillColor,
-        
-        /// <remarks/>
-        StartOffset,
-        
-        /// <remarks/>
-        EndOffset,
-        
-        /// <remarks/>
-        RepeatX,
-        
-        /// <remarks/>
-        RepeatY,
-    }
-    
-    /// <summary>
-    /// The list of parameters used in this symbol.  If a parameter is not listed here this is considered a bug in the symbol definition.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ParameterDefinition : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<Parameter> parameterField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        [System.Xml.Serialization.XmlElementAttribute("Parameter")]
-        public BindingList<Parameter> Parameter {
-            get {
-                return this.parameterField;
-            }
-            set {
-                if ((this.parameterField != null)) {
-                    if ((parameterField.Equals(value) != true)) {
-                        this.parameterField = value;
-                        this.OnPropertyChanged("Parameter");
-                    }
-                }
-                else {
-                    this.parameterField = value;
-                    this.OnPropertyChanged("Parameter");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ParameterDefinition));
-                }
-                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 ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ParameterDefinition 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 ParameterDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ParameterDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ParameterDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ParameterDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ParameterDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ParameterDefinition 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 ParameterDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ParameterDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ParameterDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ParameterDefinition 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 ParameterDefinition object
-        /// </summary>
-        public virtual ParameterDefinition Clone() {
-            return ((ParameterDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of area features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class AreaUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string clippingControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string bufferWidthField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public AreaUsage() {
-            this.angleControlField = "\'FromAngle\'";
-            this.originControlField = "\'Global\'";
-            this.clippingControlField = "\'Clip\'";
-            this.angleField = "0.0";
-            this.originXField = "0.0";
-            this.originYField = "0.0";
-            this.repeatXField = "0.0";
-            this.repeatYField = "0.0";
-            this.bufferWidthField = "0.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle (default) or FromGeometry.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromAngle\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol grid origin is defined.  This must evaluate to one of: Global (default), Local, or Centroid.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Global\'")]
-        public string OriginControl {
-            get {
-                return this.originControlField;
-            }
-            set {
-                if ((this.originControlField != null)) {
-                    if ((originControlField.Equals(value) != true)) {
-                        this.originControlField = value;
-                        this.OnPropertyChanged("OriginControl");
-                    }
-                }
-                else {
-                    this.originControlField = value;
-                    this.OnPropertyChanged("OriginControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the clipping behavior of the symbol at polygon boundaries.  This must evaluate to one of: Clip (default), Inside, or Overlap.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Clip\'")]
-        public string ClippingControl {
-            get {
-                return this.clippingControlField;
-            }
-            set {
-                if ((this.clippingControlField != null)) {
-                    if ((clippingControlField.Equals(value) != true)) {
-                        this.clippingControlField = value;
-                        this.OnPropertyChanged("ClippingControl");
-                    }
-                }
-                else {
-                    this.clippingControlField = value;
-                    this.OnPropertyChanged("ClippingControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the angle of each repeating symbol, in degrees.  If AngleControl evaluates to FromAngle then this specifies the absolute angle of the symbol.  If AngleControl evaluates to FromGeometry then this specifies the symbol angle relative to the geometry.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The x-coordinate of the symbol grid origin, in mm.  Only applies if OriginControl evaluates to Global or Local.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginX {
-            get {
-                return this.originXField;
-            }
-            set {
-                if ((this.originXField != null)) {
-                    if ((originXField.Equals(value) != true)) {
-                        this.originXField = value;
-                        this.OnPropertyChanged("OriginX");
-                    }
-                }
-                else {
-                    this.originXField = value;
-                    this.OnPropertyChanged("OriginX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The y-coordinate of the symbol grid origin, in mm.  Only applies if OriginControl evaluates to Global or Local.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginY {
-            get {
-                return this.originYField;
-            }
-            set {
-                if ((this.originYField != null)) {
-                    if ((originYField.Equals(value) != true)) {
-                        this.originYField = value;
-                        this.OnPropertyChanged("OriginY");
-                    }
-                }
-                else {
-                    this.originYField = value;
-                    this.OnPropertyChanged("OriginY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The horizontal separation between symbols, in mm.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string RepeatX {
-            get {
-                return this.repeatXField;
-            }
-            set {
-                if ((this.repeatXField != null)) {
-                    if ((repeatXField.Equals(value) != true)) {
-                        this.repeatXField = value;
-                        this.OnPropertyChanged("RepeatX");
-                    }
-                }
-                else {
-                    this.repeatXField = value;
-                    this.OnPropertyChanged("RepeatX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The vertical separation between symbols, in mm.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string RepeatY {
-            get {
-                return this.repeatYField;
-            }
-            set {
-                if ((this.repeatYField != null)) {
-                    if ((repeatYField.Equals(value) != true)) {
-                        this.repeatYField = value;
-                        this.OnPropertyChanged("RepeatY");
-                    }
-                }
-                else {
-                    this.repeatYField = value;
-                    this.OnPropertyChanged("RepeatY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The width, in mm, of the buffer zone relative to the polygon boundary in which the symbol is rendered.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string BufferWidth {
-            get {
-                return this.bufferWidthField;
-            }
-            set {
-                if ((this.bufferWidthField != null)) {
-                    if ((bufferWidthField.Equals(value) != true)) {
-                        this.bufferWidthField = value;
-                        this.OnPropertyChanged("BufferWidth");
-                    }
-                }
-                else {
-                    this.bufferWidthField = value;
-                    this.OnPropertyChanged("BufferWidth");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(AreaUsage));
-                }
-                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 AreaUsage 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 AreaUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output AreaUsage 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 AreaUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(AreaUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out AreaUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static AreaUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((AreaUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current AreaUsage 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 AreaUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output AreaUsage 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 AreaUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(AreaUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out AreaUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static AreaUsage 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 AreaUsage object
-        /// </summary>
-        public virtual AreaUsage Clone() {
-            return ((AreaUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of linear features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class LineUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string unitsControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string startOffsetField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string endOffsetField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string repeatField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexAngleLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexJoinField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string vertexMiterLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private Path defaultPathField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public LineUsage() {
-            this.angleControlField = "\'FromGeometry\'";
-            this.unitsControlField = "\'Absolute\'";
-            this.vertexControlField = "\'OverlapWrap\'";
-            this.angleField = "0.0";
-            this.repeatField = "0.0";
-            this.vertexAngleLimitField = "0.0";
-            this.vertexJoinField = "\'Round\'";
-            this.vertexMiterLimitField = "5.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle or FromGeometry (default).
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromGeometry\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies whether the distribution parameters are interpreted as absolute values (in mm) or parametric values.  This must evaluate to one of: Absolute (default) or Parametric.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Absolute\'")]
-        public string UnitsControl {
-            get {
-                return this.unitsControlField;
-            }
-            set {
-                if ((this.unitsControlField != null)) {
-                    if ((unitsControlField.Equals(value) != true)) {
-                        this.unitsControlField = value;
-                        this.OnPropertyChanged("UnitsControl");
-                    }
-                }
-                else {
-                    this.unitsControlField = value;
-                    this.OnPropertyChanged("UnitsControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the symbol behavior at vertices.  This must evaluate to one of: OverlapNone, OverlapDirect, or OverlapWrap (default).
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'OverlapWrap\'")]
-        public string VertexControl {
-            get {
-                return this.vertexControlField;
-            }
-            set {
-                if ((this.vertexControlField != null)) {
-                    if ((vertexControlField.Equals(value) != true)) {
-                        this.vertexControlField = value;
-                        this.OnPropertyChanged("VertexControl");
-                    }
-                }
-                else {
-                    this.vertexControlField = value;
-                    this.OnPropertyChanged("VertexControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the angle of each repeating symbol, in degrees.  If AngleControl evaluates to FromAngle then this specifies the absolute angle of the symbol.  If AngleControl evaluates to FromGeometry then this specifies the symbol angle relative to the geometry.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies where the symbol distribution begins, relative to the start of the feature.  If specified this must be greater than or equal to zero.
-        /// </summary>
-        public string StartOffset {
-            get {
-                return this.startOffsetField;
-            }
-            set {
-                if ((this.startOffsetField != null)) {
-                    if ((startOffsetField.Equals(value) != true)) {
-                        this.startOffsetField = value;
-                        this.OnPropertyChanged("StartOffset");
-                    }
-                }
-                else {
-                    this.startOffsetField = value;
-                    this.OnPropertyChanged("StartOffset");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies where the symbol distribution ends, relative to the end of the feature.  If specified this must be greater than or equal to zero.
-        /// </summary>
-        public string EndOffset {
-            get {
-                return this.endOffsetField;
-            }
-            set {
-                if ((this.endOffsetField != null)) {
-                    if ((endOffsetField.Equals(value) != true)) {
-                        this.endOffsetField = value;
-                        this.OnPropertyChanged("EndOffset");
-                    }
-                }
-                else {
-                    this.endOffsetField = value;
-                    this.OnPropertyChanged("EndOffset");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the separation between repeating symbols.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Repeat {
-            get {
-                return this.repeatField;
-            }
-            set {
-                if ((this.repeatField != null)) {
-                    if ((repeatField.Equals(value) != true)) {
-                        this.repeatField = value;
-                        this.OnPropertyChanged("Repeat");
-                    }
-                }
-                else {
-                    this.repeatField = value;
-                    this.OnPropertyChanged("Repeat");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the limiting angle, in degrees, by a which the feature geometry can change before some of the VertexControl options take effect.  If specified this must be greater than or equal to zero.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string VertexAngleLimit {
-            get {
-                return this.vertexAngleLimitField;
-            }
-            set {
-                if ((this.vertexAngleLimitField != null)) {
-                    if ((vertexAngleLimitField.Equals(value) != true)) {
-                        this.vertexAngleLimitField = value;
-                        this.OnPropertyChanged("VertexAngleLimit");
-                    }
-                }
-                else {
-                    this.vertexAngleLimitField = value;
-                    this.OnPropertyChanged("VertexAngleLimit");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the wrapping behavior at vertices for all graphic elements.  Only applies if VertexControl evaluates to OverlapWrap.  This must evaluate to one of: None, Bevel, Round (default), or Miter.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string VertexJoin {
-            get {
-                return this.vertexJoinField;
-            }
-            set {
-                if ((this.vertexJoinField != null)) {
-                    if ((vertexJoinField.Equals(value) != true)) {
-                        this.vertexJoinField = value;
-                        this.OnPropertyChanged("VertexJoin");
-                    }
-                }
-                else {
-                    this.vertexJoinField = value;
-                    this.OnPropertyChanged("VertexJoin");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The limit to use when drawing miter vertex joins.  A miter vertex join is trimmed if the ratio of the miter length to symbol height is greater than the miter limit.  If specified this must be greater than zero.  Defaults to 5.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("5.0")]
-        public string VertexMiterLimit {
-            get {
-                return this.vertexMiterLimitField;
-            }
-            set {
-                if ((this.vertexMiterLimitField != null)) {
-                    if ((vertexMiterLimitField.Equals(value) != true)) {
-                        this.vertexMiterLimitField = value;
-                        this.OnPropertyChanged("VertexMiterLimit");
-                    }
-                }
-                else {
-                    this.vertexMiterLimitField = value;
-                    this.OnPropertyChanged("VertexMiterLimit");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the default path attributes to use when drawing the symbol.  These apply to any centerline that gets drawn where the symbol can't draw, and to path elements that don't specify attributes.  The geometry contained in this path is ignored and should be empty.
-        /// </summary>
-        public Path DefaultPath {
-            get {
-                return this.defaultPathField;
-            }
-            set {
-                if ((this.defaultPathField != null)) {
-                    if ((defaultPathField.Equals(value) != true)) {
-                        this.defaultPathField = value;
-                        this.OnPropertyChanged("DefaultPath");
-                    }
-                }
-                else {
-                    this.defaultPathField = value;
-                    this.OnPropertyChanged("DefaultPath");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(LineUsage));
-                }
-                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 LineUsage 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 LineUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output LineUsage 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 LineUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(LineUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out LineUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static LineUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((LineUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current LineUsage 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 LineUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output LineUsage 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 LineUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(LineUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out LineUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static LineUsage 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 LineUsage object
-        /// </summary>
-        public virtual LineUsage Clone() {
-            return ((LineUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Path : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string geometryField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fillColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineWeightField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineWeightScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineCapField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineJoinField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineMiterLimitField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Path() {
-            this.lineWeightField = "0.0";
-            this.lineWeightScalableField = "true";
-            this.lineCapField = "\'Round\'";
-            this.lineJoinField = "\'Round\'";
-            this.lineMiterLimitField = "5.0";
-        }
-        
-        public string 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");
-                }
-            }
-        }
-        
-        public string FillColor {
-            get {
-                return this.fillColorField;
-            }
-            set {
-                if ((this.fillColorField != null)) {
-                    if ((fillColorField.Equals(value) != true)) {
-                        this.fillColorField = value;
-                        this.OnPropertyChanged("FillColor");
-                    }
-                }
-                else {
-                    this.fillColorField = value;
-                    this.OnPropertyChanged("FillColor");
-                }
-            }
-        }
-        
-        public string LineColor {
-            get {
-                return this.lineColorField;
-            }
-            set {
-                if ((this.lineColorField != null)) {
-                    if ((lineColorField.Equals(value) != true)) {
-                        this.lineColorField = value;
-                        this.OnPropertyChanged("LineColor");
-                    }
-                }
-                else {
-                    this.lineColorField = value;
-                    this.OnPropertyChanged("LineColor");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string LineWeight {
-            get {
-                return this.lineWeightField;
-            }
-            set {
-                if ((this.lineWeightField != null)) {
-                    if ((lineWeightField.Equals(value) != true)) {
-                        this.lineWeightField = value;
-                        this.OnPropertyChanged("LineWeight");
-                    }
-                }
-                else {
-                    this.lineWeightField = value;
-                    this.OnPropertyChanged("LineWeight");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string LineWeightScalable {
-            get {
-                return this.lineWeightScalableField;
-            }
-            set {
-                if ((this.lineWeightScalableField != null)) {
-                    if ((lineWeightScalableField.Equals(value) != true)) {
-                        this.lineWeightScalableField = value;
-                        this.OnPropertyChanged("LineWeightScalable");
-                    }
-                }
-                else {
-                    this.lineWeightScalableField = value;
-                    this.OnPropertyChanged("LineWeightScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string LineCap {
-            get {
-                return this.lineCapField;
-            }
-            set {
-                if ((this.lineCapField != null)) {
-                    if ((lineCapField.Equals(value) != true)) {
-                        this.lineCapField = value;
-                        this.OnPropertyChanged("LineCap");
-                    }
-                }
-                else {
-                    this.lineCapField = value;
-                    this.OnPropertyChanged("LineCap");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Round\'")]
-        public string LineJoin {
-            get {
-                return this.lineJoinField;
-            }
-            set {
-                if ((this.lineJoinField != null)) {
-                    if ((lineJoinField.Equals(value) != true)) {
-                        this.lineJoinField = value;
-                        this.OnPropertyChanged("LineJoin");
-                    }
-                }
-                else {
-                    this.lineJoinField = value;
-                    this.OnPropertyChanged("LineJoin");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("5.0")]
-        public string LineMiterLimit {
-            get {
-                return this.lineMiterLimitField;
-            }
-            set {
-                if ((this.lineMiterLimitField != null)) {
-                    if ((lineMiterLimitField.Equals(value) != true)) {
-                        this.lineMiterLimitField = value;
-                        this.OnPropertyChanged("LineMiterLimit");
-                    }
-                }
-                else {
-                    this.lineMiterLimitField = value;
-                    this.OnPropertyChanged("LineMiterLimit");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Path));
-                }
-                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 Path 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 Path object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Path 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 Path obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Path);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Path obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Path Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Path)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Path 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 Path object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Path 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 Path obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Path);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Path obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Path 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 Path object
-        /// </summary>
-        public virtual Path Clone() {
-            return ((Path)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Text))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Image))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Path))]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class GraphicBase : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string resizeControlField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public GraphicBase() {
-            this.resizeControlField = "\'ResizeNone\'";
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'ResizeNone\'")]
-        public string ResizeControl {
-            get {
-                return this.resizeControlField;
-            }
-            set {
-                if ((this.resizeControlField != null)) {
-                    if ((resizeControlField.Equals(value) != true)) {
-                        this.resizeControlField = value;
-                        this.OnPropertyChanged("ResizeControl");
-                    }
-                }
-                else {
-                    this.resizeControlField = value;
-                    this.OnPropertyChanged("ResizeControl");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(GraphicBase));
-                }
-                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 GraphicBase 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 GraphicBase object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output GraphicBase 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 GraphicBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(GraphicBase);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out GraphicBase obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static GraphicBase Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((GraphicBase)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current GraphicBase 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 GraphicBase object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output GraphicBase 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 GraphicBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(GraphicBase);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out GraphicBase obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static GraphicBase 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 GraphicBase object
-        /// </summary>
-        public virtual GraphicBase Clone() {
-            return ((GraphicBase)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class Text : GraphicBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string contentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fontNameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string boldField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string italicField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string underlinedField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string overlinedField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string obliqueAngleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string trackSpacingField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string heightField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string heightScalableField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string horizontalAlignmentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string verticalAlignmentField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string justificationField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineSpacingField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string textColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string ghostColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private TextFrame frameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string markupField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public Text() {
-            this.fontNameField = "\'Arial\'";
-            this.boldField = "false";
-            this.italicField = "false";
-            this.underlinedField = "false";
-            this.overlinedField = "false";
-            this.obliqueAngleField = "0.0";
-            this.trackSpacingField = "1.0";
-            this.heightField = "4.0";
-            this.heightScalableField = "true";
-            this.angleField = "0.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-            this.horizontalAlignmentField = "\'Center\'";
-            this.verticalAlignmentField = "\'Halfline\'";
-            this.justificationField = "\'FromAlignment\'";
-            this.lineSpacingField = "1.05";
-            this.textColorField = "ff000000";
-            this.markupField = "\'Plain\'";
-        }
-        
-        public string Content {
-            get {
-                return this.contentField;
-            }
-            set {
-                if ((this.contentField != null)) {
-                    if ((contentField.Equals(value) != true)) {
-                        this.contentField = value;
-                        this.OnPropertyChanged("Content");
-                    }
-                }
-                else {
-                    this.contentField = value;
-                    this.OnPropertyChanged("Content");
-                }
-            }
-        }
-        
-        public string FontName {
-            get {
-                return this.fontNameField;
-            }
-            set {
-                if ((this.fontNameField != null)) {
-                    if ((fontNameField.Equals(value) != true)) {
-                        this.fontNameField = value;
-                        this.OnPropertyChanged("FontName");
-                    }
-                }
-                else {
-                    this.fontNameField = value;
-                    this.OnPropertyChanged("FontName");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Bold {
-            get {
-                return this.boldField;
-            }
-            set {
-                if ((this.boldField != null)) {
-                    if ((boldField.Equals(value) != true)) {
-                        this.boldField = value;
-                        this.OnPropertyChanged("Bold");
-                    }
-                }
-                else {
-                    this.boldField = value;
-                    this.OnPropertyChanged("Bold");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Italic {
-            get {
-                return this.italicField;
-            }
-            set {
-                if ((this.italicField != null)) {
-                    if ((italicField.Equals(value) != true)) {
-                        this.italicField = value;
-                        this.OnPropertyChanged("Italic");
-                    }
-                }
-                else {
-                    this.italicField = value;
-                    this.OnPropertyChanged("Italic");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Underlined {
-            get {
-                return this.underlinedField;
-            }
-            set {
-                if ((this.underlinedField != null)) {
-                    if ((underlinedField.Equals(value) != true)) {
-                        this.underlinedField = value;
-                        this.OnPropertyChanged("Underlined");
-                    }
-                }
-                else {
-                    this.underlinedField = value;
-                    this.OnPropertyChanged("Underlined");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("false")]
-        public string Overlined {
-            get {
-                return this.overlinedField;
-            }
-            set {
-                if ((this.overlinedField != null)) {
-                    if ((overlinedField.Equals(value) != true)) {
-                        this.overlinedField = value;
-                        this.OnPropertyChanged("Overlined");
-                    }
-                }
-                else {
-                    this.overlinedField = value;
-                    this.OnPropertyChanged("Overlined");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string ObliqueAngle {
-            get {
-                return this.obliqueAngleField;
-            }
-            set {
-                if ((this.obliqueAngleField != null)) {
-                    if ((obliqueAngleField.Equals(value) != true)) {
-                        this.obliqueAngleField = value;
-                        this.OnPropertyChanged("ObliqueAngle");
-                    }
-                }
-                else {
-                    this.obliqueAngleField = value;
-                    this.OnPropertyChanged("ObliqueAngle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("1.0")]
-        public string TrackSpacing {
-            get {
-                return this.trackSpacingField;
-            }
-            set {
-                if ((this.trackSpacingField != null)) {
-                    if ((trackSpacingField.Equals(value) != true)) {
-                        this.trackSpacingField = value;
-                        this.OnPropertyChanged("TrackSpacing");
-                    }
-                }
-                else {
-                    this.trackSpacingField = value;
-                    this.OnPropertyChanged("TrackSpacing");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("4.0")]
-        public string Height {
-            get {
-                return this.heightField;
-            }
-            set {
-                if ((this.heightField != null)) {
-                    if ((heightField.Equals(value) != true)) {
-                        this.heightField = value;
-                        this.OnPropertyChanged("Height");
-                    }
-                }
-                else {
-                    this.heightField = value;
-                    this.OnPropertyChanged("Height");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("true")]
-        public string HeightScalable {
-            get {
-                return this.heightScalableField;
-            }
-            set {
-                if ((this.heightScalableField != null)) {
-                    if ((heightScalableField.Equals(value) != true)) {
-                        this.heightScalableField = value;
-                        this.OnPropertyChanged("HeightScalable");
-                    }
-                }
-                else {
-                    this.heightScalableField = value;
-                    this.OnPropertyChanged("HeightScalable");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Center\'")]
-        public string HorizontalAlignment {
-            get {
-                return this.horizontalAlignmentField;
-            }
-            set {
-                if ((this.horizontalAlignmentField != null)) {
-                    if ((horizontalAlignmentField.Equals(value) != true)) {
-                        this.horizontalAlignmentField = value;
-                        this.OnPropertyChanged("HorizontalAlignment");
-                    }
-                }
-                else {
-                    this.horizontalAlignmentField = value;
-                    this.OnPropertyChanged("HorizontalAlignment");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Halfline\'")]
-        public string VerticalAlignment {
-            get {
-                return this.verticalAlignmentField;
-            }
-            set {
-                if ((this.verticalAlignmentField != null)) {
-                    if ((verticalAlignmentField.Equals(value) != true)) {
-                        this.verticalAlignmentField = value;
-                        this.OnPropertyChanged("VerticalAlignment");
-                    }
-                }
-                else {
-                    this.verticalAlignmentField = value;
-                    this.OnPropertyChanged("VerticalAlignment");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'FromAlignment\'")]
-        public string Justification {
-            get {
-                return this.justificationField;
-            }
-            set {
-                if ((this.justificationField != null)) {
-                    if ((justificationField.Equals(value) != true)) {
-                        this.justificationField = value;
-                        this.OnPropertyChanged("Justification");
-                    }
-                }
-                else {
-                    this.justificationField = value;
-                    this.OnPropertyChanged("Justification");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("1.05")]
-        public string LineSpacing {
-            get {
-                return this.lineSpacingField;
-            }
-            set {
-                if ((this.lineSpacingField != null)) {
-                    if ((lineSpacingField.Equals(value) != true)) {
-                        this.lineSpacingField = value;
-                        this.OnPropertyChanged("LineSpacing");
-                    }
-                }
-                else {
-                    this.lineSpacingField = value;
-                    this.OnPropertyChanged("LineSpacing");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("ff000000")]
-        public string TextColor {
-            get {
-                return this.textColorField;
-            }
-            set {
-                if ((this.textColorField != null)) {
-                    if ((textColorField.Equals(value) != true)) {
-                        this.textColorField = value;
-                        this.OnPropertyChanged("TextColor");
-                    }
-                }
-                else {
-                    this.textColorField = value;
-                    this.OnPropertyChanged("TextColor");
-                }
-            }
-        }
-        
-        public string GhostColor {
-            get {
-                return this.ghostColorField;
-            }
-            set {
-                if ((this.ghostColorField != null)) {
-                    if ((ghostColorField.Equals(value) != true)) {
-                        this.ghostColorField = value;
-                        this.OnPropertyChanged("GhostColor");
-                    }
-                }
-                else {
-                    this.ghostColorField = value;
-                    this.OnPropertyChanged("GhostColor");
-                }
-            }
-        }
-        
-        public TextFrame Frame {
-            get {
-                return this.frameField;
-            }
-            set {
-                if ((this.frameField != null)) {
-                    if ((frameField.Equals(value) != true)) {
-                        this.frameField = value;
-                        this.OnPropertyChanged("Frame");
-                    }
-                }
-                else {
-                    this.frameField = value;
-                    this.OnPropertyChanged("Frame");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("\'Plain\'")]
-        public string Markup {
-            get {
-                return this.markupField;
-            }
-            set {
-                if ((this.markupField != null)) {
-                    if ((markupField.Equals(value) != true)) {
-                        this.markupField = value;
-                        this.OnPropertyChanged("Markup");
-                    }
-                }
-                else {
-                    this.markupField = value;
-                    this.OnPropertyChanged("Markup");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Text));
-                }
-                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 Text 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 Text object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output Text 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 Text obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Text);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out Text obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static Text Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((Text)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current Text 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 Text object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output Text 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 Text obj, out System.Exception exception) {
-            exception = null;
-            obj = default(Text);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out Text obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static Text 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 Text object
-        /// </summary>
-        public virtual Text Clone() {
-            return ((Text)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class TextFrame : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string lineColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string fillColorField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string offsetXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string offsetYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public TextFrame() {
-            this.offsetXField = "0.0";
-            this.offsetYField = "0.0";
-        }
-        
-        public string LineColor {
-            get {
-                return this.lineColorField;
-            }
-            set {
-                if ((this.lineColorField != null)) {
-                    if ((lineColorField.Equals(value) != true)) {
-                        this.lineColorField = value;
-                        this.OnPropertyChanged("LineColor");
-                    }
-                }
-                else {
-                    this.lineColorField = value;
-                    this.OnPropertyChanged("LineColor");
-                }
-            }
-        }
-        
-        public string FillColor {
-            get {
-                return this.fillColorField;
-            }
-            set {
-                if ((this.fillColorField != null)) {
-                    if ((fillColorField.Equals(value) != true)) {
-                        this.fillColorField = value;
-                        this.OnPropertyChanged("FillColor");
-                    }
-                }
-                else {
-                    this.fillColorField = value;
-                    this.OnPropertyChanged("FillColor");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OffsetX {
-            get {
-                return this.offsetXField;
-            }
-            set {
-                if ((this.offsetXField != null)) {
-                    if ((offsetXField.Equals(value) != true)) {
-                        this.offsetXField = value;
-                        this.OnPropertyChanged("OffsetX");
-                    }
-                }
-                else {
-                    this.offsetXField = value;
-                    this.OnPropertyChanged("OffsetX");
-                }
-            }
-        }
-        
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OffsetY {
-            get {
-                return this.offsetYField;
-            }
-            set {
-                if ((this.offsetYField != null)) {
-                    if ((offsetYField.Equals(value) != true)) {
-                        this.offsetYField = value;
-                        this.OnPropertyChanged("OffsetY");
-                    }
-                }
-                else {
-                    this.offsetYField = value;
-                    this.OnPropertyChanged("OffsetY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(TextFrame));
-                }
-                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 TextFrame 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 TextFrame object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output TextFrame 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 TextFrame obj, out System.Exception exception) {
-            exception = null;
-            obj = default(TextFrame);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out TextFrame obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static TextFrame Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((TextFrame)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current TextFrame 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 TextFrame object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output TextFrame 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 TextFrame obj, out System.Exception exception) {
-            exception = null;
-            obj = default(TextFrame);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out TextFrame obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static TextFrame 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 TextFrame object
-        /// </summary>
-        public virtual TextFrame Clone() {
-            return ((TextFrame)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// Specifies how the symbol is used in the context of point features.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class PointUsage : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string angleField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originOffsetXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string originOffsetYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public PointUsage() {
-            this.angleControlField = "\'FromAngle\'";
-            this.angleField = "0.0";
-            this.originOffsetXField = "0.0";
-            this.originOffsetYField = "0.0";
-        }
-        
-        /// <summary>
-        /// Specifies how the symbol angle is defined.  This must evaluate to one of: FromAngle (default) or FromGeometry.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("\'FromAngle\'")]
-        public string AngleControl {
-            get {
-                return this.angleControlField;
-            }
-            set {
-                if ((this.angleControlField != null)) {
-                    if ((angleControlField.Equals(value) != true)) {
-                        this.angleControlField = value;
-                        this.OnPropertyChanged("AngleControl");
-                    }
-                }
-                else {
-                    this.angleControlField = value;
-                    this.OnPropertyChanged("AngleControl");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the symbol angle, in degrees.  If AngleControl evaluates to FromAngle then this specifies the absolute angle of the symbol.  If AngleControl evaluates to FromGeometry then this specifies the symbol angle relative to the geometry.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string Angle {
-            get {
-                return this.angleField;
-            }
-            set {
-                if ((this.angleField != null)) {
-                    if ((angleField.Equals(value) != true)) {
-                        this.angleField = value;
-                        this.OnPropertyChanged("Angle");
-                    }
-                }
-                else {
-                    this.angleField = value;
-                    this.OnPropertyChanged("Angle");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the horizontal offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginOffsetX {
-            get {
-                return this.originOffsetXField;
-            }
-            set {
-                if ((this.originOffsetXField != null)) {
-                    if ((originOffsetXField.Equals(value) != true)) {
-                        this.originOffsetXField = value;
-                        this.OnPropertyChanged("OriginOffsetX");
-                    }
-                }
-                else {
-                    this.originOffsetXField = value;
-                    this.OnPropertyChanged("OriginOffsetX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies the vertical offset to apply to the symbol origin, in mm.  This offset is applied before the symbol is scaled and rotated.  Defaults to 0.
-        /// </summary>
-        [System.ComponentModel.DefaultValueAttribute("0.0")]
-        public string OriginOffsetY {
-            get {
-                return this.originOffsetYField;
-            }
-            set {
-                if ((this.originOffsetYField != null)) {
-                    if ((originOffsetYField.Equals(value) != true)) {
-                        this.originOffsetYField = value;
-                        this.OnPropertyChanged("OriginOffsetY");
-                    }
-                }
-                else {
-                    this.originOffsetYField = value;
-                    this.OnPropertyChanged("OriginOffsetY");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(PointUsage));
-                }
-                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 PointUsage 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 PointUsage object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output PointUsage 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 PointUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(PointUsage);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out PointUsage obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static PointUsage Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((PointUsage)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current PointUsage 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 PointUsage object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output PointUsage 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 PointUsage obj, out System.Exception exception) {
-            exception = null;
-            obj = default(PointUsage);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out PointUsage obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static PointUsage 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 PointUsage object
-        /// </summary>
-        public virtual PointUsage Clone() {
-            return ((PointUsage)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// The optional box used to resize and reposition select graphic elements.  The graphical extent of all elements with ResizeControl set to AddToResizeBox will be added to this box, potentially causing it to grow in size.  Any change in size causes all elements with ResizeControl set to AdjustToResizeBox to be proportionally resized and repositioned.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class ResizeBox : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string sizeYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionXField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string positionYField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string growControlField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public ResizeBox() {
-            this.sizeXField = "1.0";
-            this.sizeYField = "1.0";
-            this.positionXField = "0.0";
-            this.positionYField = "0.0";
-            this.growControlField = "\'GrowInXYMaintainAspect\'";
-        }
-        
-        /// <summary>
-        /// The initial width of the resize box, in mm.  This must be greater than or equal to zero.
-        /// </summary>
-        public string SizeX {
-            get {
-                return this.sizeXField;
-            }
-            set {
-                if ((this.sizeXField != null)) {
-                    if ((sizeXField.Equals(value) != true)) {
-                        this.sizeXField = value;
-                        this.OnPropertyChanged("SizeX");
-                    }
-                }
-                else {
-                    this.sizeXField = value;
-                    this.OnPropertyChanged("SizeX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial height of the resize box, in mm.  This must be greater than or equal to zero.
-        /// </summary>
-        public string SizeY {
-            get {
-                return this.sizeYField;
-            }
-            set {
-                if ((this.sizeYField != null)) {
-                    if ((sizeYField.Equals(value) != true)) {
-                        this.sizeYField = value;
-                        this.OnPropertyChanged("SizeY");
-                    }
-                }
-                else {
-                    this.sizeYField = value;
-                    this.OnPropertyChanged("SizeY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial x-coordinate of the resize box center, in mm.
-        /// </summary>
-        public string PositionX {
-            get {
-                return this.positionXField;
-            }
-            set {
-                if ((this.positionXField != null)) {
-                    if ((positionXField.Equals(value) != true)) {
-                        this.positionXField = value;
-                        this.OnPropertyChanged("PositionX");
-                    }
-                }
-                else {
-                    this.positionXField = value;
-                    this.OnPropertyChanged("PositionX");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// The initial y-coordinate of the resize box center, in mm.
-        /// </summary>
-        public string PositionY {
-            get {
-                return this.positionYField;
-            }
-            set {
-                if ((this.positionYField != null)) {
-                    if ((positionYField.Equals(value) != true)) {
-                        this.positionYField = value;
-                        this.OnPropertyChanged("PositionY");
-                    }
-                }
-                else {
-                    this.positionYField = value;
-                    this.OnPropertyChanged("PositionY");
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Specifies how the resize box grows in size.  This must evaluate to one of: GrowInX, GrowInY, GrowInXY, or GrowInXYMaintainAspect (default).
-        /// </summary>
-        public string GrowControl {
-            get {
-                return this.growControlField;
-            }
-            set {
-                if ((this.growControlField != null)) {
-                    if ((growControlField.Equals(value) != true)) {
-                        this.growControlField = value;
-                        this.OnPropertyChanged("GrowControl");
-                    }
-                }
-                else {
-                    this.growControlField = value;
-                    this.OnPropertyChanged("GrowControl");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(ResizeBox));
-                }
-                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 ResizeBox 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 ResizeBox object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output ResizeBox 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 ResizeBox obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ResizeBox);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out ResizeBox obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static ResizeBox Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((ResizeBox)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current ResizeBox 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 ResizeBox object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output ResizeBox 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 ResizeBox obj, out System.Exception exception) {
-            exception = null;
-            obj = default(ResizeBox);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out ResizeBox obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static ResizeBox 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 ResizeBox object
-        /// </summary>
-        public virtual ResizeBox Clone() {
-            return ((ResizeBox)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CompoundSymbolDefinition))]
-    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SimpleSymbolDefinition))]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class SymbolDefinitionBase : System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string nameField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string descriptionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        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");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(SymbolDefinitionBase));
-                }
-                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 SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output SymbolDefinitionBase 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 SymbolDefinitionBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SymbolDefinitionBase);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out SymbolDefinitionBase obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static SymbolDefinitionBase Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((SymbolDefinitionBase)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output SymbolDefinitionBase 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 SymbolDefinitionBase obj, out System.Exception exception) {
-            exception = null;
-            obj = default(SymbolDefinitionBase);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out SymbolDefinitionBase obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static SymbolDefinitionBase 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 SymbolDefinitionBase object
-        /// </summary>
-        public virtual SymbolDefinitionBase Clone() {
-            return ((SymbolDefinitionBase)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
-    /// A 2D compound symbol for stylization.
-    /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    public partial class CompoundSymbolDefinition : SymbolDefinitionBase, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private BindingList<SimpleSymbol> simpleSymbolField;
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private ExtendedDataType extendedData1Field;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        [System.Xml.Serialization.XmlElementAttribute("SimpleSymbol")]
-        public BindingList<SimpleSymbol> SimpleSymbol {
-            get {
-                return this.simpleSymbolField;
-            }
-            set {
-                if ((this.simpleSymbolField != null)) {
-                    if ((simpleSymbolField.Equals(value) != true)) {
-                        this.simpleSymbolField = value;
-                        this.OnPropertyChanged("SimpleSymbol");
-                    }
-                }
-                else {
-                    this.simpleSymbolField = value;
-                    this.OnPropertyChanged("SimpleSymbol");
-                }
-            }
-        }
-        
-        public ExtendedDataType ExtendedData1 {
-            get {
-                return this.extendedData1Field;
-            }
-            set {
-                if ((this.extendedData1Field != null)) {
-                    if ((extendedData1Field.Equals(value) != true)) {
-                        this.extendedData1Field = value;
-                        this.OnPropertyChanged("ExtendedData1");
-                    }
-                }
-                else {
-                    this.extendedData1Field = value;
-                    this.OnPropertyChanged("ExtendedData1");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(CompoundSymbolDefinition));
-                }
-                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 CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition 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 CompoundSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out CompoundSymbolDefinition obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((CompoundSymbolDefinition)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition 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 CompoundSymbolDefinition obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out CompoundSymbolDefinition obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition 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 CompoundSymbolDefinition object
-        /// </summary>
-        public virtual CompoundSymbolDefinition Clone() {
-            return ((CompoundSymbolDefinition)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
-    [System.SerializableAttribute()]
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
-    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
-    [System.Xml.Serialization.XmlRootAttribute("CompoundSymbolDefinition", Namespace="", IsNullable=false)]
-    public partial class CompoundSymbolDefinition1 : CompoundSymbolDefinition, System.ComponentModel.INotifyPropertyChanged {
-        
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        private string versionField;
-        
-        private static System.Xml.Serialization.XmlSerializer serializer;
-        
-        public CompoundSymbolDefinition1() {
-            this.versionField = "1.1.0";
-        }
-        
-        [System.Xml.Serialization.XmlAttributeAttribute()]
-        public string version {
-            get {
-                return this.versionField;
-            }
-            set {
-                if ((this.versionField != null)) {
-                    if ((versionField.Equals(value) != true)) {
-                        this.versionField = value;
-                        this.OnPropertyChanged("version");
-                    }
-                }
-                else {
-                    this.versionField = value;
-                    this.OnPropertyChanged("version");
-                }
-            }
-        }
-        
-        private static System.Xml.Serialization.XmlSerializer Serializer {
-            get {
-                if ((serializer == null)) {
-                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(CompoundSymbolDefinition1));
-                }
-                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 CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        /// <param name="xml">string workflow markup to deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition1);
-            try {
-                obj = Deserialize(xml);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool Deserialize(string xml, out CompoundSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return Deserialize(xml, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition1 Deserialize(string xml) {
-            System.IO.StringReader stringReader = null;
-            try {
-                stringReader = new System.IO.StringReader(xml);
-                return ((CompoundSymbolDefinition1)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
-            }
-            finally {
-                if ((stringReader != null)) {
-                    stringReader.Dispose();
-                }
-            }
-        }
-        
-        /// <summary>
-        /// Serializes current CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        /// <param name="fileName">string xml file to load and deserialize</param>
-        /// <param name="obj">Output CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 obj, out System.Exception exception) {
-            exception = null;
-            obj = default(CompoundSymbolDefinition1);
-            try {
-                obj = LoadFromFile(fileName);
-                return true;
-            }
-            catch (System.Exception ex) {
-                exception = ex;
-                return false;
-            }
-        }
-        
-        public static bool LoadFromFile(string fileName, out CompoundSymbolDefinition1 obj) {
-            System.Exception exception = null;
-            return LoadFromFile(fileName, out obj, out exception);
-        }
-        
-        public static CompoundSymbolDefinition1 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 CompoundSymbolDefinition1 object
-        /// </summary>
-        public virtual CompoundSymbolDefinition1 Clone() {
-            return ((CompoundSymbolDefinition1)(this.MemberwiseClone()));
-        }
-        #endregion
-    }
-    
-    /// <summary>
     /// The specification of the data source and stylization for a layer.
     /// </summary>
     [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]

Modified: trunk/Tools/Maestro/Generated/WatermarkDefinition-2.3.0.designer.cs
===================================================================
--- trunk/Tools/Maestro/Generated/WatermarkDefinition-2.3.0.designer.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Generated/WatermarkDefinition-2.3.0.designer.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -522,7 +522,7 @@
         /// WatermarkDefinitionTypeContent class constructor
         /// </summary>
         public WatermarkDefinitionTypeContent() {
-            this.itemField = new SymbolDefinitionBase();
+            //this.itemField = new SymbolDefinitionBase();
         }
         
         [System.Xml.Serialization.XmlElementAttribute("CompoundSymbolDefinition", typeof(CompoundSymbolDefinition), Order=0)]

Modified: trunk/Tools/Maestro/Maestro.Base/Editor/LayerDefinitionEditor.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/LayerDefinitionEditor.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/LayerDefinitionEditor.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -89,17 +89,6 @@
             }
         }
 
-        private static bool HasCompositeRules(IVectorLayerDefinition vl)
-        {
-            foreach (var vsr in vl.VectorScaleRange)
-            {
-                var vsr3 = vsr as IVectorScaleRange3;
-                if (vsr3 != null && vsr3.CompositeStyle != null)
-                    return true;
-            }
-            return false;
-        }
-
         protected override void OnBeforeSave(object sender, CancelEventArgs e)
         {
             if (_edsvc.IsNew)

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ConditionListButtons.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ConditionListButtons.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ConditionListButtons.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -33,7 +33,7 @@
 
 namespace Maestro.Editors.LayerDefinition.Vector.Scales
 {
-    [ToolboxItem(true)]
+    [ToolboxItem(false)]
     internal partial class ConditionListButtons : UserControl
     {
         private IPointVectorStyle m_point;

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRange.designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRange.designer.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRange.designer.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -33,10 +33,10 @@
             this.MinScale = new System.Windows.Forms.ComboBox();
             this.MaxScale = new System.Windows.Forms.ComboBox();
             this.panel1 = new System.Windows.Forms.Panel();
+            this.btnElevation = new System.Windows.Forms.Button();
             this.panel2 = new System.Windows.Forms.Panel();
             this.scaleRangeConditions = new ScaleRangeConditions();
             this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
-            this.btnElevation = new System.Windows.Forms.Button();
             this.panel1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
             this.SuspendLayout();
@@ -69,6 +69,14 @@
             resources.ApplyResources(this.panel1, "panel1");
             this.panel1.Name = "panel1";
             // 
+            // btnElevation
+            // 
+            this.btnElevation.Image = global::Maestro.Editors.Properties.Resources.ruler;
+            resources.ApplyResources(this.btnElevation, "btnElevation");
+            this.btnElevation.Name = "btnElevation";
+            this.btnElevation.UseVisualStyleBackColor = true;
+            this.btnElevation.Click += new System.EventHandler(this.btnElevation_Click);
+            // 
             // panel2
             // 
             resources.ApplyResources(this.panel2, "panel2");
@@ -85,14 +93,6 @@
             // 
             this.errorProvider.ContainerControl = this;
             // 
-            // btnElevation
-            // 
-            this.btnElevation.Image = global::Maestro.Editors.Properties.Resources.ruler;
-            resources.ApplyResources(this.btnElevation, "btnElevation");
-            this.btnElevation.Name = "btnElevation";
-            this.btnElevation.UseVisualStyleBackColor = true;
-            this.btnElevation.Click += new System.EventHandler(this.btnElevation_Click);
-            // 
             // ScaleRange
             // 
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRange.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRange.resx	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRange.resx	2011-06-22 14:49:33 UTC (rev 5940)
@@ -205,7 +205,7 @@
     <value>0, 0</value>
   </data>
   <data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>160, 330</value>
+    <value>160, 462</value>
   </data>
   <data name="panel1.TabIndex" type="System.Int32, mscorlib">
     <value>3</value>
@@ -226,7 +226,7 @@
     <value>Bottom</value>
   </data>
   <data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>0, 330</value>
+    <value>0, 462</value>
   </data>
   <data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
     <value>802, 8</value>
@@ -253,7 +253,7 @@
     <value>160, 0</value>
   </data>
   <data name="scaleRangeConditions.Size" type="System.Drawing.Size, System.Drawing">
-    <value>642, 330</value>
+    <value>642, 462</value>
   </data>
   <data name="scaleRangeConditions.TabIndex" type="System.Int32, mscorlib">
     <value>0</value>
@@ -262,7 +262,7 @@
     <value>scaleRangeConditions</value>
   </data>
   <data name="&gt;&gt;scaleRangeConditions.Type" xml:space="preserve">
-    <value>Maestro.Editors.LayerDefinition.Vector.Scales.ScaleRangeConditions, Maestro.Editors, Version=3.0.0.5728, Culture=neutral, PublicKeyToken=null</value>
+    <value>Maestro.Editors.LayerDefinition.Vector.Scales.ScaleRangeConditions, Maestro.Editors, Version=3.1.0.5859, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;scaleRangeConditions.Parent" xml:space="preserve">
     <value>$this</value>
@@ -277,7 +277,7 @@
     <value>True</value>
   </metadata>
   <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
-    <value>802, 338</value>
+    <value>802, 470</value>
   </data>
   <data name="&gt;&gt;errorProvider.Name" xml:space="preserve">
     <value>errorProvider</value>

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -52,6 +52,7 @@
                 pointConditionList.Owner = m_owner;
                 lineConditionList.Owner = m_owner;
                 areaConditionList.Owner = m_owner;
+                compositeConditionList.Owner = m_owner;
             }
         }
 
@@ -71,6 +72,7 @@
                 lineConditionList.Factory = value;
                 pointConditionList.Factory = value;
                 areaConditionList.Factory = value;
+                compositeConditionList.Factory = value;
             }
         }
 
@@ -84,11 +86,16 @@
                 bool hasPoints = false;
                 bool hasLines = false;
                 bool hasAreas = false;
+                bool hasComposite = false;
                 m_hasUnsupportedItems = false;
 
                 var ps = m_vsc.PointStyle;
                 var ls = m_vsc.LineStyle;
                 var ars = m_vsc.AreaStyle;
+                ICompositeTypeStyle cs = null;
+                var vsr2 = m_vsc as IVectorScaleRange2;
+                if (vsr2 != null)
+                    cs = vsr2.CompositeStyle;
                 if (ps != null)
                 {
                     hasPoints = true;
@@ -104,12 +111,19 @@
                     hasAreas = true;
                     areaConditionList.SetItem(m_vsc, ars);
                 }
+                if (cs != null)
+                {
+                    hasComposite = true;
+                    compositeConditionList.SetItem(vsr2, cs);
+                }
 
-                m_hasUnsupportedItems = !hasPoints && !hasLines && !hasAreas;
+                m_hasUnsupportedItems = !hasPoints && !hasLines && !hasAreas && !hasComposite;
 
                 DisplayPoints.Checked = hasPoints;
                 DisplayLines.Checked = hasLines;
                 DisplayAreas.Checked = hasAreas;
+                DisplayComposite.Checked = hasComposite;
+                DisplayComposite.Visible = (vsr2 != null);
             }
             finally
             {
@@ -225,6 +239,45 @@
                 SignalItemChanged();
         }
 
+        private void DisplayComposite_CheckedChanged(object sender, EventArgs e)
+        {
+            compositeConditionList.Visible = DisplayComposite.Checked;
+            var vsr2 = m_vsc as IVectorScaleRange2;
+            if (vsr2 == null)
+                return;
+
+            if (DisplayComposite.Checked)
+            {
+                if (DisplayComposite.Tag != null)
+                {
+                    vsr2.CompositeStyle = (ICompositeTypeStyle)DisplayComposite.Tag;
+                    DisplayComposite.Tag = null;
+                }
+
+                bool hasComposite = vsr2.CompositeStyle != null;
+
+                if (!hasComposite)
+                {
+                    var cst = _factory.CreateDefaultCompositeStyle();
+                    vsr2.CompositeStyle = cst;
+                    compositeConditionList.SetItem(vsr2, cst);
+                }
+                else
+                {
+                    if (vsr2.CompositeStyle.RuleCount == 0)
+                        compositeConditionList.AddRule();
+                }
+            }
+            else
+            {
+                DisplayComposite.Tag = vsr2.CompositeStyle;
+                vsr2.CompositeStyle = null;
+            }
+
+            if (!m_isUpdating)
+                SignalItemChanged();
+        }
+
         private void SignalItemChanged()
         {
             if (ItemChanged != null)
@@ -265,6 +318,7 @@
             pointConditionList.ResizeAuto();
             lineConditionList.ResizeAuto();
             areaConditionList.ResizeAuto();
+            compositeConditionList.ResizeAuto();
             this.Height = this.GetPreferedHeight();
         }
     }

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.designer.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.designer.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -118,10 +118,12 @@
             this.DisplayComposite.CheckState = System.Windows.Forms.CheckState.Checked;
             this.DisplayComposite.Name = "DisplayComposite";
             this.DisplayComposite.UseVisualStyleBackColor = true;
+            this.DisplayComposite.CheckedChanged += new System.EventHandler(this.DisplayComposite_CheckedChanged);
             // 
             // compositeConditionList
             // 
             resources.ApplyResources(this.compositeConditionList, "compositeConditionList");
+            this.compositeConditionList.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
             this.compositeConditionList.Name = "compositeConditionList";
             this.compositeConditionList.Owner = null;
             // 

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.resx	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeConditions.resx	2011-06-22 14:49:33 UTC (rev 5940)
@@ -399,8 +399,11 @@
   <data name="&gt;&gt;DisplayComposite.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
+  <data name="compositeConditionList.AutoScroll" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="compositeConditionList.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
-    <value>Fill</value>
+    <value>Top</value>
   </data>
   <data name="compositeConditionList.Location" type="System.Drawing.Point, System.Drawing">
     <value>0, 359</value>

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeList.designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeList.designer.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeList.designer.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -67,11 +67,11 @@
             // 
             // ScaleRangeList
             // 
-            resources.ApplyResources(this, "$this");
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
             this.Controls.Add(this.ControlList);
             this.Controls.Add(this.panel1);
             this.Name = "ScaleRangeList";
+            resources.ApplyResources(this, "$this");
             this.panel1.ResumeLayout(false);
             this.panel1.PerformLayout();
             this.ResumeLayout(false);

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeList.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeList.resx	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Scales/ScaleRangeList.resx	2011-06-22 14:49:33 UTC (rev 5940)
@@ -235,7 +235,7 @@
     <value>0, 24</value>
   </data>
   <data name="ControlList.Size" type="System.Drawing.Size, System.Drawing">
-    <value>790, 377</value>
+    <value>790, 511</value>
   </data>
   <data name="ControlList.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
@@ -255,11 +255,8 @@
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
-    <value>6, 13</value>
-  </data>
   <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
-    <value>790, 401</value>
+    <value>790, 535</value>
   </data>
   <data name="&gt;&gt;$this.Name" xml:space="preserve">
     <value>ScaleRangeList</value>

Modified: trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolGraphicsCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolGraphicsCtrl.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/SymbolGraphicsCtrl.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -83,6 +83,7 @@
         {
             var text = _sym.CreateTextGraphics();
             AddGraphicsItem(text);
+            _sym.AddGraphics(text);
             new TextDialog(this, _sym, text).ShowDialog();
         }
 
@@ -90,6 +91,7 @@
         {
             var path = _sym.CreatePathGraphics();
             AddGraphicsItem(path);
+            _sym.AddGraphics(path);
             new PathDialog(this, _sym, path).ShowDialog();
         }
 
@@ -97,6 +99,7 @@
         {
             var img = _sym.CreateImageGraphics();
             AddGraphicsItem(img);
+            _sym.AddGraphics(img);
             new ImageDialog(this, _sym, img).ShowDialog();
         }
 

Modified: trunk/Tools/Maestro/Maestro.Shared.UI/ErrorDialog.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Shared.UI/ErrorDialog.resx	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/Maestro.Shared.UI/ErrorDialog.resx	2011-06-22 14:49:33 UTC (rev 5940)
@@ -183,6 +183,9 @@
   <data name="txtMessage.Multiline" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
+  <data name="txtMessage.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
+    <value>Vertical</value>
+  </data>
   <data name="txtMessage.Size" type="System.Drawing.Size, System.Drawing">
     <value>470, 53</value>
   </data>
@@ -210,6 +213,9 @@
   <data name="txtDetails.Multiline" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
+  <data name="txtDetails.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
+    <value>Both</value>
+  </data>
   <data name="txtDetails.Size" type="System.Drawing.Size, System.Drawing">
     <value>470, 210</value>
   </data>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -344,7 +344,26 @@
 #if LDF_100
             throw new NotImplementedException();
 #else
+            return new CompositeRule()
+            {
+                CompositeSymbolization = new CompositeSymbolization()
+                {
+                    
+                }
+            };
+#endif
+        }
+
+
+        public ICompositeTypeStyle CreateDefaultCompositeStyle()
+        {
+#if LDF_100
             throw new NotImplementedException();
+#else
+            return new CompositeTypeStyle()
+            {
+                CompositeRule = new System.ComponentModel.BindingList<CompositeRule>()
+            };
 #endif
         }
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -333,6 +333,8 @@
         IW2DSymbol CreateDefaultW2DSymbol(string symbolLibrary, string symbolName);
 
         ICompositeRule CreateDefaultCompositeRule();
+
+        ICompositeTypeStyle CreateDefaultCompositeStyle();
     }
 
     /// <summary>
@@ -613,15 +615,7 @@
         /// Gets or sets the elevation settings
         /// </summary>
         IElevationSettings ElevationSettings { get; set; }
-    }
 
-    /// <summary>
-    /// The stylization to be applied to the vector features for a given scale range. Supports composite styles.
-    /// 
-    /// Supported by Layer Definition 1.2.0 and higher
-    /// </summary>
-    public interface IVectorScaleRange3 : IVectorScaleRange2
-    {
         /// <summary>
         /// Gets or sets the composite style for this scale range
         /// </summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -38,7 +38,7 @@
 namespace OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_0_0
 #endif
 {
-    partial class SymbolDefinitionBase : ISymbolDefinitionBase
+    abstract partial class SymbolDefinitionBase : ISymbolDefinitionBase
     {
 #if SYM_DEF_110
         private static readonly Version RES_VERSION = new Version(1, 1, 0);
@@ -115,6 +115,9 @@
         {
             get { return true; }
         }
+
+        [XmlIgnore]
+        public abstract SymbolDefinitionType Type { get; }
     }
 
     partial class SimpleSymbolDefinition : ISimpleSymbolDefinition
@@ -321,6 +324,12 @@
         {
             return new Parameter() { };
         }
+
+        [XmlIgnore]
+        public override SymbolDefinitionType Type
+        {
+            get { return SymbolDefinitionType.Simple; }
+        }
     }
 
     public class InlineImage : IInlineImage
@@ -681,6 +690,12 @@
         {
             return new SimpleSymbol() { Item = resourceId };
         }
+
+        [XmlIgnore]
+        public override SymbolDefinitionType Type
+        {
+            get { return SymbolDefinitionType.Compound; }
+        }
     }
 
     partial class SimpleSymbol : ISimpleSymbolInlineReference, ISimpleSymbolLibraryReference

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -36,13 +36,9 @@
         /// </summary>
         Reference,
         /// <summary>
-        /// An inline simple symbol definition
+        /// An inline symbol definition
         /// </summary>
-        Simple,
-        /// <summary>
-        /// An inline compound symbol definition
-        /// </summary>
-        Compound
+        Inline
     }
 
     /// <summary>
@@ -137,7 +133,7 @@
         /// <summary>
         /// Gets or sets the inline definition
         /// </summary>
-        ISimpleSymbolDefinition SimpleSymbolDefinition { get; set; } 
+        ISymbolDefinitionBase SymbolDefinition { get; set; } 
     }
 
     /// <summary>
@@ -154,6 +150,21 @@
     #region Symbol Definition 1.0.0 interfaces
 
     /// <summary>
+    /// Indicates the type of symbol definition
+    /// </summary>
+    public enum SymbolDefinitionType
+    {
+        /// <summary>
+        /// A simple symbol definition
+        /// </summary>
+        Simple,
+        /// <summary>
+        /// A compound symbol definition
+        /// </summary>
+        Compound
+    }
+
+    /// <summary>
     /// Base interface of all symbol definitions
     /// </summary>
     public interface ISymbolDefinitionBase : IResource
@@ -169,6 +180,11 @@
         /// </summary>
         /// <value>The description.</value>
         string Description { get; set; }
+
+        /// <summary>
+        /// Gets the type of symbol definition
+        /// </summary>
+        SymbolDefinitionType Type { get; }
     }
 
     /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs	2011-06-22 12:48:03 UTC (rev 5939)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs	2011-06-22 14:49:33 UTC (rev 5940)
@@ -116,12 +116,9 @@
     }
 
     partial class VectorScaleRangeType : IVectorScaleRange
-#if LDF_110
+#if !LDF_100
         , IVectorScaleRange2
 #endif
-#if LDF_120 || LDF_130 || LDF_230
-        , IVectorScaleRange3
-#endif
     {
         #region Missing generated stuff
         [EditorBrowsable(EditorBrowsableState.Never)]
@@ -285,7 +282,7 @@
             return this.Clone();
         }
 
-#if LDF_120
+#if LDF_110 || LDF_120
         [XmlIgnore]
         public ICompositeTypeStyle CompositeStyle
         {
@@ -406,156 +403,6 @@
         }
     }
 
-    #region Composite Symbolization support (needs more work. Currently this is just to make the layer editor properly detect such features)
-
-#if LDF_120 || LDF_130 || LDF_230
-    partial class CompositeTypeStyle
-#if LDF_120
-        : ICompositeTypeStyle
-#else
-        : ICompositeTypeStyle2
-#endif
-    {
-        IEnumerable<ICompositeRule> ICompositeTypeStyle.CompositeRule
-        {
-            get 
-            {
-                foreach (var rule in this.CompositeRule)
-                {
-                    yield return rule;
-                }
-            }
-        }
-
-        public void AddCompositeRule(ICompositeRule compRule)
-        {
-            var rule = compRule as CompositeRule;
-            if (rule != null)
-            {
-                this.CompositeRule.Add(rule);
-            }
-        }
-
-        public void RemoveCompositeRule(ICompositeRule compRule)
-        {
-            var rule = compRule as CompositeRule;
-            if (rule != null)
-            {
-                this.CompositeRule.Remove(rule);
-            }
-        }
-
-        public StyleType StyleType
-        {
-            get { return StyleType.Composite; }
-        }
-
-        public int RuleCount
-        {
-            get { return this.CompositeRule.Count; }
-        }
-    }
-
-    partial class CompositeRule : ICompositeRule
-    {
-        [XmlIgnore]
-        ICompositeSymbolization ICompositeRule.CompositeSymbolization
-        {
-            get
-            {
-                return this.CompositeSymbolization;
-            }
-            set
-            {
-                this.CompositeSymbolization = (CompositeSymbolization)value;
-            }
-        }
-    }
-
-    partial class CompositeSymbolization : ICompositeSymbolization
-    {
-        IEnumerable<OSGeo.MapGuide.ObjectModels.SymbolDefinition.ISymbolInstance> ICompositeSymbolization.SymbolInstance
-        {
-            get 
-            {
-                foreach (var sym in this.SymbolInstance)
-                {
-                    yield return sym;
-                }
-            }
-        }
-
-        public void AddSymbolInstance(OSGeo.MapGuide.ObjectModels.SymbolDefinition.ISymbolInstance inst)
-        {
-            var sym = inst as SymbolInstance;
-            if (sym != null)
-                this.SymbolInstance.Add(sym);
-        }
-
-        public void RemoveSymbolInstance(OSGeo.MapGuide.ObjectModels.SymbolDefinition.ISymbolInstance inst)
-        {
-            var sym = inst as SymbolInstance;
-            if (sym != null)
-                this.SymbolInstance.Remove(sym);
-        }
-    }
-
-    partial class SymbolInstance : ISymbolInstance
-    {
-        [XmlIgnore]
-        public ISymbolInstanceReference Reference
-        {
-            get
-            {
-                throw new NotImplementedException();
-            }
-            set
-            {
-                throw new NotImplementedException();
-            }
-        }
-
-        IParameterOverrideCollection ISymbolInstance.ParameterOverrides
-        {
-            get { return this.ParameterOverrides; }
-        }
-    }
-
-    partial class ParameterOverrides : IParameterOverrideCollection
-    {
-        IEnumerable<IParameterOverride> IParameterOverrideCollection.Override
-        {
-            get
-            {
-                foreach (var ov in this.Override)
-                {
-                    yield return ov;
-                }
-            }
-        }
-
-        public void AddOverride(IParameterOverride ov)
-        {
-            var o = ov as Override;
-            if (o != null)
-                this.Override.Add(o);
-        }
-
-        public void RemoveOverride(IParameterOverride ov)
-        {
-            var o = ov as Override;
-            if (o != null)
-                this.Override.Remove(o);
-        }
-    }
-
-    partial class Override : IParameterOverride
-    {
-    }
-
-#endif
-    #endregion
-
     partial class AreaTypeStyleType : IAreaVectorStyle
 #if LDF_130 || LDF_230
         , IAreaVectorStyle2
@@ -1809,4 +1656,216 @@
             return this.VectorScaleRange[index];
         }
     }
+    #region Composite Symbolization
+#if !LDF_100
+
+    partial class CompositeRule : ICompositeRule
+    {
+        [XmlIgnore]
+        ICompositeSymbolization ICompositeRule.CompositeSymbolization
+        {
+            get
+            {
+                return this.CompositeSymbolization;
+            }
+            set
+            {
+                this.CompositeSymbolization = (CompositeSymbolization)value;
+            }
+        }
+    }
+
+    partial class CompositeSymbolization : ICompositeSymbolization
+    {
+        [XmlIgnore]
+        IEnumerable<ISymbolInstance> ICompositeSymbolization.SymbolInstance
+        {
+            get 
+            {
+                foreach (var sym in this.SymbolInstance)
+                {
+                    yield return sym;
+                }
+            }
+        }
+
+        public void AddSymbolInstance(ISymbolInstance inst)
+        {
+            var sym = inst as SymbolInstance;
+            if (sym != null)
+                this.SymbolInstance.Add(sym);
+        }
+
+        public void RemoveSymbolInstance(ISymbolInstance inst)
+        {
+            var sym = inst as SymbolInstance;
+            if (sym != null)
+                this.SymbolInstance.Remove(sym);
+        }
+    }
+
+    partial class SymbolInstance : ISymbolInstance
+    {
+        [XmlIgnore]
+        IParameterOverrideCollection ISymbolInstance.ParameterOverrides
+        {
+            get { return this.ParameterOverrides; }
+        }
+
+        [XmlIgnore]
+        public ISymbolInstanceReference Reference
+        {
+            get
+            {
+                var libId = this.Item as string;
+#if LDF_110
+                var simpSym = this.Item as OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_0_0.SimpleSymbolDefinition;
+                var compSym = this.Item as OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_0_0.CompoundSymbolDefinition;
+#else
+                var simpSym = this.Item as OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_1_0.SimpleSymbolDefinition;
+                var compSym = this.Item as OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_1_0.CompoundSymbolDefinition;
+#endif
+                if (libId != null)
+                    return new SymbolInstanceLibrary() { ResourceId = libId };
+                else if (simpSym != null)
+                    return new SymbolInstanceInline() { SymbolDefinition = simpSym };
+                else if (compSym != null)
+                    return new SymbolInstanceInline() { SymbolDefinition = compSym };
+                return null;
+            }
+            set
+            {
+                var sr = value as ISymbolLibraryReference;
+                var ir = value as IInlineSimpleSymbolReference;
+                if (sr != null)
+                {
+                    this.Item = sr.ResourceId;
+                }
+                else if (ir != null)
+                {
+#if LDF_110
+                    if (ir.SymbolDefinition.Type == SymbolDefinitionType.Simple)
+                        this.Item = (OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_0_0.SimpleSymbolDefinition)ir.SymbolDefinition;
+                    else if (ir.SymbolDefinition.Type == SymbolDefinitionType.Compound)
+                        this.Item = (OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_0_0.CompoundSymbolDefinition)ir.SymbolDefinition;
+#else
+                    if (ir.SymbolDefinition.Type == SymbolDefinitionType.Simple)
+                        this.Item = (OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_1_0.SimpleSymbolDefinition)ir.SymbolDefinition;
+                    else if (ir.SymbolDefinition.Type == SymbolDefinitionType.Compound)
+                        this.Item = (OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_1_0.CompoundSymbolDefinition)ir.SymbolDefinition;
+#endif
+                }
+                this.Item = null;
+            }
+        }
+    }
+
+    partial class SymbolInstanceLibrary : ISymbolLibraryReference
+    {
+        [XmlIgnore]
+        public string ResourceId
+        {
+            get;
+            set;
+        }
+
+        [XmlIgnore]
+        public SymbolInstanceType Type
+        {
+            get { return SymbolInstanceType.Reference; }
+        }
+    }
+
+    partial class SymbolInstanceInline : IInlineSimpleSymbolReference
+    {
+        [XmlIgnore]
+        public ISymbolDefinitionBase SymbolDefinition
+        {
+            get;
+            set;
+        }
+
+        [XmlIgnore]
+        public SymbolInstanceType Type
+        {
+            get { return SymbolInstanceType.Inline; }
+        }
+    }
+
+    partial class ParameterOverrides : IParameterOverrideCollection
+    {
+        [XmlIgnore]
+        IEnumerable<IParameterOverride> IParameterOverrideCollection.Override
+        {
+            get 
+            {
+                foreach (var ov in this.Override)
+                {
+                    yield return ov;
+                }
+            }
+        }
+
+        public void AddOverride(IParameterOverride ov)
+        {
+            var o = ov as Override;
+            if (o != null)
+                this.Override.Add(o);
+        }
+
+        public void RemoveOverride(IParameterOverride ov)
+        {
+            var o = ov as Override;
+            if (o != null)
+                this.Override.Remove(o);
+        }
+    }
+
+    partial class Override : IParameterOverride
+    {
+
+    }
+
+    partial class CompositeTypeStyle : ICompositeTypeStyle
+    {
+        [XmlIgnore]
+        IEnumerable<ICompositeRule> ICompositeTypeStyle.CompositeRule
+        {
+            get 
+            {
+                foreach (var cr in this.CompositeRule)
+                {
+                    yield return cr;
+                }
+            }
+        }
+
+        public void AddCompositeRule(ICompositeRule compRule)
+        {
+            var cr = compRule as CompositeRule;
+            if (cr != null)
+                this.CompositeRule.Add(cr);
+        }
+
+        public void RemoveCompositeRule(ICompositeRule compRule)
+        {
+            var cr = compRule as CompositeRule;
+            if (cr != null)
+                this.CompositeRule.Remove(cr);
+        }
+
+        [XmlIgnore]
+        public StyleType StyleType
+        {
+            get { return StyleType.Composite; }
+        }
+
+        [XmlIgnore]
+        public int RuleCount
+        {
+            get { return this.CompositeRule.Count; }
+        }
+    }
+#endif
+    #endregion
 }



More information about the mapguide-commits mailing list