[mapguide-commits] r4918 - in sandbox/maestro-2.5/Thirdparty: . Xsd2Code Xsd2Code/Xsd2Code.Addin Xsd2Code/Xsd2Code.Console Xsd2Code/Xsd2Code.Console/Properties Xsd2Code/Xsd2Code.Console/Resources Xsd2Code/Xsd2Code.CustomTool Xsd2Code/Xsd2Code.CustomTool/Properties Xsd2Code/Xsd2Code.Library Xsd2Code/Xsd2Code.Library/Extensions Xsd2Code/Xsd2Code.Library/Helpers Xsd2Code/Xsd2Code.Library/Properties Xsd2Code/Xsd2Code.Setup Xsd2Code/Xsd2Code.SetupLibrary Xsd2Code/Xsd2Code.SetupLibrary/Properties Xsd2Code/Xsd2Code.SetupLibrary/bin Xsd2Code/Xsd2Code.SetupLibrary/bin/Debug Xsd2Code/Xsd2Code.TestUnit Xsd2Code/Xsd2Code.TestUnit/Properties Xsd2Code/Xsd2Code.TestUnit/xsd

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri May 21 03:18:49 EDT 2010


Author: jng
Date: 2010-05-21 03:18:48 -0400 (Fri, 21 May 2010)
New Revision: 4918

Added:
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/AssemblyInfo.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/CommandBar.resx
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Connect.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.Designer.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.resx
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.AddIn.AddIn
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.Addin.csproj
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.Addin.csproj.vspscc
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/App.ico
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/AssemblyInfo.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/EntryPoint.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Properties/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Properties/Resources.Designer.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Properties/Resources.resx
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Help.txt
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/License.W120F.txt
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/License.txt
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Readme.txt
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Readme.xps
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Xsd2Code.csproj
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Xsd2Code.csproj.vspscc
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/CustomTool.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Properties/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Properties/AssemblyInfo.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Xsd2Code.CustomTool.csproj
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Xsd2Code.CustomTool.csproj.vspscc
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/app.config
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/key.snk
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/AssemblyInfo.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/ChangeLog.txt
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CodeBase.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CodeDomProviderFactory.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CollectionType.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtension.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtensionAttribute.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtensionFactory.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net20Extension.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net30Extension.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net35Extension.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/SilverlightExtension.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GenerationLanguage.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Generator.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorContext.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorFacade.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorFactory.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorParams.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/CodeDomHelper.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/CodeDomProviderFactory.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Message.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/MessageSubtype.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/MessageType.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Messages.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Result.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Utility.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/XmlHelper.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/ICodeExtension.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/NamespaceParam.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Properties/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Properties/Resources.Designer.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Properties/Resources.resx
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/TargetFramework.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Xsd2Code.Library.csproj
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Xsd2Code.Library.csproj.vspscc
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/key.snk
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/Xsd2Code.Setup.vdproj
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/Xsd2Code.Setup.vdproj.vspscc
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/banner.jpg
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Properties/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Properties/AssemblyInfo.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2Code.SetupLibrary.csproj
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2Code.SetupLibrary.csproj.vspscc
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2CodeInstaller.Designer.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2CodeInstaller.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/bin/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/bin/Debug/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/bin/Debug/Xsd2Code.SetupLibrary.dll
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/App.config
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/AssemblyInfo.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/Resources.Designer.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/Resources.resx
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/UnitTest.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Xsd2Code.TestUnit.csproj
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Xsd2Code.TestUnit.csproj.vspscc
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Actor.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ArrayOfArray.Designer.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ArrayOfArray.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ChoiceSequence.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Circular.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/CircularClassReference.Designer.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/CircularClassReference.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Gender.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Gender.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Hierarchical.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Hierarchical.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ReproSchema.Designer.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ReproSchema.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/StackOverFlow.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/TestAnnotations.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.Designer.cs
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.xsd
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.xsx
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.sln
   sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.vsmdi
Log:
Add Xsd2Code 3.3 beta 2 (http://xsd2code.codeplex.com) to Thirdparty

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/AssemblyInfo.cs
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/AssemblyInfo.cs
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/CommandBar.resx
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/CommandBar.resx	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/CommandBar.resx	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,442 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  
+	<data name="enAction">			<value xml:space="preserve">Action</value></data>
+	<data name="enAddins">			<value xml:space="preserve">Addins</value></data>
+	<data name="enBuild">			<value xml:space="preserve">Build</value></data>
+	<data name="enClass Diagram">	<value xml:space="preserve">Class Diagram</value></data>
+	<data name="enCommunity">		<value xml:space="preserve">Community</value></data>
+	<data name="enData">			<value xml:space="preserve">Data</value></data>
+	<data name="enDatabase">		<value xml:space="preserve">Database</value></data>
+	<data name="enDatabase Diagram"><value xml:space="preserve">Database Diagram</value></data>
+	<data name="enDebug">			<value xml:space="preserve">Debug</value></data>
+	<data name="enAnalyze">		<value xml:space="preserve">Analyze</value></data>
+	<data name="enDiagram">			<value xml:space="preserve">Diagram</value></data>
+	<data name="enEdit">			<value xml:space="preserve">Edit</value></data>
+	<data name="enFile">			<value xml:space="preserve">File</value></data>
+	<data name="enFormat">			<value xml:space="preserve">Format</value></data>
+	<data name="enFrames">			<value xml:space="preserve">Frames</value></data>
+	<data name="enHelp">			<value xml:space="preserve">Help</value></data>
+	<data name="enImage">			<value xml:space="preserve">Image</value></data>
+	<data name="enLayout">			<value xml:space="preserve">Layout</value></data>
+	<data name="enMacros">			<value xml:space="preserve">Macros</value></data>
+	<data name="enProject">			<value xml:space="preserve">Project</value></data>
+	<data name="enQuery">			<value xml:space="preserve">Query</value></data>
+	<data name="enQuery Designer">	<value xml:space="preserve">Query Designer</value></data>
+	<data name="enRefactor">		<value xml:space="preserve">Refactor</value></data>
+	<data name="enReport">			<value xml:space="preserve">Report</value></data>
+	<data name="enResources">		<value xml:space="preserve">Resources</value></data>
+	<data name="enSchema">			<value xml:space="preserve">Schema</value></data>
+	<data name="enStyles">			<value xml:space="preserve">Styles</value></data>
+	<data name="enTeam">			<value xml:space="preserve">Team</value></data>
+	<data name="enTable">			<value xml:space="preserve">Table</value></data>
+	<data name="enTable Designer">	<value xml:space="preserve">Table Designer</value></data>
+	<data name="enTest">			<value xml:space="preserve">Test</value></data>
+	<data name="enTools">			<value xml:space="preserve">Tools</value></data>
+	<data name="enView">			<value xml:space="preserve">View</value></data>
+	<data name="enWindow">			<value xml:space="preserve">Window</value></data>
+	<data name="enXML">				<value xml:space="preserve">XML</value></data>
+
+	<data name="jaAction">			<value xml:space="preserve">操作</value></data>
+	<data name="jaAddins">			<value xml:space="preserve">アドイン</value></data>
+	<data name="jaBuild">			<value xml:space="preserve">ビルド</value></data>
+	<data name="jaClass Diagram">	<value xml:space="preserve">クラス ダイアグラム</value></data>
+	<data name="jaCommunity">		<value xml:space="preserve">コミュニティ</value></data>
+	<data name="jaData">			<value xml:space="preserve">データ</value></data>
+	<data name="jaDatabase">		<value xml:space="preserve">データベース</value></data>
+	<data name="jaDatabase Diagram"><value xml:space="preserve">データベース ダイアグラム</value></data>
+	<data name="jaDebug">			<value xml:space="preserve">デバッグ</value></data>
+	<data name="jaAnalyze">			<value xml:space="preserve">分析</value></data>
+	<data name="jaDiagram">			<value xml:space="preserve">ダイアグラム</value></data>
+	<data name="jaEdit">			<value xml:space="preserve">編集</value></data>
+	<data name="jaFile">			<value xml:space="preserve">ファイル</value></data>
+	<data name="jaFormat">			<value xml:space="preserve">書式</value></data>
+	<data name="jaFrames">			<value xml:space="preserve">フレーム</value></data>
+	<data name="jaHelp">			<value xml:space="preserve">ヘルプ</value></data>
+	<data name="jaImage">			<value xml:space="preserve">イメージ</value></data>
+	<data name="jaLayout">			<value xml:space="preserve">レイアウト</value></data>
+	<data name="jaMacros">			<value xml:space="preserve">マクロ</value></data>
+	<data name="jaProject">			<value xml:space="preserve">プロジェクト</value></data>
+	<data name="jaQuery">			<value xml:space="preserve">クエリ</value></data>
+	<data name="jaQuery Designer">	<value xml:space="preserve">クエリ デザイナ</value></data>
+	<data name="jaRefactor">		<value xml:space="preserve">リファクタ</value></data>
+	<data name="jaReport">		<value xml:space="preserve">レポート</value></data>
+	<data name="jaResources">		<value xml:space="preserve">リソース</value></data>
+	<data name="jaSchema">			<value xml:space="preserve">スキーマ</value></data>
+	<data name="jaStyles">			<value xml:space="preserve">スタイル</value></data>
+	<data name="jaTeam">			<value xml:space="preserve">チーム</value></data>
+	<data name="jaTable">			<value xml:space="preserve">テーブル</value></data>
+	<data name="jaTable Designer">	<value xml:space="preserve">テーブル デザイナ</value></data>
+	<data name="jaTest">			<value xml:space="preserve">テスト</value></data>
+	<data name="jaTools">			<value xml:space="preserve">ツール</value></data>
+	<data name="jaView">			<value xml:space="preserve">表示</value></data>
+	<data name="jaWindow">			<value xml:space="preserve">ウィンドウ</value></data>
+	<data name="jaXML">				<value xml:space="preserve">XML</value></data>
+
+	<data name="deAction">			<value xml:space="preserve">Aktion</value></data>
+	<data name="deAddins">			<value xml:space="preserve">Add-Ins</value></data>
+	<data name="deBuild">			<value xml:space="preserve">Erstellen</value></data>
+	<data name="deClass Diagram">	<value xml:space="preserve">Klassendiagramm</value></data>
+	<data name="deCommunity">		<value xml:space="preserve">Community</value></data>
+	<data name="deData">			<value xml:space="preserve">Daten</value></data>
+	<data name="deDatabase">		<value xml:space="preserve">Datenbank</value></data>
+	<data name="deDatabase Diagram"><value xml:space="preserve">Datenbankdiagramm</value></data>
+	<data name="deDebug">			<value xml:space="preserve">Debuggen</value></data>
+	<data name="deAnalyze">			<value xml:space="preserve">Analysieren</value></data>
+	<data name="deDiagram">			<value xml:space="preserve">Diagramm</value></data>
+	<data name="deEdit">			<value xml:space="preserve">Bearbeiten</value></data>
+	<data name="deFile">			<value xml:space="preserve">Datei</value></data>
+	<data name="deFormat">			<value xml:space="preserve">Format</value></data>
+	<data name="deFrames">			<value xml:space="preserve">Rahmen</value></data>
+	<data name="deHelp">			<value xml:space="preserve">Hilfe</value></data>
+	<data name="deImage">			<value xml:space="preserve">Bild</value></data>
+	<data name="deLayout">			<value xml:space="preserve">Layout</value></data>
+	<data name="deMacros">			<value xml:space="preserve">Makros</value></data>
+	<data name="deProject">			<value xml:space="preserve">Projekt</value></data>
+	<data name="deQuery">			<value xml:space="preserve">Query</value></data>
+	<data name="deQuery Designer">	<value xml:space="preserve">Abfrage-Designer</value></data>
+	<data name="deRefactor">		<value xml:space="preserve">Umgestalten</value></data>
+	<data name="deReport">		<value xml:space="preserve">Bericht</value></data>
+	<data name="deResources">		<value xml:space="preserve">Ressourcen</value></data>
+	<data name="deSchema">			<value xml:space="preserve">Schema</value></data>
+	<data name="deStyles">			<value xml:space="preserve">Formate</value></data>
+	<data name="deTeam">			<value xml:space="preserve">Team</value></data>
+	<data name="deTable">			<value xml:space="preserve">Tabelle</value></data>
+	<data name="deTable Designer">	<value xml:space="preserve">Tabellen-Designer</value></data>
+	<data name="deTest">			<value xml:space="preserve">Testen</value></data>
+	<data name="deTools">			<value xml:space="preserve">Extras</value></data>
+	<data name="deView">			<value xml:space="preserve">Ansicht</value></data>
+	<data name="deWindow">			<value xml:space="preserve">Fenster</value></data>
+	<data name="deXML">				<value xml:space="preserve">XML</value></data>
+
+	<data name="esAction">			<value xml:space="preserve">Acción</value></data>
+	<data name="esAddins">			<value xml:space="preserve">Complementos</value></data>
+	<data name="esBuild">			<value xml:space="preserve">Generar</value></data>
+	<data name="esClass Diagram">	<value xml:space="preserve">Diagrama de clase</value></data>
+	<data name="esCommunity">		<value xml:space="preserve">Comunidad</value></data>
+	<data name="esData">			<value xml:space="preserve">Datos</value></data>
+	<data name="esDatabase">		<value xml:space="preserve">Base de datos</value></data>
+	<data name="esDatabase Diagram"><value xml:space="preserve">Diagrama de base de datos</value></data>
+	<data name="esDebug">			<value xml:space="preserve">Depurar</value></data>
+	<data name="esAnalyze">			<value xml:space="preserve">Analizar</value></data>
+	<data name="esDiagram">			<value xml:space="preserve">Diagrama</value></data>
+	<data name="esEdit">			<value xml:space="preserve">Editar</value></data>
+	<data name="esFile">			<value xml:space="preserve">Archivo</value></data>
+	<data name="esFormat">			<value xml:space="preserve">Formato</value></data>
+	<data name="esFrames">			<value xml:space="preserve">Marcos</value></data>
+	<data name="esHelp">			<value xml:space="preserve">Ayuda</value></data>
+	<data name="esImage">			<value xml:space="preserve">Imagen</value></data>
+	<data name="esLayout">			<value xml:space="preserve">Diseño</value></data>
+	<data name="esMacros">			<value xml:space="preserve">Macros</value></data>
+	<data name="esProject">			<value xml:space="preserve">Proyecto</value></data>
+	<data name="esQuery">			<value xml:space="preserve">Consulta</value></data>
+	<data name="esQuery Designer">	<value xml:space="preserve">Diseñador de consultas</value></data>
+	<data name="esRefactor">		<value xml:space="preserve">Refactorizar</value></data>
+	<data name="esReport">		<value xml:space="preserve">Informe</value></data>
+	<data name="esResources">		<value xml:space="preserve">Recursos</value></data>
+	<data name="esSchema">			<value xml:space="preserve">Esquema</value></data>
+	<data name="esStyles">			<value xml:space="preserve">Estilos</value></data>
+	<data name="esTeam">			<value xml:space="preserve">Equipo</value></data>
+	<data name="esTable">			<value xml:space="preserve">Tabla</value></data>
+	<data name="esTable Designer">	<value xml:space="preserve">Diseñador de tablas</value></data>
+	<data name="esTest">			<value xml:space="preserve">Prueba</value></data>
+	<data name="esTools">			<value xml:space="preserve">Herramientas</value></data>
+	<data name="esView">			<value xml:space="preserve">Ver</value></data>
+	<data name="esWindow">			<value xml:space="preserve">Ventana</value></data>
+	<data name="esXML">				<value xml:space="preserve">XML</value></data>
+
+	<data name="frAction">			<value xml:space="preserve">Action</value></data>
+	<data name="frAddins">			<value xml:space="preserve">Compléments</value></data>
+	<data name="frBuild">			<value xml:space="preserve">Générer</value></data>
+	<data name="frClass Diagram">	<value xml:space="preserve">Diagramme de classes</value></data>
+	<data name="frCommunity">		<value xml:space="preserve">Communauté</value></data>
+	<data name="frData">			<value xml:space="preserve">Données</value></data>
+	<data name="frDatabase">		<value xml:space="preserve">Base de données</value></data>
+	<data name="frDatabase Diagram"><value xml:space="preserve">Schéma de base de données</value></data>
+	<data name="frDebug">			<value xml:space="preserve">Déboguer</value></data>
+	<data name="frAnalyze">			<value xml:space="preserve">Analyser</value></data>
+	<data name="frDiagram">			<value xml:space="preserve">Schéma</value></data>
+	<data name="frEdit">			<value xml:space="preserve">Modifier</value></data>
+	<data name="frFile">			<value xml:space="preserve">Fichier</value></data>
+	<data name="frFormat">			<value xml:space="preserve">Format</value></data>
+	<data name="frFrames">			<value xml:space="preserve">Frames</value></data>
+	<data name="frHelp">			<value xml:space="preserve">?</value></data>
+	<data name="frImage">			<value xml:space="preserve">Image</value></data>
+	<data name="frLayout">			<value xml:space="preserve">Disposition</value></data>
+	<data name="frMacros">			<value xml:space="preserve">Macros</value></data>
+	<data name="frProject">			<value xml:space="preserve">Projet</value></data>
+	<data name="frQuery">			<value xml:space="preserve">Requête</value></data>
+	<data name="frQuery Designer">	<value xml:space="preserve">Concepteur de requêtes</value></data>
+	<data name="frRefactor">		<value xml:space="preserve">Refactoriser</value></data>
+	<data name="frReport">		<value xml:space="preserve">Rapport</value></data>
+	<data name="frResources">		<value xml:space="preserve">Ressources</value></data>
+	<data name="frSchema">			<value xml:space="preserve">Schéma</value></data>
+	<data name="frStyles">			<value xml:space="preserve">Styles</value></data>
+	<data name="frTeam">			<value xml:space="preserve">équipe</value></data>
+	<data name="frTable">			<value xml:space="preserve">Tableau</value></data>
+	<data name="frTable Designer">	<value xml:space="preserve">Concepteur de tables</value></data>
+	<data name="frTest">			<value xml:space="preserve">Test</value></data>
+	<data name="frTools">			<value xml:space="preserve">Outils</value></data>
+	<data name="frView">			<value xml:space="preserve">Affichage</value></data>
+	<data name="frWindow">			<value xml:space="preserve">Fenêtre</value></data>
+	<data name="frXML">				<value xml:space="preserve">XML</value></data>
+
+	<data name="itAction">			<value xml:space="preserve">Azione</value></data>
+	<data name="itAddins">			<value xml:space="preserve">Componenti aggiuntivi</value></data>
+	<data name="itBuild">			<value xml:space="preserve">Genera</value></data>
+	<data name="itClass Diagram">	<value xml:space="preserve">Diagramma classi</value></data>
+	<data name="itCommunity">		<value xml:space="preserve">Comunità</value></data>
+	<data name="itData">			<value xml:space="preserve">Dati</value></data>
+	<data name="itDatabase">		<value xml:space="preserve">Database</value></data>
+	<data name="itDatabase Diagram"><value xml:space="preserve">Diagramma database</value></data>
+	<data name="itDebug">			<value xml:space="preserve">Debug</value></data>
+	<data name="itAnalyze">			<value xml:space="preserve">Analizza</value></data>
+	<data name="itDiagram">			<value xml:space="preserve">Diagramma</value></data>
+	<data name="itEdit">			<value xml:space="preserve">Modifica</value></data>
+	<data name="itFile">			<value xml:space="preserve">File</value></data>
+	<data name="itFormat">			<value xml:space="preserve">Formato</value></data>
+	<data name="itFrames">			<value xml:space="preserve">Frame</value></data>
+	<data name="itHelp">			<value xml:space="preserve">?</value></data>
+	<data name="itImage">			<value xml:space="preserve">Immagine</value></data>
+	<data name="itLayout">			<value xml:space="preserve">Layout</value></data>
+	<data name="itMacros">			<value xml:space="preserve">Macro</value></data>
+	<data name="itProject">			<value xml:space="preserve">Progetto</value></data>
+	<data name="itQuery">			<value xml:space="preserve">Query</value></data>
+	<data name="itQuery Designer">	<value xml:space="preserve">Progettazione query</value></data>
+	<data name="itRefactor">		<value xml:space="preserve">Effettua refactoring</value></data>
+	<data name="itReport">		<value xml:space="preserve">Report</value></data>
+	<data name="itResources">		<value xml:space="preserve">Risorse</value></data>
+	<data name="itSchema">			<value xml:space="preserve">Schema</value></data>
+	<data name="itStyles">			<value xml:space="preserve">Stili</value></data>
+	<data name="itTeam">			<value xml:space="preserve">Team</value></data>
+	<data name="itTable">			<value xml:space="preserve">Tabella</value></data>
+	<data name="itTable Designer">	<value xml:space="preserve">Progettazione tabelle</value></data>
+	<data name="itTest">			<value xml:space="preserve">Prova</value></data>
+	<data name="itTools">			<value xml:space="preserve">Strumenti</value></data>
+	<data name="itView">			<value xml:space="preserve">Visualizza</value></data>
+	<data name="itWindow">			<value xml:space="preserve">Finestra</value></data>
+	<data name="itXML">				<value xml:space="preserve">XML</value></data>
+
+	<data name="koAction">			<value xml:space="preserve">작업</value></data>
+	<data name="koAddins">			<value xml:space="preserve">추가 기능</value></data>
+	<data name="koBuild">			<value xml:space="preserve">빌드</value></data>
+	<data name="koClass Diagram">	<value xml:space="preserve">클래스 다이어그램</value></data>
+	<data name="koCommunity">		<value xml:space="preserve">커뮤니티</value></data>
+	<data name="koData">			<value xml:space="preserve">데이터</value></data>
+	<data name="koDatabase">		<value xml:space="preserve">데이터베이스</value></data>
+	<data name="koDatabase Diagram"><value xml:space="preserve">데이터베이스 다이어그램</value></data>
+	<data name="koDebug">			<value xml:space="preserve">디버그</value></data>
+	<data name="koAnalyze">			<value xml:space="preserve">분석</value></data>
+	<data name="koDiagram">			<value xml:space="preserve">다이어그램</value></data>
+	<data name="koEdit">			<value xml:space="preserve">편집</value></data>
+	<data name="koFile">			<value xml:space="preserve">파일</value></data>
+	<data name="koFormat">			<value xml:space="preserve">서식</value></data>
+	<data name="koFrames">			<value xml:space="preserve">프레임</value></data>
+	<data name="koHelp">			<value xml:space="preserve">도움말</value></data>
+	<data name="koImage">			<value xml:space="preserve">이미지</value></data>
+	<data name="koLayout">			<value xml:space="preserve">레이아웃</value></data>
+	<data name="koMacros">			<value xml:space="preserve">매크로</value></data>
+	<data name="koProject">			<value xml:space="preserve">프로젝트</value></data>
+	<data name="koQuery">			<value xml:space="preserve">쿼리</value></data>
+	<data name="koQuery Designer">	<value xml:space="preserve">쿼리 디자이너</value></data>
+	<data name="koRefactor">		<value xml:space="preserve">리팩터링</value></data>
+	<data name="koReport">		<value xml:space="preserve">보고서</value></data>
+	<data name="koResources">		<value xml:space="preserve">리소스</value></data>
+	<data name="koSchema">			<value xml:space="preserve">스키마</value></data>
+	<data name="koStyles">			<value xml:space="preserve">스타일</value></data>
+	<data name="koTeam">			<value xml:space="preserve">팀</value></data>
+	<data name="koTable">			<value xml:space="preserve">테이블</value></data>
+	<data name="koTable Designer">	<value xml:space="preserve">테이블 디자이너</value></data>
+	<data name="koTest">			<value xml:space="preserve">테스트</value></data>
+	<data name="koTools">			<value xml:space="preserve">도구</value></data>
+	<data name="koView">			<value xml:space="preserve">뷰</value></data>
+	<data name="koWindow">			<value xml:space="preserve">창</value></data>
+	<data name="koXML">				<value xml:space="preserve">XML</value></data>
+
+	<data name="zh-CHSAction">			<value xml:space="preserve">操作</value></data>
+	<data name="zh-CHSAddins">			<value xml:space="preserve">外接程序</value></data>
+	<data name="zh-CHSBuild">			<value xml:space="preserve">生成</value></data>
+	<data name="zh-CHSClass Diagram">	<value xml:space="preserve">类关系图</value></data>
+	<data name="zh-CHSCommunity">		<value xml:space="preserve">社区</value></data>
+	<data name="zh-CHSData">			<value xml:space="preserve">数据</value></data>
+	<data name="zh-CHSDatabase">		<value xml:space="preserve">数据库</value></data>
+	<data name="zh-CHSDatabase Diagram"><value xml:space="preserve">数据库关系图</value></data>
+	<data name="zh-CHSDebug">			<value xml:space="preserve">调试</value></data>
+	<data name="zh-CHSAnalyze">			<value xml:space="preserve">分析</value></data>
+	<data name="zh-CHSDiagram">			<value xml:space="preserve">关系图</value></data>
+	<data name="zh-CHSEdit">			<value xml:space="preserve">编辑</value></data>
+	<data name="zh-CHSFile">			<value xml:space="preserve">文件</value></data>
+	<data name="zh-CHSFormat">			<value xml:space="preserve">格式</value></data>
+	<data name="zh-CHSFrames">			<value xml:space="preserve">框架</value></data>
+	<data name="zh-CHSHelp">			<value xml:space="preserve">帮助</value></data>
+	<data name="zh-CHSImage">			<value xml:space="preserve">图像</value></data>
+	<data name="zh-CHSLayout">			<value xml:space="preserve">布局</value></data>
+	<data name="zh-CHSMacros">			<value xml:space="preserve">宏</value></data>
+	<data name="zh-CHSProject">			<value xml:space="preserve">项目</value></data>
+	<data name="zh-CHSQuery">			<value xml:space="preserve">查询</value></data>
+	<data name="zh-CHSQuery Designer">	<value xml:space="preserve">查询设计器</value></data>
+	<data name="zh-CHSRefactor">		<value xml:space="preserve">重构</value></data>
+	<data name="zh-CHSReport">		<value xml:space="preserve">报表</value></data>
+	<data name="zh-CHSResources">		<value xml:space="preserve">资源</value></data>
+	<data name="zh-CHSSchema">			<value xml:space="preserve">架构</value></data>
+	<data name="zh-CHSStyles">			<value xml:space="preserve">样式</value></data>
+	<data name="zh-CHSTeam">			<value xml:space="preserve">工作组</value></data>
+	<data name="zh-CHSTable">			<value xml:space="preserve">表</value></data>
+	<data name="zh-CHSTable Designer">	<value xml:space="preserve">表设计器</value></data>
+	<data name="zh-CHSTest">			<value xml:space="preserve">测试</value></data>
+	<data name="zh-CHSTools">			<value xml:space="preserve">工具</value></data>
+	<data name="zh-CHSView">			<value xml:space="preserve">视图</value></data>
+	<data name="zh-CHSWindow">			<value xml:space="preserve">窗口</value></data>
+	<data name="zh-CHSXML">				<value xml:space="preserve">XML</value></data>
+
+	<data name="zh-CHTAction">			<value xml:space="preserve">動作</value></data>
+	<data name="zh-CHTAddins">			<value xml:space="preserve">增益集</value></data>
+	<data name="zh-CHTBuild">			<value xml:space="preserve">建置</value></data>
+	<data name="zh-CHTClass Diagram">	<value xml:space="preserve">類別圖表</value></data>
+	<data name="zh-CHTCommunity">		<value xml:space="preserve">社群</value></data>
+	<data name="zh-CHTData">			<value xml:space="preserve">資料</value></data>
+	<data name="zh-CHTDatabase">		<value xml:space="preserve">資料庫</value></data>
+	<data name="zh-CHTDatabase Diagram"><value xml:space="preserve">資料庫圖表</value></data>
+	<data name="zh-CHTDebug">			<value xml:space="preserve">偵錯</value></data>
+	<data name="zh-CHTAnalyze">			<value xml:space="preserve">分析</value></data>
+	<data name="zh-CHTDiagram">			<value xml:space="preserve">圖表</value></data>
+	<data name="zh-CHTEdit">			<value xml:space="preserve">編輯</value></data>
+	<data name="zh-CHTFile">			<value xml:space="preserve">檔案</value></data>
+	<data name="zh-CHTFormat">			<value xml:space="preserve">格式</value></data>
+	<data name="zh-CHTFrames">			<value xml:space="preserve">框架</value></data>
+	<data name="zh-CHTHelp">			<value xml:space="preserve">說明</value></data>
+	<data name="zh-CHTImage">			<value xml:space="preserve">影像</value></data>
+	<data name="zh-CHTLayout">			<value xml:space="preserve">配置</value></data>
+	<data name="zh-CHTMacros">			<value xml:space="preserve">巨集</value></data>
+	<data name="zh-CHTProject">			<value xml:space="preserve">專案</value></data>
+	<data name="zh-CHTQuery">			<value xml:space="preserve">查詢</value></data>
+	<data name="zh-CHTQuery Designer">	<value xml:space="preserve">查詢設計工具</value></data>
+	<data name="zh-CHTRefactor">		<value xml:space="preserve">重整</value></data>
+	<data name="zh-CHTReport">		<value xml:space="preserve">報表</value></data>
+	<data name="zh-CHTResources">		<value xml:space="preserve">資源</value></data>
+	<data name="zh-CHTSchema">			<value xml:space="preserve">結構描述</value></data>
+	<data name="zh-CHTStyles">			<value xml:space="preserve">樣式</value></data>
+	<data name="zh-CHTTeam">			<value xml:space="preserve">小組</value></data>
+	<data name="zh-CHTTable">			<value xml:space="preserve">資料表</value></data>
+	<data name="zh-CHTTable Designer">	<value xml:space="preserve">資料表設計工具</value></data>
+	<data name="zh-CHTTest">			<value xml:space="preserve">測試</value></data>
+	<data name="zh-CHTTools">			<value xml:space="preserve">工具</value></data>
+	<data name="zh-CHTView">			<value xml:space="preserve">檢視</value></data>
+	<data name="zh-CHTWindow">			<value xml:space="preserve">視窗</value></data>
+	<data name="zh-CHTXML">				<value xml:space="preserve">XML</value></data>
+  
+</root>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Connect.cs
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Connect.cs
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.Designer.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,131 @@
+namespace Xsd2Code.Addin
+{
+    partial class FormOption
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.btnSetAsDefault = new System.Windows.Forms.Button();
+            this.btnCancel = new System.Windows.Forms.Button();
+            this.btnGenerate = new System.Windows.Forms.Button();
+            this.propertyGrid = new System.Windows.Forms.PropertyGrid();
+            this.linkToCodePlex = new System.Windows.Forms.LinkLabel();
+            this.panel1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // panel1
+            // 
+            this.panel1.Controls.Add(this.btnSetAsDefault);
+            this.panel1.Controls.Add(this.btnCancel);
+            this.panel1.Controls.Add(this.btnGenerate);
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.panel1.Location = new System.Drawing.Point(0, 570);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(438, 32);
+            this.panel1.TabIndex = 2;
+            // 
+            // btnSetAsDefault
+            // 
+            this.btnSetAsDefault.Location = new System.Drawing.Point(15, 6);
+            this.btnSetAsDefault.Name = "btnSetAsDefault";
+            this.btnSetAsDefault.Size = new System.Drawing.Size(83, 23);
+            this.btnSetAsDefault.TabIndex = 4;
+            this.btnSetAsDefault.Text = "Set as default";
+            this.btnSetAsDefault.UseVisualStyleBackColor = true;
+            this.btnSetAsDefault.Visible = false;
+            // 
+            // btnCancel
+            // 
+            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+            this.btnCancel.Location = new System.Drawing.Point(359, 3);
+            this.btnCancel.Name = "btnCancel";
+            this.btnCancel.Size = new System.Drawing.Size(73, 23);
+            this.btnCancel.TabIndex = 3;
+            this.btnCancel.Text = "Cancel";
+            this.btnCancel.UseVisualStyleBackColor = true;
+            this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+            // 
+            // btnGenerate
+            // 
+            this.btnGenerate.Location = new System.Drawing.Point(282, 3);
+            this.btnGenerate.Name = "btnGenerate";
+            this.btnGenerate.Size = new System.Drawing.Size(73, 23);
+            this.btnGenerate.TabIndex = 2;
+            this.btnGenerate.Text = "Generate";
+            this.btnGenerate.UseVisualStyleBackColor = true;
+            this.btnGenerate.Click += new System.EventHandler(this.btnGenerate_Click);
+            // 
+            // propertyGrid
+            // 
+            this.propertyGrid.Location = new System.Drawing.Point(12, 12);
+            this.propertyGrid.Name = "propertyGrid";
+            this.propertyGrid.Size = new System.Drawing.Size(414, 535);
+            this.propertyGrid.TabIndex = 19;
+            // 
+            // linkToCodePlex
+            // 
+            this.linkToCodePlex.AutoSize = true;
+            this.linkToCodePlex.Location = new System.Drawing.Point(12, 550);
+            this.linkToCodePlex.Name = "linkToCodePlex";
+            this.linkToCodePlex.Size = new System.Drawing.Size(185, 13);
+            this.linkToCodePlex.TabIndex = 20;
+            this.linkToCodePlex.TabStop = true;
+            this.linkToCodePlex.Text = "http://www.codeplex.com/Xsd2Code";
+            this.linkToCodePlex.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkToCodePlex_LinkClicked);
+            // 
+            // FormOption
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.CancelButton = this.btnCancel;
+            this.ClientSize = new System.Drawing.Size(438, 602);
+            this.Controls.Add(this.linkToCodePlex);
+            this.Controls.Add(this.propertyGrid);
+            this.Controls.Add(this.panel1);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+            this.Name = "FormOption";
+            this.ShowInTaskbar = false;
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+            this.Text = "Xsd2Code class generator";
+            this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.FormOption_KeyPress);
+            this.panel1.ResumeLayout(false);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Panel panel1;
+        private System.Windows.Forms.Button btnCancel;
+        private System.Windows.Forms.Button btnGenerate;
+        private System.Windows.Forms.PropertyGrid propertyGrid;
+        private System.Windows.Forms.Button btnSetAsDefault;
+        private System.Windows.Forms.LinkLabel linkToCodePlex;
+
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,128 @@
+using System;
+using System.Windows.Forms;
+using Xsd2Code.Library;
+using System.Diagnostics;
+
+namespace Xsd2Code.Addin
+{
+    public partial class FormOption : Form
+    {
+        #region Property : GeneratorParams
+
+        private GeneratorParams generatorParams;
+
+        public GeneratorParams GeneratorParams
+        {
+            get { return this.generatorParams; }
+            set { this.generatorParams = value; }
+        }
+
+        #endregion
+
+        #region Property
+
+        public string InputFile { get; set; }
+
+        public string OutputFile { get; set; }
+
+
+        #endregion
+
+        #region cTor
+
+        /// <summary>
+        /// Constructor
+        /// </summary>
+        public FormOption()
+        {
+            this.InitializeComponent();
+        }
+
+        #endregion
+
+        #region Method
+
+        /// <summary>
+        /// Analyse file to find generation option.
+        /// </summary>
+        /// <param name="xsdFilePath">The XSD file path.</param>
+        /// <param name="languageIdentifier">The language identifier.</param>
+        /// <param name="defaultNamespace">The default namespace.</param>
+        public void Init(string xsdFilePath, string languageIdentifier, string defaultNamespace, TargetFramework framework)
+        {
+            string outputFile;
+            this.generatorParams = GeneratorParams.LoadFromFile(xsdFilePath, out outputFile);
+
+            if (this.generatorParams == null)
+            {
+                this.generatorParams = new GeneratorParams();
+                switch (languageIdentifier)
+                {
+                    case "{B5E9BD33-6D3E-4B5D-925E-8A43B79820B4}":
+                        this.generatorParams.Language = GenerationLanguage.VisualBasic;
+                        break;
+                    case "{B5E9BD36-6D3E-4B5D-925E-8A43B79820B4}":
+                        this.generatorParams.Language = GenerationLanguage.VisualCpp;
+                        break;
+                    default:
+                        this.generatorParams.Language = GenerationLanguage.CSharp;
+                        break;
+                }
+                this.generatorParams.TargetFramework = framework;
+                this.generatorParams.NameSpace = defaultNamespace;
+            }
+
+            this.propertyGrid.SelectedObject = this.generatorParams;
+            this.OutputFile = outputFile;
+        }
+
+        /// <summary>
+        /// Cancel the validation
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void btnCancel_Click(object sender, EventArgs e)
+        {
+            this.Close();
+        }
+
+        /// <summary>
+        /// Validate the generation
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void btnGenerate_Click(object sender, EventArgs e)
+        {
+            var result = this.generatorParams.Validate();
+            if(!result.Success)
+            {
+                MessageBox.Show(result.Messages.ToString());
+                return;
+            }
+
+            this.DialogResult = DialogResult.OK;
+            this.Close();
+        }
+
+        #endregion
+
+        /// <summary>
+        /// Close form if press esc.
+        /// </summary>
+        /// <param name="sender">Object sender</param>
+        /// <param name="e">EventArgs param</param>
+        private void FormOption_KeyPress(object sender, KeyPressEventArgs e)
+        {            
+            int ascii = Convert.ToInt16(e.KeyChar);
+            if (ascii == 27) this.Close();
+        }
+
+        private void linkToCodePlex_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+        {
+            System.Diagnostics.Process.Start(new ProcessStartInfo(linkToCodePlex.Text));
+        }
+
+
+
+   }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.resx
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.resx	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/FormOption.resx	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.AddIn.AddIn
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.AddIn.AddIn
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.Addin.csproj
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.Addin.csproj	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.Addin.csproj	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,136 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{45D359A7-1E3E-4988-8774-DB96AF49C59A}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <StartupObject>
+    </StartupObject>
+    <NoStandardLibraries>false</NoStandardLibraries>
+    <AssemblyName>Xsd2Code.Addin</AssemblyName>
+    <RootNamespace>Xsd2Code.Addin</RootNamespace>
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <WarningLevel>4</WarningLevel>
+    <IncrementalBuild>false</IncrementalBuild>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugSymbols>false</DebugSymbols>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
+    <DefineConstants>TRACE</DefineConstants>
+    <WarningLevel>4</WarningLevel>
+    <IncrementalBuild>false</IncrementalBuild>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Extensibility, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Connect.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="FormOption.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="FormOption.Designer.cs">
+      <DependentUpon>FormOption.cs</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="CommandBar.resx">
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="FormOption.resx">
+      <DependentUpon>FormOption.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <COMReference Include="EnvDTE">
+      <Guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</Guid>
+      <VersionMajor>8</VersionMajor>
+      <VersionMinor>0</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+    </COMReference>
+    <COMReference Include="EnvDTE80">
+      <Guid>{1A31287A-4D7D-413E-8E32-3B374931BD89}</Guid>
+      <VersionMajor>8</VersionMajor>
+      <VersionMinor>0</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+    </COMReference>
+    <COMReference Include="EnvDTE90">
+      <Guid>{2CE2370E-D744-4936-A090-3FFFE667B0E1}</Guid>
+      <VersionMajor>9</VersionMajor>
+      <VersionMinor>0</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+    </COMReference>
+    <COMReference Include="Microsoft.VisualStudio.CommandBars">
+      <Guid>{1CBA492E-7263-47BB-87FE-639000619B15}</Guid>
+      <VersionMajor>8</VersionMajor>
+      <VersionMinor>0</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+    </COMReference>
+    <COMReference Include="stdole">
+      <Guid>{00020430-0000-0000-C000-000000000046}</Guid>
+      <VersionMajor>2</VersionMajor>
+      <VersionMinor>0</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+    </COMReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Xsd2Code.AddIn.AddIn">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Xsd2Code.Library\Xsd2Code.Library.csproj">
+      <Project>{1B59FB12-699C-4927-ACA3-D7F0E0F79100}</Project>
+      <Name>Xsd2Code.Library</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
+  <PropertyGroup>
+    <PreBuildEvent>
+    </PreBuildEvent>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
+  <ProjectExtensions>
+    <VisualStudio>
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.Addin.csproj.vspscc
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.Addin.csproj.vspscc	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Addin/Xsd2Code.Addin.csproj.vspscc	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/App.ico
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/App.ico
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/AssemblyInfo.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/AssemblyInfo.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/AssemblyInfo.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,60 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+//
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("XSD2Code")]
+[assembly: AssemblyDescription("Schema class generator")]
+[assembly: AssemblyConfiguration( "" )]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct( "" )]
+[assembly: AssemblyCopyright("Pascal Cabanel")]
+[assembly: AssemblyTrademark( "" )]
+[assembly: AssemblyCulture( "" )]		
+
+//
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("3.3.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the 
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing. 
+//
+// Notes: 
+//   ( * ) If no key is specified, the assembly is not signed.
+//   ( * ) KeyName refers to a key that has been installed in the Crypto Service
+//       Provider ( CSP ) on your machine. KeyFile refers to a file which contains
+//       a key.
+//   ( * ) If the KeyFile and the KeyName values are both specified, the 
+//       following processing occurs:
+//       ( 1 ) If the KeyName can be found in the CSP, that key is used.
+//       ( 2 ) If the KeyName does not exist and the KeyFile does exist, the key 
+//           in the KeyFile is installed into the CSP and used.
+//   ( * ) In order to create a KeyFile, you can use the sn.exe ( Strong Name ) utility.
+//       When specifying the KeyFile, the location of the KeyFile should be
+//       relative to the project output directory which is
+//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
+//       located in the project directory, you would specify the AssemblyKeyFile 
+//       attribute as [assembly: AssemblyKeyFile( "..\\..\\mykey.snk" )]
+//   ( * ) Delay Signing is an advanced option - see the Microsoft .NET Framework
+//       documentation for more information on this.
+//
+[assembly: AssemblyDelaySign( false )]
+[assembly: AssemblyKeyFile( "" )]
+[assembly: AssemblyKeyName( "" )]
+[assembly: ComVisibleAttribute(false)]

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/EntryPoint.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/EntryPoint.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/EntryPoint.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,377 @@
+using System;
+using System.IO;
+using System.Reflection;
+using Xsd2Code.Library;
+using Xsd2Code.Library.Helpers;
+using Xsd2Code.Properties;
+
+namespace Xsd2Code
+{
+    /// <summary>
+    /// Entry point class 
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Modified 2009-02-20 by Ruslan Urban
+    ///     Changed parsing of command-line arguments
+    /// 
+    ///     Modified 2009-03-12 By Ruslan Urban
+    ///     Enabled GenerateDataContracts option
+    /// 
+    /// </remarks>
+    internal class EntryPoint
+    {
+        [STAThread]
+        static private void Main(string[] args)
+        {
+            // Display hekp when no parameters have been specified
+            if (args.Length < 1)
+            {
+                DisplayApplicationInfo();
+                DisplayHelp();
+                return;
+            }
+
+            DisplayApplicationInfo();
+
+            // Create new instance of GeneratorParams, which contains all generation parameters
+            var xsdFilePath = args[0];
+            var generatorParams = new GeneratorParams {InputFilePath = xsdFilePath};
+
+            // When only the XSD file name is specified, 
+            // try to locate generated Designer file and load output parameters from the file header
+            if (args.Length == 1)
+            {
+                string outputFilePath;
+                var tempGeneratorParams = GeneratorParams.LoadFromFile(xsdFilePath, out outputFilePath);
+                if (tempGeneratorParams != null)
+                {
+                    generatorParams = tempGeneratorParams;
+                    generatorParams.InputFilePath = xsdFilePath;
+
+                    if (!string.IsNullOrEmpty(outputFilePath))
+                        generatorParams.OutputFilePath = outputFilePath;
+                }
+            }
+
+            // Second command-line parameter that is not a switch  is the generated code namespace
+            if (args.Length > 1 && !args[1].StartsWith("/"))
+            {
+                generatorParams.NameSpace = args[1];
+
+                // Third command-line parameter that is not a switch is the generated code namespace
+                if (args.Length > 2 && !args[2].StartsWith("/"))
+                    generatorParams.OutputFilePath = args[2];
+            }
+
+
+            // Process command-line parameter switches
+            for (int i = 1; i < args.Length; i++)
+            {
+                switch (args[i].Trim().ToLower())
+                {
+                    
+                    case "/n":
+                    case "/ns":
+                    case "/namespace":
+                        if (i < args.Length - 1)
+                        {
+                            generatorParams.NameSpace = args[i + 1];
+                            i++;
+                        }
+                        break;
+
+                    case "/o":
+                    case "/out":
+                    case "/output":
+                        if (i < args.Length - 1)
+                        {
+                            generatorParams.OutputFilePath = args[i + 1];
+                            i++;
+                        }
+                        break;
+
+                    case "/l":
+                    case "/lang":
+                    case "/language":
+                        if (i < args.Length - 1)
+                        {
+                            generatorParams.Language = Utility.GetGenerationLanguage(args[i + 1]);
+                            i++;
+                        }
+                        break;
+
+                    case "/c":
+                    case "/col":
+                    case "/collection":
+                    case "/collectionbase":
+                        if (i < args.Length - 1)
+                        {
+                            generatorParams.CollectionObjectType = Utility.ToEnum<CollectionType>(args[i + 1]);
+                            i++;
+                        }
+                        break;
+
+                    //Duplicate with /pl
+                    case "/cb":
+                    case "/codebase":
+                        if (i < args.Length - 1)
+                        {
+                            Console.WriteLine("Warning: /cb /codebase is obsolete please use /pl[atform] <Platform> - Generated code target platform (Net20|Net30|Net35|Silverlight20). Default: Net20");
+                            generatorParams.TargetFramework = Utility.ToEnum<TargetFramework>(args[i + 1]);
+                            i++;
+                        }
+                        break;
+
+                    case "/cu":
+                    case "/customusings":
+                        if (i < args.Length - 1)
+                        {
+                            //generatorParams.CustomUsingsString = args[i + 1];
+
+                            foreach(string item in args[i+1].Split(','))
+                            {
+                                generatorParams.CustomUsings.Add(new NamespaceParam { NameSpace = item });
+                            }                            
+
+                            i++;
+                        }
+                        break;
+
+                    case "/lf":
+                    case "/lfm":
+                        if (i < args.Length - 1)
+                        {
+                            generatorParams.LoadFromFileMethodName = args[i + 1];
+                            i++;
+                        }
+                        break;
+
+                    case "/sm":
+                        if (i < args.Length - 1)
+                        {
+                            generatorParams.SerializeMethodName = args[i + 1];
+                            i++;
+                        }
+                        break;
+
+                    case "/sf":
+                    case "/sfm":
+                        if (i < args.Length - 1)
+                        {
+                            generatorParams.SaveToFileMethodName = args[i + 1];
+                            i++;
+                        }
+                        break;
+
+                    case "/p":
+                    case "/pl":
+                    case "/tp":
+                    case "/tpl":
+                    case "/platform":
+                        if (i < args.Length - 1)
+                        {
+                            generatorParams.TargetFramework = Utility.GetTargetPlatform(args[i + 1]);
+                            i++;
+                        }
+                        break;
+
+                    case "/u":
+                    case "/us":
+                    case "/using":
+                        if (i < args.Length - 1)
+                        {
+                            var nsList = args[i + 1].Split(',');
+                            foreach (var ns in nsList)
+                                generatorParams.CustomUsings.Add(new NamespaceParam {NameSpace = ns});
+                            i++;
+                        }
+                        break;
+
+                    case "/dbg":
+                    case "/dbg+":
+                    case "/debug":
+                    case "/debug+":
+                        generatorParams.DisableDebug = false;
+                        break;
+                    case "/dbg-":
+                    case "/debug-":
+                        generatorParams.DisableDebug = true;
+                        break;
+
+                    case "/db":
+                    case "/db+":
+                        generatorParams.EnableDataBinding = true;
+                        break;
+                    case "/db-":
+                        generatorParams.EnableDataBinding = false;
+                        break;
+
+                    case "/dc":
+                    case "/dc+":
+                        generatorParams.GenerateDataContracts = true;
+                        break;
+                    case "/dc-":
+                        generatorParams.GenerateDataContracts = false;
+                        break;
+
+                    case "/ap":
+                    case "/ap+":
+                        generatorParams.AutomaticProperties = true;
+                        break;
+                    case "/ap-":
+                        generatorParams.AutomaticProperties = false;
+                        break;
+
+                    case "/if":
+                    case "/if+":
+                        generatorParams.EnableInitializeFields = true;
+                        break;
+                    case "/if-":
+                        generatorParams.EnableInitializeFields = false;
+                        break;
+
+                    case "/eit":
+                    case "/eit+":
+                        generatorParams.ExcludeIncludedTypes = true;
+                        break;
+                    case "/eit-":
+                        generatorParams.ExcludeIncludedTypes = false;
+                        break;
+
+                    case "/gbc":
+                    case "/gbc+":
+                        generatorParams.UseGenericBaseClass = true;
+                        break;
+                    case "/gbc-":
+                        generatorParams.UseGenericBaseClass = false;
+                        break;
+
+                    case "/sc":
+                    case "/sc+":
+                        generatorParams.EnableSummaryComment = true;
+                        break;
+                    case "/sc-":
+                    case "/sum-":
+                        generatorParams.EnableSummaryComment = false;
+                        break;
+
+                    case "/xa":
+                    case "/xa+":
+                        generatorParams.GenerateXMLAttributes = true;
+                        break;
+                    case "/xa-":
+                        generatorParams.GenerateXMLAttributes = false;
+                        break;
+
+                    case "/cl":
+                    case "/cl+":
+                        generatorParams.GenerateCloneMethod = true;
+                        break;
+                    case "/cl-":
+                        generatorParams.GenerateCloneMethod = false;
+                        break;
+
+                    case "/hp":
+                    case "/hp+":
+                        generatorParams.HidePrivateFieldInIde = true;
+                        break;
+                    case "/hp-":
+                        generatorParams.HidePrivateFieldInIde = false;
+                        break;
+
+                    case "/s":
+                    case "/s+":
+                    case "/is":
+                    case "/is+":
+                        generatorParams.IncludeSerializeMethod = true;
+                        break;
+                    case "/s-":
+                    case "/is-":
+                        generatorParams.IncludeSerializeMethod = false;
+                        break;
+
+                    case "/lic":
+                    case "/license":
+                        DisplayLicense();
+                        return;
+
+                    case "/?":
+                    case "/h":
+                    case "/hlp":
+                    case "/help":
+                        DisplayHelp();
+                        return;
+                }
+            }
+
+            // Auto-generate missing output file path
+            if (string.IsNullOrEmpty(generatorParams.OutputFilePath))
+            {
+                generatorParams.OutputFilePath =
+                    Utility.GetOutputFilePath(generatorParams.InputFilePath,
+                                              generatorParams.Language);
+            }
+
+            // Auto-generate missing generated code namespace
+            if (string.IsNullOrEmpty(generatorParams.NameSpace))
+                generatorParams.NameSpace = Path.GetFileNameWithoutExtension(generatorParams.InputFilePath);
+
+
+            // Create an instance of Generator
+            var generator = new GeneratorFacade(generatorParams);
+
+            // Generate code
+            var result = generator.Generate();
+            if (!result.Success)
+            {
+                // Display the error and wait for user confirmation
+                Console.WriteLine();
+                Console.WriteLine(result.Messages.ToString());
+                Console.WriteLine();
+                Console.WriteLine("Press ENTER to continue...");
+                Console.ReadLine();
+
+                return;
+            }
+
+            Console.WriteLine("Generated code has been saved into the file {0}.", result.Entity);
+
+            Console.WriteLine();
+            Console.WriteLine("Finished");
+            Console.WriteLine();
+        }
+
+        static private void DisplayApplicationInfo()
+        {
+            var currentAssembly = Assembly.GetExecutingAssembly();
+            var currentAssemblyName = currentAssembly.GetName();
+
+            Console.WriteLine();
+            Console.WriteLine("Xsd2Code Version {0}", currentAssemblyName.Version);
+            Console.WriteLine("Code generation utility from XML schema files.");
+            Console.WriteLine();
+        }
+
+        /// <summary>
+        /// Display contents of the help file ~/Resources/Help.txt
+        /// </summary>
+        static private void DisplayHelp()
+        {
+            Console.WriteLine();
+            Console.WriteLine(Resources.Help);
+            Console.WriteLine();
+        }
+
+        /// <summary>
+        /// Display contents of the help file ~/Resources/Help.txt
+        /// </summary>
+        static private void DisplayLicense()
+        {
+            Console.WriteLine();
+            Console.WriteLine(Resources.License);
+            Console.WriteLine();
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Properties/Resources.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Properties/Resources.Designer.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,120 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.3082
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Xsd2Code.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Xsd2Code.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Usage: Xsd2Code.exe &lt;XSD File&gt; &lt;Namespace&gt; [Options]
+        ///
+        ///Where:
+        ///    &lt;XSD File&gt;                          - Path to an XSD file (Required)
+        ///    &lt;Namespace&gt;                         - Generated code namespace (Required)
+        ///    [Options]                           - Optional. See below for description
+        ///
+        ///Options:
+        ///    
+        ///    /i[nput] &lt;FileName&gt;                 - Name of the input (XSD) file
+        ///    /o[utput] &lt;FileName&gt;                - Name of the output (generated) file. 
+        ///                                          By  [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string Help {
+            get {
+                return ResourceManager.GetString("Help", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to License: GNU Library General Public License (LGPL) 
+        ///Version 2.1, February 1999
+        ///
+        ///Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+        ///
+        ///[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]
+        ///
+        ///Preamble
+        ///--------
+        ///The licens [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string License {
+            get {
+                return ResourceManager.GetString("License", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to -----------------------------------------------------------------------
+        ///
+        ///Usage: 
+        ///
+        ///	Xsd2Code.exe &lt;XSD File&gt; [Namespace] [Output file name] [Options]
+        ///
+        ///Where:
+        ///    &lt;XSD File&gt;                          - Path to an XSD file. Required
+        ///    [Namespace]                         - Generated code namespace. Optional. File name without extension if no value is specified
+        ///    [Output file name]                  - Name of the output (generated) file. Optional. 
+        ///    [Options]                           - Optional. S [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string Readme {
+            get {
+                return ResourceManager.GetString("Readme", resourceCulture);
+            }
+        }
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Properties/Resources.resx
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Properties/Resources.resx	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Properties/Resources.resx	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="Help" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Help.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
+  <data name="License" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\License.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
+  <data name="Readme" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Readme.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
+</root>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Help.txt
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Help.txt	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Help.txt	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,75 @@
+-----------------------------------------------------------------------
+
+Usage: 
+
+    Xsd2Code.exe <XSD File> [Namespace] [Output file name] [Options]
+
+Where:
+    <XSD File>                          - Path to an XSD file. Required
+    [Namespace]                         - Generated code namespace. Optional. File name without extension if no value is specified
+    [Output file name]                  - Name of the output (generated) file. Optional. 
+    [Options]                           - Optional. See below for description
+
+Options:
+    
+    
+    /o[utput] <FileName>                - Name of the output (generated) file. 
+                                          By default, name of the source file with extension .Designer.cs 
+                                          (.Designer.vb or .Designer.cpp for VisualVasic and Visual C++ respectively)
+    /n[s] <Namespace>                   - Generated code CLR namespace. Default: file name without extension
+    /l[anguage] <Language>              - Generated code language (CS|VB|CPP). Default: CS
+    /pl[atform] <Platform>              - Generated code target platform (Net20|Net30|Net35|Silverlight20). Default: Net20
+    /c[ollection] <Collection Base>     - Collection base (Array|BindingList|List|ObservableCollection|DefinedType). Default: List
+    /cu[ustomusings] <Custom Usings>    - Comma-separated of custom usings definition (E.g "Xsd2Code.Library,System.Xml.Linq")
+    /sm <Serialize>                     - Serialize method name. Default: Serialize
+    /dm <Deserialize>                   - Deserialize method name. Default: Deserialize
+    /lf[m] <LoadFromFile>               - LoadFromFile method name. Default: LoadFromFile
+    /sf[m] <SaveToFile>                 - SaveToFile methodname. Default: SaveToFile
+    
+    /is[+]                              - Include Serialize method
+    /is-                                - Do not include Serialize method (default)
+    
+    /cl[+]                              - Include Clone method
+    /cl-                                - Do not include Clone method (default)
+    
+    /dbg[+]                             - Enable debug step through
+    /dbg-                               - Disable debug step through (default)
+    
+    /db[+]                              - Enable data bindings 
+    /db-                                - Disable data bindings (default)
+    
+    /dc[+]                              - Generate WCF data contract attributes 
+    /dc-                                - Do not generate WCF data contract attributes (default)
+    
+    /cl[+]                              - Generate Clone method (shallow copy) 
+    /cl-                                - Do not generate Clone method (default)
+    
+    /ap[+]                              - Enable automatic properties
+    /ap[-]                              - Disable automatic properties (default)  
+    
+    /sc[+]                              - Enable summary comment
+    /sc-                                - Disable summary comment (default)
+    
+    /xa[+]                              - Generate xml attributes
+    /xa-                                - Do not generate xml attributes (default)
+    
+    /if[+]                              - Enable initialization of fields (default)
+    /if-                                - Disable all field initialization constructor or lazy
+    
+    /eit[+]                             - Exclude types from included Schemas in generation
+    /eit-                               - Generate types from included schemas (default)
+    
+    /gbc[+]                             - Use Generic Base Class 
+    /gbc-                               - Do not use Generic Base Class (default)
+    
+    /hp[+]                              - Hide private fields in IDE
+    /hp-                                - Show private fields in IDE (default)
+
+    /lic[ense]                          - Show license information
+    
+    /?, /h[elp]                         - Show this help
+    
+Example:
+
+	Xsd2Code.exe Employee.xsd CompanyXYZ.Entities.HumanResources Employee.cs /c ObservableCollection /sc /dbg /cl /hp- /cu System.Xml.Linq,System.IO
+

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/License.W120F.txt
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/License.W120F.txt	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/License.W120F.txt	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,309 @@
+License: GNU Library General Public License (LGPL) 
+Version 2.1, February 1999
+
+Copyright (C) 1991, 1999 Free Software Foundation, Inc.  59 Temple Place, Suite 330, Boston, MA 02111-1307  USA Everyone
+is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+[This is  the first  released version  of the  Lesser GPL.  It also  counts as  the successor  of the GNU Library Public
+License, version 2, hence the version number 2.1.]
+
+Preamble
+
+The licenses for  most software are  designed to take  away your freedom  to share and  change it. By  contrast, the GNU
+General Public  Licenses are  intended to  guarantee your  freedom to  share and  change free software--to make sure the
+software is free for all its users.
+
+This license,  the Lesser  General Public  License, applies  to some  specially designated  software packages--typically
+libraries--of the Free Software Foundation and  other authors who decide to use  it. You can use it too,  but we suggest
+you first think carefully about whether  this license or the ordinary General  Public License is the better strategy  to
+use in any particular case, based on the explanations below.
+
+When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are  designed
+to make sure that you have the freedom to distribute copies of free software (and charge for this service if you  wish);
+that you receive source code or can get it if you want it; that you can change the software and use pieces of it in  new
+free programs; and that you are informed that you can do these things.
+
+To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you  to
+surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the
+library or if you modify it.
+
+For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all  the
+rights that we gave you. You must make sure that they,  too, receive or can get the source code. If you link  other code
+with the  library, you  must provide  complete object  files to  the recipients,  so that  they can relink them with the
+library after making changes to the  library and recompiling it. And you  must show them these terms so  they know their
+rights.
+
+We protect your rights with a  two-step method: (1) we copyright the  library, and (2) we offer you  this license, which
+gives you legal permission to copy, distribute and/or modify the library.
+
+To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if  the
+library is modified by someone else  and passed on, the recipients should  know that what they have is  not the original
+version, so that the original author's reputation will not be affected by problems that might be introduced by others.
+
+Finally, software patents  pose a constant  threat to the  existence of any  free program. We  wish to make  sure that a
+company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder.
+Therefore, we insist  that any patent  license obtained for  a version of  the library must  be consistent with the full
+freedom of use specified in this license.
+
+Most GNU software, including some  libraries, is covered by the  ordinary GNU General Public License.  This license, the
+GNU Lesser General Public  License, applies to certain  designated libraries, and is  quite different from the  ordinary
+General Public License. We use this  license for certain libraries in order  to permit linking those libraries into  non
+-free programs.
+
+When a program is linked  with a library, whether statically  or using a shared library,  the combination of the two  is
+legally speaking a combined work,  a derivative of the original  library. The ordinary General Public  License therefore
+permits such linking  only if the  entire combination fits  its criteria of  freedom. The Lesser  General Public License
+permits more lax criteria for linking other code with the library.
+
+We call this license  the "Lesser" General Public  License because it does  Less to protect the  user's freedom than the
+ordinary General Public License.  It also provides other  free software developers Less  of an advantage over  competing
+non-free programs. These disadvantages  are the reason we  use the ordinary General  Public License for many  libraries.
+However, the Lesser license provides advantages in certain special circumstances.
+
+For example, on rare occasions, there may be a special  need to encourage the widest possible use of a certain  library,
+so that it becomes a de-facto  standard. To achieve this, non-free programs  must be allowed to use the  library. A more
+frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is  little
+to gain by limiting the free library to free software only, so we use the Lesser General Public License.
+
+In other cases, permission to use a particular library in non-free programs enables a greater number of people to use  a
+large body of free  software. For example, permission  to use the GNU  C Library in non-free  programs enables many more
+people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.
+
+Although the Lesser General Public License is Less protective of  the users' freedom, it does ensure that the user of  a
+program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version
+of the Library.
+
+The  precise  terms and  conditions  for copying,  distribution  and modification  follow.  Pay close  attention  to the
+difference between a "work based on  the library" and a "work that  uses the library". The former contains  code derived
+from the library, whereas the latter must be combined with the library in order to run.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This  License Agreement  applies to  any software  library or  other program  which contains  a notice  placed by the
+copyright holder or other authorized party  saying it may be distributed under  the terms of this Lesser General  Public
+License (also called "this License"). Each licensee is addressed as "you".
+
+A  "library" means  a collection  of software  functions and/or  data prepared  so as  to be  conveniently linked  with
+application programs (which use some of those functions and data) to form executables.
+
+The "Library", below, refers to any such software library or work which has been distributed under these terms. A  "work
+based on  the Library"  means either  the Library  or any  derivative work  under copyright  law: that is to say, a work
+containing the Library  or a portion  of it, either  verbatim or with  modifications and/or translated straightforwardly
+into another language. (Hereinafter, translation is included without limitation in the term "modification".)
+
+"Source code" for a work means  the preferred form of the work  for making modifications to it. For  a library, complete
+source code means all the source code for all modules it contains, plus any associated interface definition files,  plus
+the scripts used to control compilation and installation of the library.
+
+Activities other  than copying,  distribution and  modification are  not covered  by this  License; they are outside its
+scope. The act of running a program using the Library is not restricted, and output from such a program is covered  only
+if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it).
+Whether that is true depends on what the Library does and what the program that uses the Library does.
+
+1. You may copy and distribute verbatim copies of the  Library's complete source code as you receive it, in any  medium,
+provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of
+warranty; keep intact all the notices  that refer to this License and  to the absence of any warranty;  and distribute a
+copy of this License along with the Library.
+
+You may charge a fee for the physical act of  transferring a copy, and you may at your option offer  warranty protection
+in exchange for a fee.
+
+2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and
+copy and distribute such modifications or  work under the terms of Section  1 above, provided that you also  meet all of
+these conditions:
+
+a) The modified work must itself be a software library.
+
+b) You must cause the files modified to carry prominent  notices stating that you changed the files and the date  of any
+change.
+
+c) You  must cause  the whole  of the  work to  be licensed  at no  charge to  all third parties under the terms of this
+License.
+
+d) If a  facility in the  modified Library refers  to a function  or a table  of data to  be supplied by  an application
+program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good
+faith effort to  ensure that, in  the event an  application does not  supply such function  or table, the facility still
+operates, and performs whatever part of its purpose remains meaningful.
+
+(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of
+the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function
+must be optional: if the application does not supply it, the square root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the
+Library, and  can be  reasonably considered  independent and  separate works  in themselves,  then this License, and its
+terms, do not  apply to those  sections when you  distribute them as  separate works. But  when you distribute  the same
+sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms  of
+this License,  whose permissions  for other  licensees extend  to the  entire whole,  and thus  to each  and every  part
+regardless of who wrote it.
+
+Thus, it is  not the intent  of this section  to claim rights  or contest your  rights to work  written entirely by you;
+rather, the intent is to exercise the right to  control the distribution of derivative or collective works based  on the
+Library.
+
+In addition, mere aggregation of  another work not based on  the Library with the Library  (or with a work based  on the
+Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 
+
+3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy  of
+the Library. To do this, you must alter all the notices  that refer to this License, so that they refer to the  ordinary
+GNU General Public License, version 2,  instead of to this License. (If  a newer version than version 2  of the ordinary
+GNU General Public License has appeared, then you can specify  that version instead if you wish.) Do not make any  other
+change in these notices.
+
+Once this change is made in a given copy, it  is irreversible for that copy, so the ordinary GNU General  Public License
+applies to all subsequent copies and derivative works made from that copy.
+
+This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
+
+4. You  may copy  and distribute  the Library  (or a  portion or  derivative of  it, under  Section 2) in object code or
+executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding
+machine-readable  source code,  which must  be distributed  under the  terms of  Sections 1  and 2  above on  a medium
+customarily used for software interchange.
+
+If distribution of  object code is  made by offering  access to copy  from a designated  place, then offering equivalent
+access to copy the source code from the same place satisfies the requirement to distribute the source code, even  though
+third parties are not compelled to copy the source along with the object code.
+
+5. A program that  contains no derivative of  any portion of the  Library, but is designed  to work with the  Library by
+being compiled  or linked  with it,  is called  a "work  that uses  the Library".  Such a  work, in  isolation, is not a
+derivative work of the Library, and therefore falls outside the scope of this License.
+
+However, linking a  "work that uses  the Library" with  the Library creates  an executable that  is a derivative  of the
+Library (because it contains  portions of the Library),  rather than a "work  that uses the library".  The executable is
+therefore covered by this License. Section 6 states terms for distribution of such executables.
+
+When a "work that uses the Library"  uses material from a header file that  is part of the Library, the object  code for
+the work may be a derivative work of the Library even though the source code is not. Whether this is true is  especially
+significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to
+be true is not precisely defined by law.
+
+If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and  small
+inline functions (ten lines or less in length), then  the use of the object file is unrestricted, regardless  of whether
+it is legally a derivative work. (Executables containing this  object code plus portions of the Library will still  fall
+under Section 6.)
+
+Otherwise, if the work is a derivative of the Library,  you may distribute the object code for the work under  the terms
+of Section 6. Any executables containing  that work also fall under Section  6, whether or not they are  linked directly
+with the Library itself.
+
+6. As an exception to the Sections above, you may also  combine or link a "work that uses the Library" with the  Library
+to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that
+the  terms permit  modification of  the work  for the  customer's own  use and  reverse engineering  for debugging  such
+modifications.
+
+You must give prominent notice with each  copy of the work that the Library  is used in it and that the  Library and its
+use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright
+notices, you must include the copyright notice for the Library among them, as well as a reference directing the user  to
+the copy of this License. Also, you must do one of these things:
+
+a) Accompany the work with  the complete corresponding machine-readable source  code for the Library including  whatever
+changes were  used in  the work  (which must  be distributed  under Sections  1 and  2 above);  and, if  the work  is an
+executable linked with  the Library, with  the complete machine-readable  "work that uses  the Library", as  object code
+and/or source code, so that the user can modify the Library and then relink to produce a modified executable  containing
+the modified Library. (It is understood that the user who changes the contents of definitions files in the Library  will
+not necessarily be able to recompile the application to use the modified definitions.)
+
+b) Use a suitable shared library  mechanism for linking with the Library.  A suitable mechanism is one that  (1) uses at
+run time a copy of the library already present on the user's computer system, rather than copying library functions into
+the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as  long
+as the modified version is interface-compatible with the version that the work was made with.
+
+c) Accompany  the work  with a  written offer,  valid for  at least  three years,  to give  the same  user the materials
+specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
+
+d) If distribution of the work  is made by offering access to  copy from a designated place, offer  equivalent access to
+copy the above specified materials from the same place.
+
+e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
+
+For an executable,  the required form  of the "work  that uses the  Library" must include  any data and utility programs
+needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not
+include anything that is  normally distributed (in either  source or binary form)  with the major components  (compiler,
+kernel, and so on) of the  operating system on which the executable  runs, unless that component itself accompanies  the
+executable.
+
+It may happen  that this requirement  contradicts the license  restrictions of other  proprietary libraries that  do not
+normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in
+an executable that you distribute.
+
+7. You may place library facilities that are a work based on the Library side-by-side in a single library together  with
+other library facilities not covered by this License, and distribute such a combined library, provided that the separate
+distribution of the work based on the Library and  of the other library facilities is otherwise permitted, and  provided
+that you do these two things:
+
+a) Accompany the combined library with a copy of the  same work based on the Library, uncombined with any other  library
+facilities. This must be distributed under the terms of the Sections above.
+
+b) Give prominent  notice with the  combined library of  the fact that  part of it  is a work  based on the Library, and
+explaining where to find the accompanying uncombined form of the same work.
+
+8. You may not copy, modify,  sublicense, link with, or distribute the  Library except as expressly provided under  this
+License. Any  attempt otherwise  to copy,  modify, sublicense,  link with,  or distribute  the Library is void, and will
+automatically terminate your rights under this License. However,  parties who have received copies, or rights, from  you
+under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+9.  You are  not required  to accept  this License,  since you  have not  signed it.  However, nothing  else grants  you
+permission to modify or distribute the  Library or its derivative works. These  actions are prohibited by law if  you do
+not accept this License.  Therefore, by modifying or  distributing the Library (or  any work based on  the Library), you
+indicate your  acceptance of  this License  to do  so, and  all its  terms and  conditions for  copying, distributing or
+modifying the Library or works based on it.
+
+10. Each time you redistribute the  Library (or any work based on  the Library), the recipient automatically receives  a
+license from the  original licensor to  copy, distribute, link  with or modify  the Library subject  to these terms  and
+conditions. You may not impose  any further restrictions on the  recipients' exercise of the rights  granted herein. You
+are not responsible for enforcing compliance by third parties with this License.
+
+11. If, as a consequence of a court judgment or  allegation of patent infringement or for any other reason (not  limited
+to patent issues), conditions are  imposed on you (whether by  court order, agreement or otherwise)  that contradict the
+conditions of this License, they do not excuse you from  the conditions of this License. If you cannot distribute so  as
+to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence
+you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution
+of the Library by all those who receive copies directly  or indirectly through you, then the only way you could  satisfy
+both it and this License would be to refrain entirely from distribution of the Library.
+
+If any portion of this section  is held invalid or unenforceable under  any particular circumstance, the balance of  the
+section is intended to apply, and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest
+validity of  any such  claims; this  section has  the sole  purpose of  protecting the  integrity of  the free  software
+distribution system which is implemented  by public license practices. Many  people have made generous contributions  to
+the wide range of software distributed through that system  in reliance on consistent application of that system; it  is
+up to the author/donor to decide if he or she is willing to distribute software through any other system and a  licensee
+cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted
+interfaces, the original copyright  holder who places the  Library under this License  may add an explicit  geographical
+distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from  time
+to time. Such new versions  will be similar in spirit  to the present version, but  may differ in detail to  address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If  the Library specifies a version number of this License  which
+applies to it and "any later version", you have the option of following the terms and conditions either of that  version
+or of any later  version published by the  Free Software Foundation. If  the Library does not  specify a license version
+number, you may choose any version ever published by the Free Software Foundation.
+
+14.  If you  wish to  incorporate parts  of the  Library into  other free  programs whose  distribution conditions  are
+incompatible with  these, write  to the  author to  ask for  permission. For  software which  is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will  be
+guided by the  two goals of  preserving the free  status of all  derivatives of our  free software and  of promoting the
+sharing and reuse of software generally.
+
+NO WARRANTY
+
+15. BECAUSE THE LIBRARY IS  LICENSED FREE OF CHARGE, THERE  IS NO WARRANTY FOR THE  LIBRARY, TO THE EXTENT PERMITTED  BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING  THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE  LIBRARY
+"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY  AND FITNESS  FOR A  PARTICULAR PURPOSE.  THE ENTIRE  RISK AS  TO THE  QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH  YOU. SHOULD THE  LIBRARY PROVE DEFECTIVE,  YOU ASSUME THE  COST OF ALL  NECESSARY SERVICING, REPAIR  OR
+CORRECTION.
+
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER  PARTY
+WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY  GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE  USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT  NOT
+LIMITED TO LOSS OF DATA OR DATA  BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY  YOU OR THIRD PARTIES OR A FAILURE  OF
+THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE  POSSIBILITY
+OF SUCH DAMAGES. 

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/License.txt
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/License.txt	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/License.txt	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,81 @@
+License: GNU Library General Public License (LGPL) 
+Version 2.1, February 1999
+
+Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]
+
+Preamble
+--------
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.
+This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.
+When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.
+To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.
+For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.
+We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.
+To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.
+Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.
+Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.
+When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.
+We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.
+For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.
+In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.
+Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.
+The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+---------------------------------------------------------------
+0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".
+A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.
+The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)
+"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.
+1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+a) The modified work must itself be a software library.
+b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.
+c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.
+d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.
+(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.
+In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 
+3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
+Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.
+This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
+4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.
+If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.
+5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
+However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
+When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.
+If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)
+Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.
+6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
+You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
+a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
+b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
+c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
+d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
+e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
+For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.
+7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
+a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.
+b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
+8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
+10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.
+11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.
+14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+-----------
+15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Readme.txt
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Readme.txt	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Readme.txt	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,75 @@
+-----------------------------------------------------------------------
+
+Usage: 
+
+    Xsd2Code.exe <XSD File> [Namespace] [Output file name] [Options]
+
+Where:
+    <XSD File>                          - Path to an XSD file. Required
+    [Namespace]                         - Generated code namespace. Optional. File name without extension if no value is specified
+    [Output file name]                  - Name of the output (generated) file. Optional. 
+    [Options]                           - Optional. See below for description
+
+Options:
+    
+    
+    /o[utput] <FileName>                - Name of the output (generated) file. 
+                                          By default, name of the source file with extension .Designer.cs 
+                                          (.Designer.vb or .Designer.cpp for VisualVasic and Visual C++ respectively)
+    /n[s] <Namespace>                   - Generated code CLR namespace. Default: file name without extension
+    /l[anguage] <Language>              - Generated code language (CS|VB|CPP). Default: CS
+    /pl[atform] <Platform>              - Generated code target platform (Net20|Net30|Net35|Silverlight20). Default: Net20
+    /c[ollection] <Collection Base>     - Collection base (Array|BindingList|List|ObservableCollection|DefinedType). Default: List
+    /cu[ustomusings] <Custom Usings>    - Comma-separated of custom usings definition (E.g "Xsd2Code.Library,System.Xml.Linq")
+    /sm <Serialize>                     - Serialize method name. Default: Serialize
+    /dm <Deserialize>                   - Deserialize method name. Default: Deserialize
+    /lf[m] <LoadFromFile>               - LoadFromFile method name. Default: LoadFromFile
+    /sf[m] <SaveToFile>                 - SaveToFile methodname. Default: SaveToFile
+    
+    /is[+]                              - Include Serialize method
+    /is-                                - Do not include Serialize method (default)
+    
+    /cl[+]                              - Include Clone method
+    /cl-                                - Do not include Clone method (default)
+    
+    /dbg[+]                             - Enable debug step through
+    /dbg-                               - Disable debug step through (default)
+    
+    /db[+]                              - Enable data bindings 
+    /db-                                - Disable data bindings (default)
+    
+    /dc[+]                              - Generate WCF data contract attributes 
+    /dc-                                - Do not generate WCF data contract attributes (default)
+    
+    /cl[+]                              - Generate Clone method (shallow copy) 
+    /cl-                                - Do not generate Clone method (default)
+    
+    /ap[+]                              - Enable automatic properties
+    /ap[-]                              - Disable automatic properties (default)  
+    
+    /sc[+]                              - Enable summary comment
+    /sc-                                - Disable summary comment (default)
+    
+    /xa[+]                              - Generate xml attributes
+    /xa-                                - Do not generate xml attributes (default)
+    
+    /if[+]                              - Enable initialization of fields (default)
+    /if-                                - Disable all field initialization constructor or lazy
+    
+    /eit[+]                             - Exclude types from included Schemas in generation
+    /eit-                               - Generate types from included schemas (default)
+    
+    /gbc[+]                             - Use Generic Base Class 
+    /gbc-                               - Do not use Generic Base Class (default)
+    
+    /hp[+]                              - Hide private fields in IDE
+    /hp-                                - Show private fields in IDE (default)
+
+    /lic[ense]                          - Show license information
+    
+    /?, /h[elp]                         - Show this help
+    
+Example:
+
+	Xsd2Code.exe Employee.xsd CompanyXYZ.Entities.HumanResources Employee.cs /c ObservableCollection /sc /dbg /cl /hp- /cu System.Xml.Linq,System.IO
+

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Readme.xps
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Resources/Readme.xps
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Xsd2Code.csproj
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Xsd2Code.csproj	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Xsd2Code.csproj	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,167 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+  <PropertyGroup>
+    <ProjectType>Local</ProjectType>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{020AC7D1-E8FD-47CA-B162-9738FA4E2348}</ProjectGuid>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ApplicationIcon>App.ico</ApplicationIcon>
+    <AssemblyKeyContainerName>
+    </AssemblyKeyContainerName>
+    <AssemblyName>Xsd2Code</AssemblyName>
+    <AssemblyOriginatorKeyFile>
+    </AssemblyOriginatorKeyFile>
+    <DefaultClientScript>JScript</DefaultClientScript>
+    <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
+    <DefaultTargetSchema>IE50</DefaultTargetSchema>
+    <DelaySign>false</DelaySign>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>Xsd2Code</RootNamespace>
+    <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
+    <StartupObject>
+    </StartupObject>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+    <OldToolsVersion>2.0</OldToolsVersion>
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <OutputPath>bin\Debug\</OutputPath>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <BaseAddress>285212672</BaseAddress>
+    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+    <ConfigurationOverrideFile>
+    </ConfigurationOverrideFile>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DocumentationFile>
+    </DocumentationFile>
+    <DebugSymbols>true</DebugSymbols>
+    <FileAlignment>4096</FileAlignment>
+    <NoStdLib>false</NoStdLib>
+    <NoWarn>
+    </NoWarn>
+    <Optimize>false</Optimize>
+    <RegisterForComInterop>false</RegisterForComInterop>
+    <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+    <WarningLevel>4</WarningLevel>
+    <DebugType>full</DebugType>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <OutputPath>bin\Release\</OutputPath>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <BaseAddress>285212672</BaseAddress>
+    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+    <ConfigurationOverrideFile>
+    </ConfigurationOverrideFile>
+    <DefineConstants>TRACE</DefineConstants>
+    <DocumentationFile>
+    </DocumentationFile>
+    <DebugSymbols>false</DebugSymbols>
+    <FileAlignment>4096</FileAlignment>
+    <NoStdLib>false</NoStdLib>
+    <NoWarn>
+    </NoWarn>
+    <Optimize>true</Optimize>
+    <RegisterForComInterop>false</RegisterForComInterop>
+    <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+    <WarningLevel>4</WarningLevel>
+    <DebugType>none</DebugType>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System">
+      <Name>System</Name>
+    </Reference>
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data">
+      <Name>System.Data</Name>
+    </Reference>
+    <Reference Include="System.Xml">
+      <Name>System.XML</Name>
+    </Reference>
+    <ProjectReference Include="..\Xsd2Code.Library\Xsd2Code.Library.csproj">
+      <Name>Xsd2Code.Library</Name>
+      <Project>{1B59FB12-699C-4927-ACA3-D7F0E0F79100}</Project>
+      <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="App.ico" />
+    <Content Include="Resources\Help.txt" />
+    <Content Include="Resources\License.txt" />
+    <Content Include="Resources\Readme.txt" />
+    <Compile Include="AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="EntryPoint.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Resources\Readme.xps">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>
+    </PreBuildEvent>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
+</Project>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Xsd2Code.csproj.vspscc
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Xsd2Code.csproj.vspscc	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Console/Xsd2Code.csproj.vspscc	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/CustomTool.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/CustomTool.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/CustomTool.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,143 @@
+using System;
+using System.CodeDom.Compiler;
+using System.Runtime.InteropServices;
+using Microsoft.VisualStudio;
+using Microsoft.VisualStudio.Designer.Interfaces;
+using Microsoft.VisualStudio.OLE.Interop;
+using Microsoft.VisualStudio.Shell;
+using Microsoft.VisualStudio.Shell.Interop;
+using Xsd2Code.Library;
+using IServiceProvider=Microsoft.VisualStudio.OLE.Interop.IServiceProvider;
+
+namespace Xsd2Code.CustomTool
+{
+    /// <summary>
+    /// Implementation of the Xsd2Code custom tool for VisualStudio
+    /// <para>Usage:</para>
+    /// <para>     Specify Xsd2CodeCustomTool in the CustomTool proprty of an XSD file within Visual Studio</para>
+    /// </summary>
+    /// <remarks>
+    /// 
+    /// Revision history:
+    /// 
+    ///     Modified 2009-02-20 by Ruslan Urban
+    ///     Changed signature of the GeneratorFacade class constructor
+    /// 
+    /// </remarks>
+    [Guid("9E6FCB59-E3EF-4bbe-966C-30AC92A44DF6")]
+    public class Xsd2CodeCustomTool : IVsSingleFileGenerator, IObjectWithSite
+    {
+        private CodeDomProvider provider;
+        private object site;
+
+        #region IVsSingleFileGenerator Membres
+
+        public int DefaultExtension(out string pbstrDefaultExtension)
+        {
+            pbstrDefaultExtension = this.provider.FileExtension;
+            
+            if (!string.IsNullOrEmpty(pbstrDefaultExtension))
+                pbstrDefaultExtension = ".Designer." + pbstrDefaultExtension.TrimStart(".".ToCharArray());
+            
+            return 0;
+        }
+
+        /// <summary>
+        /// Generates the specified WSZ input file path.
+        /// </summary>
+        /// <param name="wszInputFilePath">The WSZ input file path.</param>
+        /// <param name="bstrInputFileContents">The BSTR input file contents.</param>
+        /// <param name="wszDefaultNamespace">The WSZ default namespace.</param>
+        /// <param name="rgbOutputFileContents">The RGB output file contents.</param>
+        /// <param name="pcbOutput">The PCB output.</param>
+        /// <param name="pGenerateProgress">The p generate progress.</param>
+        /// <returns></returns>
+        public int Generate(string wszInputFilePath,
+                            string bstrInputFileContents,
+                            string wszDefaultNamespace,
+                            IntPtr[] rgbOutputFileContents,
+                            out uint pcbOutput,
+                            IVsGeneratorProgress pGenerateProgress)
+        {
+            if (wszInputFilePath == null)
+                throw new ArgumentNullException(wszInputFilePath);
+
+            var generatorParams = GeneratorParams.LoadFromFile(wszInputFilePath) ?? new GeneratorParams();
+
+            generatorParams.InputFilePath = wszInputFilePath;
+            generatorParams.NameSpace = wszDefaultNamespace;
+
+            var xsdGen = new GeneratorFacade(this.provider, generatorParams);
+
+            var result = xsdGen.GenerateBytes();
+            var generatedStuff = result.Entity;
+
+            if (generatedStuff == null)
+            {
+                rgbOutputFileContents[0] = IntPtr.Zero;
+                pcbOutput = 0;
+                return 0;
+            }
+
+            // Copie du flux en mémoire pour que Visual Studio puisse le récupérer
+            rgbOutputFileContents[0] = Marshal.AllocCoTaskMem(generatedStuff.Length);
+            Marshal.Copy(generatedStuff, 0, rgbOutputFileContents[0], generatedStuff.Length);
+            pcbOutput = (uint) generatedStuff.Length;
+
+            return 0;
+        }
+
+        #endregion
+
+        #region IObjectWithSite Members
+
+        /// <summary>
+        /// </summary>
+        /// <param name="riid"></param>
+        /// <param name="ppvSite"></param>
+        public void GetSite(ref Guid riid, out IntPtr ppvSite)
+        {
+            if (this.site == null)
+                throw new COMException("Aucun site", VSConstants.E_FAIL);
+
+            // Créer un pointeur d'interface
+            IntPtr pUnknownPointer = Marshal.GetIUnknownForObject(this.site);
+
+// ReSharper disable RedundantAssignment
+            IntPtr intPointer = IntPtr.Zero;
+// ReSharper restore RedundantAssignment
+
+            // Demande de pointeur de l'interface pUnknownPointer
+            Marshal.QueryInterface(pUnknownPointer, ref riid, out intPointer);
+
+            if (intPointer == IntPtr.Zero)
+                throw new COMException("site ne supporte pas la demande de pointeur", VSConstants.E_NOINTERFACE);
+
+            ppvSite = intPointer;
+        }
+
+        /// <summary>
+        /// </summary>
+        /// <param name="pUnkSite"></param>
+        public void SetSite(object pUnkSite)
+        {
+            this.site = pUnkSite;
+
+            //Créer un fournisseur de service du site
+            var serviceProvider = new ServiceProvider(this.site as IServiceProvider);
+
+            //Récupéreur le service SVSMDCodeDomProvider
+            var p = serviceProvider.GetService(typeof (SVSMDCodeDomProvider)) as IVSMDCodeDomProvider;
+
+            if (p != null)
+                this.provider = p.CodeDomProvider as CodeDomProvider;
+            else
+            {
+                //Ici, aucun langage n'a pu être déterminé
+                this.provider = CodeDomProvider.CreateProvider("C#");
+            }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Properties/AssemblyInfo.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Properties/AssemblyInfo.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Properties/AssemblyInfo.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("CustomTool")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CustomTool")]
+[assembly: AssemblyCopyright("Copyright ©  2009")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("aa75e0d2-67df-486e-8fb6-b91f449c3d3f")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Xsd2Code.CustomTool.csproj
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Xsd2Code.CustomTool.csproj	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Xsd2Code.CustomTool.csproj	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{7CD3B99F-0999-4054-80ED-B0977D723AFD}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Xsd2Code.CustomTool</RootNamespace>
+    <AssemblyName>Xsd2Code.CustomTool</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+    <TargetFrameworkSubset>
+    </TargetFrameworkSubset>
+    <SignAssembly>true</SignAssembly>
+    <AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.VisualStudio.Designer.Interfaces, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+    <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+    <Reference Include="Microsoft.VisualStudio.Shell, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
+    <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+    <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="CustomTool.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="app.config" />
+    <None Include="key.snk" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Xsd2Code.Library\Xsd2Code.Library.csproj">
+      <Project>{1B59FB12-699C-4927-ACA3-D7F0E0F79100}</Project>
+      <Name>Xsd2Code.Library</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. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Xsd2Code.CustomTool.csproj.vspscc
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Xsd2Code.CustomTool.csproj.vspscc	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/Xsd2Code.CustomTool.csproj.vspscc	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/app.config
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/app.config	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/app.config	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<configuration>
+<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/key.snk
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.CustomTool/key.snk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/AssemblyInfo.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/AssemblyInfo.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/AssemblyInfo.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,58 @@
+//-----------------------------------------------------------------------
+// <copyright file="AssemblyInfo.cs" company="Xsd2Code">
+//     copyright Pascal Cabanel.
+// </copyright>
+//-----------------------------------------------------------------------
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Xsd2Code")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Xsd2Code")]
+[assembly: AssemblyCopyright("Pascal Cabanel")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+/// Version information for an assembly consists of the following four values:
+///
+///      Major Version
+///      Minor Version 
+///      Build Number
+///      Revision
+///
+/// You can specify all the values or you can default the Revision and Build Numbers 
+/// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.*")]
+
+// In order to sign your assembly you must specify a key to use. Refer to the 
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing. 
+//
+// Notes: 
+//   ( * ) If no key is specified, the assembly is not signed.
+//   ( * ) KeyName refers to a key that has been installed in the Crypto Service
+//       Provider ( CSP ) on your machine. KeyFile refers to a file which contains
+//       a key.
+//   ( * ) If the KeyFile and the KeyName values are both specified, the 
+//       following processing occurs:
+//       ( 1 ) If the KeyName can be found in the CSP, that key is used.
+//       ( 2 ) If the KeyName does not exist and the KeyFile does exist, the key 
+//           in the KeyFile is installed into the CSP and used.
+//   ( * ) In order to create a KeyFile, you can use the sn.exe ( Strong Name ) utility.
+//       When specifying the KeyFile, the location of the KeyFile should be
+//       relative to the project output directory which is
+//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
+//       located in the project directory, you would specify the AssemblyKeyFile 
+//       attribute as [assembly: AssemblyKeyFile( "..\\..\\mykey.snk" )]
+//   ( * ) Delay Signing is an advanced option - see the Microsoft .NET Framework
+//       documentation for more information on this.
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/ChangeLog.txt
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/ChangeLog.txt	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/ChangeLog.txt	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,40 @@
+Release 3.0.0.0
+---------------
+2009-05-27, PC : Apply patch Patch fixing error "SimpleType has already been declared", Cyclic Schema Reference
+				 http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=7285
+2009-06-11, PC : Fix incorrect generation on two-dimentional arrays.
+			     http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=7269
+2009-06-19, PC : Add new Serialize, Deserilaze, SaveToFile, LoadFromFile method signature.
+				 Fix warnning when setter test if field is null on enum type.
+				 Refactoring, styleCop.
+2009-07-11, PC : Detect project langage and default project namespace.
+2009-07-15, PC : Use IsolateStrorageFile to save and load xml with silverlight.
+2009-07-15, PC : Add the initialization of the collections in the property according the lazy pattern.
+2009-07-15, PC : Fix bug stackoverflow in ctor in case of circular class reference.
+2009-07-15, PC : Detect target framework.
+2009-10-21, PC : Fix bug of invalid type List'1 when use automatic properties.
+				 http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=8943
+				 For optional items, an element is incorrectly instantiated in the constructor of the created code.
+				 http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=8118
+2010-01-07, DCM: Added patch from Rob van der Veer. Adding Option to exclude "Included" Schema's in Code Generation,
+				 eliminating duplicate class generation: 
+				 ExcludeIncludedTypes CommandLine = /eit
+				 UseGenericBaseClass /gbc switch from the commandline
+				 
+				 Issue #8781 Import directive of many files duplicate types - http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=8781
+				 Issue #6944 Add possibility to do not generate types from referenced schemas - http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=6944
+				 Issue #6941 Generation from XSD wich contains only types declarations doesn't work - http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=6941
+				 
+				 EnableInitializeFields /if switch. Enables/disables all Field Initialization both Constructor or Lazy. Which are workarounds for below.
+				 Issue #9489 Optional fields are instanciated in constructor - http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=9489
+				 Issue #9023 Automatic collection props result in incorrect field order - http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=9023
+				 
+2010-01-07, DCM: Fixed DefinedType and Custom Collection issue that generated C# syntax only.
+2010-01-07, DCM: Added BindingList to List of Collections. Used in primarily in WinForms vs ObservableCollection
+2010-01-10, DCM: Fixed Documentation Comments being improperly formatted when Using CodeDomHelper Classes
+2010-01-20, DCM: Cleaned up CodeSnippetExpressions Converting to appropriate CodeDom specific Expression. Further removing
+                 language specific Switch statements where possible.
+2010-01-22, DCM: Updated Help and readme to match current command line.
+				 /cb,/codebase and /i[nput] /using should be retired.
+				 
+		

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CodeBase.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CodeBase.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CodeBase.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,28 @@
+using System.ComponentModel;
+
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Code generation code base type enumeration
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Created 2009-02-20 by Ruslan Urban
+    /// 
+    /// </remarks>
+    [DefaultValue(NetFX20)]
+    public enum CodeBase
+    {
+        [Description(".Net Framework 2.0")]
+        NetFX20,
+
+        /* RU20090225: TODO: Implement WCF attribute generation
+                [Description(".Net Framework 3.0")]
+                Net30,
+        */
+
+        [Description("Silverlight 2.0")]
+        Silverlight20
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CodeDomProviderFactory.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CodeDomProviderFactory.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CodeDomProviderFactory.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,53 @@
+using System;
+using System.CodeDom.Compiler;
+using Microsoft.CSharp;
+using Microsoft.VisualBasic;
+using Microsoft.VisualC;
+using Xsd2Code.Library.Helpers;
+
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Code DOM Provider factory design pattern implementation
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Created 2009-02-18 by Ruslan Urban
+    /// 
+    /// </remarks>
+    public static class CodeDomProviderFactory
+    {
+        /// <summary>
+        /// Get Code DOM provider
+        /// </summary>
+        /// <param name="generatorParams"></param>
+        /// <returns></returns>
+        public static CodeDomProvider GetProvider(GeneratorParams generatorParams)
+        {
+            return GetProvider(generatorParams.Language);
+        }
+
+        /// <summary>
+        /// Get Code DOM provider
+        /// </summary>
+        /// <returns></returns>
+        public static CodeDomProvider GetProvider(GenerationLanguage language)
+        {
+            switch (language)
+            {
+                case GenerationLanguage.CSharp:
+                    return new CSharpCodeProvider();
+
+                case GenerationLanguage.VisualBasic:
+                    return new VBCodeProvider();
+
+                case GenerationLanguage.VisualCpp:
+                    return new CppCodeProvider();
+
+                default:
+                    throw new NotImplementedException(string.Format("Code provider for language {0} is not supported", Utility.GetEnumDescription(language)));
+            }
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CollectionType.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CollectionType.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/CollectionType.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,43 @@
+using System.ComponentModel;
+
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Collection type for generation
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Created 2009-02-20 by Ruslan Urban
+    ///     Code refactoring: moved enum into a separate file
+    /// 
+    /// </remarks>
+    [DefaultValue(List)]
+    public enum CollectionType
+    {
+        /// <summary>
+        /// Array collection
+        /// </summary>
+        Array,
+
+        /// <summary>
+        /// Generic List
+        /// </summary>
+        List,
+
+        /// <summary>
+        /// Provides a generic collection that supports data binding. Especially in WinForms
+        /// </summary>
+        BindingList,
+
+        /// <summary>
+        /// Generic list for notifications when items get added, removed, or when the whole list is refreshed
+        /// </summary>
+        ObservableCollection,
+
+        /// <summary>
+        /// Defined type for each specialized collection with designer and base files
+        /// </summary>
+        DefinedType
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtension.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtension.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtension.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,1940 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="CodeExtension.cs" company="Xsd2Code">
+//   N/A
+// </copyright>
+// <summary>
+//   Base class for code generation extension
+// </summary>
+// <remarks>
+//  Revision history:
+//  Created 2009-03-16 by Ruslan Urban
+//  based on GeneratorExtension.cs
+//  Updated 2009-05-18 move wcf CodeDom generation into Net35Extention.cs by Pascal Cabanel
+//  Updated 2009-05-18 Remove .Net 2.0 XML attributes by Pascal Cabanel
+//  Updated 2009-06-16 Add EntityBase class.
+//                     Add new serialize/deserialize methods.
+//                     Dispose object in serialize/deserialize methods.
+//  Updated 2010-01-07 Deerwood McCord Jr. (DCM) applied patch from Rob van der Veer
+//  Updated 2010-01-20 Deerwood McCord Jr. Cleaned CodeSnippetStatements by replacing with specific CodeDom Expressions
+//                     Refactored OnPropertyChanged to use more CodeDom Specific version found in CodeDomHelper.CreateOnPropertyChangeMethod()
+// </remarks>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Extensions
+{
+    using System;
+    using System.CodeDom;
+    using System.Collections;
+    using System.Collections.Generic;
+    using System.ComponentModel;
+    using System.IO;
+    using System.Linq;
+    using System.Reflection;
+    using System.Xml;
+    using System.Xml.Schema;
+    using System.Xml.Serialization;
+    using Helpers;
+
+    /// <summary>
+    /// Base class for code generation extension
+    /// </summary>
+    public abstract class CodeExtension : ICodeExtension
+    {
+        #region private fields
+        /// <summary>
+        /// Sorted list for custom collection
+        /// </summary>
+        private static readonly SortedList<string, string> CollectionTypes = new SortedList<string, string>();
+
+        /// <summary>
+        /// Contains all enum.
+        /// </summary>
+        private static List<string> enumListField;
+
+        /// <summary>
+        /// Contains all collection fields.
+        /// </summary>
+        private static List<string> lasyLoadingFields = new List<string>();
+
+        /// <summary>
+        /// Contains all collection fields.
+        /// </summary>
+        protected static List<string> collectionTypesFields = new List<string>();
+
+        #endregion
+
+        #region public method
+        /// <summary>
+        /// Process method for cs or vb CodeDom generation
+        /// </summary>
+        /// <param name="code">CodeNamespace generated</param>
+        /// <param name="schema">XmlSchema to generate</param>
+        public virtual void Process(CodeNamespace code, XmlSchema schema)
+        {
+            this.ImportNamespaces(code);
+            CollectionTypes.Clear();
+            lasyLoadingFields.Clear();
+            collectionTypesFields.Clear();
+
+            var types = new CodeTypeDeclaration[code.Types.Count];
+            code.Types.CopyTo(types, 0);
+
+            // Generate generic base class
+            if (GeneratorContext.GeneratorParams.UseGenericBaseClass)
+            {
+                code.Types.Insert(0, this.GenerateBaseClass());
+            }
+
+            enumListField = (from p in types
+                             where p.IsEnum
+                             select p.Name).ToList();
+
+            foreach (var type in types)
+            {
+                
+                //Fixes http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=8781
+                //  and http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=6944
+                if (GeneratorContext.GeneratorParams.ExcludeIncludedTypes)
+                {
+                    //if the typeName is NOT defined in the current schema, skip it.
+                    if (!ContainsTypeName(schema, type))
+                    {
+                        code.Types.Remove(type);
+                        continue;
+                    }
+                }
+
+
+                // Remove default remarks attribute
+                type.Comments.Clear();
+
+                // Remove default .Net 2.0 XML attributes if disabled.
+                if (!GeneratorContext.GeneratorParams.GenerateXMLAttributes)
+                {
+                    this.RemoveDefaultXmlAttributes(type.CustomAttributes);
+                }
+
+                if (!type.IsClass && !type.IsStruct) continue;
+
+                this.ProcessClass(code, schema, type);
+            }
+
+            foreach (string collName in CollectionTypes.Keys)
+                this.CreateCollectionClass(code, collName);
+        }
+
+        /// <summary>
+        /// Determines whether the specified schema contains the type.
+        /// </summary>
+        /// <param name="schema">The schema.</param>
+        /// <param name="type">The type.</param>
+        /// <returns>
+        /// 	<c>true</c> if the specified schema contains the type; otherwise, <c>false</c>.
+        /// </returns>
+        /// <remarks>Used to Exclude Included Types from Schema</remarks>
+        private bool ContainsTypeName(XmlSchema schema, CodeTypeDeclaration type)
+        {
+            foreach (var item in schema.Items)
+            {
+                var complexItem = item as XmlSchemaComplexType;
+                if(complexItem != null)
+                {
+                    if (complexItem.Name == type.Name)
+                    {
+                        return true;
+                    }
+                }
+                var elementItem = item as XmlSchemaElement;
+                if (elementItem != null)
+                {
+                    if (elementItem.Name == type.Name)
+                    {
+                        return true;
+                    }
+                }
+
+            }
+
+            //TODO: Does not work for combined anonymous types 
+            //fallback: Check if the namespace attribute of the type equals the namespace of the file.
+            //first, find the XmlType attribute.
+            foreach(CodeAttributeDeclaration attribute in type.CustomAttributes)
+            {
+                if(attribute.Name == "System.Xml.Serialization.XmlTypeAttribute")
+                {
+                    foreach(CodeAttributeArgument argument in attribute.Arguments)
+                    {
+                        if(argument.Name == "Namespace")
+                        {
+                            if(((CodePrimitiveExpression)argument.Value).Value == schema.TargetNamespace)
+                            {
+                                return true;
+                            }
+                        }
+                    }
+                }
+                 
+            }
+
+            return false;
+        }
+        #endregion
+
+        #region protedted methods
+        /// <summary>
+        /// Generate defenition of the Clone() method
+        /// </summary>
+        /// <param name="type">Represents a type declaration for a class, structure, interface, or enumeration</param>
+        /// <returns>return CodeDom clone method</returns>
+        protected static CodeTypeMember GetCloneMethod(CodeTypeDeclaration type)
+        {
+            string typeName = GeneratorContext.GeneratorParams.UseGenericBaseClass ? "T" : type.Name;
+
+            // ----------------------------------------------------------------------
+            // /// <summary>
+            // /// Create clone of this TClass object
+            // /// </summary>
+            // public TClass Clone()
+            // {
+            //    return ((TClass)this.MemberwiseClone());
+            // }
+            // ----------------------------------------------------------------------
+            var cloneMethod = new CodeMemberMethod
+                                  {
+                                      Attributes = MemberAttributes.Public,
+                                      Name = "Clone",
+                                      ReturnType = new CodeTypeReference(typeName)
+                                  };
+
+            CodeDomHelper.CreateSummaryComment(
+                cloneMethod.Comments,
+                string.Format("Create a clone of this {0} object", typeName));
+
+            var memberwiseCloneMethod = new CodeMethodInvokeExpression(
+                new CodeThisReferenceExpression(),
+                "MemberwiseClone");
+
+            var statement = new CodeMethodReturnStatement(new CodeCastExpression(typeName, memberwiseCloneMethod));
+            cloneMethod.Statements.Add(statement);
+            return cloneMethod;
+        }
+
+        /// <summary>
+        /// Processes the class.
+        /// </summary>
+        /// <param name="codeNamespace">The code namespace.</param>
+        /// <param name="schema">The input xsd schema.</param>
+        /// <param name="type">Represents a type declaration for a class, structure, interface, or enumeration</param>
+        protected virtual void ProcessClass(CodeNamespace codeNamespace, XmlSchema schema, CodeTypeDeclaration type)
+        {
+            var addedToConstructor = false;
+            var newCTor = false;
+
+            var ctor = this.GetConstructor(type, ref newCTor);
+
+            // Inherits from EntityBase
+            if (GeneratorContext.GeneratorParams.UseGenericBaseClass)
+            {
+                var ctr = new CodeTypeReference(GeneratorContext.GeneratorParams.BaseClassName);
+                ctr.TypeArguments.Add(new CodeTypeReference(type.Name));
+                type.BaseTypes.Add(ctr);
+            }
+            else
+            {
+                if (GeneratorContext.GeneratorParams.EnableDataBinding)
+                    type.BaseTypes.Add(typeof(INotifyPropertyChanged));
+            }
+
+            // Generate WCF DataContract
+            this.CreateDataContractAttribute(type, schema);
+
+            XmlSchemaElement currentElement = null;
+            if (GeneratorContext.GeneratorParams.EnableSummaryComment)
+                currentElement = this.CreateSummaryCommentFromSchema(type, schema, currentElement);
+
+            foreach (CodeTypeMember member in type.Members)
+            {
+                // Remove default remarks attribute
+                member.Comments.Clear();
+
+                // Remove default .Net 2.0 XML attributes if disabled.
+                if (!GeneratorContext.GeneratorParams.GenerateXMLAttributes)
+                {
+                    this.RemoveDefaultXmlAttributes(member.CustomAttributes);
+                }
+
+                var codeMember = member as CodeMemberField;
+                if (codeMember != null)
+                    this.ProcessFields(codeMember, ctor, codeNamespace, ref addedToConstructor);
+
+                var codeMemberProperty = member as CodeMemberProperty;
+                if (codeMemberProperty != null)
+                    this.ProcessProperty(type, codeNamespace, codeMemberProperty, currentElement, schema);
+            }
+
+            //DCM: Moved From GeneraterFacade File based removal to CodeDom Style Attribute-based removal
+            if (GeneratorContext.GeneratorParams.DisableDebug)
+            {
+                this.RemoveDebugAttributes(type.CustomAttributes);
+            }
+
+            // Add new ctor if required
+            if (addedToConstructor && newCTor)
+                type.Members.Add(ctor);
+
+            // If don't use base class, generate all methods inside class
+            if (!GeneratorContext.GeneratorParams.UseGenericBaseClass)
+            {
+                if (GeneratorContext.GeneratorParams.EnableDataBinding)
+                    this.CreateDataBinding(type);
+
+                if (GeneratorContext.GeneratorParams.IncludeSerializeMethod)
+                {
+                    CreateStaticSerializer(type);
+                    this.CreateSerializeMethods(type);
+                }
+
+                if (GeneratorContext.GeneratorParams.GenerateCloneMethod)
+                    this.CreateCloneMethod(type);
+            }
+        }
+
+        /// <summary>
+        /// Create data binding
+        /// </summary>
+        /// <param name="type">Code type declaration</param>
+        protected virtual void CreateDataBinding(CodeTypeDeclaration type)
+        {
+            // -------------------------------------------------------------------------------
+            // public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+            // -------------------------------------------------------------------------------
+            var propertyChangedEvent =
+                new CodeMemberEvent
+                    {
+                        Attributes = MemberAttributes.Final | MemberAttributes.Public,
+                        Name = "PropertyChanged",
+                        Type =
+                            new CodeTypeReference(typeof(PropertyChangedEventHandler))
+                    };
+            propertyChangedEvent.ImplementationTypes.Add(new CodeTypeReference("INotifyPropertyChanged"));
+            type.Members.Add(propertyChangedEvent);
+
+            // -----------------------------------------------------------
+            //  protected virtual  void OnPropertyChanged(string info) {
+            //      PropertyChangedEventHandler handler = PropertyChanged;
+            //      if (handler != null) {
+            //          handler(this, new PropertyChangedEventArgs(info));
+            //      }
+            //  }
+            // -----------------------------------------------------------
+
+            /* DCM REMOVED Uses CodeSnippetExpressions
+            var propertyChangedMethod = CreatePropertyChangedMethod();
+             */
+ 
+            var propertyChangedMethod = CodeDomHelper.CreatePropertyChangedMethod();
+            
+            type.Members.Add(propertyChangedMethod);
+        }
+
+
+        /// <summary>
+        /// Creates the property changed method.
+        /// </summary>
+        /// <returns>CodeMemberMethod on Property Change handler</returns>
+        /// <remarks>
+        /// DCM: Plan on deleting after Beta Period.
+        /// Use Switch and Language specific CodeSnippetExpressions produce method
+        /// VB version
+        /// <code>
+        /// public sub OnPropertyChanged(byval info as string)
+        ///     RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
+        /// end sub
+        /// 
+        /// </code>
+        /// C# & CPP Version
+        /// <code>
+        ///  protected virtual  void OnPropertyChanged(string info) {
+        ///      PropertyChangedEventHandler handler = PropertyChanged;
+        ///      if (handler != null) {
+        ///          handler(this, new PropertyChangedEventArgs(info));
+        ///      }
+        ///  }
+        /// </code>
+        /// </remarks>
+        private static CodeMemberMethod CreatePropertyChangedMethod()
+        {
+            var propertyChangedMethod = new CodeMemberMethod
+                                                         {
+                                                             Name = "OnPropertyChanged",
+                                                             Attributes = MemberAttributes.Public
+                                                         };
+            propertyChangedMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "info"));
+
+            switch (GeneratorContext.GeneratorParams.Language)
+            {
+                case GenerationLanguage.VisualBasic:
+
+                    propertyChangedMethod.Statements.Add(
+                        new CodeExpressionStatement(
+                            new CodeSnippetExpression(
+                                "RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))")));
+
+                    break;
+
+                case GenerationLanguage.CSharp:
+                case GenerationLanguage.VisualCpp:
+
+                    propertyChangedMethod.Statements.Add(
+                        new CodeExpressionStatement(
+                            new CodeSnippetExpression("PropertyChangedEventHandler handler = PropertyChanged")));
+
+                    var codeExpressionStatement =
+                        new CodeExpressionStatement(
+                            new CodeSnippetExpression("handler(this, new PropertyChangedEventArgs(info))"));
+
+                    CodeStatement[] statements = new[] { codeExpressionStatement };
+
+                    propertyChangedMethod.Statements.Add(
+                        new CodeConditionStatement(new CodeSnippetExpression("handler != null"), statements));
+                    break;
+            }
+            return propertyChangedMethod;
+        }
+
+        /// <summary>
+        /// Creates the summary comment from schema.
+        /// </summary>
+        /// <param name="codeTypeDeclaration">The code type declaration.</param>
+        /// <param name="schema">The input XML schema.</param>
+        /// <param name="currentElement">The current element.</param>
+        /// <returns>returns the element found otherwise null</returns>
+        protected virtual XmlSchemaElement CreateSummaryCommentFromSchema(CodeTypeDeclaration codeTypeDeclaration, XmlSchema schema, XmlSchemaElement currentElement)
+        {
+            var xmlSchemaElement = this.SearchElementInSchema(codeTypeDeclaration, schema, new List<XmlSchema>());
+            if (xmlSchemaElement != null)
+            {
+                currentElement = xmlSchemaElement;
+                if (xmlSchemaElement.Annotation != null)
+                {
+                    foreach (var item in xmlSchemaElement.Annotation.Items)
+                    {
+                        var xmlDoc = item as XmlSchemaDocumentation;
+                        if (xmlDoc == null) continue;
+                        this.CreateCommentStatment(codeTypeDeclaration.Comments, xmlDoc);
+                    }
+                }
+            }
+
+            return currentElement;
+        }
+
+        /// <summary>
+        /// Creates the collection class.
+        /// </summary>
+        /// <param name="codeNamespace">The code namespace.</param>
+        /// <param name="collName">Name of the coll.</param>
+        protected virtual void CreateCollectionClass(CodeNamespace codeNamespace, string collName)
+        {
+            var ctd = new CodeTypeDeclaration(collName) { IsClass = true };
+
+            /* DCM REMOVED NOT LANGUAGE INDEPENDENT
+            ctd.BaseTypes.Add(string.Format(
+                                            "{0}<{1}>",
+                                            GeneratorContext.GeneratorParams.CollectionBase,
+                                            CollectionTypes[collName]));
+            DCM REMOVED */
+
+            //DCM Changed to Languaged independent CodeDOM
+            ctd.BaseTypes.Add(new CodeTypeReference(GeneratorContext.GeneratorParams.CollectionBase, new[] { new CodeTypeReference(CollectionTypes[collName]) }));
+
+            ctd.IsPartial = true;
+
+            bool newCTor = false;
+            var ctor = this.GetConstructor(ctd, ref newCTor);
+
+            ctd.Members.Add(ctor);
+            codeNamespace.Types.Add(ctd);
+        }
+
+        /// <summary>
+        /// Creates the clone method.
+        /// </summary>
+        /// <param name="codeTypeDeclaration">Represents a type declaration for a class, structure, interface, or enumeration.</param>
+        protected virtual void CreateCloneMethod(CodeTypeDeclaration codeTypeDeclaration)
+        {
+            var cloneMethod = GetCloneMethod(codeTypeDeclaration);
+            cloneMethod.StartDirectives.Add(new CodeRegionDirective(CodeRegionMode.Start, "Clone method"));
+            cloneMethod.EndDirectives.Add(new CodeRegionDirective(CodeRegionMode.End, "Clone method"));
+            codeTypeDeclaration.Members.Add(cloneMethod);
+        }
+
+        /// <summary>
+        /// Creates the serialize methods.
+        /// </summary>
+        /// <param name="type">Represents a type declaration for a class, structure, interface, or enumeration.</param>
+        protected virtual void CreateSerializeMethods(CodeTypeDeclaration type)
+        {
+            // Serialize
+            var ser = this.CreateSerializeMethod(type);
+            ser.StartDirectives.Add(new CodeRegionDirective(CodeRegionMode.Start, "Serialize/Deserialize"));
+            type.Members.Add(ser);
+
+            // Deserialize
+            type.Members.AddRange(this.GetOverrideDeserializeMethods(type));
+            type.Members.Add(this.GetDeserializeMethod(type));
+
+            // SaveToFile
+            type.Members.AddRange(this.GetOverrideSaveToFileMethods(type));
+            type.Members.Add(this.GetSaveToFileMethod());
+
+            // LoadFromFile
+            type.Members.AddRange(this.GetOverrideLoadFromFileMethods(type));
+            var lff = this.GetLoadFromFileMethod(type);
+            lff.EndDirectives.Add(new CodeRegionDirective(CodeRegionMode.End, "Serialize/Deserialize"));
+            type.Members.Add(lff);
+        }
+
+        /// <summary>
+        /// Gets the serialize CodeDOM method.
+        /// </summary>
+        /// <param name="type">The type object to serilize.</param>
+        /// <returns>return the CodeDOM serialize method</returns>
+        protected virtual CodeMemberMethod CreateSerializeMethod(CodeTypeDeclaration type)
+        {
+            var serializeMethod = new CodeMemberMethod
+                                      {
+                                          Attributes = MemberAttributes.Public,
+                                          Name = GeneratorContext.GeneratorParams.SerializeMethodName
+                                      };
+
+            var tryStatmanentsCol = new CodeStatementCollection();
+            var finallyStatmanentsCol = new CodeStatementCollection();
+
+            // ------------------------------------------------------------
+            // System.IO.StreamReader streamReader = null;
+            // System.IO.MemoryStream memoryStream = null;
+            // ------------------------------------------------------------
+            serializeMethod.Statements.Add(
+                    new CodeVariableDeclarationStatement(
+                        new CodeTypeReference(typeof(StreamReader)),
+                        "streamReader",
+                        new CodePrimitiveExpression(null)));
+
+            serializeMethod.Statements.Add(
+                    new CodeVariableDeclarationStatement(
+                        new CodeTypeReference(typeof(MemoryStream)),
+                        "memoryStream",
+                        new CodePrimitiveExpression(null)));
+
+            tryStatmanentsCol.Add(new CodeAssignStatement(
+                new CodeVariableReferenceExpression("memoryStream"),
+                CodeDomHelper.CreateInstance(typeof(MemoryStream))));
+
+            // --------------------------------------------------------------------------
+            // Serializer.Serialize(memoryStream, this);
+            // --------------------------------------------------------------------------
+            tryStatmanentsCol.Add(
+                CodeDomHelper.GetInvokeMethod(
+                    "Serializer",
+                    "Serialize",
+                    new CodeExpression[]
+                        {
+                            new CodeTypeReferenceExpression("memoryStream"),
+                            new CodeThisReferenceExpression()
+                        }));
+
+            // ---------------------------------------------------------------------------
+            // memoryStream.Seek(0, SeekOrigin.Begin);
+            // System.IO.StreamReader streamReader = new System.IO.StreamReader(memoryStream);
+            // ---------------------------------------------------------------------------
+            tryStatmanentsCol.Add(
+                CodeDomHelper.GetInvokeMethod(
+                                              "memoryStream",
+                                              "Seek",
+                                              new CodeExpression[]
+                                                  {
+                                                      new CodePrimitiveExpression(0),
+                                                      new CodeTypeReferenceExpression("System.IO.SeekOrigin.Begin")
+                                                  }));
+
+            tryStatmanentsCol.Add(new CodeAssignStatement(
+                new CodeVariableReferenceExpression("streamReader"),
+                CodeDomHelper.CreateInstance(typeof(StreamReader), new[] { "memoryStream" })));
+
+            var readToEnd = CodeDomHelper.GetInvokeMethod("streamReader", "ReadToEnd");
+            tryStatmanentsCol.Add(new CodeMethodReturnStatement(readToEnd));
+
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("streamReader"));
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("memoryStream"));
+
+            var tryfinallyStmt = new CodeTryCatchFinallyStatement(tryStatmanentsCol.ToArray(), new CodeCatchClause[0], finallyStatmanentsCol.ToArray());
+            serializeMethod.Statements.Add(tryfinallyStmt);
+
+            serializeMethod.ReturnType = new CodeTypeReference(typeof(string));
+
+            // --------
+            // Comments
+            // --------
+            serializeMethod.Comments.AddRange(
+                CodeDomHelper.GetSummaryComment(string.Format("Serializes current {0} object into an XML document", type.Name)));
+
+            serializeMethod.Comments.Add(CodeDomHelper.GetReturnComment("string XML value"));
+            return serializeMethod;
+        }
+
+        /// <summary>
+        /// Get Deserialize method
+        /// </summary>
+        /// <param name="type">represent a type declaration of class</param>
+        /// <returns>Deserialize CodeMemberMethod</returns>
+        protected virtual CodeMemberMethod GetDeserializeMethod(CodeTypeDeclaration type)
+        {
+            string deserializeTypeName = GeneratorContext.GeneratorParams.UseGenericBaseClass ? "T" : type.Name;
+
+            // ---------------------------------------
+            // public static T Deserialize(string xml)
+            // ---------------------------------------
+            var deserializeMethod = new CodeMemberMethod
+            {
+                Attributes = MemberAttributes.Public | MemberAttributes.Static,
+                Name = GeneratorContext.GeneratorParams.DeserializeMethodName
+            };
+
+            deserializeMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "xml"));
+            deserializeMethod.ReturnType = new CodeTypeReference(deserializeTypeName);
+
+            deserializeMethod.Statements.Add(
+                new CodeVariableDeclarationStatement(
+                    new CodeTypeReference(typeof(StringReader)),
+                    "stringReader",
+                    new CodePrimitiveExpression(null)));
+
+            var tryStatmanentsCol = new CodeStatementCollection();
+            var finallyStatmanentsCol = new CodeStatementCollection();
+
+            // ------------------------------------------------------
+            // stringReader = new StringReader(xml);
+            // ------------------------------------------------------
+            var deserializeStatmanents = new CodeStatementCollection();
+
+            tryStatmanentsCol.Add(new CodeAssignStatement(
+                          new CodeVariableReferenceExpression("stringReader"),
+                          new CodeObjectCreateExpression(
+                              new CodeTypeReference(typeof(StringReader)),
+                              new CodeExpression[] { new CodeArgumentReferenceExpression("xml") })));
+
+            // ----------------------------------------------------------
+            // obj = (ClassName)serializer.Deserialize(xmlReader);
+            // return true;
+            // ----------------------------------------------------------
+            var deserialize = CodeDomHelper.GetInvokeMethod(
+                                                            "Serializer",
+                                                            "Deserialize",
+                                                            new CodeExpression[]
+                                                            {
+                                                                CodeDomHelper.GetInvokeMethod(
+                                                                "System.Xml.XmlReader", 
+                                                                "Create", 
+                                                                new CodeExpression[] { new CodeVariableReferenceExpression("stringReader") })
+                                                            });
+
+            var castExpr = new CodeCastExpression(deserializeTypeName, deserialize);
+            var returnStmt = new CodeMethodReturnStatement(castExpr);
+
+            tryStatmanentsCol.Add(returnStmt);
+            tryStatmanentsCol.AddRange(deserializeStatmanents);
+
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("stringReader"));
+
+            var tryfinallyStmt = new CodeTryCatchFinallyStatement(tryStatmanentsCol.ToArray(), new CodeCatchClause[0], finallyStatmanentsCol.ToArray());
+            deserializeMethod.Statements.Add(tryfinallyStmt);
+
+            return deserializeMethod;
+        }
+
+        /// <summary>
+        /// Get Deserialize method
+        /// </summary>
+        /// <param name="type">represent a type declaration of class</param>
+        /// <returns>Deserialize CodeMemberMethod</returns>
+        protected virtual CodeMemberMethod[] GetOverrideDeserializeMethods(CodeTypeDeclaration type)
+        {
+            var deserializeMethodList = new List<CodeMemberMethod>();
+            string deserializeTypeName = GeneratorContext.GeneratorParams.UseGenericBaseClass ? "T" : type.Name;
+
+            // -------------------------------------------------------------------------------------
+            // public static bool Deserialize(string xml, out T obj, out System.Exception exception)
+            // -------------------------------------------------------------------------------------
+            var deserializeMethod = new CodeMemberMethod
+                                        {
+                                            Attributes = MemberAttributes.Public | MemberAttributes.Static,
+                                            Name = GeneratorContext.GeneratorParams.DeserializeMethodName
+                                        };
+
+            deserializeMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "xml"));
+
+            var param = new CodeParameterDeclarationExpression(deserializeTypeName, "obj") { Direction = FieldDirection.Out };
+            deserializeMethod.Parameters.Add(param);
+
+            param = new CodeParameterDeclarationExpression(typeof(Exception), "exception") { Direction = FieldDirection.Out };
+
+            deserializeMethod.Parameters.Add(param);
+
+            deserializeMethod.ReturnType = new CodeTypeReference(typeof(bool));
+
+            // -----------------
+            // exception = null;
+            // -----------------
+            deserializeMethod.Statements.Add(
+                new CodeAssignStatement(
+                    new CodeArgumentReferenceExpression("exception"),
+                    new CodePrimitiveExpression(null)));
+
+            // -----------------
+            // obj = default(T);
+            // -----------------
+            deserializeMethod.Statements.Add(
+                        new CodeAssignStatement(
+                          new CodeArgumentReferenceExpression("obj"),
+                            new CodeDefaultValueExpression(new CodeTypeReference(deserializeTypeName))
+                            ));
+
+            /* DCM REMOVE Switch Statement Dependent Code
+            switch (GeneratorContext.GeneratorParams.Language)
+            {
+                case GenerationLanguage.CSharp:
+                    {
+                        deserializeMethod.Statements.Add(
+                            new CodeAssignStatement(
+                              new CodeArgumentReferenceExpression("obj"),
+                                new CodeSnippetExpression(string.Format("default({0})", deserializeTypeName))));
+                    }
+
+                    break;
+                case GenerationLanguage.VisualBasic:
+                    {
+                        deserializeMethod.Statements.Add(
+                             new CodeAssignStatement(
+                                new CodeArgumentReferenceExpression("obj"),
+                                    new CodePrimitiveExpression(null)));
+                    }
+
+                    break;
+            }
+             */
+
+            // ---------------------
+            // try {...} catch {...}
+            // ---------------------
+            var tryStatmanentsCol = new CodeStatementCollection();
+
+            // Call Desrialize method
+            var deserializeInvoke =
+                new CodeMethodInvokeExpression(
+                      new CodeMethodReferenceExpression(null, GeneratorContext.GeneratorParams.DeserializeMethodName),
+                        new CodeExpression[] { new CodeArgumentReferenceExpression("xml") });
+
+            tryStatmanentsCol.Add(
+                new CodeAssignStatement(
+                    new CodeArgumentReferenceExpression("obj"),
+                        deserializeInvoke));
+
+            tryStatmanentsCol.Add(CodeDomHelper.GetReturnTrue());
+
+            // catch
+            var catchClauses = CodeDomHelper.GetCatchClause();
+
+            var trycatch = new CodeTryCatchFinallyStatement(tryStatmanentsCol.ToArray(), catchClauses);
+            deserializeMethod.Statements.Add(trycatch);
+
+            // --------
+            // Comments
+            // --------
+            deserializeMethod.Comments.AddRange(
+                CodeDomHelper.GetSummaryComment(string.Format("Deserializes workflow markup into an {0} object", type.Name)));
+
+            deserializeMethod.Comments.Add(CodeDomHelper.GetParamComment("xml", "string workflow markup to deserialize"));
+            deserializeMethod.Comments.Add(CodeDomHelper.GetParamComment("obj", string.Format("Output {0} object", type.Name)));
+            deserializeMethod.Comments.Add(CodeDomHelper.GetParamComment("exception", "output Exception value if deserialize failed"));
+
+            deserializeMethod.Comments.Add(
+                CodeDomHelper.GetReturnComment("true if this XmlSerializer can deserialize the object; otherwise, false"));
+            deserializeMethodList.Add(deserializeMethod);
+
+            // -----------------------------------------------------
+            // public static bool Deserialize(string xml, out T obj)
+            // -----------------------------------------------------
+            deserializeMethod = new CodeMemberMethod
+            {
+                Attributes = MemberAttributes.Public | MemberAttributes.Static,
+                Name = GeneratorContext.GeneratorParams.DeserializeMethodName
+            };
+            deserializeMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "xml"));
+            deserializeMethod.ReturnType = new CodeTypeReference(typeof(bool));
+
+            param = new CodeParameterDeclarationExpression(deserializeTypeName, "obj") { Direction = FieldDirection.Out };
+            deserializeMethod.Parameters.Add(param);
+
+            // ---------------------------
+            // Exception exception = null;
+            // ---------------------------
+            deserializeMethod.Statements.Add(
+            new CodeVariableDeclarationStatement(typeof(Exception), "exception", new CodePrimitiveExpression(null)));
+
+            // ------------------------------------------------
+            // return Deserialize(xml, out obj, out exception);
+            // ------------------------------------------------
+            var xmlStringParam = new CodeArgumentReferenceExpression("xml");
+            var objParam = new CodeDirectionExpression(
+                FieldDirection.Out, new CodeFieldReferenceExpression(null, "obj"));
+
+            var expParam = new CodeDirectionExpression(
+                FieldDirection.Out, new CodeFieldReferenceExpression(null, "exception"));
+
+            deserializeInvoke =
+                new CodeMethodInvokeExpression(
+                    new CodeMethodReferenceExpression(null, GeneratorContext.GeneratorParams.DeserializeMethodName),
+                    new CodeExpression[] { xmlStringParam, objParam, expParam });
+
+            var returnStmt = new CodeMethodReturnStatement(deserializeInvoke);
+            deserializeMethod.Statements.Add(returnStmt);
+            deserializeMethodList.Add(deserializeMethod);
+            return deserializeMethodList.ToArray();
+        }
+
+        /// <summary>
+        /// Gets the save to file code DOM method.
+        /// </summary>
+        /// <returns>
+        /// return the save to file code DOM method statment
+        /// </returns>
+        protected virtual CodeMemberMethod GetSaveToFileMethod()
+        {
+            // -----------------------------------------------
+            // public virtual void SaveToFile(string fileName)
+            // -----------------------------------------------
+            var saveToFileMethod = new CodeMemberMethod
+            {
+                Attributes = MemberAttributes.Public,
+                Name = GeneratorContext.GeneratorParams.SaveToFileMethodName
+            };
+
+            saveToFileMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "fileName"));
+
+            saveToFileMethod.Statements.Add(
+                new CodeVariableDeclarationStatement(
+                    new CodeTypeReference(typeof(StreamWriter)),
+                    "streamWriter",
+                    new CodePrimitiveExpression(null)));
+
+            // ------------------------
+            // try {...} finally {...}
+            // -----------------------
+            var tryExpression = new CodeStatementCollection();
+
+            // ------------------------------
+            // string xmlString = Serialize();
+            // -------------------------------
+            var serializeMethodInvoke = new CodeMethodInvokeExpression(
+                new CodeMethodReferenceExpression(null, GeneratorContext.GeneratorParams.SerializeMethodName));
+
+            var xmlString = new CodeVariableDeclarationStatement(
+                new CodeTypeReference(typeof(string)), "xmlString", serializeMethodInvoke);
+
+            tryExpression.Add(xmlString);
+
+            // --------------------------------------------------------------
+            // System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
+            // --------------------------------------------------------------
+            tryExpression.Add(CodeDomHelper.CreateObject(typeof(FileInfo), "xmlFile", new[] { "fileName" }));
+
+            // ----------------------------------------
+            // StreamWriter Tex = xmlFile.CreateText();
+            // ----------------------------------------
+            var createTextMethodInvoke = CodeDomHelper.GetInvokeMethod("xmlFile", "CreateText");
+
+            tryExpression.Add(
+                new CodeAssignStatement(
+                    new CodeVariableReferenceExpression("streamWriter"),
+                    createTextMethodInvoke));
+
+            // ----------------------------------
+            // streamWriter.WriteLine(xmlString);
+            // ----------------------------------
+            var writeLineMethodInvoke =
+                CodeDomHelper.GetInvokeMethod(
+                                                "streamWriter",
+                                                "WriteLine",
+                                                new CodeExpression[]
+                                                  {
+                                                      new CodeVariableReferenceExpression("xmlString")
+                                                  });
+
+            tryExpression.Add(writeLineMethodInvoke);
+            var closeMethodInvoke = CodeDomHelper.GetInvokeMethod("streamWriter", "Close");
+
+            tryExpression.Add(closeMethodInvoke);
+
+            var finallyStatmanentsCol = new CodeStatementCollection();
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("streamWriter"));
+
+            var trycatch = new CodeTryCatchFinallyStatement(tryExpression.ToArray(), new CodeCatchClause[0], finallyStatmanentsCol.ToArray());
+            saveToFileMethod.Statements.Add(trycatch);
+
+            return saveToFileMethod;
+        }
+
+        /// <summary>
+        /// Gets the save to file code DOM method.
+        /// </summary>
+        /// <param name="type">CodeTypeDeclaration type.</param>
+        /// <returns>
+        /// return the save to file code DOM method statment
+        /// </returns>
+        protected virtual CodeMemberMethod[] GetOverrideSaveToFileMethods(CodeTypeDeclaration type)
+        {
+            var saveToFileMethodList = new List<CodeMemberMethod>();
+            var saveToFileMethod = new CodeMemberMethod
+                                       {
+                                           Attributes = MemberAttributes.Public,
+                                           Name = GeneratorContext.GeneratorParams.SaveToFileMethodName
+                                       };
+
+            saveToFileMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "fileName"));
+
+            var paramException = new CodeParameterDeclarationExpression(
+                typeof(Exception), "exception")
+                                     {
+                                         Direction = FieldDirection.Out
+                                     };
+
+            saveToFileMethod.Parameters.Add(paramException);
+
+            saveToFileMethod.ReturnType = new CodeTypeReference(typeof(bool));
+
+            saveToFileMethod.Statements.Add(
+                new CodeAssignStatement(new CodeArgumentReferenceExpression("exception"), new CodePrimitiveExpression(null)));
+
+            // ---------------------
+            // try {...} catch {...}
+            // ---------------------
+            var tryExpression = new CodeStatementCollection();
+
+            // ---------------------
+            // SaveToFile(fileName);
+            // ---------------------
+            var xmlStringParam = new CodeArgumentReferenceExpression("fileName");
+
+            var saveToFileInvoke =
+                new CodeMethodInvokeExpression(
+                    new CodeMethodReferenceExpression(null, GeneratorContext.GeneratorParams.SaveToFileMethodName),
+                    new CodeExpression[] { xmlStringParam });
+
+            tryExpression.Add(saveToFileInvoke);
+            tryExpression.Add(CodeDomHelper.GetReturnTrue());
+
+            // -----------
+            // Catch {...}
+            // -----------
+            var catchstmts = new CodeStatementCollection();
+            catchstmts.Add(new CodeAssignStatement(new CodeArgumentReferenceExpression("exception"), new CodeVariableReferenceExpression("e")));
+
+            catchstmts.Add(CodeDomHelper.GetReturnFalse());
+            var codeCatchClause = new CodeCatchClause("e", new CodeTypeReference(typeof(Exception)), catchstmts.ToArray());
+
+            var codeCatchClauses = new[] { codeCatchClause };
+
+            var trycatch = new CodeTryCatchFinallyStatement(tryExpression.ToArray(), codeCatchClauses);
+            saveToFileMethod.Statements.Add(trycatch);
+
+            saveToFileMethod.Comments.AddRange(
+                CodeDomHelper.GetSummaryComment(string.Format("Serializes current {0} object into file", type.Name)));
+
+            saveToFileMethod.Comments.Add(CodeDomHelper.GetParamComment("fileName", "full path of outupt xml file"));
+            saveToFileMethod.Comments.Add(CodeDomHelper.GetParamComment("exception", "output Exception value if failed"));
+            saveToFileMethod.Comments.Add(CodeDomHelper.GetReturnComment("true if can serialize and save into file; otherwise, false"));
+
+            saveToFileMethodList.Add(saveToFileMethod);
+            return saveToFileMethodList.ToArray();
+        }
+
+        /// <summary>
+        /// Gets the load from file CodeDOM method.
+        /// </summary>
+        /// <param name="type">The type CodeTypeDeclaration.</param>
+        /// <returns>return the codeDom LoadFromFile method</returns>
+        protected virtual CodeMemberMethod GetLoadFromFileMethod(CodeTypeDeclaration type)
+        {
+            string typeName = GeneratorContext.GeneratorParams.UseGenericBaseClass ? "T" : type.Name;
+
+            // ---------------------------------------------
+            // public static T LoadFromFile(string fileName)
+            // ---------------------------------------------
+            var loadFromFileMethod = new CodeMemberMethod
+            {
+                Attributes = MemberAttributes.Public | MemberAttributes.Static,
+                Name = GeneratorContext.GeneratorParams.LoadFromFileMethodName
+            };
+
+            loadFromFileMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "fileName"));
+            loadFromFileMethod.ReturnType = new CodeTypeReference(typeName);
+
+            loadFromFileMethod.Statements.Add(
+                new CodeVariableDeclarationStatement(
+                        new CodeTypeReference(typeof(FileStream)),
+                        "file",
+                        new CodePrimitiveExpression(null)));
+
+            loadFromFileMethod.Statements.Add(
+                new CodeVariableDeclarationStatement(
+                        new CodeTypeReference(typeof(StreamReader)),
+                        "sr",
+                        new CodePrimitiveExpression(null)));
+
+            var tryStatmanentsCol = new CodeStatementCollection();
+            var finallyStatmanentsCol = new CodeStatementCollection();
+
+            // ---------------------------------------------------------------------------
+            // file = new FileStream(fileName, FileMode.Open, FileAccess.Read);
+            // sr = new StreamReader(file);
+            // ---------------------------------------------------------------------------
+            tryStatmanentsCol.Add(
+                new CodeAssignStatement(
+                    new CodeVariableReferenceExpression("file"),
+                    new CodeObjectCreateExpression(
+                        typeof(FileStream),
+                        new CodeExpression[]
+                        {
+                            new CodeArgumentReferenceExpression("fileName"),
+                            CodeDomHelper.GetEnum("FileMode","Open"),
+                            CodeDomHelper.GetEnum("FileAccess","Read")
+                        })));
+
+            tryStatmanentsCol.Add(
+                new CodeAssignStatement(
+                    new CodeVariableReferenceExpression("sr"),
+                    new CodeObjectCreateExpression(
+                        typeof(StreamReader),
+                        new CodeExpression[]
+                        {
+                            new CodeVariableReferenceExpression("file"),
+                        })));
+
+            // ----------------------------------
+            // string xmlString = sr.ReadToEnd();
+            // ----------------------------------
+            var readToEndInvoke = CodeDomHelper.GetInvokeMethod("sr", "ReadToEnd");
+
+            var xmlString = new CodeVariableDeclarationStatement(
+                new CodeTypeReference(typeof(string)), "xmlString", readToEndInvoke);
+
+            tryStatmanentsCol.Add(xmlString);
+            tryStatmanentsCol.Add(CodeDomHelper.GetInvokeMethod("sr", "Close"));
+            tryStatmanentsCol.Add(CodeDomHelper.GetInvokeMethod("file", "Close"));
+
+            // ------------------------------------------------------
+            // return Deserialize(xmlString, out obj, out exception);
+            // ------------------------------------------------------            
+            var fileName = new CodeVariableReferenceExpression("xmlString");
+
+            var deserializeInvoke =
+                new CodeMethodInvokeExpression(
+                    new CodeMethodReferenceExpression(null, GeneratorContext.GeneratorParams.DeserializeMethodName),
+                    new CodeExpression[] { fileName });
+
+            var rstmts = new CodeMethodReturnStatement(deserializeInvoke);
+            tryStatmanentsCol.Add(rstmts);
+
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("file"));
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("sr"));
+
+            var tryfinally = new CodeTryCatchFinallyStatement(
+                CodeDomHelper.CodeStmtColToArray(tryStatmanentsCol), new CodeCatchClause[0], CodeDomHelper.CodeStmtColToArray(finallyStatmanentsCol));
+
+            loadFromFileMethod.Statements.Add(tryfinally);
+
+            return loadFromFileMethod;
+        }
+
+        /// <summary>
+        /// Gets the load from file CodeDOM method.
+        /// </summary>
+        /// <param name="type">The type CodeTypeDeclaration.</param>
+        /// <returns>return the codeDom LoadFromFile method</returns>
+        protected virtual CodeMemberMethod[] GetOverrideLoadFromFileMethods(CodeTypeDeclaration type)
+        {
+            string typeName = GeneratorContext.GeneratorParams.UseGenericBaseClass ? "T" : type.Name;
+
+            CodeTypeReference teeType = new CodeTypeReference(typeName);
+            
+            var saveToFileMethodList = new List<CodeMemberMethod>();
+            var loadFromFileMethod = new CodeMemberMethod
+                                         {
+                                             Attributes = MemberAttributes.Public | MemberAttributes.Static,
+                                             Name = GeneratorContext.GeneratorParams.LoadFromFileMethodName
+                                         };
+
+            loadFromFileMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "fileName"));
+
+            var param = new CodeParameterDeclarationExpression(typeName, "obj") { Direction = FieldDirection.Out };
+            loadFromFileMethod.Parameters.Add(param);
+
+            param = new CodeParameterDeclarationExpression(typeof(Exception), "exception") { Direction = FieldDirection.Out };
+
+            loadFromFileMethod.Parameters.Add(param);
+            loadFromFileMethod.ReturnType = new CodeTypeReference(typeof(bool));
+
+            // -----------------
+            // exception = null;
+            // obj = null;
+            // -----------------
+            loadFromFileMethod.Statements.Add(
+                new CodeAssignStatement(new CodeArgumentReferenceExpression("exception"), new CodePrimitiveExpression(null)));
+
+            loadFromFileMethod.Statements.Add(
+                new CodeAssignStatement(new CodeArgumentReferenceExpression("obj"), new CodeDefaultValueExpression(teeType)));
+
+            var tryStatmanentsCol = new CodeStatementCollection();
+
+            // Call LoadFromFile method
+            var loadFromFileInvoke =
+                new CodeMethodInvokeExpression(
+                      new CodeMethodReferenceExpression(null, GeneratorContext.GeneratorParams.LoadFromFileMethodName),
+                        new CodeExpression[] { new CodeArgumentReferenceExpression("fileName") });
+
+            tryStatmanentsCol.Add(
+                new CodeAssignStatement(
+                    new CodeArgumentReferenceExpression("obj"),
+                        loadFromFileInvoke));
+
+            tryStatmanentsCol.Add(CodeDomHelper.GetReturnTrue());
+
+            var trycatch = new CodeTryCatchFinallyStatement(
+                CodeDomHelper.CodeStmtColToArray(tryStatmanentsCol), CodeDomHelper.GetCatchClause());
+
+            loadFromFileMethod.Statements.Add(trycatch);
+
+            loadFromFileMethod.Comments.AddRange(
+                CodeDomHelper.GetSummaryComment(
+                    string.Format("Deserializes xml markup from file into an {0} object", type.Name)));
+
+            loadFromFileMethod.Comments.Add(CodeDomHelper.GetParamComment("fileName", "string xml file to load and deserialize"));
+            loadFromFileMethod.Comments.Add(CodeDomHelper.GetParamComment("obj", string.Format("Output {0} object", type.Name)));
+            loadFromFileMethod.Comments.Add(CodeDomHelper.GetParamComment("exception", "output Exception value if deserialize failed"));
+
+            loadFromFileMethod.Comments.Add(
+                CodeDomHelper.GetReturnComment("true if this XmlSerializer can deserialize the object; otherwise, false"));
+
+            saveToFileMethodList.Add(loadFromFileMethod);
+
+            // ------------------------------------------------------
+            // public static bool LoadFromFile(string xml, out T obj)
+            // ------------------------------------------------------
+            loadFromFileMethod = new CodeMemberMethod
+            {
+                Attributes = MemberAttributes.Public | MemberAttributes.Static,
+                Name = GeneratorContext.GeneratorParams.LoadFromFileMethodName
+            };
+            loadFromFileMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "fileName"));
+            loadFromFileMethod.ReturnType = new CodeTypeReference(typeof(bool));
+
+            param = new CodeParameterDeclarationExpression(typeName, "obj") { Direction = FieldDirection.Out };
+            loadFromFileMethod.Parameters.Add(param);
+
+            // ---------------------------
+            // Exception exception = null;
+            // ---------------------------
+            loadFromFileMethod.Statements.Add(
+            new CodeVariableDeclarationStatement(typeof(Exception), "exception", new CodePrimitiveExpression(null)));
+
+            // ------------------------------------------------------
+            // return LoadFromFile(fileName, out obj, out exception);
+            // ------------------------------------------------------
+            var fileName = new CodeArgumentReferenceExpression("fileName");
+            var objParam = new CodeDirectionExpression(
+                FieldDirection.Out, new CodeFieldReferenceExpression(null, "obj"));
+
+            var expParam = new CodeDirectionExpression(
+                FieldDirection.Out, new CodeFieldReferenceExpression(null, "exception"));
+
+            var loadFromFileMethodInvok =
+                new CodeMethodInvokeExpression(
+                    new CodeMethodReferenceExpression(null, GeneratorContext.GeneratorParams.LoadFromFileMethodName),
+                    new CodeExpression[] { fileName, objParam, expParam });
+
+            var returnStmt = new CodeMethodReturnStatement(loadFromFileMethodInvok);
+            loadFromFileMethod.Statements.Add(returnStmt);
+            saveToFileMethodList.Add(loadFromFileMethod);
+            return saveToFileMethodList.ToArray();
+        }
+
+        /// <summary>
+        /// Import namespaces
+        /// </summary>
+        /// <param name="code">Code namespace</param>
+        protected virtual void ImportNamespaces(CodeNamespace code)
+        {
+            code.Imports.Add(new CodeNamespaceImport("System"));
+            code.Imports.Add(new CodeNamespaceImport("System.Diagnostics"));
+            code.Imports.Add(new CodeNamespaceImport("System.Xml.Serialization"));
+            code.Imports.Add(new CodeNamespaceImport("System.Collections"));
+            code.Imports.Add(new CodeNamespaceImport("System.Xml.Schema"));
+            code.Imports.Add(new CodeNamespaceImport("System.ComponentModel"));
+
+            if (GeneratorContext.GeneratorParams.CustomUsings != null)
+            {
+                foreach (var item in GeneratorContext.GeneratorParams.CustomUsings)
+                    code.Imports.Add(new CodeNamespaceImport(item.NameSpace));
+            }
+
+            if (GeneratorContext.GeneratorParams.IncludeSerializeMethod)
+                code.Imports.Add(new CodeNamespaceImport("System.IO"));
+
+            switch (GeneratorContext.GeneratorParams.CollectionObjectType)
+            {
+                case CollectionType.List:
+                    code.Imports.Add(new CodeNamespaceImport("System.Collections.Generic"));
+                    break;
+                case CollectionType.ObservableCollection:
+                    code.Imports.Add(new CodeNamespaceImport("System.Collections.ObjectModel"));
+                    break;
+                default:
+                    break;
+            }
+
+            code.Name = GeneratorContext.GeneratorParams.NameSpace;
+        }
+
+        /// <summary>
+        /// Create data contract attribute
+        /// </summary>
+        /// <param name="type">Code type declaration</param>
+        /// <param name="schema">XML schema</param>
+        protected virtual void CreateDataContractAttribute(CodeTypeDeclaration type, XmlSchema schema)
+        {
+            // abstract
+        }
+
+        /// <summary>
+        /// Creates the data member attribute.
+        /// </summary>
+        /// <param name="prop">Represents a declaration for a property of a type.</param>
+        protected virtual void CreateDataMemberAttribute(CodeMemberProperty prop)
+        {
+            // abstract
+        }
+
+        /// <summary>
+        /// Recursive search of elemement.
+        /// </summary>
+        /// <param name="type">Element to search</param>
+        /// <param name="xmlElement">Current element</param>
+        /// <param name="currentElementName">Name of the current element.</param>
+        /// <param name="hierarchicalElmtName">The hierarchical Elmt Name.</param>
+        /// <returns>
+        /// return found XmlSchemaElement or null value
+        /// </returns>
+        protected virtual XmlSchemaElement SearchElement(CodeTypeDeclaration type, XmlSchemaElement xmlElement, string currentElementName, string hierarchicalElmtName)
+        {
+            var found = false;
+            if (type.IsClass)
+            {
+                if (xmlElement.Name == null)
+                    return null;
+
+                if (type.Name.Equals(hierarchicalElmtName + xmlElement.Name) ||
+                    type.Name.Equals(xmlElement.Name))
+                    found = true;
+            }
+            else
+            {
+                if (type.Name.Equals(xmlElement.QualifiedName.Name))
+                    found = true;
+            }
+
+            if (found)
+                return xmlElement;
+
+            var xmlComplexType = xmlElement.ElementSchemaType as XmlSchemaComplexType;
+            if (xmlComplexType != null)
+            {
+                var xmlSequence = xmlComplexType.ContentTypeParticle as XmlSchemaSequence;
+                if (xmlSequence != null)
+                {
+                    foreach (XmlSchemaObject item in xmlSequence.Items)
+                    {
+                        var currentXmlSchemaElement = item as XmlSchemaElement;
+                        if (currentXmlSchemaElement == null)
+                            continue;
+
+                        if (hierarchicalElmtName == xmlElement.QualifiedName.Name ||
+                            currentElementName == xmlElement.QualifiedName.Name)
+                            return null;
+
+                        XmlSchemaElement subItem = this.SearchElement(
+                                                                      type,
+                                                                      currentXmlSchemaElement,
+                                                                      xmlElement.QualifiedName.Name,
+                                                                      hierarchicalElmtName + xmlElement.QualifiedName.Name);
+                        if (subItem != null)
+                            return subItem;
+                    }
+                }
+            }
+
+            return null;
+        }
+
+        /// <summary>
+        /// Create CodeCommentStatement from schema documentation.
+        /// </summary>
+        /// <param name="codeStatmentColl">CodeCommentStatementCollection collection</param>
+        /// <param name="xmlDoc">Schema documentation</param>
+        protected virtual void CreateCommentStatment(
+                                                     CodeCommentStatementCollection codeStatmentColl,
+                                                     XmlSchemaDocumentation xmlDoc)
+        {
+            codeStatmentColl.Clear();
+            foreach (XmlNode itemDoc in xmlDoc.Markup)
+            {
+                var textLine = itemDoc.InnerText.Trim();
+                if (textLine.Length > 0)
+                    CodeDomHelper.CreateSummaryComment(codeStatmentColl, textLine);
+            }
+        }
+
+        /// <summary>
+        /// Field process.
+        /// </summary>
+        /// <param name="member">CodeTypeMember member</param>
+        /// <param name="ctor">CodeMemberMethod constructor</param>
+        /// <param name="ns">CodeNamespace XSD</param>
+        /// <param name="addedToConstructor">Indicates if create a new constructor</param>
+        protected virtual void ProcessFields(
+                                            CodeTypeMember member,
+                                            CodeMemberMethod ctor,
+                                            CodeNamespace ns,
+                                            ref bool addedToConstructor)
+        {
+            var field = (CodeMemberField)member;
+
+            // ---------------------------------------------
+            // [EditorBrowsable(EditorBrowsableState.Never)]
+            // ---------------------------------------------
+            if (member.Attributes == MemberAttributes.Private)
+            {
+                if (GeneratorContext.GeneratorParams.HidePrivateFieldInIde)
+                {
+                    var attributeType = new CodeTypeReference(
+                        typeof(EditorBrowsableAttribute).Name.Replace("Attribute", string.Empty));
+
+                    var argument = new CodeAttributeArgument
+                                       {
+                                           //Value = new CodePropertyReferenceExpression(
+                                               //new CodeSnippetExpression(typeof(EditorBrowsableState).Name), "Never")
+                                           Value = CodeDomHelper.GetEnum(typeof(EditorBrowsableState).Name,"Never")
+                                       };
+
+                    field.CustomAttributes.Add(new CodeAttributeDeclaration(attributeType, new[] { argument }));
+                }
+            }
+
+            // ------------------------------------------
+            // protected virtual  List <Actor> nameField;
+            // ------------------------------------------
+            var thisIsCollectionType = field.Type.ArrayElementType != null;
+            if (thisIsCollectionType)
+            {
+                field.Type = this.GetCollectionType(field.Type);
+            }
+
+            // ---------------------------------------
+            // if ((this.nameField == null))
+            // {
+            //    this.nameField = new List<Name>();
+            // }
+            // ---------------------------------------
+            if (GeneratorContext.GeneratorParams.EnableInitializeFields && GeneratorContext.GeneratorParams.CollectionObjectType != CollectionType.Array)
+            {
+                CodeTypeDeclaration declaration = this.FindTypeInNamespace(field.Type.BaseType, ns);
+                if (thisIsCollectionType ||
+                     (((declaration != null) && declaration.IsClass)
+                      && ((declaration.TypeAttributes & TypeAttributes.Abstract) != TypeAttributes.Abstract)))
+                {
+                    if (GeneratorContext.GeneratorParams.EnableLasyLoading)
+                    {
+                        lasyLoadingFields.Add(field.Name);
+                    }
+                    else
+                    {
+                        ctor.Statements.Insert(0, this.CreateInstance(field.Name, field.Type));
+                        addedToConstructor = true;
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// Create a Class Constructor
+        /// </summary>
+        /// <param name="type">type of declaration</param>
+        /// <returns>return CodeConstructor</returns>
+        protected virtual CodeConstructor CreateClassConstructor(CodeTypeDeclaration type)
+        {
+            var ctor = new CodeConstructor { Attributes = MemberAttributes.Public, Name = type.Name };
+            return ctor;
+        }
+
+        /// <summary>
+        /// Create new instance of object
+        /// </summary>
+        /// <param name="name">Name of object</param>
+        /// <param name="type">CodeTypeReference Type</param>
+        /// <returns>return instance CodeConditionStatement</returns>
+        protected virtual CodeConditionStatement CreateInstanceIfNotNull(string name, CodeTypeReference type)
+        {
+
+            CodeAssignStatement statement;
+            if (type.BaseType.Equals("System.String") && type.ArrayRank == 0)
+            {
+                statement =
+                    new CodeAssignStatement(
+                        new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), name),
+                        //new CodeSnippetExpression("String.Empty"));
+                        CodeDomHelper.GetStaticField(typeof(String), "Empty"));
+            }
+            else{
+            statement =
+                new CodeAssignStatement(
+                                        new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), name),
+                                        new CodeObjectCreateExpression(type, new CodeExpression[0]));
+            }
+
+            return
+                new CodeConditionStatement(
+                    new CodeBinaryOperatorExpression(
+                        new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), name),
+                        CodeBinaryOperatorType.IdentityEquality,
+                        new CodePrimitiveExpression(null)),
+                        new CodeStatement[] { statement });
+        }
+
+        /// <summary>
+        /// Create new instance of object
+        /// </summary>
+        /// <param name="name">Name of object</param>
+        /// <param name="type">CodeTypeReference Type</param>
+        /// <returns>return instance CodeConditionStatement</returns>
+        protected virtual CodeAssignStatement CreateInstance(string name, CodeTypeReference type)
+        {
+            //return new CodeAssignStatement(
+            //                            new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), name),
+            //                            new CodeObjectCreateExpression(type, new CodeExpression[0]));
+
+
+            CodeAssignStatement statement;
+            if (type.BaseType.Equals("System.String") && type.ArrayRank == 0)
+            {
+                statement =
+                new CodeAssignStatement(
+                                        new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), name),
+                                        //new CodeSnippetExpression("String.Empty"));
+                                        CodeDomHelper.GetStaticField(typeof(String), "Empty"));
+            }
+            else
+            {
+                statement =
+                    new CodeAssignStatement(
+                                            new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), name),
+                                            new CodeObjectCreateExpression(type, new CodeExpression[0]));
+            }
+            return statement;
+        }
+
+        /// <summary>
+        /// Recherche le CodeTypeDeclaration d'un objet en fonction de son type de base (nom de classe)
+        /// </summary>
+        /// <param name="typeName">Search name</param>
+        /// <param name="ns">Seach into</param>
+        /// <returns>CodeTypeDeclaration found</returns>
+        protected virtual CodeTypeDeclaration FindTypeInNamespace(string typeName, CodeNamespace ns)
+        {
+            foreach (CodeTypeDeclaration declaration in ns.Types)
+            {
+                if (declaration.Name == typeName)
+                    return declaration;
+            }
+
+            return null;
+        }
+
+        /// <summary>
+        /// Property process
+        /// </summary>
+        /// <param name="type">Represents a type declaration for a class, structure, interface, or enumeration</param>
+        /// <param name="ns">The ns.</param>
+        /// <param name="member">Type members include fields, methods, properties, constructors and nested types</param>
+        /// <param name="xmlElement">Represent the root element in schema</param>
+        /// <param name="schema">XML Schema</param>
+        protected virtual void ProcessProperty(CodeTypeDeclaration type, CodeNamespace ns, CodeTypeMember member, XmlSchemaElement xmlElement, XmlSchema schema)
+        {
+            if (GeneratorContext.GeneratorParams.EnableSummaryComment)
+            {
+                if (xmlElement != null)
+                {
+                    var xmlComplexType = xmlElement.ElementSchemaType as XmlSchemaComplexType;
+                    bool foundInAttributes = false;
+                    if (xmlComplexType != null)
+                    {
+                        // Search property in attributes for summary comment generation
+                        foreach (XmlSchemaObject attribute in xmlComplexType.Attributes)
+                        {
+                            var xmlAttrib = attribute as XmlSchemaAttribute;
+                            if (xmlAttrib != null)
+                            {
+                                if (member.Name.Equals(xmlAttrib.QualifiedName.Name))
+                                {
+                                    this.CreateCommentFromAnnotation(xmlAttrib.Annotation, member.Comments);
+                                    foundInAttributes = true;
+                                }
+                            }
+                        }
+
+                        // Search property in XmlSchemaElement for summary comment generation
+                        if (!foundInAttributes)
+                        {
+                            var xmlSequence = xmlComplexType.ContentTypeParticle as XmlSchemaSequence;
+                            if (xmlSequence != null)
+                            {
+                                foreach (XmlSchemaObject item in xmlSequence.Items)
+                                {
+                                    var currentItem = item as XmlSchemaElement;
+                                    if (currentItem != null)
+                                    {
+                                        if (member.Name.Equals(currentItem.QualifiedName.Name))
+                                            this.CreateCommentFromAnnotation(currentItem.Annotation, member.Comments);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+
+            var prop = (CodeMemberProperty)member;
+
+            if (prop.Type.ArrayElementType != null)
+            {
+                prop.Type = this.GetCollectionType(prop.Type);
+                collectionTypesFields.Add(prop.Name);
+            }
+
+            if (GeneratorContext.GeneratorParams.GenerateDataContracts)
+            {
+                this.CreateDataMemberAttribute(prop);
+            }
+
+            // Lasy loading
+            if (GeneratorContext.GeneratorParams.EnableInitializeFields)
+            {
+                var propReturnStatment = prop.GetStatements[0] as CodeMethodReturnStatement;
+                if (propReturnStatment != null)
+                {
+                    var field = propReturnStatment.Expression as CodeFieldReferenceExpression;
+                    if (field != null)
+                    {
+                        if (lasyLoadingFields.IndexOf(field.FieldName) != -1)
+                        {
+                            prop.GetStatements.Insert(0, this.CreateInstanceIfNotNull(field.FieldName, prop.Type));
+                        }
+                    }
+                }
+            }
+
+            // Add OnPropertyChanged in setter
+            if (GeneratorContext.GeneratorParams.EnableDataBinding)
+            {
+                if (type.BaseTypes.IndexOf(new CodeTypeReference(typeof(CollectionBase))) == -1)
+                {
+                    // -----------------------------
+                    // if (handler != null) {
+                    //    OnPropertyChanged("Name");
+                    // -----------------------------
+                    var propChange =
+                        new CodeMethodInvokeExpression(
+                            new CodeMethodReferenceExpression(new CodeThisReferenceExpression(), "OnPropertyChanged"),
+                            new CodeExpression[] { new CodePrimitiveExpression( prop.Name ) });
+                    
+                    var propAssignStatment = prop.SetStatements[0] as CodeAssignStatement;
+                    if (propAssignStatment != null)
+                    {
+                        var cfreL = propAssignStatment.Left as CodeFieldReferenceExpression;
+                        var cfreR = propAssignStatment.Right as CodePropertySetValueReferenceExpression;
+
+                        if (cfreL != null)
+                        {
+                            var setValueCondition = new CodeStatementCollection { propAssignStatment, propChange };
+
+                            // ---------------------------------------------
+                            // if ((xxxField.Equals(value) != true)) { ... }
+                            // ---------------------------------------------
+                            var condStatmentCondEquals = new CodeConditionStatement(
+                                new CodeBinaryOperatorExpression(
+                                    new CodeMethodInvokeExpression(
+                                        new CodeFieldReferenceExpression(
+                                            null,
+                                            cfreL.FieldName),
+                                        "Equals",
+                                        cfreR),
+                                    CodeBinaryOperatorType.IdentityInequality,
+                                    new CodePrimitiveExpression(true)),
+                                CodeDomHelper.CodeStmtColToArray(setValueCondition));
+
+                            // ---------------------------------------------
+                            // if ((xxxField != null)) { ... }
+                            // ---------------------------------------------
+                            var condStatmentCondNotNull = new CodeConditionStatement(
+                                new CodeBinaryOperatorExpression(
+                                    new CodeFieldReferenceExpression(
+                                        new CodeThisReferenceExpression(), cfreL.FieldName),
+                                        CodeBinaryOperatorType.IdentityInequality,
+                                        new CodePrimitiveExpression(null)),
+                                        new CodeStatement[] { condStatmentCondEquals },
+                                        CodeDomHelper.CodeStmtColToArray(setValueCondition));
+
+                            var property = member as CodeMemberProperty;
+                            if (property != null)
+                            {
+                                if (property.Type.BaseType != new CodeTypeReference(typeof(long)).BaseType &&
+                                    property.Type.BaseType != new CodeTypeReference(typeof(DateTime)).BaseType &&
+                                    property.Type.BaseType != new CodeTypeReference(typeof(float)).BaseType &&
+                                    property.Type.BaseType != new CodeTypeReference(typeof(double)).BaseType &&
+                                    property.Type.BaseType != new CodeTypeReference(typeof(int)).BaseType &&
+                                    property.Type.BaseType != new CodeTypeReference(typeof(bool)).BaseType &&
+                                    enumListField.IndexOf(property.Type.BaseType) == -1)
+                                    prop.SetStatements[0] = condStatmentCondNotNull;
+                                else
+                                    prop.SetStatements[0] = condStatmentCondEquals;
+                            }
+                        }
+                        else
+                            prop.SetStatements.Add(propChange);
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// Determines whether [is complex type] [the specified code type reference].
+        /// </summary>
+        /// <param name="fieldName">Name of the field.</param>
+        /// <param name="codeTypeReference">The code type reference.</param>
+        /// <param name="ns">The ns.</param>
+        /// <returns>
+        /// true if type is complex type (class, List, etc.)"/&gt;
+        /// </returns>
+        protected bool IsComplexType(CodeTypeReference codeTypeReference, CodeNamespace ns)
+        {
+            CodeTypeDeclaration declaration = this.FindTypeInNamespace(codeTypeReference.BaseType, ns);
+            return ((declaration != null) && declaration.IsClass) &&
+                   ((declaration.TypeAttributes & TypeAttributes.Abstract) != TypeAttributes.Abstract);
+        }
+
+        /// <summary>
+        /// Removes the default XML attributes.
+        /// </summary>
+        /// <param name="customAttributes">
+        /// The custom Attributes.
+        /// </param>
+        protected virtual void RemoveDefaultXmlAttributes(CodeAttributeDeclarationCollection customAttributes)
+        {
+            var codeAttributes = new List<CodeAttributeDeclaration>();
+            foreach (var attribute in customAttributes)
+            {
+                var attrib = attribute as CodeAttributeDeclaration;
+                if (attrib == null)
+                {
+                    continue;
+                }
+
+                if (attrib.Name == "System.Xml.Serialization.XmlAttributeAttribute" ||
+                    attrib.Name == "System.Xml.Serialization.XmlIgnoreAttribute" ||
+                    attrib.Name == "System.Xml.Serialization.XmlTypeAttribute" ||
+                    attrib.Name == "System.Xml.Serialization.XmlElementAttribute" ||
+                    attrib.Name == "System.CodeDom.Compiler.GeneratedCodeAttribute" ||
+                    attrib.Name == "System.Xml.Serialization.XmlRootAttribute")
+                {
+                    codeAttributes.Add(attrib);
+                }
+            }
+
+            foreach (var item in codeAttributes)
+            {
+                customAttributes.Remove(item);
+            }
+        }
+
+        /// <summary>
+        /// Removes the debug attributes.
+        /// </summary>
+        /// <param name="customAttributes">The custom attributes Collection.</param>
+        protected virtual void RemoveDebugAttributes(CodeAttributeDeclarationCollection customAttributes)
+        {
+            var codeAttributes = new List<CodeAttributeDeclaration>();
+            foreach (var attribute in customAttributes)
+            {
+                var attrib = attribute as CodeAttributeDeclaration;
+                if (attrib == null)
+                {
+                    continue;
+                }
+
+                if (attrib.Name == "System.Diagnostics.DebuggerStepThroughAttribute")
+                {
+                    codeAttributes.Add(attrib);
+                }
+            }
+            //DCM: OK not sure why it in this loop other than its like a transaction.
+            //Not going to touch it now.
+            foreach (var item in codeAttributes)
+            {
+                customAttributes.Remove(item);
+            }
+        }
+
+        /// <summary>
+        /// Generate summary comment from XmlSchemaAnnotation 
+        /// </summary>
+        /// <param name="xmlSchemaAnnotation">XmlSchemaAnnotation from XmlSchemaElement or XmlSchemaAttribute</param>
+        /// <param name="codeCommentStatementCollection">codeCommentStatementCollection from member</param>
+        protected virtual void CreateCommentFromAnnotation(XmlSchemaAnnotation xmlSchemaAnnotation, CodeCommentStatementCollection codeCommentStatementCollection)
+        {
+            if (xmlSchemaAnnotation != null)
+            {
+                foreach (XmlSchemaObject annotation in xmlSchemaAnnotation.Items)
+                {
+                    var xmlDoc = annotation as XmlSchemaDocumentation;
+                    if (xmlDoc != null)
+                    {
+                        this.CreateCommentStatment(codeCommentStatementCollection, xmlDoc);
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// Get CodeTypeReference for collection
+        /// </summary>
+        /// <param name="codeType">The code Type.</param>
+        /// <returns>return array of or genereric collection</returns>
+        protected virtual CodeTypeReference GetCollectionType(CodeTypeReference codeType)
+        {
+            CodeTypeReference collectionType = codeType;
+            if (codeType.BaseType == typeof(byte).FullName)
+            {
+                // Never change byte[] to List<byte> etc.
+                // Fix : when translating hexBinary and base64Binary 
+                return codeType;
+            }
+
+            switch (GeneratorContext.GeneratorParams.CollectionObjectType)
+            {
+                case CollectionType.List:
+                    collectionType = new CodeTypeReference("List", new[] { new CodeTypeReference(codeType.BaseType) });
+                    break;
+
+                case CollectionType.BindingList:
+                    collectionType = new CodeTypeReference("BindingList", new[] { new CodeTypeReference(codeType.BaseType) });
+                    break;
+
+                case CollectionType.ObservableCollection:
+                    collectionType = new CodeTypeReference("ObservableCollection", new[] { new CodeTypeReference(codeType.BaseType) });
+                    break;
+
+                case CollectionType.DefinedType:
+                    string typname = codeType.BaseType.Replace(".", string.Empty) + "Collection";
+
+                    if (!CollectionTypes.Keys.Contains(typname))
+                        CollectionTypes.Add(typname, codeType.BaseType);
+
+                    collectionType = new CodeTypeReference(typname);
+                    break;
+                default:
+                    {
+                        // If not use generics, remove multiple array Ex. string[][] => string[]
+                        // Fix : http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=7269
+                        if (codeType.ArrayElementType.ArrayRank > 0)
+                            collectionType.ArrayElementType.ArrayRank = 0;
+                    }
+
+                    break;
+            }
+
+            return collectionType;
+        }
+
+        /// <summary>
+        /// Search defaut constructor. If not exist, create a new ctor.
+        /// </summary>
+        /// <param name="type">CodeTypeDeclaration type</param>
+        /// <param name="newCTor">Indicates if new constructor</param>
+        /// <returns>return current or new CodeConstructor</returns>
+        protected virtual CodeConstructor GetConstructor(CodeTypeDeclaration type, ref bool newCTor)
+        {
+            CodeConstructor ctor = null;
+            foreach (CodeTypeMember member in type.Members)
+            {
+                if (member is CodeConstructor)
+                    ctor = member as CodeConstructor;
+            }
+
+            if (ctor == null)
+            {
+                newCTor = true;
+                ctor = this.CreateClassConstructor(type);
+            }
+
+            if (GeneratorContext.GeneratorParams.EnableSummaryComment)
+                CodeDomHelper.CreateSummaryComment(ctor.Comments, string.Format("{0} class constructor", ctor.Name));
+
+            return ctor;
+        }
+        #endregion
+
+        #region Private methods
+        /// <summary>
+        /// Creates the static serializer.
+        /// </summary>
+        /// <param name="classType">Type of the class.</param>
+        private static void CreateStaticSerializer(CodeTypeDeclaration classType)
+        {
+            string typeName = GeneratorContext.GeneratorParams.UseGenericBaseClass ? "T" : classType.Name;
+
+
+            //VB is not Case Sensitive
+            string fieldName = GeneratorContext.GeneratorParams.Language == GenerationLanguage.VisualBasic ?  "sSerializer" : "serializer" ;
+
+            // -----------------------------------------------------------------
+            // private static System.Xml.Serialization.XmlSerializer serializer;
+            // -----------------------------------------------------------------
+            var serializerfield = new CodeMemberField(typeof(XmlSerializer), fieldName);
+            serializerfield.Attributes = MemberAttributes.Static | MemberAttributes.Private;
+            classType.Members.Add(serializerfield);
+
+            var typeRef = new CodeTypeReference(typeName);
+            var typeofValue = new CodeTypeOfExpression(typeRef);
+
+            // private static System.Xml.Serialization.XmlSerializer Serializer { get {...} }
+            var serializerProperty = new CodeMemberProperty();
+            serializerProperty.Type = new CodeTypeReference(typeof(XmlSerializer));
+            serializerProperty.Name = "Serializer";
+
+            serializerProperty.HasSet = false;
+            serializerProperty.HasGet = true;
+            serializerProperty.Attributes = MemberAttributes.Static | MemberAttributes.Private;
+
+            var statments = new CodeStatementCollection();
+
+            statments.Add(
+                new CodeAssignStatement(
+                    new CodeVariableReferenceExpression(fieldName),
+                    new CodeObjectCreateExpression(
+                        new CodeTypeReference(typeof(XmlSerializer)), new CodeExpression[] { typeofValue })));
+
+
+            serializerProperty.GetStatements.Add(
+                new CodeConditionStatement(
+                    new CodeBinaryOperatorExpression(
+                        new CodeVariableReferenceExpression(fieldName),
+                        CodeBinaryOperatorType.IdentityEquality,
+                        new CodePrimitiveExpression(null)),
+                        statments.ToArray()));
+
+
+            serializerProperty.GetStatements.Add(
+                new CodeMethodReturnStatement(new CodeVariableReferenceExpression(fieldName)));
+
+            classType.Members.Add(serializerProperty);
+        }
+
+        /// <summary>
+        /// Generates the base class.
+        /// </summary>
+        /// <returns>Return base class codetype declaration</returns>
+        private CodeTypeDeclaration GenerateBaseClass()
+        {
+            var baseClass = new CodeTypeDeclaration(GeneratorContext.GeneratorParams.BaseClassName)
+                                {
+                                    IsClass = true,
+                                    IsPartial = true,
+                                    TypeAttributes = TypeAttributes.Public
+                                };
+
+            baseClass.StartDirectives.Add(new CodeRegionDirective(CodeRegionMode.Start, "Base entity class"));
+            baseClass.EndDirectives.Add(new CodeRegionDirective(CodeRegionMode.End, "Base entity class"));
+
+            if (GeneratorContext.GeneratorParams.EnableDataBinding)
+                baseClass.BaseTypes.Add(typeof(INotifyPropertyChanged));
+
+            baseClass.TypeParameters.Add(new CodeTypeParameter("T"));
+
+            if (GeneratorContext.GeneratorParams.EnableDataBinding)
+                this.CreateDataBinding(baseClass);
+
+            if (GeneratorContext.GeneratorParams.IncludeSerializeMethod)
+            {
+                CreateStaticSerializer(baseClass);
+                this.CreateSerializeMethods(baseClass);
+            }
+
+            if (GeneratorContext.GeneratorParams.GenerateCloneMethod)
+                this.CreateCloneMethod(baseClass);
+
+            return baseClass;
+        }
+
+        /// <summary>
+        /// Search XmlElement in schema.
+        /// </summary>
+        /// <param name="codeTypeDeclaration">Represents a type declaration for a class, structure, interface, or enumeration.</param>
+        /// <param name="schema">schema object</param>
+        /// <param name="visitedSchemas">The visited schemas.</param>
+        /// <returns>
+        /// return found XmlSchemaElement or null value
+        /// </returns>
+        private XmlSchemaElement SearchElementInSchema(CodeTypeDeclaration codeTypeDeclaration, XmlSchema schema, List<XmlSchema> visitedSchemas)
+        {
+            foreach (var item in schema.Items)
+            {
+                var xmlElement = item as XmlSchemaElement;
+                if (xmlElement == null)
+                {
+                    continue;
+                }
+
+                var xmlSubElement = this.SearchElement(codeTypeDeclaration, xmlElement, string.Empty, string.Empty);
+                if (xmlSubElement != null) return xmlSubElement;
+            }
+
+            // If not found search in schema inclusion
+            foreach (var item in schema.Includes)
+            {
+                var schemaInc = item as XmlSchemaInclude;
+
+                // avoid to follow cyclic refrence
+                if ((schemaInc == null) || visitedSchemas.Exists(loc => schemaInc.Schema == loc))
+                    continue;
+
+                visitedSchemas.Add(schemaInc.Schema);
+                var includeElmts = this.SearchElementInSchema(codeTypeDeclaration, schemaInc.Schema, visitedSchemas);
+                visitedSchemas.Remove(schemaInc.Schema);
+
+                if (includeElmts != null) return includeElmts;
+            }
+
+            return null;
+        }
+        #endregion
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtensionAttribute.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtensionAttribute.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtensionAttribute.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,47 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="CodeExtensionAttribute.cs" company="Xsd2Code">
+//   N/A
+// </copyright>
+// <summary>
+//   Target framework attribute class
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Extensions
+{
+    using System;
+
+    /// <summary>
+    /// Target framework attribute class
+    /// </summary>
+    [AttributeUsage(AttributeTargets.Class)]
+    public class CodeExtensionAttribute : Attribute
+    {
+        /// <summary>
+        /// Member field targetFrameworkField
+        /// </summary>
+        private readonly TargetFramework targetFrameworkField;
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="CodeExtensionAttribute"/> class.
+        /// </summary>
+        /// <param name="targetFramework">The target framework.</param>
+        public CodeExtensionAttribute(TargetFramework targetFramework)
+        {
+            this.targetFrameworkField = targetFramework;
+        }
+
+        #region Property : TargetFramework
+
+        /// <summary>
+        /// Gets the target framework.
+        /// </summary>
+        /// <value>The target framework.</value>
+        public TargetFramework TargetFramework
+        {
+            get { return this.targetFrameworkField; }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtensionFactory.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtensionFactory.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/CodeExtensionFactory.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Xsd2Code.Library.Helpers;
+
+namespace Xsd2Code.Library
+{
+
+    /// <summary>
+    /// Generator extension factory class 
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Created 2009-03-16 by Ruslan Urban
+    /// 
+    /// </remarks>
+    internal static class CodeExtensionFactory
+    {
+        
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net20Extension.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net20Extension.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net20Extension.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,28 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="Net20Extension.cs" company="Xsd2Code">
+//   N/A
+// </copyright>
+// <summary>
+//   Implements code generation extension for .Net Framework 2.0
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Extensions
+{
+    /// <summary>
+    /// Implements code generation extension for .Net Framework 2.0
+    /// </summary>
+    [CodeExtension(TargetFramework.Net20)]
+    public class Net20Extension : CodeExtension
+    {
+        /// <summary>
+        /// Create data contract attribute
+        /// </summary>
+        /// <param name="type">Code type declaration</param>
+        /// <param name="schema">XML schema</param>
+        protected override void CreateDataContractAttribute(System.CodeDom.CodeTypeDeclaration type, System.Xml.Schema.XmlSchema schema)
+        {
+            // No data contracts in the Net.20
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net30Extension.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net30Extension.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net30Extension.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,339 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="Net30Extension.cs" company="Xsd2Code">
+//   N/A
+// </copyright>
+// <summary>
+//   Implements code generation extension for .Net Framework 3.0
+// </summary>
+// <remarks>
+//  Updated 2010-01-20 Deerwood McCord Jr. Cleaned CodeSnippetStatements by replacing with specific CodeDom Expressions
+// </remarks>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Extensions
+{
+    using System.CodeDom;
+    using System.CodeDom.Compiler;
+    using System.Collections.Generic;
+    using System.IO;
+    using System.Xml.Schema;
+    using Helpers;
+
+    /// <summary>
+    /// Implements code generation extension for .Net Framework 3.0
+    /// </summary>
+    [CodeExtension(TargetFramework.Net30)]
+    public class Net30Extension : CodeExtension
+    {
+        #region Private Fields
+
+        /// <summary>
+        /// List the properties that will change to auto properties
+        /// </summary>
+        private readonly List<CodeMemberProperty> autoPropertyListField = new List<CodeMemberProperty>();
+
+        /// <summary>
+        /// List the fields to be deleted
+        /// </summary>
+        private readonly List<CodeMemberField> fieldListToRemoveField = new List<CodeMemberField>();
+
+        /// <summary>
+        /// List fields that require an initialization in the constructor
+        /// </summary>
+        private readonly List<string> fieldWithAssignementInCtorListField = new List<string>();
+
+        #endregion
+
+        #region Protected methods
+
+        /// <summary>
+        /// Processes the class.
+        /// </summary>
+        /// <param name="codeNamespace">The code namespace.</param>
+        /// <param name="schema">The input xsd schema.</param>
+        /// <param name="type">Represents a type declaration for a class, structure, interface, or enumeration</param>
+        protected override void ProcessClass(CodeNamespace codeNamespace, XmlSchema schema, CodeTypeDeclaration type)
+        {
+            this.autoPropertyListField.Clear();
+            this.fieldListToRemoveField.Clear();
+            this.fieldWithAssignementInCtorListField.Clear();
+
+            // looks for properties that can not become automatic property
+            CodeConstructor ctor = null;
+            foreach (CodeTypeMember member in type.Members)
+            {
+                if (member is CodeConstructor)
+                    ctor = member as CodeConstructor;
+            }
+
+            if (ctor != null)
+            {
+                foreach (var statement in ctor.Statements)
+                {
+                    var codeAssignStatement = statement as CodeAssignStatement;
+                    if (codeAssignStatement == null) continue;
+                    var code = codeAssignStatement.Left as CodeFieldReferenceExpression;
+                    if (code != null)
+                    {
+                        this.fieldWithAssignementInCtorListField.Add(code.FieldName);
+                    }
+                }
+            }
+
+            base.ProcessClass(codeNamespace, schema, type);
+
+            // generate automatic properties
+            this.GenerateAutomaticProperties(type);
+        }
+
+        /// <summary>
+        /// Create data contract attribute
+        /// </summary>
+        /// <param name="type">Code type declaration</param>
+        /// <param name="schema">XML schema</param>
+        protected override void CreateDataContractAttribute(CodeTypeDeclaration type, XmlSchema schema)
+        {
+            base.CreateDataContractAttribute(type, schema);
+
+            if (GeneratorContext.GeneratorParams.GenerateDataContracts)
+            {
+                var attributeType = new CodeTypeReference("System.Runtime.Serialization.DataContractAttribute");
+                var codeAttributeArgument = new List<CodeAttributeArgument>();
+
+                //var typeName = string.Concat('"', type.Name, '"');
+                //codeAttributeArgument.Add(new CodeAttributeArgument("Name", new CodeSnippetExpression(typeName)));
+                codeAttributeArgument.Add(new CodeAttributeArgument("Name", new CodePrimitiveExpression(type.Name)));
+
+                if (!string.IsNullOrEmpty(schema.TargetNamespace))
+                {
+                    //var targetNamespace = string.Concat('\"', schema.TargetNamespace, '\"');
+                    //codeAttributeArgument.Add(new CodeAttributeArgument("Namespace", new CodeSnippetExpression(targetNamespace)));
+                    codeAttributeArgument.Add(new CodeAttributeArgument("Namespace", new CodePrimitiveExpression(schema.TargetNamespace)));
+                }
+
+                type.CustomAttributes.Add(new CodeAttributeDeclaration(attributeType, codeAttributeArgument.ToArray()));
+            }
+        }
+
+        /// <summary>
+        /// Creates the data member attribute.
+        /// </summary>
+        /// <param name="prop">Represents a declaration for a property of a type.</param>
+        protected override void CreateDataMemberAttribute(CodeMemberProperty prop)
+        {
+            base.CreateDataMemberAttribute(prop);
+
+            if (GeneratorContext.GeneratorParams.GenerateDataContracts)
+            {
+                var attrib = new CodeTypeReference("System.Runtime.Serialization.DataMemberAttribute");
+                prop.CustomAttributes.Add(new CodeAttributeDeclaration(attrib));
+            }
+        }
+
+        /// <summary>
+        /// Import namespaces
+        /// </summary>
+        /// <param name="code">Code namespace</param>
+        protected override void ImportNamespaces(CodeNamespace code)
+        {
+            base.ImportNamespaces(code);
+
+            if (GeneratorContext.GeneratorParams.GenerateDataContracts)
+                code.Imports.Add(new CodeNamespaceImport("System.Runtime.Serialization"));
+        }
+
+        /// <summary>
+        /// Property process
+        /// </summary>
+        /// <param name="type">Represents a type declaration for a class, structure, interface, or enumeration</param>
+        /// <param name="ns">The ns.</param>
+        /// <param name="member">Type members include fields, methods, properties, constructors and nested types</param>
+        /// <param name="xmlElement">Represent the root element in schema</param>
+        /// <param name="schema">XML Schema</param>
+        protected override void ProcessProperty(CodeTypeDeclaration type, CodeNamespace ns, CodeTypeMember member, XmlSchemaElement xmlElement, XmlSchema schema)
+        {
+            // Get now if property is array before base.ProcessProperty call.
+            var prop = (CodeMemberProperty)member;
+
+            base.ProcessProperty(type, ns, member, xmlElement, schema);
+
+            // Generate automatic properties.
+            if (GeneratorContext.GeneratorParams.Language == GenerationLanguage.CSharp)
+            {
+                if (GeneratorContext.GeneratorParams.AutomaticProperties)
+                {
+                    if (!this.IsComplexType(prop.Type, ns))
+                    {
+                        // Exclude collection type
+                        if (collectionTypesFields.IndexOf(prop.Name) == -1)
+                        {
+                            // Get private fieldName
+                            var propReturnStatment = prop.GetStatements[0] as CodeMethodReturnStatement;
+                            if (propReturnStatment != null)
+                            {
+                                var field = propReturnStatment.Expression as CodeFieldReferenceExpression;
+                                if (field != null)
+                                {
+                                    // Check if private field don't need initialisation in ctor (defaut value).
+                                    if (this.fieldWithAssignementInCtorListField.FindIndex(p => p == field.FieldName) == -1)
+                                    {
+                                        this.autoPropertyListField.Add(member as CodeMemberProperty);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// process Fields.
+        /// </summary>
+        /// <param name="member">CodeTypeMember member</param>
+        /// <param name="ctor">CodeMemberMethod constructor</param>
+        /// <param name="ns">CodeNamespace XSD</param>
+        /// <param name="addedToConstructor">Indicates if create a new constructor</param>
+        protected override void ProcessFields(CodeTypeMember member, CodeMemberMethod ctor, CodeNamespace ns, ref bool addedToConstructor)
+        {
+            // Get now if filed is array before base.ProcessProperty call.
+            var field = (CodeMemberField)member;
+            bool isArray = field.Type.ArrayElementType != null;
+
+            base.ProcessFields(member, ctor, ns, ref addedToConstructor);
+
+            // Generate automatic properties.
+            if (GeneratorContext.GeneratorParams.Language == GenerationLanguage.CSharp)
+            {
+                if (GeneratorContext.GeneratorParams.AutomaticProperties)
+                {
+                    if (!isArray)
+                    {
+                        if (!this.IsComplexType(field.Type, ns))
+                        {
+                            // If this field is not assigned in ctor, add it in remove list.
+                            // with automatic property, don't need to keep private field.
+                            if (this.fieldWithAssignementInCtorListField.FindIndex(p => p == field.Name) == -1)
+                            {
+                                this.fieldListToRemoveField.Add(field);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        #endregion
+
+        #region static methods
+        /// <summary>
+        /// Outputs the attribute argument.
+        /// </summary>
+        /// <param name="arg">Represents an argument used in a metadata attribute declaration.</param>
+        /// <returns>transform attribute into srting</returns>
+        private static string AttributeArgumentToString(CodeAttributeArgument arg)
+        {
+            var strWriter = new StringWriter();
+            var provider = CodeDomProviderFactory.GetProvider(GeneratorContext.GeneratorParams.Language);
+
+            if (!string.IsNullOrEmpty(arg.Name))
+            {
+                strWriter.Write(arg.Name);
+                strWriter.Write("=");
+            }
+
+            provider.GenerateCodeFromExpression(arg.Value, strWriter, new CodeGeneratorOptions());
+            var strrdr = new StringReader(strWriter.ToString());
+            return strrdr.ReadToEnd();
+        }
+        #endregion
+
+        /// <summary>
+        /// Outputs the attribute argument.
+        /// </summary>
+        /// <param name="arg">Represents an argument used in a metadata attribute declaration.</param>
+        /// <returns>transform attribute into srting</returns>
+        private static string ExpressionToString(CodeExpression arg)
+        {
+            var strWriter = new StringWriter();
+            var provider = CodeDomProviderFactory.GetProvider(GeneratorContext.GeneratorParams.Language);
+            provider.GenerateCodeFromExpression(arg, strWriter, new CodeGeneratorOptions());
+            var strrdr = new StringReader(strWriter.ToString());
+            return strrdr.ReadToEnd();
+        }
+
+
+        #region Private methods
+        /// <summary>
+        /// Generates the automatic properties.
+        /// </summary>
+        /// <param name="type">Represents a type declaration for a class, structure, interface, or enumeration.</param>
+        private void GenerateAutomaticProperties(CodeTypeDeclaration type)
+        {
+            if (Equals(GeneratorContext.GeneratorParams.Language, GenerationLanguage.CSharp))
+            {
+                // If databinding is disable, use automatic property
+                if (GeneratorContext.GeneratorParams.AutomaticProperties)
+                {
+                    foreach (var item in this.autoPropertyListField)
+                    {
+                        var cm = new CodeSnippetTypeMember();
+                        bool transformToAutomaticproperty = true;
+
+                        var attributesString = new List<string>();
+                        foreach (var attribute in item.CustomAttributes)
+                        {
+                            var attrib = attribute as CodeAttributeDeclaration;
+                            if (attrib != null)
+                            {
+                                // Don't transform property with default value.
+                                if (attrib.Name == "System.ComponentModel.DefaultValueAttribute")
+                                {
+                                    transformToAutomaticproperty = false;
+                                }
+                                else
+                                {
+                                    string attributesArgument = string.Empty;
+                                    foreach (var arg in attrib.Arguments)
+                                    {
+                                        var argument = arg as CodeAttributeArgument;
+                                        if (argument != null)
+                                        {
+                                            attributesArgument += AttributeArgumentToString(argument);
+                                        }
+                                    }
+
+                                    attributesString.Add(string.Format("[{0}({1})]", attrib.Name, attributesArgument));
+                                }
+                            }
+                        }
+
+                        if (transformToAutomaticproperty)
+                        {
+                            foreach (var attribute in attributesString)
+                            {
+                                cm.Text += "    " + attribute + "\n";
+                            }
+                            var ct = new CodeTypeReferenceExpression(item.Type);
+                            var prop = ExpressionToString(ct);
+
+                            var text = string.Format("    public {0} {1} ", prop, item.Name);
+                            cm.Text += string.Concat(text, "{get; set;}\n");
+                            cm.Comments.AddRange(item.Comments);
+
+                            type.Members.Add(cm);
+                            type.Members.Remove(item);
+                        }
+                    }
+
+                    // Now remove all private fileds
+                    foreach (var item in this.fieldListToRemoveField)
+                    {
+                        type.Members.Remove(item);
+                    }
+                }
+            }
+        }
+        #endregion
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net35Extension.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net35Extension.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/Net35Extension.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,19 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="Net35Extension.cs" company="Xsd2Code">
+//   N/A
+// </copyright>
+// <summary>
+//   Implements code extension for .Net Framework 3.5
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Extensions
+{
+    /// <summary>
+    /// Implements code extension for .Net Framework 3.5
+    /// </summary>
+    [CodeExtension(TargetFramework.Net35)]
+    public class Net35Extension : Net30Extension
+    {
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/SilverlightExtension.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/SilverlightExtension.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Extensions/SilverlightExtension.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,251 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="SilverlightExtension.cs" company="Xsd2Code">
+//   N/A
+// </copyright>
+// <summary>
+//   Implements code generation extension for Silverlight 2.0
+// </summary>
+// <remarks>
+//  Updated 2010-01-20 Deerwood McCord Jr. Cleaned CodeSnippetStatements by replacing with specific CodeDom Expressions
+// </remarks>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Extensions
+{
+    using System.CodeDom;
+    using System.IO;
+    using System.IO.IsolatedStorage;
+    using Helpers;
+
+    /// <summary>
+    /// Implements code generation extension for Silverlight 2.0
+    /// </summary>
+    [CodeExtension(TargetFramework.Silverlight)]
+    public class SilverlightExtension : Net35Extension
+    {
+        /// <summary>
+        /// Import namespaces
+        /// </summary>
+        /// <param name="code">Code namespace</param>
+        protected override void ImportNamespaces(CodeNamespace code)
+        {
+            base.ImportNamespaces(code);
+            if (GeneratorContext.GeneratorParams.IncludeSerializeMethod)
+            {
+                code.Imports.Add(new CodeNamespaceImport("System.IO.IsolatedStorage"));
+            }
+        }
+
+        /// <summary>
+        /// Gets the load from file CodeDOM method.
+        /// </summary>
+        /// <param name="type">The type CodeTypeDeclaration.</param>
+        /// <returns>return the codeDom LoadFromFile method</returns>
+        protected override CodeMemberMethod GetLoadFromFileMethod(CodeTypeDeclaration type)
+        {
+            string typeName = GeneratorContext.GeneratorParams.UseGenericBaseClass ? "T" : type.Name;
+
+            // ---------------------------------------------
+            // public static T LoadFromFile(string fileName)
+            // ---------------------------------------------
+            var loadFromFileMethod = new CodeMemberMethod
+            {
+                Attributes = MemberAttributes.Public | MemberAttributes.Static,
+                Name = GeneratorContext.GeneratorParams.LoadFromFileMethodName
+            };
+
+            loadFromFileMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "fileName"));
+            loadFromFileMethod.ReturnType = new CodeTypeReference(typeName);
+
+            loadFromFileMethod.Statements.Add(
+                new CodeVariableDeclarationStatement(
+                        new CodeTypeReference(typeof(IsolatedStorageFile)),
+                        "isoFile",
+                        new CodePrimitiveExpression(null)));
+
+            loadFromFileMethod.Statements.Add(
+                new CodeVariableDeclarationStatement(
+                        new CodeTypeReference(typeof(IsolatedStorageFileStream)),
+                        "isoStream",
+                        new CodePrimitiveExpression(null)));
+
+            loadFromFileMethod.Statements.Add(
+               new CodeVariableDeclarationStatement(
+                       new CodeTypeReference(typeof(StreamReader)),
+                       "sr",
+                       new CodePrimitiveExpression(null)));
+
+            var tryStatmanentsCol = new CodeStatementCollection();
+            var finallyStatmanentsCol = new CodeStatementCollection();
+
+            tryStatmanentsCol.Add(
+                new CodeAssignStatement(
+                new CodeVariableReferenceExpression("isoFile"),
+                CodeDomHelper.GetInvokeMethod("IsolatedStorageFile", "GetUserStoreForApplication")));
+
+            tryStatmanentsCol.Add(
+                new CodeAssignStatement(
+                    new CodeVariableReferenceExpression("isoStream"),
+                    new CodeObjectCreateExpression(
+                        typeof(IsolatedStorageFileStream),
+                        new CodeExpression[]
+                        {
+                             new CodeArgumentReferenceExpression("fileName"),
+                             CodeDomHelper.GetEnum("FileMode","Open"),
+                             new CodeVariableReferenceExpression("isoFile")
+                    })));
+
+            tryStatmanentsCol.Add(
+                new CodeAssignStatement(
+                    new CodeVariableReferenceExpression("sr"),
+                    new CodeObjectCreateExpression(
+                        typeof(StreamReader),
+                        new CodeExpression[]
+                        {
+                            new CodeVariableReferenceExpression("isoStream"),
+                    })));
+
+            // ----------------------------------
+            // string xmlString = sr.ReadToEnd();
+            // ----------------------------------
+            var readToEndInvoke = CodeDomHelper.GetInvokeMethod("sr", "ReadToEnd");
+
+            var xmlString = new CodeVariableDeclarationStatement(
+                new CodeTypeReference(typeof(string)), "xmlString", readToEndInvoke);
+
+            tryStatmanentsCol.Add(xmlString);
+            tryStatmanentsCol.Add(CodeDomHelper.GetInvokeMethod("isoStream", "Close"));
+            tryStatmanentsCol.Add(CodeDomHelper.GetInvokeMethod("sr", "Close"));
+
+            // ------------------------------------------------------
+            // return Deserialize(xmlString, out obj, out exception);
+            // ------------------------------------------------------            
+            var fileName = new CodeVariableReferenceExpression("xmlString");
+
+            var deserializeInvoke =
+                new CodeMethodInvokeExpression(
+                    new CodeMethodReferenceExpression(null, GeneratorContext.GeneratorParams.DeserializeMethodName),
+                    new CodeExpression[] { fileName });
+
+            var rstmts = new CodeMethodReturnStatement(deserializeInvoke);
+            tryStatmanentsCol.Add(rstmts);
+
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("isoFile"));
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("isoStream"));
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("sr"));
+
+            var tryfinally = new CodeTryCatchFinallyStatement(
+                CodeDomHelper.CodeStmtColToArray(tryStatmanentsCol), new CodeCatchClause[0], CodeDomHelper.CodeStmtColToArray(finallyStatmanentsCol));
+
+            loadFromFileMethod.Statements.Add(tryfinally);
+
+            return loadFromFileMethod;
+        }
+
+        /// <summary>
+        /// Gets the Silverlight save to isolate storage file.
+        /// </summary>
+        /// <param name="type">CodeTypeDeclaration type.</param>
+        /// <returns>return the save to file code DOM method statment </returns>
+        protected override CodeMemberMethod GetSaveToFileMethod()
+        {
+            // -----------------------------------------------
+            // public virtual void SaveToFile(string fileName)
+            // -----------------------------------------------
+            var saveToFileMethod = new CodeMemberMethod
+            {
+                Attributes = MemberAttributes.Public,
+                Name = GeneratorContext.GeneratorParams.SaveToFileMethodName
+            };
+
+            saveToFileMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "fileName"));
+
+            saveToFileMethod.Statements.Add(
+                new CodeVariableDeclarationStatement(
+                    new CodeTypeReference(typeof(StreamWriter)),
+                    "streamWriter",
+                    new CodePrimitiveExpression(null)));
+
+            saveToFileMethod.Statements.Add(
+                new CodeVariableDeclarationStatement(
+                    new CodeTypeReference(typeof(IsolatedStorageFile)),
+                    "isoFile",
+                    new CodePrimitiveExpression(null)));
+
+            saveToFileMethod.Statements.Add(
+                new CodeVariableDeclarationStatement(
+                    new CodeTypeReference(typeof(IsolatedStorageFileStream)),
+                    "isoStream",
+                    new CodePrimitiveExpression(null)));
+
+            // ------------------------
+            // try {...} finally {...}
+            // -----------------------
+            var tryExpression = new CodeStatementCollection();
+
+            tryExpression.Add(
+                new CodeAssignStatement(
+                new CodeVariableReferenceExpression("isoFile"),
+                CodeDomHelper.GetInvokeMethod("IsolatedStorageFile", "GetUserStoreForApplication")));
+
+            tryExpression.Add(
+                new CodeAssignStatement(
+                    new CodeVariableReferenceExpression("isoStream"),
+                    new CodeObjectCreateExpression(
+                        typeof(IsolatedStorageFileStream),
+                        new CodeExpression[]
+                        {
+                             new CodeArgumentReferenceExpression("fileName"),
+                             CodeDomHelper.GetEnum("FileMode","Create"),
+                             new CodeVariableReferenceExpression("isoFile")
+                    })));
+
+            tryExpression.Add(
+                new CodeAssignStatement(
+                    new CodeVariableReferenceExpression("streamWriter"),
+                    new CodeObjectCreateExpression(
+                        typeof(StreamWriter),
+                        new CodeExpression[]
+                        {
+                            new CodeVariableReferenceExpression("isoStream"),
+                    })));
+
+            // ------------------------------
+            // string xmlString = Serialize();
+            // -------------------------------
+            var serializeMethodInvoke = new CodeMethodInvokeExpression(
+                new CodeMethodReferenceExpression(null, GeneratorContext.GeneratorParams.SerializeMethodName));
+
+            var xmlString = new CodeVariableDeclarationStatement(
+                new CodeTypeReference(typeof(string)), "xmlString", serializeMethodInvoke);
+
+            tryExpression.Add(xmlString);
+
+            // ----------------------------------
+            // streamWriter.WriteLine(xmlString);
+            // ----------------------------------
+            var writeLineMethodInvoke =
+                CodeDomHelper.GetInvokeMethod(
+                                                "streamWriter",
+                                                "WriteLine",
+                                                new CodeExpression[]
+                                                  {
+                                                      new CodeVariableReferenceExpression("xmlString")
+                                                  });
+
+            tryExpression.Add(writeLineMethodInvoke);
+            tryExpression.Add(CodeDomHelper.GetInvokeMethod("streamWriter", "Close"));
+            tryExpression.Add(CodeDomHelper.GetInvokeMethod("isoStream", "Close"));
+
+            var finallyStatmanentsCol = new CodeStatementCollection();
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("streamWriter"));
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("isoFile"));
+            finallyStatmanentsCol.Add(CodeDomHelper.GetDispose("isoStream"));
+
+            var trycatch = new CodeTryCatchFinallyStatement(tryExpression.ToArray(), new CodeCatchClause[0], finallyStatmanentsCol.ToArray());
+            saveToFileMethod.Statements.Add(trycatch);
+
+            return saveToFileMethod;
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GenerationLanguage.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GenerationLanguage.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GenerationLanguage.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,37 @@
+using System.ComponentModel;
+
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Code generation language enumeration
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Created 2009-02-20 by Ruslan Urban
+    ///     Code refactoring: moved enum into a separate file
+    ///     Added Description attribute for use in error messages
+    /// 
+    /// </remarks>
+    [DefaultValue(CSharp)]
+    public enum GenerationLanguage
+    {
+        /// <summary>
+        /// CShap language
+        /// </summary>
+        [Description("C#")]
+        CSharp,
+
+        /// <summary>
+        /// Visual Basic language
+        /// </summary>
+        [Description("Visual Basic")]
+        VisualBasic,
+
+        /// <summary>
+        /// Visual c++
+        /// </summary>
+        [Description("Visual C++")]
+        VisualCpp
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Generator.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Generator.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Generator.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,159 @@
+using System;
+using System.CodeDom;
+using System.Collections.Generic;
+using System.IO;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+using Xsd2Code.Library.Extensions;
+using Xsd2Code.Library.Helpers;
+using System.Xml;
+using System.Linq;
+
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Generator class
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Modified 2009-02-20 by Ruslan Urban
+    ///     Changed signature of the GeneratorFacade class constructor
+    ///     Modified 2009-05-18 by Pascal Cabanel
+    ///     Use CodeExtentionFactory
+    /// </remarks>
+    public sealed class Generator
+    {
+        /// <summary>
+        /// Extension Namespace const
+        /// </summary>
+        public const string ExtensionNamespace = "http://www.myxaml.fr";
+
+        /// <summary>
+        /// Processes the specified XSD file.
+        /// </summary>
+        /// <param name="xsdFile">The XSD file.</param>
+        /// <param name="targetNamespace">The target namespace.</param>
+        /// <param name="language">The language.</param>
+        /// <param name="collectionType">Type of the collection.</param>
+        /// <param name="enableDataBinding">if set to <c>true</c> [enable data binding].</param>
+        /// <param name="hidePrivate">if set to <c>true</c> [hide private].</param>
+        /// <param name="enableSummaryComment">if set to <c>true</c> [enable summary comment].</param>
+        /// <param name="customUsings">The custom usings.</param>
+        /// <param name="collectionBase">The collection base.</param>
+        /// <param name="includeSerializeMethod">if set to <c>true</c> [include serialize method].</param>
+        /// <param name="serializeMethodName">Name of the serialize method.</param>
+        /// <param name="deserializeMethodName">Name of the deserialize method.</param>
+        /// <param name="saveToFileMethodName">Name of the save to file method.</param>
+        /// <param name="loadFromFileMethodName">Name of the load from file method.</param>
+        /// <param name="generateCloneMethod"></param>
+        /// <param name="targetFramework"></param>
+        /// <returns>result CodeNamespace</returns>
+        [Obsolete("Do not use", true)]
+        internal static Result<CodeNamespace> Process(string xsdFile, string targetNamespace,
+                                                      GenerationLanguage language,
+                                                      CollectionType collectionType, bool enableDataBinding,
+                                                      bool hidePrivate,
+                                                      bool enableSummaryComment, List<NamespaceParam> customUsings,
+                                                      string collectionBase, bool includeSerializeMethod,
+                                                      string serializeMethodName, string deserializeMethodName,
+                                                      string saveToFileMethodName, string loadFromFileMethodName,
+                                                      bool generateCloneMethod, TargetFramework targetFramework)
+        {
+            var generatorParams = new GeneratorParams
+                                      {
+                                          CollectionObjectType = collectionType,
+                                          EnableDataBinding = enableDataBinding,
+                                          HidePrivateFieldInIde = hidePrivate,
+                                          Language = language,
+                                          EnableSummaryComment = enableSummaryComment,
+                                          CustomUsings = customUsings,
+                                          CollectionBase = collectionBase,
+                                          IncludeSerializeMethod = includeSerializeMethod,
+                                          GenerateCloneMethod = generateCloneMethod,
+                                          TargetFramework = targetFramework,
+                                          SerializeMethodName = serializeMethodName,
+                                          DeserializeMethodName = deserializeMethodName,
+                                          SaveToFileMethodName = saveToFileMethodName,
+                                          LoadFromFileMethodName = loadFromFileMethodName,
+                                      };
+
+            return Process(generatorParams);
+        }
+
+        /// <summary>
+        /// Initiate code generation process
+        /// </summary>
+        /// <param name="generatorParams">Generator parameters</param>
+        /// <returns></returns>
+        internal static Result<CodeNamespace> Process(GeneratorParams generatorParams)
+        {
+            var ns = new CodeNamespace();
+            try
+            {
+
+                #region Set generation context
+
+                GeneratorContext.GeneratorParams = generatorParams;
+
+                #endregion
+
+                #region Get XmlTypeMapping
+
+                XmlSchema xsd;
+                var schemas = new XmlSchemas();
+
+                xsd = XmlSchema.Read(XmlReader.Create(generatorParams.InputFilePath), new ValidationEventHandler(Validate));
+
+                XmlSchemaSet schemaSet = new XmlSchemaSet();
+                schemaSet.Add(xsd);
+                schemaSet.Compile();
+
+                foreach (XmlSchema schema in schemaSet.Schemas())
+                {
+                    schemas.Add(schema);
+                }
+
+                var exporter = new XmlCodeExporter(ns);
+                var importer = new XmlSchemaImporter(schemas);
+
+                foreach (XmlSchemaElement element in xsd.Elements.Values)
+                {
+                    var mapping = importer.ImportTypeMapping(element.QualifiedName);
+                    exporter.ExportTypeMapping(mapping);
+                }
+
+                //Fixes/handles http://xsd2code.codeplex.com/WorkItem/View.aspx?WorkItemId=6941
+                foreach (XmlSchemaComplexType complex in xsd.Items.OfType<XmlSchemaComplexType>())
+                {
+                    var mapping = importer.ImportSchemaType(complex.QualifiedName);
+                    exporter.ExportTypeMapping(mapping);
+                }
+
+                #endregion
+
+                #region Execute extensions
+
+                var getExtensionResult = GeneratorFactory.GetCodeExtension(generatorParams);
+                if (!getExtensionResult.Success) return new Result<CodeNamespace>(ns, false, getExtensionResult.Messages);
+
+                var ext = getExtensionResult.Entity;
+                ext.Process(ns, xsd);
+
+                #endregion Execute extensions
+
+                return new Result<CodeNamespace>(ns, true);
+            }
+            catch (Exception e)
+            {
+                return new Result<CodeNamespace>(ns, false, e.Message, MessageType.Error);
+            }
+        }
+
+        private static void Validate(Object sender, ValidationEventArgs e)
+        {
+            if (e.Severity == XmlSeverityType.Error)
+                throw new Exception("Schema validation failed:\n" + e.Message);
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorContext.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorContext.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorContext.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,158 @@
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Static generation context 
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Modified 2009-02-20 by Ruslan Urban
+    ///     Added CodeBaseTag and GenerateCloneMethodTag constants
+    /// 
+    /// </remarks>
+    public static class GeneratorContext
+    {
+        /// <summary>
+        /// Enable serialize/deserialize generation method
+        /// </summary>
+        public const string CODEBASETAG = "CodeBaseTag";
+
+        /// <summary>
+        /// Indicate if use base class for all methods
+        /// </summary>
+        public const string USEGENERICBASECLASSTAG = "UseBaseClass";       
+
+        /// <summary>
+        /// Language tag
+        /// </summary>
+        public const string CODETYPETAG = "codeType";
+
+        /// <summary>
+        /// Language tag
+        /// </summary>
+        public const string BASECLASSNAMETAG = "BaseClassName";
+
+        /// <summary>
+        /// Base generic type for collections when CollectionType is DefinedType
+        /// </summary>
+        public const string COLLECTIONBASETAG = "CollectionBase";
+
+        /// <summary>
+        /// Collection tag
+        /// </summary>
+        public const string COLLECTIONTAG = "Collection";
+
+        /// <summary>
+        /// List of custom using/import types (, separated)
+        /// </summary>
+        public const string CUSTOMUSINGSTAG = "CustomUsings";
+
+        /// <summary>
+        /// Name of Deserialize method
+        /// </summary>
+        public const string DESERIALIZEMETHODNAMETAG = "DeserializeMethodName";
+
+        /// <summary>
+        /// Disable debug in genetated code.
+        /// </summary>
+        public const string DISABLEDEBUGTAG = "DisableDebug";
+
+        /// <summary>
+        /// Indicate if generate automatic properties.
+        /// </summary>
+        public const string AUTOMATICPROPERTIESTAG = "AutomaticProperties";
+
+        /// <summary>
+        /// Enable data binding tag
+        /// </summary>
+        public const string ENABLEDATABINDINGTAG = "EnableDataBinding";
+
+
+        /// <summary>
+        /// Enable lasy pattern
+        /// </summary>
+        public const string ENABLELASYLOADINGTAG = "EnableLasyLoading";
+
+        /// <summary>
+        /// Generate summary documentation
+        /// </summary>
+        public const string ENABLESUMMARYCOMMENTTAG = "EnableSummaryComment";
+
+        /// <summary>
+        /// Hide private fields in IDE
+        /// </summary>
+        public const string HIDEPRIVATEFIELDTAG = "HidePrivateFieldInIDE";
+
+        /// <summary>
+        /// Enable generation of the Clone method
+        /// </summary>
+        public const string GENERATECLONEMETHODTAG = "GenerateCloneMethod";
+
+        /// <summary>
+        /// Enable serialize/deserialize generation method
+        /// </summary>
+        public const string INCLUDESERIALIZEMETHODTAG = "IncludeSerializeMethod";
+
+        /// <summary>
+        /// Name of Deserialize method
+        /// </summary>
+        public const string LOADFROMFILEMETHODNAMETAG = "LoadFromFileMethodName";
+
+        /// <summary>
+        /// namespace tag
+        /// </summary>
+        public const string NAMESPACETAG = "NameSpace";
+
+        /// <summary>
+        /// Name of Serialize method
+        /// </summary>
+        public const string SAVETOFILEMETHODNAMETAG = "SaveToFileMethodName";
+
+        /// <summary>
+        /// Name of Serialize method
+        /// </summary>
+        public const string SERIALIZEMETHODNAMETAG = "SerializeMethodName";
+
+        /// <summary>
+        /// Generate data contracts tag
+        /// </summary>
+        public const string GENERATEDATACONTRACTSTAG = "GenerateDataContracts";
+
+        /// <summary>
+        /// Indicate if generate NET 2.0 serialization attributes.
+        /// </summary>
+        public const string GENERATEXMLATTRIBUTESTAG = "GenerateXMLAttributes";
+
+        /// <summary>
+        /// Indicating to exclude class generation types includes/imported into schema.
+        /// </summary>
+        public const string EXCLUDEINCLUDEDTYPESTAG = "ExcludeIncludedTypes";
+
+        /// <summary>
+        ///  Enable/Disable Global initialisation of the fields in both Constructors, Lazy Properties. Maximum override
+        /// </summary>
+        public const string ENABLEINITIALIZEFIELDSTAG =  "EnableInitializeFields"; 
+
+        #region Fields
+
+        /// <summary>
+        /// static instance of GeneratorParams
+        /// </summary>
+        private static GeneratorParams generatorParams = new GeneratorParams();
+
+        #endregion
+
+        #region property
+
+        /// <summary>
+        /// Gets or sets static instance of generator parameters, accessible from within any class in the application domain
+        /// </summary>
+        public static GeneratorParams GeneratorParams
+        {
+            get { return generatorParams; }
+            set { generatorParams = value; }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorFacade.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorFacade.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorFacade.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,405 @@
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Reflection;
+using Xsd2Code.Library.Helpers;
+
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Encapsulation of all generation process.
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Modified 2009-02-20 by Ruslan Urban
+    ///     Changed signature of the GeneratorFacade class constructor
+    ///     Updated result types to <see cref="Result"/>
+    /// 
+    /// </remarks>
+    public class GeneratorFacade
+    {
+
+        /// <summary>
+        /// Instance of CodeDom provider
+        /// </summary>
+        private CodeDomProvider providerField;
+
+        #region Class constructor
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="GeneratorFacade"/> class.
+        /// </summary>
+        /// <param name="inputFile">The input file.</param>
+        /// <param name="nameSpace">The name space.</param>
+        /// <param name="language">The language.</param>
+        /// <param name="collectionType">Type of the collection.</param>
+        /// <param name="enableDataBinding">if set to <c>true</c> [enable data binding].</param>
+        /// <param name="hidePrivate">if set to <c>true</c> [hide private].</param>
+        /// <param name="enableSummaryComment">if set to <c>true</c> [enable summary comment].</param>
+        /// <param name="customUsings">The custom usings.</param>
+        /// <param name="collectionBase">The collection base.</param>
+        /// <param name="includeSerializeMethod">if set to <c>true</c> [include serialize method].</param>
+        /// <param name="serializeMethodName">Name of the serialize method.</param>
+        /// <param name="deserializeMethodName">Name of the deserialize method.</param>
+        /// <param name="saveToFileMethodName">Name of the save to file method.</param>
+        /// <param name="loadFromFileMethodName">Name of the load from file method.</param>
+        /// <param name="disableDebug">if set to <c>true</c> [disable debug].</param>
+        /// <param name="implementCloneMethod"></param>
+        /// <param name="targetFramework"></param>
+        [Obsolete("Do not use", true)]
+        public GeneratorFacade(string inputFile,
+                               string nameSpace,
+                               GenerationLanguage language,
+                               CollectionType collectionType,
+                               bool enableDataBinding, bool hidePrivate, bool enableSummaryComment,
+                               List<NamespaceParam> customUsings, string collectionBase, bool includeSerializeMethod,
+                               string serializeMethodName, string deserializeMethodName, string saveToFileMethodName,
+                               string loadFromFileMethodName, bool disableDebug, bool implementCloneMethod,
+                               TargetFramework targetFramework)
+        {
+            var provider = CodeDomProviderFactory.GetProvider(language);
+
+            this.Init(inputFile, nameSpace, provider, collectionType, enableDataBinding, hidePrivate,
+                      enableSummaryComment, customUsings, collectionBase, includeSerializeMethod, serializeMethodName,
+                      deserializeMethodName, saveToFileMethodName, loadFromFileMethodName, disableDebug,
+                      implementCloneMethod, targetFramework);
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="GeneratorFacade"/> class.
+        /// </summary>
+        /// <param name="inputFile">The input file.</param>
+        /// <param name="nameSpace">The name space.</param>
+        /// <param name="provider">The provider.</param>
+        /// <param name="collectionType">Type of the collection.</param>
+        /// <param name="enableDataBinding">if set to <c>true</c> [enable data binding].</param>
+        /// <param name="hidePrivate">if set to <c>true</c> [hide private].</param>
+        /// <param name="enableSummaryComment">if set to <c>true</c> [enable summary comment].</param>
+        /// <param name="customUsings">The custom usings.</param>
+        /// <param name="collectionBase">The collection base.</param>
+        /// <param name="includeSerializeMethod">if set to <c>true</c> [include serialize method].</param>
+        /// <param name="serializeMethodName">Name of the serialize method.</param>
+        /// <param name="deserializeMethodName">Name of the deserialize method.</param>
+        /// <param name="saveToFileMethodName">Name of the save to file method.</param>
+        /// <param name="loadFromFileMethodName">Name of the load from file method.</param>
+        /// <param name="disableDebug">if set to <c>true</c> [disable debug].</param>
+        /// <param name="implementCloneMethod"></param>
+        /// <param name="targetFramework"></param>
+        public GeneratorFacade(string inputFile, string nameSpace, CodeDomProvider provider,
+                               CollectionType collectionType, bool enableDataBinding, bool hidePrivate,
+                               bool enableSummaryComment, List<NamespaceParam> customUsings, string collectionBase,
+                               bool includeSerializeMethod, string serializeMethodName, string deserializeMethodName,
+                               string saveToFileMethodName, string loadFromFileMethodName, bool disableDebug,
+                               bool implementCloneMethod, TargetFramework targetFramework)
+        {
+            this.Init(inputFile, nameSpace, provider, collectionType, enableDataBinding, hidePrivate,
+                      enableSummaryComment, customUsings, collectionBase, includeSerializeMethod, serializeMethodName,
+                      deserializeMethodName, saveToFileMethodName, loadFromFileMethodName, disableDebug,
+                      implementCloneMethod, targetFramework);
+        }
+
+
+        public GeneratorFacade(GeneratorParams generatorParams)
+        {
+            var provider = CodeDomProviderFactory.GetProvider(generatorParams.Language);
+            this.Init(provider, generatorParams);
+        }
+
+
+        /// <summary>
+        /// Generator facade class constructor
+        /// </summary>
+        /// <param name="provider">Code DOM provider</param>
+        /// <param name="generatorParams">Generator parameters</param>
+        public GeneratorFacade(CodeDomProvider provider, GeneratorParams generatorParams)
+        {
+            this.Init(provider, generatorParams);
+        }
+
+        /// <summary>
+        /// Generator parameters
+        /// </summary>
+        public GeneratorParams GeneratorParams
+        {
+            get { return GeneratorContext.GeneratorParams; }
+        }
+
+        /// <summary>
+        /// Initialize generator
+        /// </summary>
+        /// <param name="provider"></param>
+        /// <param name="generatorParams"></param>
+        public void Init(CodeDomProvider provider, GeneratorParams generatorParams)
+        {
+            this.providerField = provider;
+            GeneratorContext.GeneratorParams = generatorParams.Clone();
+
+            if (string.IsNullOrEmpty(GeneratorContext.GeneratorParams.OutputFilePath))
+            {
+                string outputFilePath = Utility.GetOutputFilePath(generatorParams.InputFilePath, provider);
+                GeneratorContext.GeneratorParams.OutputFilePath = outputFilePath;
+            }
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="GeneratorFacade"/> class.
+        /// </summary>
+        /// <param name="inputFile">The input file.</param>
+        /// <param name="nameSpace">The name space.</param>
+        /// <param name="provider">The provider.</param>
+        /// <param name="collectionType">Type of the collection.</param>
+        /// <param name="enableDataBinding">if set to <c>true</c> [enable data binding].</param>
+        /// <param name="hidePrivate">if set to <c>true</c> [hide private].</param>
+        /// <param name="enableSummaryComment">if set to <c>true</c> [enable summary comment].</param>
+        /// <param name="customUsings">The custom usings.</param>
+        /// <param name="collectionBase">The collection base.</param>
+        /// <param name="includeSerializeMethod">if set to <c>true</c> [include serialize method].</param>
+        /// <param name="serializeMethodName">Name of the serialize method.</param>
+        /// <param name="deserializeMethodName">Name of the deserialize method.</param>
+        /// <param name="saveToFileMethodName">Name of the save to file method.</param>
+        /// <param name="loadFromFileMethodName">Name of the load from file method.</param>
+        /// <param name="disableDebug">if set to <c>true</c> [disable debug].</param>
+        /// <param name="implementCloneMethod"></param>
+        /// <param name="targetFramework"></param>
+        public void Init(string inputFile, string nameSpace, CodeDomProvider provider, CollectionType collectionType,
+                         bool enableDataBinding, bool hidePrivate, bool enableSummaryComment,
+                         List<NamespaceParam> customUsings, string collectionBase, bool includeSerializeMethod,
+                         string serializeMethodName, string deserializeMethodName, string saveToFileMethodName,
+                         string loadFromFileMethodName, bool disableDebug, bool implementCloneMethod, TargetFramework targetFramework)
+        {
+            GeneratorContext.GeneratorParams.InputFilePath = inputFile;
+            GeneratorContext.GeneratorParams.NameSpace = nameSpace;
+            GeneratorContext.GeneratorParams.CollectionObjectType = collectionType;
+            GeneratorContext.GeneratorParams.EnableDataBinding = enableDataBinding;
+            GeneratorContext.GeneratorParams.HidePrivateFieldInIde = hidePrivate;
+            GeneratorContext.GeneratorParams.EnableSummaryComment = enableSummaryComment;
+            GeneratorContext.GeneratorParams.CustomUsings = customUsings;
+            GeneratorContext.GeneratorParams.CollectionBase = collectionBase;
+            GeneratorContext.GeneratorParams.IncludeSerializeMethod = includeSerializeMethod;
+            GeneratorContext.GeneratorParams.GenerateCloneMethod = implementCloneMethod;
+            GeneratorContext.GeneratorParams.TargetFramework = targetFramework;
+            GeneratorContext.GeneratorParams.SerializeMethodName = serializeMethodName;
+            GeneratorContext.GeneratorParams.DeserializeMethodName = deserializeMethodName;
+            GeneratorContext.GeneratorParams.SaveToFileMethodName = saveToFileMethodName;
+            GeneratorContext.GeneratorParams.LoadFromFileMethodName = loadFromFileMethodName;
+            GeneratorContext.GeneratorParams.DisableDebug = disableDebug;
+            this.providerField = provider;
+
+            string outputFilePath = Utility.GetOutputFilePath(inputFile, provider);
+            GeneratorContext.GeneratorParams.OutputFilePath = outputFilePath;
+        }
+
+        #endregion
+
+        #region Methods
+
+        /// <summary>
+        /// Generates the specified buffer size.
+        /// </summary>
+        /// <returns>return generated code into byte array</returns>
+        public Result<byte[]> GenerateBytes()
+        {
+            string outputFilePath = Path.GetTempFileName();
+            var processResult = this.Process(outputFilePath);
+
+            if (processResult.Success)
+            {
+                byte[] result = FileToByte(outputFilePath);
+                try
+                {
+                    File.Delete(outputFilePath);
+                }
+                catch (Exception ex)
+                {
+                    processResult.Messages.Add(MessageType.Error, ex.Message);
+                }
+
+                return new Result<byte[]>(result, true, processResult.Messages);
+            }
+
+            return new Result<byte[]>(null, false, processResult.Messages);
+        }
+
+        /// <summary>
+        /// Processes the code generation.
+        /// </summary>
+        /// <returns>true if sucess or false.</returns>
+        public Result<string> Generate(GeneratorParams generatorParams)
+        {
+            GeneratorContext.GeneratorParams = generatorParams;
+            var outputFileName = GeneratorContext.GeneratorParams.OutputFilePath;
+            var processResult = this.Process(outputFileName);
+            return new Result<string>(outputFileName, processResult.Success, processResult.Messages);
+        }
+
+        /// <summary>
+        /// Processes the code generation.
+        /// </summary>
+        /// <returns>true if sucess or false.</returns>
+        public Result<string> Generate()
+        {
+            var outputFileName = GeneratorContext.GeneratorParams.OutputFilePath;
+            var processResult = this.Process(outputFileName);
+            return new Result<string>(outputFileName, processResult.Success, processResult.Messages);
+        }
+
+        /// <summary>
+        /// Convert file into byte[].
+        /// </summary>
+        /// <param name="path">The full file path to convert info byte[].</param>
+        /// <returns>return file content info  byte[].</returns>
+        private static byte[] FileToByte(string path)
+        {
+            var infoFile = new FileInfo(path);
+            using (var fileSteram = infoFile.OpenRead())
+            {
+                var arrayOfByte = new byte[fileSteram.Length];
+
+                fileSteram.Read(arrayOfByte, 0, (int)fileSteram.Length);
+                fileSteram.Close();
+                return arrayOfByte;
+            }
+        }
+
+        /// <summary>
+        /// Processes the specified file name.
+        /// </summary>
+        /// <param name="outputFilePath">The output file path.</param>
+        /// <returns>true if sucess else false</returns>
+        private Result Process(string outputFilePath)
+        {
+            #region Change CurrentDir for include schema resolution.
+
+            string savedCurrentDir = Directory.GetCurrentDirectory();
+            var inputFile = new FileInfo(GeneratorContext.GeneratorParams.InputFilePath);
+
+            if (!inputFile.Exists)
+            {
+                var errorMessage = string.Format("XSD File not found at location {0}\n", GeneratorContext.GeneratorParams.InputFilePath);
+                errorMessage += "Exception :\n";
+                errorMessage += string.Format("Input file {0} not exist", GeneratorContext.GeneratorParams.InputFilePath);
+                return new Result(false, MessageType.Error, errorMessage);
+            }
+
+            if (inputFile.Directory != null) Directory.SetCurrentDirectory(inputFile.Directory.FullName);
+
+            #endregion
+
+            try
+            {
+                try
+                {
+                    var result = Generator.Process(GeneratorContext.GeneratorParams);
+                    if (!result.Success) return result;
+
+                    var ns = result.Entity;
+                    using (var outputStream = new StreamWriter(outputFilePath + ".tmp", false))
+                        this.providerField.GenerateCodeFromNamespace(ns, outputStream, new CodeGeneratorOptions());
+                }
+                catch (Exception e)
+                {
+                    var errorMessage = "Failed to generate code\n";
+                    errorMessage += "Exception :\n";
+                    errorMessage += e.Message;
+
+                    Debug.WriteLine(string.Empty);
+                    Debug.WriteLine("XSD2Code - ----------------------------------------------------------");
+                    Debug.WriteLine("XSD2Code - " + e.Message);
+                    Debug.WriteLine("XSD2Code - ----------------------------------------------------------");
+                    Debug.WriteLine(string.Empty);
+                    return new Result(false, MessageType.Error, errorMessage);
+                }
+
+                var outputFile = new FileInfo(outputFilePath);
+                if (outputFile.Exists)
+                {
+                    if ((outputFile.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
+                    {
+                        var errorMessage = "Failed to generate code\n";
+                        errorMessage += outputFilePath + " is write protect";
+                        return new Result(false, MessageType.Error, errorMessage);
+                    }
+                }
+
+                #region Insert tag for future generation
+
+                using (var outputStream = new StreamWriter(outputFilePath, false))
+                {
+
+
+                    string commentStr = GeneratorContext.GeneratorParams.Language == GenerationLanguage.CSharp
+                                            ? "// "
+                                            : "'' ";
+
+                    Assembly currentAssembly = Assembly.GetExecutingAssembly();
+                    AssemblyName currentAssemblyName = currentAssembly.GetName();
+
+                    outputStream.WriteLine(
+                        "{0}------------------------------------------------------------------------------",
+                            commentStr);
+                    outputStream.WriteLine(string.Format("{0} <auto-generated>", commentStr));
+
+                    outputStream.WriteLine(string.Format("{0}   Generated by Xsd2Code. Version {1}", commentStr,
+                                                  currentAssemblyName.Version));
+
+                    string optionsLine = string.Format("{0}   {1}", commentStr,
+                                                       GeneratorContext.GeneratorParams.ToXmlTag());
+                    outputStream.WriteLine(optionsLine);
+
+                    outputStream.WriteLine("{0} </auto-generated>", commentStr);
+
+                    outputStream.WriteLine(
+                            "{0}------------------------------------------------------------------------------",
+                            commentStr);
+
+
+                #endregion
+
+                    using (TextReader streamReader = new StreamReader(outputFilePath + ".tmp"))
+                    {
+                        string line;
+                        
+                        //DCM TODO Will refactor this to Not perform this last loop after verification that it works.
+                        while ((line = streamReader.ReadLine()) != null)
+                        {
+                            /* DCM REMOVED Language Specific Attribute removal Moved to CodeDOM Style in CodeExtension.ProcessClass()
+                            if (line.Trim() == "[System.SerializableAttribute()]" ||
+                                line.Trim() == "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]") continue;
+
+                            if (GeneratorContext.GeneratorParams.DisableDebug) outputStream.WriteLine(line);
+                            else
+                            {
+                                if (line.Trim() != "[System.Diagnostics.DebuggerStepThroughAttribute()]")
+                                    outputStream.WriteLine(line);
+                            }
+                             DCM REMOVED */
+
+                            outputStream.WriteLine(line);
+                        }
+                    }
+                    outputStream.Close();
+                }
+                try
+                {
+                    var tempFile = new FileInfo(outputFilePath + ".tmp");
+                    tempFile.Delete();
+                }
+                catch (Exception ex)
+                {
+                    return new Result(false, MessageType.Error, ex.Message);
+                }
+            }
+            finally
+            {
+                Directory.SetCurrentDirectory(savedCurrentDir);
+            }
+
+            return new Result(true);
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorFactory.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorFactory.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorFactory.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,84 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Xsd2Code.Library.Extensions;
+using Xsd2Code.Library.Helpers;
+using System.Reflection;
+using Xsd2Code.Library.Properties;
+
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Class factory
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Created 2009-05-28 by Pascal Cabanel
+    /// </remarks>
+    static class GeneratorFactory
+    {
+        /// <summary>
+        /// Get <see cref="ICodeExtension"/> code generator extension
+        /// </summary>
+        /// <param name="generatorParams">Generator parameters</param>
+        /// <returns><see cref="ICodeExtension"/></returns>
+        internal static Result<ICodeExtension> GetCodeExtension(GeneratorParams generatorParams)
+        {
+
+            var extention = new Result<ICodeExtension>(GeneratorFactory.GetExtention(generatorParams.TargetFramework), true);
+            if (extention.Entity != null)
+                return extention;
+
+            var types = Assembly.GetExecutingAssembly().GetTypes()
+                .Select(type => new
+                {
+                    Type = type,
+                    TargetFrameworkAttributes =
+                type.GetCustomAttributes(typeof(CodeExtensionAttribute), true)
+                })
+
+                .Where(o =>
+                       o.TargetFrameworkAttributes.Length > 0 &&
+                       o.TargetFrameworkAttributes
+                           .Where(attr =>
+                               ((CodeExtensionAttribute)attr).TargetFramework == generatorParams.TargetFramework)
+                           .Count() > 0)
+                           .ToList();
+
+            if (types.Count == 1)
+            {
+                try
+                {
+                    return new Result<ICodeExtension>(Activator.CreateInstance(types[0].Type) as ICodeExtension, true);
+                }
+                catch (Exception ex)
+                {
+                    return new Result<ICodeExtension>(null, false, ex.Message, MessageType.Error);
+                }
+            }
+
+            return new Result<ICodeExtension>(null, false,
+                                              string.Format(Resources.UnsupportedTargetFramework,
+                                                            generatorParams.TargetFramework),
+                                              MessageType.Error);
+        }
+
+        internal static  ICodeExtension GetExtention(TargetFramework target)
+        {
+            switch (target)
+            {
+                case TargetFramework.Net20:
+                    return new Net20Extension();
+                case TargetFramework.Net30:
+                    return new Net30Extension();
+                case TargetFramework.Net35:
+                    return new Net35Extension();
+                case TargetFramework.Silverlight:
+                    return new SilverlightExtension();
+            }
+            return null;
+        }
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorParams.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorParams.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/GeneratorParams.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,667 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Text;
+using Xsd2Code.Library.Helpers;
+
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Represents all generation parameters
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Modified 2009-02-20 by Ruslan Urban
+    ///     Added TargetFramework and GenerateCloneMethod properties
+    ///     Modified 2009-05-18 by Pascal Cabanel.
+    ///     Added NET 2.0 serialization attributes as an option
+    /// </remarks>
+    public class GeneratorParams
+    {
+        #region Private
+
+        /// <summary>
+        /// Type of collection
+        /// </summary>
+        private CollectionType collectionObjectTypeField = CollectionType.List;
+
+        /// <summary>
+        /// List of custom usings
+        /// </summary>
+        private List<NamespaceParam> customUsingsField = new List<NamespaceParam>();
+
+        /// <summary>
+        /// Indicate if use automatic properties
+        /// </summary>
+        private bool automaticPropertiesField = false;
+        #endregion
+
+        /// <summary>
+        /// Indicate the target framework
+        /// </summary>
+        private TargetFramework targetFrameworkField = default(TargetFramework);
+
+        /// <summary>
+        /// Indicate id databinding is enable
+        /// </summary>
+        private bool enableDataBindingField = false;
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="GeneratorParams"/> class.
+        /// </summary>
+        public GeneratorParams()
+        {
+            this.LoadFromFileMethodName = "LoadFromFile";
+            this.SaveToFileMethodName = "SaveToFile";
+            this.DeserializeMethodName = "Deserialize";
+            this.SerializeMethodName = "Serialize";
+            this.BaseClassName = "EntityBase";
+            this.UseGenericBaseClass = false;
+            this.EnableInitializeFields = true;
+            this.ExcludeIncludedTypes = false;
+        }
+
+        /// <summary>
+        /// Gets or sets the name space.
+        /// </summary>
+        /// <value>The name space.</value>
+        [Category("Code")]
+        [Description("namespace of generated file")]
+        public string NameSpace { get; set; }
+
+        /// <summary>
+        /// Gets or sets generation language
+        /// </summary>
+        [Category("Code")]
+        [Description("Language")]
+        public GenerationLanguage Language { get; set; }
+
+        /// <summary>
+        /// Gets or sets the output file path.
+        /// </summary>
+        /// <value>The output file path.</value>
+        [Browsable(false)]
+        public string OutputFilePath { get; set; }
+
+        /// <summary>
+        /// Gets or sets the input file path.
+        /// </summary>
+        /// <value>The input file path.</value>
+        [Browsable(false)]
+        public string InputFilePath { get; set; }
+
+        /// <summary>
+        /// Gets or sets collection type to use for code generation
+        /// </summary>
+        [Category("Collection")]
+        [Description("Set type of collection for unbounded elements")]
+        public CollectionType CollectionObjectType
+        {
+            get { return this.collectionObjectTypeField; }
+            set { this.collectionObjectTypeField = value; }
+        }
+
+        /// <summary>
+        /// Gets or sets collection base
+        /// </summary>
+        [Category("Collection")]
+        [Description("Set the collection base if using CustomCollection")]
+        public string CollectionBase { get; set; }
+
+        /// <summary>
+        /// Gets or sets custom usings
+        /// </summary>
+        [Category("Collection")]
+        [Description("list of custom using for CustomCollection")]
+        public List<NamespaceParam> CustomUsings
+        {
+            get { return this.customUsingsField; }
+            set { this.customUsingsField = value; }
+        }
+
+        /// <summary>
+        /// Gets or sets the custom usings string.
+        /// </summary>
+        /// <value>The custom usings string.</value>
+        [Browsable(false)]
+        public string CustomUsingsString { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether if implement INotifyPropertyChanged
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Indicating whether if implement INotifyPropertyChanged.")]
+        public bool EnableDataBinding
+        {
+            get
+            {
+                return this.enableDataBindingField;
+            }
+
+            set
+            {
+                this.enableDataBindingField = value;
+                if (this.enableDataBindingField)
+                {
+                    this.AutomaticProperties = false;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether if implement INotifyPropertyChanged
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Use lasy pattern when possible.")]
+        public bool EnableLasyLoading { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether serialize/deserialize method support
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Indicating whether serialize/deserialize method nust be generate.")]
+        public bool IncludeSerializeMethod { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether serialize/deserialize method support
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Generate automatic properties when possible. (Work only for csharp with target framework 3.0 or 3.5 and EnableDataBinding disable)")]
+        public bool AutomaticProperties
+        {
+            get
+            {
+                return this.automaticPropertiesField;
+            }
+
+            set
+            {
+                if (value)
+                {
+                    if (this.targetFrameworkField != TargetFramework.Net20)
+                    {
+                        this.automaticPropertiesField = value;
+                        this.EnableDataBinding = false;
+                    }
+                }
+                else
+                {
+                    this.automaticPropertiesField = value;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether serialize/deserialize method support
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Indicating whether serialize/deserialize method nust be generate.")]
+        public bool GenerateCloneMethod { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether serialize/deserialize method support
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(Library.TargetFramework.Net20)]
+        [Description("Generated code base")]
+        public TargetFramework TargetFramework
+        {
+            get
+            {
+                return this.targetFrameworkField;
+            }
+
+            set
+            {
+                this.targetFrameworkField = value;
+                if (this.targetFrameworkField == TargetFramework.Net20)
+                {
+                    this.AutomaticProperties = false;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether if generate EditorBrowsableState.Never attribute
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Indicating whether if generate EditorBrowsableState.Never attribute.")]
+        public bool HidePrivateFieldInIde { get; set; }
+
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Indicating to exclude class generation types includes/imported into schema.")]
+        public bool ExcludeIncludedTypes { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether if generate EditorBrowsableState.Never attribute
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Indicating whether if generate .NET 2.0 serialization attributes.")]
+        public bool GenerateXMLAttributes { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether [disable debug].
+        /// </summary>
+        /// <value><c>true</c> if [disable debug]; otherwise, <c>false</c>.</value>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Indicating whether if generate attribute for debug into generated code.")]
+        public bool DisableDebug { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether if generate summary documentation
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Indicating whether if generate summary documentation from xsd annotation.")]
+        public bool EnableSummaryComment { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether if generate summary documentation
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(false)]
+        [Description("Generate WCF data contract attributes")]
+        public bool GenerateDataContracts { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating the name of Serialize method.
+        /// </summary>
+        [Category("Behavior"), DefaultValue(false), Description("Use generic patial base class for all methods")]
+        public bool UseGenericBaseClass { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating the name of Serialize method.
+        /// </summary>
+        [Category("Serialize"), DefaultValue("EntityBase"), Description("Name of generic patial base class")]
+        public string BaseClassName { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating the name of Serialize method.
+        /// </summary>
+        [Category("Serialize"), DefaultValue("Serialize"), Description("The name of Serialize method.")]
+        public string SerializeMethodName { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating the name of Deserialize method.
+        /// </summary>
+        [Category("Serialize"), DefaultValue("Deserialize"), Description("The name of deserialize method.")]
+        public string DeserializeMethodName { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating the name of Serialize method.
+        /// </summary>
+        [Category("Serialize"), DefaultValue("SaveToFile"), Description("The name of save to xml file method.")]
+        public string SaveToFileMethodName { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating the name of SaveToFile method.
+        /// </summary>
+        [Category("Serialize"), DefaultValue("LoadFromFile"), Description("The name of load from xml file method.")]
+        public string LoadFromFileMethodName { get; set; }
+
+        /// <summary>
+        /// Gets or sets a value indicating whether accessing a property will initialize it
+        /// </summary>
+        [Category("Behavior")]
+        [DefaultValue(true)]
+        [Description("Enable/Disable Global initialisation of the fields in both Constructors, Lazy Properties. Maximum override")]
+        public bool EnableInitializeFields { get; set; }
+       
+        /// <summary>
+        /// Loads from file.
+        /// </summary>
+        /// <param name="xsdFilePath">The XSD file path.</param>
+        /// <returns>GeneratorParams instance</returns>
+        public static GeneratorParams LoadFromFile(string xsdFilePath)
+        {
+            string outFile;
+            return LoadFromFile(xsdFilePath, out outFile);
+        }
+
+        /// <summary>
+        /// Loads from file.
+        /// </summary>
+        /// <param name="xsdFilePath">The XSD file path.</param>
+        /// <param name="outputFile">The output file.</param>
+        /// <returns>GeneratorParams instance</returns>
+        public static GeneratorParams LoadFromFile(string xsdFilePath, out string outputFile)
+        {
+            var parameters = new GeneratorParams();
+
+
+            #region Search generationFile
+            outputFile = string.Empty;
+
+            foreach (GenerationLanguage language in Enum.GetValues(typeof(GenerationLanguage)))
+            {
+                string fileName = Utility.GetOutputFilePath(xsdFilePath, language);
+                if (File.Exists(fileName))
+                {
+                    outputFile = fileName;
+                    break;
+                }
+            }
+
+
+            if (outputFile.Length == 0)
+                return null;
+
+            #endregion
+
+            #region Try to get Last options
+
+            using (TextReader streamReader = new StreamReader(outputFile))
+            {
+                streamReader.ReadLine();
+                streamReader.ReadLine();
+                streamReader.ReadLine();
+                string optionLine = streamReader.ReadLine();
+                if (optionLine != null)
+                {
+                    parameters.NameSpace = XmlHelper.ExtractStrFromXML(optionLine, GeneratorContext.NAMESPACETAG);
+                    parameters.CollectionObjectType =
+                            Utility.ToEnum<CollectionType>(
+                                    XmlHelper.ExtractStrFromXML(optionLine, GeneratorContext.COLLECTIONTAG));
+                    parameters.Language =
+                            Utility.ToEnum<GenerationLanguage>(XmlHelper.ExtractStrFromXML(optionLine,
+                                                                                           GeneratorContext.CODETYPETAG));
+                    parameters.EnableDataBinding =
+                            Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.ENABLEDATABINDINGTAG));
+                    parameters.EnableLasyLoading =
+                             Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.ENABLELASYLOADINGTAG));
+                    parameters.HidePrivateFieldInIde =
+                            Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.HIDEPRIVATEFIELDTAG));
+                    parameters.EnableSummaryComment =
+                            Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.ENABLESUMMARYCOMMENTTAG));
+                    parameters.IncludeSerializeMethod =
+                            Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.INCLUDESERIALIZEMETHODTAG));
+                    parameters.GenerateCloneMethod =
+                            Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.GENERATECLONEMETHODTAG));
+                    parameters.GenerateDataContracts =
+                            Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.GENERATEDATACONTRACTSTAG));
+                    parameters.TargetFramework =
+                            Utility.ToEnum<TargetFramework>(optionLine.ExtractStrFromXML(GeneratorContext.CODEBASETAG));
+                    parameters.DisableDebug =
+                            Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.DISABLEDEBUGTAG));
+
+                    parameters.GenerateXMLAttributes = Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.GENERATEXMLATTRIBUTESTAG));
+
+                    parameters.AutomaticProperties = Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.AUTOMATICPROPERTIESTAG));
+
+                    parameters.UseGenericBaseClass = Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.USEGENERICBASECLASSTAG));
+
+                    parameters.EnableInitializeFields =
+                        Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.ENABLEINITIALIZEFIELDSTAG),true);
+
+                    parameters.ExcludeIncludedTypes = Utility.ToBoolean(optionLine.ExtractStrFromXML(GeneratorContext.EXCLUDEINCLUDEDTYPESTAG));
+
+                    string str = optionLine.ExtractStrFromXML(GeneratorContext.SERIALIZEMETHODNAMETAG);
+                    parameters.SerializeMethodName = str.Length > 0 ? str : "Serialize";
+
+                    str = optionLine.ExtractStrFromXML(GeneratorContext.DESERIALIZEMETHODNAMETAG);
+                    parameters.DeserializeMethodName = str.Length > 0 ? str : "Deserialize";
+
+                    str = optionLine.ExtractStrFromXML(GeneratorContext.SAVETOFILEMETHODNAMETAG);
+                    parameters.SaveToFileMethodName = str.Length > 0 ? str : "SaveToFile";
+
+                    str = optionLine.ExtractStrFromXML(GeneratorContext.LOADFROMFILEMETHODNAMETAG);
+                    parameters.LoadFromFileMethodName = str.Length > 0 ? str : "LoadFromFile";
+
+                    str = optionLine.ExtractStrFromXML(GeneratorContext.BASECLASSNAMETAG);
+                    parameters.BaseClassName = str.Length > 0 ? str : "EntityBase";
+
+                    // TODO:get custom using
+                    string customUsingString = optionLine.ExtractStrFromXML(GeneratorContext.CUSTOMUSINGSTAG);
+                    if (!string.IsNullOrEmpty(customUsingString))
+                    {
+                        string[] usings = customUsingString.Split(';');
+                        foreach (string item in usings)
+                            parameters.CustomUsings.Add(new NamespaceParam { NameSpace = item });
+                    }
+                    parameters.CollectionBase = optionLine.ExtractStrFromXML(GeneratorContext.COLLECTIONBASETAG);
+                }
+            }
+
+            return parameters;
+
+            #endregion
+        }
+
+        /// <summary>
+        /// Gets the params.
+        /// </summary>
+        /// <param name="parameters">The parameters.</param>
+        /// <returns>GeneratorParams instance</returns>
+        public static GeneratorParams GetParams(string parameters)
+        {
+            var newparams = new GeneratorParams();
+
+            return newparams;
+        }
+
+        /// <summary>
+        /// Save values into xml string
+        /// </summary>
+        /// <returns>xml string value</returns>
+        public string ToXmlTag()
+        {
+            var optionsLine = new StringBuilder();
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(GeneratorContext.NAMESPACETAG, this.NameSpace));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.COLLECTIONTAG,
+                                                          this.CollectionObjectType.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(GeneratorContext.CODETYPETAG, this.Language.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.ENABLEDATABINDINGTAG,
+                                                          this.EnableDataBinding.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.ENABLELASYLOADINGTAG,
+                                                          this.EnableLasyLoading.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.HIDEPRIVATEFIELDTAG,
+                                                          this.HidePrivateFieldInIde.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.ENABLESUMMARYCOMMENTTAG,
+                                                          this.EnableSummaryComment.ToString()));
+
+            if (!string.IsNullOrEmpty(this.CollectionBase))
+                optionsLine.Append(XmlHelper.InsertXMLFromStr(GeneratorContext.COLLECTIONBASETAG, this.CollectionBase));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.INCLUDESERIALIZEMETHODTAG,
+                                                          this.IncludeSerializeMethod.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.USEGENERICBASECLASSTAG,
+                                                          this.UseGenericBaseClass.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.GENERATECLONEMETHODTAG,
+                                                          this.GenerateCloneMethod.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.GENERATEDATACONTRACTSTAG,
+                                                          this.GenerateDataContracts.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.CODEBASETAG,
+                                                          this.TargetFramework.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.SERIALIZEMETHODNAMETAG,
+                                                          this.SerializeMethodName));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.DESERIALIZEMETHODNAMETAG,
+                                                          this.DeserializeMethodName));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.SAVETOFILEMETHODNAMETAG,
+                                                          this.SaveToFileMethodName));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.LOADFROMFILEMETHODNAMETAG,
+                                                          this.LoadFromFileMethodName));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.GENERATEXMLATTRIBUTESTAG,
+                                                          this.GenerateXMLAttributes.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                          GeneratorContext.AUTOMATICPROPERTIESTAG,
+                                                          this.AutomaticProperties.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(GeneratorContext.DISABLEDEBUGTAG, this.DisableDebug.ToString()));
+
+            var customUsingsStr = new StringBuilder();
+            if (this.CustomUsings != null)
+            {
+                foreach (NamespaceParam usingStr in this.CustomUsings)
+                {
+                    if (usingStr.NameSpace.Length > 0)
+                        customUsingsStr.Append(usingStr.NameSpace + ";");
+                }
+
+                // remove last ";"
+                if (customUsingsStr.Length > 0)
+                {
+                    if (customUsingsStr[customUsingsStr.Length - 1] == ';')
+                        customUsingsStr = customUsingsStr.Remove(customUsingsStr.Length - 1, 1);
+                }
+
+                optionsLine.Append(XmlHelper.InsertXMLFromStr(
+                                                              GeneratorContext.CUSTOMUSINGSTAG,
+                                                              customUsingsStr.ToString()));
+            }
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(GeneratorContext.EXCLUDEINCLUDEDTYPESTAG,
+                                                          this.ExcludeIncludedTypes.ToString()));
+
+            optionsLine.Append(XmlHelper.InsertXMLFromStr(GeneratorContext.ENABLEINITIALIZEFIELDSTAG,
+                                                          this.EnableInitializeFields.ToString()));
+
+
+            return optionsLine.ToString();
+        }
+
+        /// <summary>
+        /// Shallow clone
+        /// </summary>
+        /// <returns></returns>
+        public GeneratorParams Clone()
+        {
+            return MemberwiseClone() as GeneratorParams;
+        }
+
+        /// <summary>
+        /// Validates this instance.
+        /// </summary>
+        /// <returns></returns>
+        public Result Validate()
+        {
+            var result = new Result(true);
+
+            #region Validate input
+
+            if (string.IsNullOrEmpty(this.NameSpace))
+            {
+                result.Success = false; result.Messages.Add(MessageType.Error, "you must specify the NameSpace");
+            }
+
+            if (this.CollectionObjectType.ToString() == CollectionType.DefinedType.ToString())
+            {
+                if (string.IsNullOrEmpty(this.CollectionBase))
+                {
+                    result.Success = false; result.Messages.Add(MessageType.Error, "you must specify the custom collection base type");
+                }
+            }
+
+            if (this.IncludeSerializeMethod)
+            {
+                if (string.IsNullOrEmpty(this.SerializeMethodName))
+                {
+                    result.Success = false; result.Messages.Add(MessageType.Error, "you must specify the Serialize method name.");
+                }
+
+                if (!IsValidMethodName(this.SerializeMethodName))
+                {
+                    result.Success = false; result.Messages.Add(MessageType.Error, string.Format("Serialize method name {0} is invalid.",
+                                                  this.SerializeMethodName));
+                }
+
+                if (string.IsNullOrEmpty(this.DeserializeMethodName))
+                {
+                    result.Success = false; result.Messages.Add(MessageType.Error, "you must specify the Deserialize method name.");
+                }
+
+                if (!IsValidMethodName(this.DeserializeMethodName))
+                {
+                    result.Success = false; result.Messages.Add(MessageType.Error, string.Format("Deserialize method name {0} is invalid.",
+                                                  this.DeserializeMethodName));
+                }
+
+                if (string.IsNullOrEmpty(this.SaveToFileMethodName))
+                {
+                    result.Success = false; result.Messages.Add(MessageType.Error, "you must specify the save to xml file method name.");
+                }
+
+                if (!IsValidMethodName(this.SaveToFileMethodName))
+                {
+                    result.Success = false; result.Messages.Add(MessageType.Error, string.Format("Save to file method name {0} is invalid.",
+                                                  this.SaveToFileMethodName));
+                }
+
+                if (string.IsNullOrEmpty(this.LoadFromFileMethodName))
+                {
+                    result.Success = false; result.Messages.Add(MessageType.Error, "you must specify the load from xml file method name.");
+                }
+
+                if (!IsValidMethodName(this.LoadFromFileMethodName))
+                {
+                    result.Success = false; result.Messages.Add(MessageType.Error, string.Format("Load from file method name {0} is invalid.",
+                                                  this.LoadFromFileMethodName));
+                }
+            }
+
+            #endregion
+
+            return result;
+        }
+
+        /// <summary>
+        /// Validates the input.
+        /// </summary>
+        /// <param name="value">The value.</param>
+        /// <returns></returns>
+        private static bool IsValidMethodName(string value)
+        {
+            foreach (char item in value)
+            {
+                int ascii = Convert.ToInt16(item);
+                if ((ascii < 65 || ascii > 90) && (ascii < 97 || ascii > 122) && (ascii != 8))
+                    return false;
+            }
+            return true;
+        }
+
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/CodeDomHelper.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/CodeDomHelper.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/CodeDomHelper.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,444 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="CodeDomHelper.cs" company="Xsd2Code">
+//   N/A
+// </copyright>
+// <summary>
+//   Code DOM manipulation helper methods
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+using System.ComponentModel;
+
+namespace Xsd2Code.Library.Helpers
+{
+    using System;
+    using System.CodeDom;
+    using System.Collections.Generic;
+
+    /// <summary>
+    /// Code DOM manipulation helper methods 
+    /// </summary>
+    internal static class CodeDomHelper
+    {
+        /// <summary>
+        /// Add to CodeCommentStatementCollection summary documentation
+        /// </summary>
+        /// <param name="codeStatmentColl">Collection of CodeCommentStatement</param>
+        /// <param name="comment">summary text</param>
+        internal static void CreateSummaryComment(CodeCommentStatementCollection codeStatmentColl, string comment)
+        {
+            codeStatmentColl.Add(new CodeCommentStatement("<summary>", true));
+            string[] lines = comment.Split(new[] { '\n' });
+            foreach (string line in lines)
+                codeStatmentColl.Add(new CodeCommentStatement(line.Trim(), true));
+            codeStatmentColl.Add(new CodeCommentStatement("</summary>", true));
+        }
+
+        /// <summary>
+        /// Creates the object.
+        /// </summary>
+        /// <param name="objectType">Type of the object.</param>
+        /// <param name="objectName">object name.</param>
+        /// <param name="ctorParams">The c tor parameter.</param>
+        /// <returns>return variable declaration</returns>
+        internal static CodeVariableDeclarationStatement CreateObject(Type objectType, string objectName, params string[] ctorParams)
+        {
+            var ce = new List<CodeExpression>();
+
+            foreach (var item in ctorParams)
+                ce.Add(new CodeTypeReferenceExpression(item));
+
+            return CreateObject(objectType, objectName, ce.ToArray());
+        }
+
+        /// <summary>
+        /// Creates the object.
+        /// </summary>
+        /// <param name="objectType">Type of the object.</param>
+        /// <param name="objectName">Name of the object.</param>
+        /// <param name="ctorParams">The ctor params.</param>
+        /// <returns>return variable declaration</returns>
+        internal static CodeVariableDeclarationStatement CreateObject(Type objectType, string objectName, params CodeExpression[] ctorParams)
+        {
+            return new CodeVariableDeclarationStatement(
+                new CodeTypeReference(objectType),
+                objectName,
+                new CodeObjectCreateExpression(new CodeTypeReference(objectType), ctorParams));
+        }
+
+        /// <summary>
+        /// Get CodeMethodInvokeExpression
+        /// </summary>
+        /// <param name="targetObject">Name of target object. Use this if empty</param>
+        /// <param name="methodName">Name of method to invoke</param>
+        /// <returns>CodeMethodInvokeExpression value</returns>
+        internal static CodeMethodInvokeExpression GetInvokeMethod(string targetObject, string methodName)
+        {
+            return GetInvokeMethod(targetObject, methodName, null);
+        }
+
+        /// <summary>
+        /// Get CodeMethodInvokeExpression
+        /// </summary>
+        /// <param name="targetObject">Name of target object. Use this if empty</param>
+        /// <param name="methodName">Name of method to invoke</param>
+        /// <param name="parameters">method params</param>
+        /// <returns>CodeMethodInvokeExpression value</returns>
+        internal static CodeMethodInvokeExpression GetInvokeMethod(string targetObject, string methodName, CodeExpression[] parameters)
+        {
+            var methodInvoke =
+                parameters != null
+                    ? new CodeMethodInvokeExpression(
+                          new CodeMethodReferenceExpression(new CodeVariableReferenceExpression(targetObject), methodName), parameters)
+                    : new CodeMethodInvokeExpression(
+                          new CodeMethodReferenceExpression(new CodeVariableReferenceExpression(targetObject), methodName));
+
+            return methodInvoke;
+        }
+
+        /// <summary>
+        /// Getr return true statment
+        /// </summary>
+        /// <returns>statment of return code</returns>
+        internal static CodeMethodReturnStatement GetReturnTrue()
+        {
+            return new CodeMethodReturnStatement(new CodePrimitiveExpression(true));
+        }
+
+        /// <summary>
+        /// Get return false startment
+        /// </summary>
+        /// <returns>statment of return code</returns>
+        internal static CodeMethodReturnStatement GetReturnFalse()
+        {
+            return new CodeMethodReturnStatement(new CodePrimitiveExpression(false));
+        }
+
+        /// <summary>
+        /// Return catch statments
+        /// </summary>
+        /// <returns>CodeCatchClause statments</returns>
+        internal static CodeCatchClause[] GetCatchClause()
+        {
+            var catchStatmanents = new CodeStatement[2];
+
+            catchStatmanents[0] = new CodeAssignStatement(
+                new CodeVariableReferenceExpression("exception"),
+                new CodeVariableReferenceExpression("ex"));
+
+            catchStatmanents[1] = GetReturnFalse();
+            var catchClause = new CodeCatchClause(
+                                                    "ex",
+                                                    new CodeTypeReference(typeof(Exception)),
+                                                    catchStatmanents);
+
+            var catchClauses = new[] { catchClause };
+            return catchClauses;
+        }
+
+        /// <summary>
+        /// Gets the throw clause.
+        /// </summary>
+        /// <returns>return catch...throw statment</returns>
+        internal static CodeCatchClause[] GetThrowClause()
+        {
+            var catchStatmanents = new CodeStatementCollection();
+            catchStatmanents.Add(new CodeThrowExceptionStatement(new CodeVariableReferenceExpression("ex")));
+            var catchClause = new CodeCatchClause(
+                                                    "ex",
+                                                    new CodeTypeReference(typeof(Exception)),
+                                                    catchStatmanents.ToArray());
+
+            var catchClauses = new[] { catchClause };
+            return catchClauses;
+        }
+
+        /// <summary>
+        /// Codes the STMT col to array.
+        /// </summary>
+        /// <param name="statmentCollection">The statment collection.</param>
+        /// <returns>return CodeStmtColToArray</returns>
+        internal static CodeStatement[] CodeStmtColToArray(CodeStatementCollection statmentCollection)
+        {
+            var tryFinallyStatmanents = new CodeStatement[statmentCollection.Count];
+            statmentCollection.CopyTo(tryFinallyStatmanents, 0);
+            return tryFinallyStatmanents;
+        }
+
+        /// <summary>
+        /// Get return CodeCommentStatement comment
+        /// </summary>
+        /// <param name="text">Return text comment</param>
+        /// <returns>return return comment statment</returns>
+        internal static CodeCommentStatement GetReturnComment(string text)
+        {
+            var comments = new CodeCommentStatement(string.Format("<returns>{0}</returns>", text),true);
+            return comments;
+        }
+
+        /// <summary>
+        /// Get summary CodeCommentStatementCollection comment
+        /// </summary>
+        /// <param name="text">Summary text comment</param>
+        /// <returns>CodeCommentStatementCollection comment</returns>
+        internal static CodeCommentStatementCollection GetSummaryComment(string text)
+        {
+            var comments = new CodeCommentStatementCollection
+                               {
+                                   new CodeCommentStatement("<summary>", true),
+                                   new CodeCommentStatement(text, true),
+                                   new CodeCommentStatement("</summary>", true)
+                               };
+            return comments;
+        }
+
+        /// <summary>
+        /// Get param comment statment
+        /// </summary>
+        /// <param name="paramName">Param Name</param>
+        /// <param name="text">param summary</param>
+        /// <returns>CodeCommentStatement param</returns>
+        internal static CodeCommentStatement GetParamComment(string paramName, string text)
+        {
+            var comments = new CodeCommentStatement(string.Format("<param name=\"{0}\">{1}</param>", paramName, text),true);
+            return comments;
+        }
+
+        /// <summary>
+        /// Transform CodeStatementCollection into CodeStatement[]
+        /// </summary>
+        /// <param name="collection">The collection.</param>
+        /// <returns>array of CodeStatement</returns>
+        internal static CodeStatement[] ToArray(this CodeStatementCollection collection)
+        {
+            CodeStatement[] cdst = null;
+            if (collection != null)
+            {
+                cdst = new CodeStatement[collection.Count];
+                collection.CopyTo(cdst, 0);
+            }
+
+            return cdst;
+        }
+
+        /// <summary>
+        /// Gets the dispose.
+        /// </summary>
+        /// <param name="objectName">Name of the object.</param>
+        /// <returns>return dispose CodeDom</returns>
+        internal static CodeConditionStatement GetDispose(string objectName)
+        {
+            var statments = new CodeStatementCollection();
+            statments.Add(GetInvokeMethod(objectName, "Dispose"));
+            return
+                new CodeConditionStatement(
+                    new CodeBinaryOperatorExpression(
+                        new CodeVariableReferenceExpression(objectName),
+                        CodeBinaryOperatorType.IdentityInequality,
+                        new CodePrimitiveExpression(null)),
+                        statments.ToArray());
+        }
+
+        /// <summary>
+        /// Creates the instance.
+        /// </summary>
+        /// <param name="type">The instance type.</param>
+        /// <param name="ctorParams">The ctor params.</param>
+        /// <returns>return code of new objectinstance</returns>
+        internal static CodeObjectCreateExpression CreateInstance(Type type)
+        {
+            return new CodeObjectCreateExpression(new CodeTypeReference(type));
+        }
+
+        /// <summary>
+        /// Creates the instance.
+        /// </summary>
+        /// <param name="type">The instance type.</param>
+        /// <param name="ctorParams">The ctor params.</param>
+        /// <returns>return code of new objectinstance</returns>
+        internal static CodeObjectCreateExpression CreateInstance(Type type, params string[] ctorParams)
+        {
+            var ce = new List<CodeTypeReferenceExpression>();
+            foreach (var item in ctorParams)
+                ce.Add(new CodeTypeReferenceExpression(item));
+
+            return CreateInstance(type, ce.ToArray());
+        }
+
+        /// <summary>
+        /// Creates the instance.
+        /// </summary>
+        /// <param name="type">The instance type.</param>
+        /// <param name="ctorParams">The ctor params.</param>
+        /// <returns>return code of new objectinstance</returns>
+        internal static CodeObjectCreateExpression CreateInstance(Type type, CodeTypeReferenceExpression[] ctorParams)
+        {
+            return new CodeObjectCreateExpression(new CodeTypeReference(type), ctorParams);
+        }
+
+        //DCM ADDED: Helpers to remove More CodeSnippetExpressions
+        #region DCM Added 2010-01-20
+
+        /// <summary>
+        /// Get CodeMethodInvokeExpression
+        /// </summary>
+        /// <param name="targetObject">Name of target object. Use this if empty</param>
+        /// <param name="methodName">Name of method to invoke</param>
+        /// <param name="parameters">method params as variable argument array</param>
+        /// <returns>CodeMethodInvokeExpression value</returns>
+        /// <remarks>DCM ADDED for varArgs</remarks>
+        internal static CodeMethodInvokeExpression GetInvokeMethodEx(string targetObject, string methodName, params CodeExpression[] parameters)
+        {
+            var methodInvoke =
+                parameters != null
+                    ? new CodeMethodInvokeExpression(
+                          new CodeMethodReferenceExpression(new CodeVariableReferenceExpression(targetObject), methodName), parameters)
+                    : new CodeMethodInvokeExpression(
+                          new CodeMethodReferenceExpression(new CodeVariableReferenceExpression(targetObject), methodName));
+
+            return methodInvoke;
+        }
+
+        /// <summary>
+        /// Gets the Enum CodeFieldReferenceExpression.
+        /// </summary>
+        /// <param name="enumType">Type of the enum.</param>
+        /// <param name="fieldName">Name of the field.</param>
+        /// <returns></returns>
+        internal static CodeFieldReferenceExpression GetEnum(Type enumType, String fieldName)
+        {
+            return new CodeFieldReferenceExpression(
+                 new CodeTypeReferenceExpression(enumType), fieldName);
+        }
+
+        /// <summary>
+        /// Gets the enum as CodeFieldReferenceExpression.
+        /// </summary>
+        /// <param name="enumType">Type of the enum as string.</param>
+        /// <param name="fieldName">Name of the field.</param>
+        /// <returns></returns>
+        internal static CodeFieldReferenceExpression GetEnum(String enumType, String fieldName)
+        {
+            return new CodeFieldReferenceExpression(
+                 new CodeTypeReferenceExpression(enumType), fieldName);
+        }        
+        
+        /// <summary>
+        /// Gets the Static Field CodeFieldReferenceExpression.
+        /// </summary>
+        /// <param name="classType">Type of the Class.</param>
+        /// <param name="fieldName">Name of the field.</param>
+        /// <returns></returns>
+        internal static CodeFieldReferenceExpression GetStaticField(Type classType, String fieldName)
+        {
+            return new CodeFieldReferenceExpression(
+                 new CodeTypeReferenceExpression(classType), fieldName);
+        }
+
+        /// <summary>
+        /// Gets the Static Field as CodeFieldReferenceExpression.
+        /// </summary>
+        /// <param name="classType">Type of the Class as string.</param>
+        /// <param name="fieldName">Name of the field.</param>
+        /// <returns></returns>
+        internal static CodeFieldReferenceExpression GetStaticField(String classType, String fieldName)
+        {
+            return new CodeFieldReferenceExpression(
+                 new CodeTypeReferenceExpression(classType), fieldName);
+        }
+
+        /// <summary>
+        /// Gets the object's named property.
+        /// </summary>
+        /// <param name="targetObject">The target object.</param>
+        /// <param name="propertyName">Name of the property.</param>
+        /// <returns></returns>
+        internal static CodePropertyReferenceExpression GetObjectProperty(string targetObject, string propertyName)
+        {
+            return new CodePropertyReferenceExpression(new CodeVariableReferenceExpression(targetObject),propertyName);
+        }
+
+        /// <summary>
+        /// Searches the CodeTypeDeclaration and Gets the name member method.
+        /// </summary>
+        /// <param name="type">The type.</param>
+        /// <param name="name">The name.</param>
+        /// <returns></returns>
+        internal static CodeMemberMethod GetMemberMethod(CodeTypeDeclaration type, string name )
+        {
+            CodeMemberMethod result = null;
+            
+            foreach (CodeTypeMember member in type.Members)
+            {
+                if (member is CodeMemberMethod && member.Name.Equals(name))
+                    result = member as CodeMemberMethod;
+            }
+            return result;
+        }
+
+        /// <summary>
+        /// Creates the property changed method.
+        /// </summary>
+        /// <returns>CodeMemberMethod on Property Change handler</returns>
+        /// <remarks>
+        /// <code>
+        ///  protected virtual  void OnPropertyChanged(string info) {
+        ///      PropertyChangedEventHandler handler = PropertyChanged;
+        ///      if (handler != null) {
+        ///          handler(this, new PropertyChangedEventArgs(info));
+        ///      }
+        ///  }
+        /// </code>
+        /// </remarks>
+        internal static CodeMemberMethod CreatePropertyChangedMethod()
+        {
+            const string paramName = "info";
+            const string variableName = "handler";
+
+            var propertyChangedMethod = new CodeMemberMethod
+            {
+                Name = "OnPropertyChanged",
+                Attributes = MemberAttributes.Public
+            };
+            propertyChangedMethod.Parameters.Add(new CodeParameterDeclarationExpression(
+                new CodeTypeReference(typeof(String)), paramName));
+
+            //Declare temp variable holding the event
+            var vardec = new CodeVariableDeclarationStatement(
+                new CodeTypeReference(typeof(PropertyChangedEventHandler)), variableName);
+
+            vardec.InitExpression = new CodeEventReferenceExpression(
+                new CodeThisReferenceExpression(), "PropertyChanged");
+
+            propertyChangedMethod.Statements.Add(vardec);
+
+            //The part of the true, create the event and invoke it
+
+            //var createArgs = new CodeObjectCreateExpression(
+            //    new CodeTypeReference(typeof(PropertyChangedEventArgs)),
+            //    new CodeArgumentReferenceExpression(paramName));
+
+            var createArgs = CodeDomHelper.CreateInstance(typeof(PropertyChangedEventArgs), paramName);
+
+            var raiseEvent = new CodeDelegateInvokeExpression(
+                new CodeVariableReferenceExpression(variableName),
+                new CodeThisReferenceExpression(), createArgs);
+
+            //The Condition
+            CodeExpression condition = new CodeBinaryOperatorExpression(
+                new CodeVariableReferenceExpression(variableName),
+                    CodeBinaryOperatorType.IdentityInequality,
+                new CodePrimitiveExpression(null));
+
+            //The if condition
+            var ifTempIsNull = new CodeConditionStatement();
+            ifTempIsNull.Condition = condition;
+            ifTempIsNull.TrueStatements.Add(raiseEvent);
+
+            propertyChangedMethod.Statements.Add(ifTempIsNull);
+            return propertyChangedMethod;
+        }
+
+        #endregion
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/CodeDomProviderFactory.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/CodeDomProviderFactory.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/CodeDomProviderFactory.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,47 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="CodeDomProviderFactory.cs" company="Xsd2Code">
+//   N/A
+// </copyright>
+// <summary>
+//   Code DOM Provider factory design pattern implementation
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Helpers
+{
+    using System;
+    using System.CodeDom.Compiler;
+    using Microsoft.CSharp;
+    using Microsoft.VisualBasic;
+    using Microsoft.VisualC;
+
+    /// <summary>
+    /// Code DOM Provider factory design pattern implementation
+    /// </summary>
+    public static class CodeDomProviderFactory
+    {
+        /// <summary>
+        /// Get Code DOM provider
+        /// </summary>
+        /// <param name="language">The language.</param>
+        /// <returns>CodeDom provider according language.</returns>
+        public static CodeDomProvider GetProvider(GenerationLanguage language)
+        {
+            switch (language)
+            {
+                case GenerationLanguage.CSharp:
+                    return new CSharpCodeProvider();
+
+                case GenerationLanguage.VisualBasic:
+                    return new VBCodeProvider();
+
+                case GenerationLanguage.VisualCpp:
+                    return new CppCodeProvider();
+
+                default:
+                    throw new NotImplementedException(
+                        string.Format(Properties.Resources.UnsupportedLanguageCodeDomProvider, Utility.GetEnumDescription(language)));
+            }
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Message.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Message.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Message.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,133 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="Message.cs" company="Xsd2Code">
+//   N/A
+// </copyright>
+// <summary>
+//   Message class represents a message generated at a point of execution
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Helpers
+{
+    using System;
+    using System.Threading;
+
+    /// <summary>
+    /// Message class represents a message generated at a point of execution
+    /// </summary>
+    public class Message
+    {
+        /// <summary>
+        /// Name of rule
+        /// </summary>
+        private string ruleNameField = string.Empty;
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Message"/> class.
+        /// Message constructor with initializers
+        /// </summary>
+        /// <param name="messageType">Message type</param>
+        /// <param name="text">Message text</param>
+        public Message(MessageType messageType, string text)
+            : this(messageType, string.Empty, text)
+        {
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Message"/> class.
+        /// Message constructor with initializers
+        /// </summary>
+        /// <param name="messageType">Message type</param>
+        /// <param name="ruleName">Name of business rule</param>
+        /// <param name="text">Message text</param>
+        public Message(MessageType messageType, string ruleName, string text)
+            : this()
+        {
+            this.MessageType = messageType;
+            this.ruleNameField = ruleName;
+            this.Text = text ?? string.Empty;
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Message"/> class.
+        /// Message constructor with initializers
+        /// </summary>
+        /// <param name="messageType">Message type</param>
+        /// <param name="ruleName">Name of business rule</param>
+        /// <param name="format">Message text format string</param>
+        /// <param name="args">Format string arguments</param>
+        public Message(MessageType messageType, string ruleName, string format, params object[] args)
+            : this(messageType, ruleName, string.Format(Thread.CurrentThread.CurrentCulture, format, args))
+        {
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Message"/> class.
+        /// Message constructor with initializers
+        /// </summary>
+        /// <param name="messageType">Message type</param>
+        /// <param name="format">Message text</param>
+        /// <param name="args">Arguments list</param>
+        public Message(MessageType messageType, string format, params object[] args)
+            : this(messageType, string.Empty, string.Format(Thread.CurrentThread.CurrentCulture, format, args))
+        {
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the <see cref="Message"/> class.
+        /// Message class constructor
+        /// </summary>
+        /// <param name="text">parameter value</param>
+        public Message(string text)
+            : this(default(MessageType), text)
+        {
+        }
+
+        /// <summary>
+        /// Prevents a default instance of the <see cref="Message"/> class from being created. 
+        /// </summary>
+        private Message()
+        {
+            this.MessageSubtype = MessageSubtype.Unspecified;
+        }
+
+        /// <summary>
+        /// Gets the name of the rule.
+        /// </summary>
+        public string RuleName
+        {
+            get { return this.ruleNameField; }
+        }
+
+        /// <summary>
+        /// Gets or sets the type of the message.
+        /// </summary>
+        public MessageType MessageType { get; set; }
+
+        /// <summary>
+        /// Gets or sets the message subtype.
+        /// </summary>
+        public MessageSubtype MessageSubtype { get; set; }
+
+        /// <summary>
+        /// Gets or sets the text.
+        /// </summary>
+        public string Text { get; set; }
+
+        /// <summary>
+        /// Represents message object in a form of a string
+        /// </summary>
+        /// <returns>Formatted Message</returns>
+        public override string ToString()
+        {
+            return string.Format(
+                                 Thread.CurrentThread.CurrentCulture,
+                                 "{1}: {2}{0}\tSubType: {3}{0}{0}\tRule: {4}",
+                                 Environment.NewLine,
+                                 this.MessageType,
+                                 this.Text,
+                                 this.MessageSubtype,
+                                 this.RuleName);
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/MessageSubtype.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/MessageSubtype.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/MessageSubtype.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,16 @@
+using System.ComponentModel;
+
+namespace Xsd2Code.Library.Helpers
+{
+    /// <summary>
+    /// Identifies subtype of a message
+    /// </summary>
+    [DefaultValue(Unspecified)]
+    public enum MessageSubtype
+    {
+        /// <summary>
+        /// Unspecified
+        /// </summary>
+        Unspecified
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/MessageType.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/MessageType.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/MessageType.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,28 @@
+using System.ComponentModel;
+
+namespace Xsd2Code.Library.Helpers
+{
+    /// <summary>
+    /// Identifies subtype of a message
+    /// </summary>
+    [DefaultValue(Debug)]
+    public enum MessageType
+    {
+        /// <summary>
+        /// Error
+        /// </summary>
+        Error,
+        /// <summary>
+        /// Warning
+        /// </summary>
+        Warning,
+        /// <summary>
+        /// Information
+        /// </summary>
+        Information,
+        /// <summary>
+        /// Debug
+        /// </summary>
+        Debug
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Messages.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Messages.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Messages.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,90 @@
+#region Namespace references
+
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Runtime.Serialization;
+using System.Text;
+using Xsd2Code.Library.Helpers;
+
+#endregion
+
+namespace Xsd2Code.Library.Helpers
+{
+    /// <summary>
+    /// <see cref="Message"/> collection
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    ///     Created 2009-02-20 by Ruslan Urban
+    /// </remarks>
+    public class MessageCollection : Collection<Message>
+    {
+        /// <summary>
+        /// Message collection class constructor
+        /// </summary>
+        /// <param name="messages"></param>
+        public MessageCollection(params Message[] messages)
+        {
+            if (messages == null) return;
+            foreach (var message in messages)
+                this.Add(message);
+        }
+
+        /// <summary>
+        /// Message collection class constructor
+        /// </summary>
+        /// <param name="messages"></param>
+        public MessageCollection(IEnumerable<Message> messages)
+        {
+            if (messages == null) return;
+            foreach (var message in messages)
+                this.Add(message);
+        }
+
+        /// <summary>
+        /// To string
+        /// </summary>
+        /// <returns></returns>
+        public override string ToString()
+        {
+            var result = new StringBuilder();
+            foreach (var message in this)
+                result.AppendLine(message.ToString());
+            return result.ToString();
+        }
+
+
+        /// <summary>
+        /// Add a message
+        /// </summary>
+        /// <param name="messageType">parameter value</param>
+        /// <param name="ruleName">parameter value</param>
+        /// <param name="format">parameter value</param>
+        /// <param name="args">parameter value</param>
+        public void Add(MessageType messageType, string ruleName, string format, params object[] args)
+        {
+            this.Add(new Message(messageType, ruleName, format, args));
+        }
+
+        /// <summary>
+        /// Add a message
+        /// </summary>
+        /// <param name="messageType">parameter value</param>
+        /// <param name="format">parameter value</param>
+        /// <param name="args">parameter value</param>
+        public void Add(MessageType messageType, string format, params object[] args)
+        {
+            this.Add(new Message(messageType, format, args));
+        }
+
+        /// <summary>
+        /// Add a message
+        /// </summary>
+        /// <param name="format">parameter value</param>
+        /// <param name="args">parameter value</param>
+        public void Add(string format, params object[] args)
+        {
+            this.Add(default(MessageType), format, args);
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Result.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Result.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Result.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,150 @@
+namespace Xsd2Code.Library.Helpers
+{
+    /// <summary>
+    /// Result class represents result of execution
+    /// <para><see cref="Success"/> flag represents result of the operation</para>
+    /// <para><see cref="Messages"/> property contains a list of messages generated during execution</para>
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Created 2009-02-20 by Ruslan Urban
+    /// 
+    /// </remarks>
+    public class Result
+    {
+
+        #region Result Default constructor
+
+        /// <summary>
+        /// Result class constructor
+        /// </summary>
+        public Result() : this(false)
+        {}
+
+        /// <summary>
+        /// Result class constructor
+        /// </summary>
+        /// <param name="success">parameter value</param>
+        public Result(bool success)
+        {
+            this.Success = success;
+        }
+
+        /// <summary>
+        /// Result class constructor
+        /// </summary>
+        /// <param name="success">parameter value</param>
+        /// <param name="message">parameter value</param>
+        /// <param name="MessageType">parameter value</param>
+        public Result(bool success, MessageType MessageType, string message) : this(success)
+        {
+            var messageItem = new Message(MessageType, message);
+            this.Messages.Add(messageItem);
+        }
+
+        /// <summary>
+        /// Result class constructor
+        /// </summary>
+        /// <param name="success">parameter value</param>
+        /// <param name="messages">parameter value</param>
+        public Result(bool success, MessageCollection messages) : this(success)
+        {
+            this.messages = messages;
+        }
+
+        #endregion
+
+        #region Property : Success
+
+        /// <summary>
+        /// Success
+        /// </summary>
+        public bool Success { get; set; }
+
+        #endregion
+
+        #region Property : Messages
+
+        /// <summary>
+        /// Member field messages
+        /// </summary>
+        private MessageCollection messages;
+
+        /// <summary>
+        /// Messages
+        /// </summary>
+        public MessageCollection Messages
+        {
+            get
+            {
+                if (this.messages == null) 
+                    this.messages = new MessageCollection();
+                return this.messages;
+            }
+        }
+
+        #endregion
+    }
+
+    /// <summary>
+    /// Generic <see cref="Result"/> class represents result of execution 
+    /// that returns an object of type <typeparamref name="TEntity"/> 
+    /// in the property <see cref="Entity"/>
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Modified 2009-02-20 by Ruslan Urban
+    /// 
+    /// </remarks>
+    /// <typeparam name="TEntity"></typeparam>
+    public class Result<TEntity> : Result
+    {
+        ///<summary>
+        /// Default constructor
+        ///</summary>
+        public Result()
+        {}
+
+        /// <summary>
+        /// Result class constructor
+        /// </summary>
+        /// <param name="entity">parameter value</param>
+        /// <param name="success">parameter value</param>
+        public Result(TEntity entity, bool success)
+            : this(entity, success, null)
+        {}
+
+        /// <summary>
+        /// Result class constructor
+        /// </summary>
+        /// <param name="entity">parameter value</param>
+        /// <param name="success">parameter value</param>
+        /// <param name="messages">parameter value</param>
+        public Result(TEntity entity, bool success, MessageCollection messages)
+            : base(success, messages)
+        {
+            this.Entity = entity;
+        }
+
+        /// <summary>
+        /// Result class constructor
+        /// </summary>
+        /// <param name="entity">parameter value</param>
+        /// <param name="success">parameter value</param>
+        /// <param name="message">parameter value</param>
+        /// <param name="MessageType">parameter value</param>
+        public Result(TEntity entity, bool success, string message, MessageType MessageType)
+            : this(entity, success)
+        {
+            var messageItem = new Message(MessageType, message);
+            this.Messages.Add(messageItem);
+        }
+
+        /// <summary>
+        /// Resulting Entity
+        /// </summary>
+        public TEntity Entity { get; set; }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Utility.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Utility.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/Utility.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,259 @@
+using System;
+using System.CodeDom.Compiler;
+using System.ComponentModel;
+using System.IO;
+using System.Reflection;
+
+namespace Xsd2Code.Library.Helpers
+{
+    /// <summary>
+    /// Common utility methods 
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Created 2009-02-20 by Ruslan Urban
+    ///     Moved some commonly used methods into this class and added new methods
+    /// 
+    /// </remarks>
+    public static class Utility
+    {
+        /// <summary>
+        /// Transform string to GenerationLanguage
+        /// </summary>
+        /// <param name="input">language string</param>
+        /// <returns>GenerationLanguage object</returns>
+        public static GenerationLanguage GetGenerationLanguage(string input)
+        {
+            if (string.IsNullOrEmpty(input)) return default(GenerationLanguage);
+
+            switch (input.ToLower())
+            {
+                case "cs":
+                case "c#":
+                case "csharp":
+                case "visualcsharp":
+                    return GenerationLanguage.CSharp;
+                case "c":
+                case "cpp":
+                case "c+":
+                case "c++":
+                case "cplus":
+                case "cplusplus":
+                case "visualc":
+                case "visualcplus":
+                case "visualcplusplus":
+                    return GenerationLanguage.VisualCpp;
+                case "vb":
+                    return GenerationLanguage.VisualBasic;
+                case "bas":
+                case "visualbasic":
+                    return GenerationLanguage.VisualCpp;
+            }
+
+            return ToEnum<GenerationLanguage>(input);
+        }
+
+        /// <summary>
+        /// Convert user input to target platform enumeration
+        /// </summary>
+        /// <param name="input">User input</param>
+        /// <returns><see cref="TargetFramework"/></returns>
+        public static TargetFramework GetTargetPlatform(string input)
+        {
+            if (string.IsNullOrEmpty(input)) return default(TargetFramework);
+
+            switch (input.ToLower())
+            {
+                case "sl":
+                case "silverlight":
+                case "silverlight2":
+                case "silverlight20":
+                    return TargetFramework.Silverlight;
+                case "2":
+                case "20":
+                case "2.0":
+                case "net2":
+                case "net20":
+                case "net2.0":
+                case "dotnet2":
+                case "dotnet20":
+                case "dotnet2.0":
+                    return TargetFramework.Net35;
+                case "3":
+                case "30":
+                case "3.0":
+                case "net3":
+                case "net30":
+                case "net3.0":
+                case "dotnet3":
+                case "dotnet30":
+                case "dotnet3.0":
+                    return TargetFramework.Net30;
+                case "35":
+                case "3.5":
+                case "net35":
+                case "net3.5":
+                case "dotnet35":
+                case "dotnet3.5":
+                    return TargetFramework.Net35;
+            }
+
+            return ToEnum<TargetFramework>(input);
+        }
+
+
+        /// <summary>
+        /// Get generation language
+        /// </summary>
+        /// <param name="provider">Code DOM provider</param>
+        /// <returns><see cref="GenerationLanguage"/></returns>
+        static private GenerationLanguage GetGenerationLanguage(CodeDomProvider provider)
+        {
+            return GetGenerationLanguage(provider.FileExtension.Replace(".", ""));
+        }
+
+        /// <summary>
+        /// Get output file path        
+        /// </summary>
+        /// <param name="xsdFilePath">Input file path</param>
+        /// <param name="provider"></param>
+        /// <returns></returns>
+        public static string GetOutputFilePath(string xsdFilePath, CodeDomProvider provider)
+        {
+            /* DCM REMOVED: CodeDom Provider has FileExtension
+            var language = GetGenerationLanguage(provider);
+            return GetOutputFilePath(xsdFilePath, language);
+             */ 
+            return Path.ChangeExtension(xsdFilePath, ".designer." + provider.FileExtension);
+        }
+
+        /// <summary>
+        /// Get output file path
+        /// </summary>
+        /// <param name="xsdFilePath">Input file path</param>
+        /// <param name="language">Generation language</param>
+        /// <returns>Generated file output path</returns>
+        public static string GetOutputFilePath(string xsdFilePath, GenerationLanguage language)
+        {
+            return GetOutputFilePath(xsdFilePath, CodeDomProviderFactory.GetProvider(language));
+
+            /* DCM REMOVED CodeDom Provider has FileExtension
+            switch (language)
+            {
+                case GenerationLanguage.VisualBasic:
+                    return Path.ChangeExtension(xsdFilePath, ".Designer.vb");
+                case GenerationLanguage.VisualCpp:
+                    return Path.ChangeExtension(xsdFilePath, ".Designer.cpp");
+                default:
+                    return Path.ChangeExtension(xsdFilePath, ".Designer.cs");
+            }
+             */ 
+        }
+        
+        /// <summary>
+        /// Gets the language extension based on the Passed language.
+        /// </summary>
+        /// <param name="language">The language.</param>
+        /// <returns></returns>
+        public static string GetLanguageExtension(GenerationLanguage language)
+        {
+            return CodeDomProviderFactory.GetProvider(language).FileExtension;
+        }
+
+        /// <summary>
+        /// Convert string enumeration value name to actual enumeration value
+        /// </summary>
+        /// <typeparam name="T">Enumeration type</typeparam>
+        /// <param name="name">Name of the enumeration value</param>
+        /// <returns>Enumeration value of type <typeparamref name="T"/></returns>
+        public static T ToEnum<T>(string name)
+        {
+            return ToEnum<T>(name, true);
+        }
+
+        /// <summary>
+        /// Convert string enumeration value name to actual enumeration value
+        /// </summary>
+        /// <typeparam name="T">Enumeration type</typeparam>
+        /// <param name="name">Name of the enumeration value</param>
+        /// <param name="returnDefault">Flag that indicates that default enum value should be returned if <paramref name="name"/> value cannot be parsed</param>
+        /// <returns>Enumeration value of type <typeparamref name="T"/></returns>
+        public static T ToEnum<T>(string name, bool returnDefault)
+        {
+            if (!Enum.IsDefined(typeof (T), name))
+            {
+                if (returnDefault) return default(T);
+                throw new ArgumentOutOfRangeException(string.Format("{0}...{1}", name, typeof (T)));
+            }
+
+            return (T) Enum.Parse(typeof (T), name, false);
+        }
+
+        /// <summary>
+        /// Parse enum
+        /// </summary>
+        /// <typeparam name="T">Enumeration type</typeparam>
+        /// <param name="name">Name of the enumeration value</param>
+        /// <param name="defaultValue">Default return value if <paramref name="name"/> cannot be parsed</param>
+        /// <returns>Enumeration value of type <typeparamref name="T"/></returns>
+        public static T ToEnum<T>(string name, T defaultValue)
+        {
+            if (!Enum.IsDefined(typeof (T), name)) return defaultValue;
+            try
+            {
+                return (T) Enum.Parse(typeof (T), name, false);
+            }
+            catch
+            {
+                return defaultValue;
+            }
+        }
+
+
+        /// <summary>Get Enum description tag</summary>
+        /// <param name="value">Enumeration value</param>
+        /// <returns>Value of the [Description] attribute, or string value of the Enum field</returns>
+        public static string GetEnumDescription(Enum value)
+        {
+            FieldInfo fi = value.GetType().GetField(value.ToString());
+
+            var attributes =
+                (DescriptionAttribute[]) fi.GetCustomAttributes(typeof (DescriptionAttribute), false);
+
+            return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
+        }
+
+
+        /// <summary>
+        /// String to boolean static method 
+        /// </summary>
+        /// <param name="p">string to transform</param>
+        /// <param name="defaultIfNull">if string is null use this default</param>
+        /// <returns>booean result</returns>
+        public static bool ToBoolean(string p, bool defaultIfNull)
+        {
+            if (string.IsNullOrEmpty(p)) return defaultIfNull;
+
+            switch (p.Substring(0, 1).ToUpper())
+            {
+                case "T": // True in True|False (Most programming languages)
+                case "1": // 1    in 1|0        (XML)
+                case "Y": // Yes  in Yes|No     (Other cases)
+                    return true;
+            }
+            return false;
+        }        
+        
+        /// <summary>
+        /// String to boolean static method 
+        /// </summary>
+        /// <param name="p">string to transform</param>
+        /// <returns>booean result</returns>
+        public static bool ToBoolean(string p)
+        {
+            return ToBoolean(p, false);
+        }
+
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/XmlHelper.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/XmlHelper.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Helpers/XmlHelper.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,44 @@
+//-----------------------------------------------------------------------
+// <copyright file="XmlHelper.cs" company="Xsd2Code">
+//     copyright Pascal Cabanel.
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Helpers
+{
+    /// <summary>
+    /// Helper to find pseudo xml tag.
+    /// </summary>
+    public static class XmlHelper
+    {
+        /// <summary>
+        /// Get value of pseudo xml tag
+        /// </summary>
+        /// <param name="xmlStream">xml data string</param>
+        /// <param name="tag">Tag name in xml</param>
+        /// <returns>return tag value</returns>
+        public static string ExtractStrFromXML(this string xmlStream, string tag)
+        {
+            string upperData = xmlStream.ToUpper();
+            tag = tag.ToUpper();
+            int startpos = upperData.IndexOf("<" + tag + ">") + 2 + tag.Length;
+            int endpos = upperData.IndexOf("</" + tag + ">");
+            int lenght = endpos - startpos;
+            if (lenght > 0)
+                return xmlStream.Substring(startpos, lenght);
+            
+            return string.Empty;
+        }
+
+        /// <summary>
+        /// Insert tag in speudo xml string
+        /// </summary>
+        /// <param name="tag">tag name of pseudo xml</param>
+        /// <param name="tagValue">value of tag</param>
+        /// <returns>return pseudo xml string</returns>
+        public static string InsertXMLFromStr(string tag, string tagValue)
+        {
+            return string.Format("<{0}>{1}</{0}>", tag, tagValue);
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/ICodeExtension.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/ICodeExtension.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/ICodeExtension.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,23 @@
+//-----------------------------------------------------------------------
+// <copyright file="ICodeExtension.cs" company="Xsd2Code">
+//     copyright Pascal Cabanel.
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace Xsd2Code
+{
+    using System;
+
+    /// <summary>
+    /// Extention interface
+    /// </summary>
+    public interface ICodeExtension
+    {
+        /// <summary>
+        /// Process method
+        /// </summary>
+        /// <param name="code">CodeNamespace type</param>
+        /// <param name="schema">XSD XmlSchema object</param>
+        void Process(System.CodeDom.CodeNamespace code, System.Xml.Schema.XmlSchema schema);
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/NamespaceParam.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/NamespaceParam.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/NamespaceParam.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,38 @@
+//-----------------------------------------------------------------------
+// <copyright file="NamespaceParam.cs" company="Xsd2Code">
+//     copyright Pascal Cabanel.
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace Xsd2Code.Library
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Text;
+    using System.IO;
+    using System.ComponentModel;
+
+    /// <summary>
+    /// represent namespace parameter.
+    /// </summary>
+    public class NamespaceParam
+    {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="NamespaceParam"/> class.
+        /// </summary>
+        public NamespaceParam()
+        {
+        }
+
+        /// <summary>
+        /// Gets or sets the name space.
+        /// </summary>
+        /// <value>The name space.</value>
+        [CategoryAttribute("Code"), DescriptionAttribute("namespace of generated file")]
+        public string NameSpace
+        {
+            get;
+            set;
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Properties/Resources.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Properties/Resources.Designer.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,81 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.3053
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Xsd2Code.Library.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Xsd2Code.Library.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &quot;Code provider for language {0} is not supported&quot;.
+        /// </summary>
+        internal static string UnsupportedLanguageCodeDomProvider {
+            get {
+                return ResourceManager.GetString("UnsupportedLanguageCodeDomProvider", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Target framework %0 is not supported.
+        /// </summary>
+        internal static string UnsupportedTargetFramework {
+            get {
+                return ResourceManager.GetString("UnsupportedTargetFramework", resourceCulture);
+            }
+        }
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Properties/Resources.resx
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Properties/Resources.resx	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Properties/Resources.resx	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="UnsupportedLanguageCodeDomProvider" xml:space="preserve">
+    <value>"Code provider for language {0} is not supported"</value>
+  </data>
+  <data name="UnsupportedTargetFramework" xml:space="preserve">
+    <value>Target framework %0 is not supported</value>
+  </data>
+</root>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/TargetFramework.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/TargetFramework.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/TargetFramework.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,29 @@
+using System.ComponentModel;
+
+namespace Xsd2Code.Library
+{
+    /// <summary>
+    /// Code generation code base type enumeration
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Created 2009-02-20 by Ruslan Urban
+    /// 
+    /// </remarks>
+    [DefaultValue(Net20)]
+    public enum TargetFramework
+    {
+        [Description(".Net Framework 2.0")]
+        Net20,
+
+        [Description(".Net Framework 3.0")]
+        Net30,
+        
+        [Description(".Net Framework 3.5")]
+        Net35,
+
+        [Description("Silverlight")]
+        Silverlight
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Xsd2Code.Library.csproj
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Xsd2Code.Library.csproj	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Xsd2Code.Library.csproj	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,166 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+  <PropertyGroup>
+    <ProjectType>Local</ProjectType>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{1B59FB12-699C-4927-ACA3-D7F0E0F79100}</ProjectGuid>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ApplicationIcon>
+    </ApplicationIcon>
+    <AssemblyKeyContainerName>
+    </AssemblyKeyContainerName>
+    <AssemblyName>Xsd2Code.Library</AssemblyName>
+    <AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
+    <DefaultClientScript>JScript</DefaultClientScript>
+    <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
+    <DefaultTargetSchema>IE50</DefaultTargetSchema>
+    <DelaySign>false</DelaySign>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Xsd2Code.Library</RootNamespace>
+    <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
+    <StartupObject>
+    </StartupObject>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+    <OldToolsVersion>2.0</OldToolsVersion>
+    <SignAssembly>true</SignAssembly>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <OutputPath>bin\Debug\</OutputPath>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <BaseAddress>285212672</BaseAddress>
+    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+    <ConfigurationOverrideFile>
+    </ConfigurationOverrideFile>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DocumentationFile>
+    </DocumentationFile>
+    <DebugSymbols>true</DebugSymbols>
+    <FileAlignment>4096</FileAlignment>
+    <NoStdLib>false</NoStdLib>
+    <NoWarn>
+    </NoWarn>
+    <Optimize>false</Optimize>
+    <RegisterForComInterop>false</RegisterForComInterop>
+    <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+    <WarningLevel>4</WarningLevel>
+    <DebugType>full</DebugType>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <OutputPath>bin\Release\</OutputPath>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <BaseAddress>285212672</BaseAddress>
+    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+    <ConfigurationOverrideFile>
+    </ConfigurationOverrideFile>
+    <DefineConstants>TRACE</DefineConstants>
+    <DocumentationFile>
+    </DocumentationFile>
+    <DebugSymbols>false</DebugSymbols>
+    <FileAlignment>4096</FileAlignment>
+    <NoStdLib>false</NoStdLib>
+    <NoWarn>
+    </NoWarn>
+    <Optimize>true</Optimize>
+    <RegisterForComInterop>false</RegisterForComInterop>
+    <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+    <WarningLevel>4</WarningLevel>
+    <DebugType>none</DebugType>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="CppCodeProvider, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
+    <Reference Include="System">
+      <Name>System</Name>
+    </Reference>
+    <Reference Include="System.configuration" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data">
+      <Name>System.Data</Name>
+    </Reference>
+    <Reference Include="System.Runtime.Serialization">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml">
+      <Name>System.XML</Name>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Extensions\CodeExtension.cs" />
+    <Compile Include="Extensions\CodeExtensionAttribute.cs" />
+    <Compile Include="Extensions\SilverlightExtension.cs" />
+    <Compile Include="Extensions\Net35Extension.cs" />
+    <Compile Include="Extensions\Net30Extension.cs" />
+    <Compile Include="GeneratorFactory.cs" />
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Helpers\CodeDomProviderFactory.cs" />
+    <Compile Include="CollectionType.cs" />
+    <Compile Include="GenerationLanguage.cs" />
+    <Compile Include="Extensions\Net20Extension.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="GeneratorContext.cs" />
+    <Compile Include="GeneratorParams.cs" />
+    <Compile Include="Helpers\CodeDomHelper.cs" />
+    <Compile Include="Helpers\Message.cs" />
+    <Compile Include="Helpers\Messages.cs" />
+    <Compile Include="Helpers\MessageSubtype.cs" />
+    <Compile Include="Helpers\MessageType.cs" />
+    <Compile Include="Helpers\Result.cs" />
+    <Compile Include="Helpers\Utility.cs" />
+    <Compile Include="ICodeExtension.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Generator.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Helpers\XmlHelper.cs" />
+    <Compile Include="GeneratorFacade.cs" />
+    <Compile Include="NamespaceParam.cs" />
+    <Compile Include="TargetFramework.cs">
+      <SubType>Code</SubType>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="key.snk" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="ChangeLog.txt" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>
+    </PreBuildEvent>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
+</Project>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Xsd2Code.Library.csproj.vspscc
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Xsd2Code.Library.csproj.vspscc	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/Xsd2Code.Library.csproj.vspscc	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/key.snk
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Library/key.snk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/Xsd2Code.Setup.vdproj
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/Xsd2Code.Setup.vdproj	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/Xsd2Code.Setup.vdproj	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,2425 @@
+"DeployProject"
+{
+"VSVersion" = "3:800"
+"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
+"IsWebType" = "8:FALSE"
+"ProjectName" = "8:Xsd2Code.Setup"
+"LanguageId" = "3:1033"
+"CodePage" = "3:1252"
+"UILanguageId" = "3:1033"
+"SccProjectName" = "8:SAK"
+"SccLocalPath" = "8:SAK"
+"SccAuxPath" = "8:SAK"
+"SccProvider" = "8:SAK"
+    "Hierarchy"
+    {
+        "Entry"
+        {
+        "MsmKey" = "8:_00B30F60FD4E4AD6852F9F4F00B2E3D5"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_02BF6658565AB89A9E0E5EDAD398D4D4"
+        "OwnerKey" = "8:_52EA8F432CC87578142A9088C4776CA4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_02BF6658565AB89A9E0E5EDAD398D4D4"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_02BF6658565AB89A9E0E5EDAD398D4D4"
+        "OwnerKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_02BF6658565AB89A9E0E5EDAD398D4D4"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_02BF6658565AB89A9E0E5EDAD398D4D4"
+        "OwnerKey" = "8:_995E43DF6829ACD0993E66BA62B59010"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_237AB4F7A0FE364F175B8F9540479067"
+        "OwnerKey" = "8:_9FE8EA0636EB116FD6658FBB09DFE95D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2A29D83B76A4737E5B5A1C69D018BDF4"
+        "OwnerKey" = "8:_02BF6658565AB89A9E0E5EDAD398D4D4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2A29D83B76A4737E5B5A1C69D018BDF4"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2A29D83B76A4737E5B5A1C69D018BDF4"
+        "OwnerKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2A29D83B76A4737E5B5A1C69D018BDF4"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2A29D83B76A4737E5B5A1C69D018BDF4"
+        "OwnerKey" = "8:_52EA8F432CC87578142A9088C4776CA4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2A29D83B76A4737E5B5A1C69D018BDF4"
+        "OwnerKey" = "8:_995E43DF6829ACD0993E66BA62B59010"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2DECD1E3637A43FA94AF210B2D7AA487"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_306CCA4807A5EF0FE24E4D25F17CEEEE"
+        "OwnerKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_306CCA4807A5EF0FE24E4D25F17CEEEE"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_306CCA4807A5EF0FE24E4D25F17CEEEE"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_334AD48D8BA4B19B5C1C937FE136E37C"
+        "OwnerKey" = "8:_2DECD1E3637A43FA94AF210B2D7AA487"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_334AD48D8BA4B19B5C1C937FE136E37C"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_334AD48D8BA4B19B5C1C937FE136E37C"
+        "OwnerKey" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_334AD48D8BA4B19B5C1C937FE136E37C"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_4D5B5B3E873C568A2E6832D15B509483"
+        "OwnerKey" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_4DC3744B0E677F5E6336527424A1C8B4"
+        "OwnerKey" = "8:_334AD48D8BA4B19B5C1C937FE136E37C"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_4DC3744B0E677F5E6336527424A1C8B4"
+        "OwnerKey" = "8:_D38EA559F6BE4D89980464F2DCA34A8E"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_4DC3744B0E677F5E6336527424A1C8B4"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_4DC3744B0E677F5E6336527424A1C8B4"
+        "OwnerKey" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_4DC3744B0E677F5E6336527424A1C8B4"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_4DC3744B0E677F5E6336527424A1C8B4"
+        "OwnerKey" = "8:_2DECD1E3637A43FA94AF210B2D7AA487"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_52BD26E9261145B2BFB7F6F40F1B4180"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_52EA8F432CC87578142A9088C4776CA4"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_52EA8F432CC87578142A9088C4776CA4"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_52EA8F432CC87578142A9088C4776CA4"
+        "OwnerKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5EAADD34BDADD640ABC70C1A462807F8"
+        "OwnerKey" = "8:_E79428D34B58A2B7744637C662EB602E"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_64620B4D54084669B540372A4082535D"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_795F0A9412FC2A617F571C7AC8649416"
+        "OwnerKey" = "8:_EDA0E61B645870C31CED1FA931E513AA"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7AF8E2F3BE8F4E97998788BF368F6289"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7C1C744ED59FEBA62D93B1D1B4A93FF0"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7C1C744ED59FEBA62D93B1D1B4A93FF0"
+        "OwnerKey" = "8:_995E43DF6829ACD0993E66BA62B59010"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7C1C744ED59FEBA62D93B1D1B4A93FF0"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9882338D52204001EDCD2BAC93035802"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9882338D52204001EDCD2BAC93035802"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_995E43DF6829ACD0993E66BA62B59010"
+        "OwnerKey" = "8:_52EA8F432CC87578142A9088C4776CA4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_995E43DF6829ACD0993E66BA62B59010"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_995E43DF6829ACD0993E66BA62B59010"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9B04B0A1BA372F57AC19697A9635EBE0"
+        "OwnerKey" = "8:_E79428D34B58A2B7744637C662EB602E"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9B04B0A1BA372F57AC19697A9635EBE0"
+        "OwnerKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9B04B0A1BA372F57AC19697A9635EBE0"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9B04B0A1BA372F57AC19697A9635EBE0"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9B04B0A1BA372F57AC19697A9635EBE0"
+        "OwnerKey" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9B04B0A1BA372F57AC19697A9635EBE0"
+        "OwnerKey" = "8:_9FE8EA0636EB116FD6658FBB09DFE95D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9FE8EA0636EB116FD6658FBB09DFE95D"
+        "OwnerKey" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_AC3B9D31702F4D54AD686E11A7E4A3BC"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_BA84E62317A341ECBFCB991B93803844"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_D38EA559F6BE4D89980464F2DCA34A8E"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E79428D34B58A2B7744637C662EB602E"
+        "OwnerKey" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E79428D34B58A2B7744637C662EB602E"
+        "OwnerKey" = "8:_9FE8EA0636EB116FD6658FBB09DFE95D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E8FE4AE9713C335CF29E5DA97AAFD1AA"
+        "OwnerKey" = "8:_9B04B0A1BA372F57AC19697A9635EBE0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E926FE2C55A07FE669A8CFB5F9BA7113"
+        "OwnerKey" = "8:_4D5B5B3E873C568A2E6832D15B509483"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EDA0E61B645870C31CED1FA931E513AA"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EDA0E61B645870C31CED1FA931E513AA"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EDA0E61B645870C31CED1FA931E513AA"
+        "OwnerKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F31834B8EF1CFE95AC6D3AA700EDCE04"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F31834B8EF1CFE95AC6D3AA700EDCE04"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F31834B8EF1CFE95AC6D3AA700EDCE04"
+        "OwnerKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F31834B8EF1CFE95AC6D3AA700EDCE04"
+        "OwnerKey" = "8:_995E43DF6829ACD0993E66BA62B59010"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F31834B8EF1CFE95AC6D3AA700EDCE04"
+        "OwnerKey" = "8:_2A29D83B76A4737E5B5A1C69D018BDF4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F31834B8EF1CFE95AC6D3AA700EDCE04"
+        "OwnerKey" = "8:_02BF6658565AB89A9E0E5EDAD398D4D4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F31834B8EF1CFE95AC6D3AA700EDCE04"
+        "OwnerKey" = "8:_52EA8F432CC87578142A9088C4776CA4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_9B04B0A1BA372F57AC19697A9635EBE0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_F31834B8EF1CFE95AC6D3AA700EDCE04"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_EDA0E61B645870C31CED1FA931E513AA"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_E79428D34B58A2B7744637C662EB602E"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_9FE8EA0636EB116FD6658FBB09DFE95D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_995E43DF6829ACD0993E66BA62B59010"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_9882338D52204001EDCD2BAC93035802"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_7C1C744ED59FEBA62D93B1D1B4A93FF0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_64620B4D54084669B540372A4082535D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_5B695C1F4FBEEE6013F8EB4720C15044"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_52EA8F432CC87578142A9088C4776CA4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_4D5B5B3E873C568A2E6832D15B509483"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_306CCA4807A5EF0FE24E4D25F17CEEEE"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_2A29D83B76A4737E5B5A1C69D018BDF4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_02BF6658565AB89A9E0E5EDAD398D4D4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_D38EA559F6BE4D89980464F2DCA34A8E"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_647C0AD6D184438F9314D2B6DD0FD9C1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_43143199410A44EBBF1E69F608989EB1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_2DECD1E3637A43FA94AF210B2D7AA487"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_334AD48D8BA4B19B5C1C937FE136E37C"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_4DC3744B0E677F5E6336527424A1C8B4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+    }
+    "Configurations"
+    {
+        "Debug"
+        {
+        "DisplayName" = "8:Debug"
+        "IsDebugOnly" = "11:TRUE"
+        "IsReleaseOnly" = "11:FALSE"
+        "OutputFilename" = "8:Debug\\Xsd2Code.Setup.msi"
+        "PackageFilesAs" = "3:2"
+        "PackageFileSize" = "3:-2147483648"
+        "CabType" = "3:1"
+        "Compression" = "3:2"
+        "SignOutput" = "11:FALSE"
+        "CertificateFile" = "8:"
+        "PrivateKeyFile" = "8:"
+        "TimeStampServer" = "8:"
+        "InstallerBootstrapper" = "3:2"
+            "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
+            {
+            "Enabled" = "11:TRUE"
+            "PromptEnabled" = "11:TRUE"
+            "PrerequisitesLocation" = "2:1"
+            "Url" = "8:"
+            "ComponentsUrl" = "8:"
+                "Items"
+                {
+                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5"
+                    {
+                    "Name" = "8:.NET Framework 3.5"
+                    "ProductCode" = "8:Microsoft.Net.Framework.3.5"
+                    }
+                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
+                    {
+                    "Name" = "8:Windows Installer 3.1"
+                    "ProductCode" = "8:Microsoft.Windows.Installer.3.1"
+                    }
+                }
+            }
+        }
+        "Release"
+        {
+        "DisplayName" = "8:Release"
+        "IsDebugOnly" = "11:FALSE"
+        "IsReleaseOnly" = "11:TRUE"
+        "OutputFilename" = "8:Release\\Xsd2Code.Setup.msi"
+        "PackageFilesAs" = "3:2"
+        "PackageFileSize" = "3:-2147483648"
+        "CabType" = "3:1"
+        "Compression" = "3:2"
+        "SignOutput" = "11:FALSE"
+        "CertificateFile" = "8:"
+        "PrivateKeyFile" = "8:"
+        "TimeStampServer" = "8:"
+        "InstallerBootstrapper" = "3:2"
+            "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
+            {
+            "Enabled" = "11:TRUE"
+            "PromptEnabled" = "11:TRUE"
+            "PrerequisitesLocation" = "2:1"
+            "Url" = "8:"
+            "ComponentsUrl" = "8:"
+                "Items"
+                {
+                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5"
+                    {
+                    "Name" = "8:.NET Framework 3.5"
+                    "ProductCode" = "8:Microsoft.Net.Framework.3.5"
+                    }
+                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
+                    {
+                    "Name" = "8:Windows Installer 3.1"
+                    "ProductCode" = "8:Microsoft.Windows.Installer.3.1"
+                    }
+                }
+            }
+        }
+    }
+    "Deployable"
+    {
+        "CustomAction"
+        {
+            "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_71AA1DBA5E0C42A6BBE98E31D897E490"
+            {
+            "Name" = "8:Xsd2Code.SetupLibrary.dll"
+            "Condition" = "8:"
+            "Object" = "8:_64620B4D54084669B540372A4082535D"
+            "FileType" = "3:1"
+            "InstallAction" = "3:1"
+            "Arguments" = "8:"
+            "EntryPoint" = "8:"
+            "Sequence" = "3:2"
+            "Identifier" = "8:_C5EAF019_147D_425B_B9C1_46B74CA85213"
+            "InstallerClass" = "11:TRUE"
+            "CustomActionData" = "8:"
+            }
+            "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_8FD1C23829F946E486528BD2B9E3BE19"
+            {
+            "Name" = "8:Primary output from Xsd2Code.Addin (Active)"
+            "Condition" = "8:"
+            "Object" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+            "FileType" = "3:1"
+            "InstallAction" = "3:3"
+            "Arguments" = "8:"
+            "EntryPoint" = "8:"
+            "Sequence" = "3:1"
+            "Identifier" = "8:_F5EF62E3_22D2_474A_AAF3_4E941D1698A6"
+            "InstallerClass" = "11:TRUE"
+            "CustomActionData" = "8:"
+            }
+            "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_CB8ACAECDF4642F3AD16335268618406"
+            {
+            "Name" = "8:Xsd2Code.SetupLibrary.dll"
+            "Condition" = "8:"
+            "Object" = "8:_64620B4D54084669B540372A4082535D"
+            "FileType" = "3:1"
+            "InstallAction" = "3:3"
+            "Arguments" = "8:"
+            "EntryPoint" = "8:"
+            "Sequence" = "3:2"
+            "Identifier" = "8:_691524C6_213C_4C5A_8D83_94C57B2CD310"
+            "InstallerClass" = "11:TRUE"
+            "CustomActionData" = "8:"
+            }
+            "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_E7B5DD4D471E438D808A1324AFE909A4"
+            {
+            "Name" = "8:Xsd2Code.SetupLibrary.dll"
+            "Condition" = "8:"
+            "Object" = "8:_64620B4D54084669B540372A4082535D"
+            "FileType" = "3:1"
+            "InstallAction" = "3:4"
+            "Arguments" = "8:"
+            "EntryPoint" = "8:"
+            "Sequence" = "3:2"
+            "Identifier" = "8:_A7824F36_5661_4B4F_9DED_BF660254F6E1"
+            "InstallerClass" = "11:TRUE"
+            "CustomActionData" = "8:"
+            }
+            "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_F6C17BB357A24659B628538A8A0C72A3"
+            {
+            "Name" = "8:Primary output from Xsd2Code.Addin (Active)"
+            "Condition" = "8:"
+            "Object" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+            "FileType" = "3:1"
+            "InstallAction" = "3:4"
+            "Arguments" = "8:"
+            "EntryPoint" = "8:"
+            "Sequence" = "3:1"
+            "Identifier" = "8:_43F03578_9F13_4766_A02B_B72032A2B2D9"
+            "InstallerClass" = "11:TRUE"
+            "CustomActionData" = "8:"
+            }
+            "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_F895B07145184FE38BC58FA3AAC75A35"
+            {
+            "Name" = "8:Primary output from Xsd2Code.Addin (Active)"
+            "Condition" = "8:"
+            "Object" = "8:_61D0BF83862A4181AEEADA21FB1C17A9"
+            "FileType" = "3:1"
+            "InstallAction" = "3:1"
+            "Arguments" = "8:"
+            "EntryPoint" = "8:"
+            "Sequence" = "3:1"
+            "Identifier" = "8:_DD3B4EAA_89C7_4304_9017_986ABD07AEDA"
+            "InstallerClass" = "11:TRUE"
+            "CustomActionData" = "8:"
+            }
+        }
+        "DefaultFeature"
+        {
+        "Name" = "8:DefaultFeature"
+        "Title" = "8:"
+        "Description" = "8:"
+        }
+        "ExternalPersistence"
+        {
+            "LaunchCondition"
+            {
+                "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_9F943E8FE3BE4779BF0C6245F794D4AA"
+                {
+                "Name" = "8:.NET Framework"
+                "Message" = "8:[VSDNETMSG]"
+                "Version" = "8:3.5.21022"
+                "AllowLaterVersions" = "11:FALSE"
+                "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617"
+                }
+            }
+        }
+        "File"
+        {
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_00B30F60FD4E4AD6852F9F4F00B2E3D5"
+            {
+            "SourcePath" = "8:..\\Xsd2Code.Console\\Resources\\License.txt"
+            "TargetName" = "8:License.txt"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:FALSE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_02BF6658565AB89A9E0E5EDAD398D4D4"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_02BF6658565AB89A9E0E5EDAD398D4D4"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.Shell.Interop.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.Shell.Interop.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_237AB4F7A0FE364F175B8F9540479067"
+            {
+            "SourcePath" = "8:dte90.olb"
+            "TargetName" = "8:dte90.olb"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2A29D83B76A4737E5B5A1C69D018BDF4"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_2A29D83B76A4737E5B5A1C69D018BDF4"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.TextManager.Interop.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.TextManager.Interop.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_306CCA4807A5EF0FE24E4D25F17CEEEE"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.VSHelp, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_306CCA4807A5EF0FE24E4D25F17CEEEE"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.VSHelp.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.VSHelp.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_334AD48D8BA4B19B5C1C937FE136E37C"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Xsd2Code.Library, Version=3.3.0.20794, Culture=neutral, PublicKeyToken=04032056d5f54f80, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_334AD48D8BA4B19B5C1C937FE136E37C"
+                    {
+                    "Name" = "8:Xsd2Code.Library.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Xsd2Code.Library.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:TRUE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4D5B5B3E873C568A2E6832D15B509483"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.CommandBars, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_4D5B5B3E873C568A2E6832D15B509483"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.CommandBars.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.CommandBars.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4DC3744B0E677F5E6336527424A1C8B4"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:CppCodeProvider, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_4DC3744B0E677F5E6336527424A1C8B4"
+                    {
+                    "Name" = "8:CppCodeProvider.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:CppCodeProvider.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_52BD26E9261145B2BFB7F6F40F1B4180"
+            {
+            "SourcePath" = "8:..\\Xsd2Code.Console\\Resources\\Readme.xps"
+            "TargetName" = "8:Readme.xps"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:FALSE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_52EA8F432CC87578142A9088C4776CA4"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_52EA8F432CC87578142A9088C4776CA4"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.Shell.Interop.8.0.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.Shell.Interop.8.0.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5B695C1F4FBEEE6013F8EB4720C15044"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Shell, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_5B695C1F4FBEEE6013F8EB4720C15044"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.Shell.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.Shell.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5EAADD34BDADD640ABC70C1A462807F8"
+            {
+            "SourcePath" = "8:dte80.olb"
+            "TargetName" = "8:dte80.olb"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_64620B4D54084669B540372A4082535D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Xsd2Code.SetupLibrary, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_64620B4D54084669B540372A4082535D"
+                    {
+                    "Name" = "8:Xsd2Code.SetupLibrary.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:..\\Xsd2Code.SetupLibrary\\bin\\Debug\\Xsd2Code.SetupLibrary.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_795F0A9412FC2A617F571C7AC8649416"
+            {
+            "SourcePath" = "8:ProjectAggregator.dll"
+            "TargetName" = "8:ProjectAggregator.dll"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7AF8E2F3BE8F4E97998788BF368F6289"
+            {
+            "SourcePath" = "8:banner.jpg"
+            "TargetName" = "8:banner.jpg"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:TRUE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7C1C744ED59FEBA62D93B1D1B4A93FF0"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.MSXML, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_7C1C744ED59FEBA62D93B1D1B4A93FF0"
+                    {
+                    "Name" = "8:Microsoft.MSXML.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.MSXML.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9882338D52204001EDCD2BAC93035802"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Designer.Interfaces, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_9882338D52204001EDCD2BAC93035802"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.Designer.Interfaces.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.Designer.Interfaces.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_995E43DF6829ACD0993E66BA62B59010"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.TextManager.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_995E43DF6829ACD0993E66BA62B59010"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.TextManager.Interop.8.0.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.TextManager.Interop.8.0.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9B04B0A1BA372F57AC19697A9635EBE0"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_9B04B0A1BA372F57AC19697A9635EBE0"
+                    {
+                    "Name" = "8:EnvDTE.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:EnvDTE.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9FE8EA0636EB116FD6658FBB09DFE95D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:EnvDTE90, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_9FE8EA0636EB116FD6658FBB09DFE95D"
+                    {
+                    "Name" = "8:EnvDTE90.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:EnvDTE90.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_AC3B9D31702F4D54AD686E11A7E4A3BC"
+            {
+            "SourcePath" = "8:..\\Xsd2Code.Console\\Resources\\Help.txt"
+            "TargetName" = "8:Help.txt"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:FALSE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_BA84E62317A341ECBFCB991B93803844"
+            {
+            "SourcePath" = "8:..\\Xsd2Code.Addin\\bin\\Xsd2Code.AddIn.AddIn"
+            "TargetName" = "8:Xsd2Code.AddIn.AddIn"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E79428D34B58A2B7744637C662EB602E"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_E79428D34B58A2B7744637C662EB602E"
+                    {
+                    "Name" = "8:EnvDTE80.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:EnvDTE80.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E8FE4AE9713C335CF29E5DA97AAFD1AA"
+            {
+            "SourcePath" = "8:dte80a.olb"
+            "TargetName" = "8:dte80a.olb"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E926FE2C55A07FE669A8CFB5F9BA7113"
+            {
+            "SourcePath" = "8:vsmso.olb"
+            "TargetName" = "8:vsmso.olb"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EDA0E61B645870C31CED1FA931E513AA"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.ProjectAggregator, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_EDA0E61B645870C31CED1FA931E513AA"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.ProjectAggregator.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.ProjectAggregator.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F31834B8EF1CFE95AC6D3AA700EDCE04"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_F31834B8EF1CFE95AC6D3AA700EDCE04"
+                    {
+                    "Name" = "8:Microsoft.VisualStudio.OLE.Interop.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.VisualStudio.OLE.Interop.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+        }
+        "FileType"
+        {
+        }
+        "Folder"
+        {
+            "{3C67513D-01DD-4637-8A68-80971EB9504F}:_006CBF0784B24831A183FEE0E7D94E51"
+            {
+            "DefaultLocation" = "8:[ProgramFilesFolder]\\Xsd2Code"
+            "Name" = "8:#1925"
+            "AlwaysCreate" = "11:TRUE"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Property" = "8:TARGETDIR"
+                "Folders"
+                {
+                }
+            }
+            "{1525181F-901A-416C-8A58-119130FE478E}:_298215CB1DE346A29CC67381E3B41F91"
+            {
+            "Name" = "8:#1919"
+            "AlwaysCreate" = "11:FALSE"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Property" = "8:ProgramMenuFolder"
+                "Folders"
+                {
+                }
+            }
+            "{1525181F-901A-416C-8A58-119130FE478E}:_602A951256B34D6BA73868E34499D3B6"
+            {
+            "Name" = "8:#1916"
+            "AlwaysCreate" = "11:FALSE"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Property" = "8:DesktopFolder"
+                "Folders"
+                {
+                }
+            }
+            "{C7E34266-2C30-44B9-A9A3-4E394ABD6E18}:_E8C374FC59DF4755876911DCF099C3C1"
+            {
+            "Name" = "8:#1927"
+            "AlwaysCreate" = "11:FALSE"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Property" = "8:GAC"
+                "Folders"
+                {
+                }
+            }
+        }
+        "LaunchCondition"
+        {
+        }
+        "Locator"
+        {
+        }
+        "MsiBootstrapper"
+        {
+        "LangId" = "3:1033"
+        "RequiresElevation" = "11:FALSE"
+        }
+        "Product"
+        {
+        "Name" = "8:Microsoft Visual Studio"
+        "ProductName" = "8:Xsd2Code 3.3 Beta"
+        "ProductCode" = "8:{6255C587-C9E6-411A-A43A-F6FD0932BAE0}"
+        "PackageCode" = "8:{FC072655-0006-4DCE-B181-E7C9EBB9A9B0}"
+        "UpgradeCode" = "8:{B1212179-F6B2-47F4-9666-9BECDD409C41}"
+        "RestartWWWService" = "11:FALSE"
+        "RemovePreviousVersions" = "11:TRUE"
+        "DetectNewerInstalledVersion" = "11:TRUE"
+        "InstallAllUsers" = "11:FALSE"
+        "ProductVersion" = "8:3.3"
+        "Manufacturer" = "8:Xsd2Code"
+        "ARPHELPTELEPHONE" = "8:"
+        "ARPHELPLINK" = "8:http://www.codeplex.com/Xsd2Code/Thread/List.aspx"
+        "Title" = "8:Xsd2Code 3.0 - DotNet Business Entity class generator from XML schema definition files"
+        "Subject" = "8:"
+        "ARPCONTACT" = "8:Pascal CABANEL"
+        "Keywords" = "8:Code generator, code generation, XSD, Xml Schema definition, C#, Visual Basic, Visual C++, , tool, utility, Business Entity, Business Object"
+        "ARPCOMMENTS" = "8:DotNet Business Entity class generator from XML schema definition files"
+        "ARPURLINFOABOUT" = "8:http://www.codeplex.com/Xsd2Code"
+        "ARPPRODUCTICON" = "8:"
+        "ARPIconIndex" = "3:0"
+        "SearchPath" = "8:"
+        "UseSystemSearchPath" = "11:TRUE"
+        "TargetPlatform" = "3:0"
+        "PreBuildEvent" = "8:"
+        "PostBuildEvent" = "8:"
+        "RunPostBuildEvent" = "3:0"
+        }
+        "Registry"
+        {
+            "HKLM"
+            {
+                "Keys"
+                {
+                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4C43DEA537E0421F9194ABD2083EE461"
+                    {
+                    "Name" = "8:Software"
+                    "Condition" = "8:"
+                    "AlwaysCreate" = "11:FALSE"
+                    "DeleteAtUninstall" = "11:FALSE"
+                    "Transitive" = "11:FALSE"
+                        "Keys"
+                        {
+                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_07A27C8616504DE5B5B3FAB1F156829C"
+                            {
+                            "Name" = "8:Microsoft"
+                            "Condition" = "8:"
+                            "AlwaysCreate" = "11:FALSE"
+                            "DeleteAtUninstall" = "11:FALSE"
+                            "Transitive" = "11:FALSE"
+                                "Keys"
+                                {
+                                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_99E3B5F76B764F229A470972C0463664"
+                                    {
+                                    "Name" = "8:VisualStudio"
+                                    "Condition" = "8:"
+                                    "AlwaysCreate" = "11:FALSE"
+                                    "DeleteAtUninstall" = "11:FALSE"
+                                    "Transitive" = "11:FALSE"
+                                        "Keys"
+                                        {
+                                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_3561D7A7129943BE8A78660228030B0D"
+                                            {
+                                            "Name" = "8:9.0"
+                                            "Condition" = "8:"
+                                            "AlwaysCreate" = "11:FALSE"
+                                            "DeleteAtUninstall" = "11:FALSE"
+                                            "Transitive" = "11:FALSE"
+                                                "Keys"
+                                                {
+                                                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_5D12EB9142B044A898BF6E60CBF71EEE"
+                                                    {
+                                                    "Name" = "8:CLSID"
+                                                    "Condition" = "8:"
+                                                    "AlwaysCreate" = "11:FALSE"
+                                                    "DeleteAtUninstall" = "11:FALSE"
+                                                    "Transitive" = "11:FALSE"
+                                                        "Keys"
+                                                        {
+                                                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_FB76CF1BAAE14AFC85B3EA82766B9A2F"
+                                                            {
+                                                            "Name" = "8:{9E6FCB59-E3EF-4bbe-966C-30AC92A44DF6}"
+                                                            "Condition" = "8:"
+                                                            "AlwaysCreate" = "11:FALSE"
+                                                            "DeleteAtUninstall" = "11:FALSE"
+                                                            "Transitive" = "11:FALSE"
+                                                                "Keys"
+                                                                {
+                                                                }
+                                                                "Values"
+                                                                {
+                                                                    "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_6408A3EF6E8E407A82EA7F90261343FF"
+                                                                    {
+                                                                    "Name" = "8:InprocServer32"
+                                                                    "Condition" = "8:"
+                                                                    "Transitive" = "11:FALSE"
+                                                                    "ValueTypes" = "3:1"
+                                                                    "Value" = "8:[SystemFolder]mscoree.dll"
+                                                                    }
+                                                                    "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_6C41708D02264343A928C5323534153A"
+                                                                    {
+                                                                    "Name" = "8:Assembly"
+                                                                    "Condition" = "8:"
+                                                                    "Transitive" = "11:FALSE"
+                                                                    "ValueTypes" = "3:1"
+                                                                    "Value" = "8:Xsd2Code.CustomTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=04032056d5f54f80"
+                                                                    }
+                                                                    "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_BDC5D6B9824044B88C3269EA0316B7FD"
+                                                                    {
+                                                                    "Name" = "8:ThreadingModel"
+                                                                    "Condition" = "8:"
+                                                                    "Transitive" = "11:FALSE"
+                                                                    "ValueTypes" = "3:1"
+                                                                    "Value" = "8:Both"
+                                                                    }
+                                                                    "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_C829B6994C84412D9AE0BCE44B665185"
+                                                                    {
+                                                                    "Name" = "8:Class"
+                                                                    "Condition" = "8:"
+                                                                    "Transitive" = "11:FALSE"
+                                                                    "ValueTypes" = "3:1"
+                                                                    "Value" = "8:Xsd2Code.CustomTool.Xsd2CodeCustomTool"
+                                                                    }
+                                                                    "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_F799B960EF264E92BA4E7500AFA4ABD0"
+                                                                    {
+                                                                    "Name" = "8:(Default)"
+                                                                    "Condition" = "8:"
+                                                                    "Transitive" = "11:FALSE"
+                                                                    "ValueTypes" = "3:1"
+                                                                    "Value" = "8:Xsd2CodeCustomTool"
+                                                                    }
+                                                                }
+                                                            }
+                                                        }
+                                                        "Values"
+                                                        {
+                                                        }
+                                                    }
+                                                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_69436253B20D4E9BBB6E90DD1BCBDEA2"
+                                                    {
+                                                    "Name" = "8:Generators"
+                                                    "Condition" = "8:"
+                                                    "AlwaysCreate" = "11:FALSE"
+                                                    "DeleteAtUninstall" = "11:FALSE"
+                                                    "Transitive" = "11:FALSE"
+                                                        "Keys"
+                                                        {
+                                                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_C9D991CBCC87447686CAC7048EA2FF86"
+                                                            {
+                                                            "Name" = "8:{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}"
+                                                            "Condition" = "8:"
+                                                            "AlwaysCreate" = "11:FALSE"
+                                                            "DeleteAtUninstall" = "11:FALSE"
+                                                            "Transitive" = "11:FALSE"
+                                                                "Keys"
+                                                                {
+                                                                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_834DC96942DD444EB24AD24CA1D91372"
+                                                                    {
+                                                                    "Name" = "8:Xsd2CodeCustomTool"
+                                                                    "Condition" = "8:"
+                                                                    "AlwaysCreate" = "11:FALSE"
+                                                                    "DeleteAtUninstall" = "11:FALSE"
+                                                                    "Transitive" = "11:FALSE"
+                                                                        "Keys"
+                                                                        {
+                                                                        }
+                                                                        "Values"
+                                                                        {
+                                                                            "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_A3698AA7BF3D4EEFBE8BB781C020D4D7"
+                                                                            {
+                                                                            "Name" = "8:CLSID"
+                                                                            "Condition" = "8:"
+                                                                            "Transitive" = "11:FALSE"
+                                                                            "ValueTypes" = "3:1"
+                                                                            "Value" = "8:{9E6FCB59-E3EF-4bbe-966C-30AC92A44DF6}"
+                                                                            }
+                                                                            "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_C02DB805FE514B58BDE7C976117B9874"
+                                                                            {
+                                                                            "Name" = "8:GeneratesDesignTimeSource"
+                                                                            "Condition" = "8:"
+                                                                            "Transitive" = "11:FALSE"
+                                                                            "ValueTypes" = "3:3"
+                                                                            "Value" = "3:1"
+                                                                            }
+                                                                            "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_FEAF6601C5F54A1791DAE1F8C3657A68"
+                                                                            {
+                                                                            "Name" = "8:(Default)"
+                                                                            "Condition" = "8:"
+                                                                            "Transitive" = "11:FALSE"
+                                                                            "ValueTypes" = "3:1"
+                                                                            "Value" = "8:Xsd2CodeCustomTool"
+                                                                            }
+                                                                        }
+                                                                    }
+                                                                }
+                                                                "Values"
+                                                                {
+                                                                }
+                                                            }
+                                                        }
+                                                        "Values"
+                                                        {
+                                                        }
+                                                    }
+                                                }
+                                                "Values"
+                                                {
+                                                }
+                                            }
+                                        }
+                                        "Values"
+                                        {
+                                        }
+                                    }
+                                }
+                                "Values"
+                                {
+                                }
+                            }
+                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_44FC187580C74CCE9ABF5497B62D0848"
+                            {
+                            "Name" = "8:[Manufacturer]"
+                            "Condition" = "8:"
+                            "AlwaysCreate" = "11:FALSE"
+                            "DeleteAtUninstall" = "11:FALSE"
+                            "Transitive" = "11:FALSE"
+                                "Keys"
+                                {
+                                }
+                                "Values"
+                                {
+                                }
+                            }
+                        }
+                        "Values"
+                        {
+                        }
+                    }
+                }
+            }
+            "HKCU"
+            {
+                "Keys"
+                {
+                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B0F61AEB06FA4084A05338EA39AA97C1"
+                    {
+                    "Name" = "8:Software"
+                    "Condition" = "8:"
+                    "AlwaysCreate" = "11:FALSE"
+                    "DeleteAtUninstall" = "11:FALSE"
+                    "Transitive" = "11:FALSE"
+                        "Keys"
+                        {
+                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_EFE60926B80C410BA1E6185C57748F60"
+                            {
+                            "Name" = "8:[Manufacturer]"
+                            "Condition" = "8:"
+                            "AlwaysCreate" = "11:FALSE"
+                            "DeleteAtUninstall" = "11:FALSE"
+                            "Transitive" = "11:FALSE"
+                                "Keys"
+                                {
+                                }
+                                "Values"
+                                {
+                                }
+                            }
+                        }
+                        "Values"
+                        {
+                        }
+                    }
+                }
+            }
+            "HKCR"
+            {
+                "Keys"
+                {
+                }
+            }
+            "HKU"
+            {
+                "Keys"
+                {
+                }
+            }
+            "HKPU"
+            {
+                "Keys"
+                {
+                }
+            }
+        }
+        "Sequences"
+        {
+        }
+        "Shortcut"
+        {
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_BDE39301189D4EDF88D1DEE47A45CDB1"
+            {
+            "Name" = "8:Xsd2Code"
+            "Arguments" = "8:"
+            "Description" = "8:"
+            "ShowCmd" = "3:1"
+            "IconIndex" = "3:0"
+            "Transitive" = "11:FALSE"
+            "Target" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Folder" = "8:_298215CB1DE346A29CC67381E3B41F91"
+            "WorkingFolder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Icon" = "8:"
+            "Feature" = "8:"
+            }
+        }
+        "UserInterface"
+        {
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_0669AE142E0A4ADCA0F86649A4CB585D"
+            {
+            "Name" = "8:#1900"
+            "Sequence" = "3:2"
+            "Attributes" = "3:1"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_070142C6DFA64ED6BD5A5207DDB7B0F2"
+                    {
+                    "Sequence" = "3:300"
+                    "DisplayName" = "8:Confirm Installation"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_1F20C186206F4F74B3863EBAA873FC8F"
+                    {
+                    "Sequence" = "3:200"
+                    "DisplayName" = "8:Installation Folder"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_66A2FD91A0A24D089B52A6FBE786E6D4"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:Welcome"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "CopyrightWarning"
+                            {
+                            "Name" = "8:CopyrightWarning"
+                            "DisplayName" = "8:#1002"
+                            "Description" = "8:#1102"
+                            "Type" = "3:3"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1202"
+                            "DefaultValue" = "8:#1202"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "Welcome"
+                            {
+                            "Name" = "8:Welcome"
+                            "DisplayName" = "8:#1003"
+                            "Description" = "8:#1103"
+                            "Type" = "3:3"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1203"
+                            "DefaultValue" = "8:#1203"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_0CC5C138745D4DDEABEC3C12AFD622DA"
+            {
+            "Name" = "8:#1902"
+            "Sequence" = "3:1"
+            "Attributes" = "3:3"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4B9D76DF5A8841AE8B9DF150B1CD34B6"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:Finished"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:2"
+                            "Value" = "8:_7AF8E2F3BE8F4E97998788BF368F6289"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "UpdateText"
+                            {
+                            "Name" = "8:UpdateText"
+                            "DisplayName" = "8:#1058"
+                            "Description" = "8:#1158"
+                            "Type" = "3:15"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1258"
+                            "DefaultValue" = "8:#1258"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_4FC2AE368E4E426DB4924E4498BC975A"
+            {
+            "Name" = "8:#1900"
+            "Sequence" = "3:1"
+            "Attributes" = "3:1"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8ACF3E0DD5CB4F959D6B4E219D079B69"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:Welcome"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:2"
+                            "Value" = "8:_7AF8E2F3BE8F4E97998788BF368F6289"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "CopyrightWarning"
+                            {
+                            "Name" = "8:CopyrightWarning"
+                            "DisplayName" = "8:#1002"
+                            "Description" = "8:#1102"
+                            "Type" = "3:3"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1202"
+                            "DefaultValue" = "8:#1202"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "Welcome"
+                            {
+                            "Name" = "8:Welcome"
+                            "DisplayName" = "8:#1003"
+                            "Description" = "8:#1103"
+                            "Type" = "3:3"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1203"
+                            "DefaultValue" = "8:#1203"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9C6986B4147C4D3C92BA4032584436EA"
+                    {
+                    "Sequence" = "3:300"
+                    "DisplayName" = "8:Installation Folder"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:2"
+                            "Value" = "8:_7AF8E2F3BE8F4E97998788BF368F6289"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "InstallAllUsersVisible"
+                            {
+                            "Name" = "8:InstallAllUsersVisible"
+                            "DisplayName" = "8:#1059"
+                            "Description" = "8:#1159"
+                            "Type" = "3:5"
+                            "ContextData" = "8:1;True=1;False=0"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:0"
+                            "Value" = "3:1"
+                            "DefaultValue" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FBD7FBFA6CF740D8BD7234C2251ED1DE"
+                    {
+                    "Sequence" = "3:310"
+                    "DisplayName" = "8:Confirm Installation"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:2"
+                            "Value" = "8:_7AF8E2F3BE8F4E97998788BF368F6289"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_6B66D6E3D8F84BD8A398AE8D2D37969A"
+            {
+            "Name" = "8:#1902"
+            "Sequence" = "3:2"
+            "Attributes" = "3:3"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F2DA4FEA2E2C4B778DB272B73D3F8E9F"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:Finished"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_70C02CBCBD0F425A98D35FF6680A7297"
+            {
+            "UseDynamicProperties" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
+            }
+            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_7EF7C04FD1F5409EB44C023F073D6EC9"
+            {
+            "UseDynamicProperties" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_E4CEFC2851A44AE097292E3D1A92B154"
+            {
+            "Name" = "8:#1901"
+            "Sequence" = "3:1"
+            "Attributes" = "3:2"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2BE9DA8604A44AE0B650A33BF81A29F8"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:Progress"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:2"
+                            "Value" = "8:_7AF8E2F3BE8F4E97998788BF368F6289"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "ShowProgress"
+                            {
+                            "Name" = "8:ShowProgress"
+                            "DisplayName" = "8:#1009"
+                            "Description" = "8:#1109"
+                            "Type" = "3:5"
+                            "ContextData" = "8:1;True=1;False=0"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:0"
+                            "Value" = "3:1"
+                            "DefaultValue" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_FE2F295350214C7AA0E49C3FB9441DDD"
+            {
+            "Name" = "8:#1901"
+            "Sequence" = "3:2"
+            "Attributes" = "3:2"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CBCF6E3C9E1E47D8B5D53AE52B30EAC8"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:Progress"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "ShowProgress"
+                            {
+                            "Name" = "8:ShowProgress"
+                            "DisplayName" = "8:#1009"
+                            "Description" = "8:#1109"
+                            "Type" = "3:5"
+                            "ContextData" = "8:1;True=1;False=0"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:0"
+                            "Value" = "3:1"
+                            "DefaultValue" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        "MergeModule"
+        {
+        }
+        "ProjectOutput"
+        {
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2DECD1E3637A43FA94AF210B2D7AA487"
+            {
+            "SourcePath" = "8:..\\Xsd2Code.Console\\obj\\Release\\Xsd2Code.exe"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectGuid" = "8:{020AC7D1-E8FD-47CA-B162-9738FA4E2348}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_43143199410A44EBBF1E69F608989EB1"
+            {
+            "SourcePath" = "8:..\\Xsd2Code.CustomTool\\obj\\Release\\Xsd2Code.CustomTool.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectGuid" = "8:{7CD3B99F-0999-4054-80ED-B0977D723AFD}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_61D0BF83862A4181AEEADA21FB1C17A9"
+            {
+            "SourcePath" = "8:..\\Xsd2Code.Addin\\obj\\Release\\Xsd2Code.Addin.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectGuid" = "8:{45D359A7-1E3E-4988-8774-DB96AF49C59A}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_647C0AD6D184438F9314D2B6DD0FD9C1"
+            {
+            "SourcePath" = "8:..\\Xsd2Code.CustomTool\\obj\\Release\\Xsd2Code.CustomTool.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_006CBF0784B24831A183FEE0E7D94E51"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectGuid" = "8:{7CD3B99F-0999-4054-80ED-B0977D723AFD}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D38EA559F6BE4D89980464F2DCA34A8E"
+            {
+            "SourcePath" = "8:..\\Xsd2Code.Library\\obj\\Release\\Xsd2Code.Library.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_E8C374FC59DF4755876911DCF099C3C1"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectGuid" = "8:{1B59FB12-699C-4927-ACA3-D7F0E0F79100}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
+        }
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/Xsd2Code.Setup.vdproj.vspscc
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/Xsd2Code.Setup.vdproj.vspscc	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/Xsd2Code.Setup.vdproj.vspscc	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/banner.jpg
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.Setup/banner.jpg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Properties/AssemblyInfo.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Properties/AssemblyInfo.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Properties/AssemblyInfo.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Xsd2Code.SetupLibrary")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Xsd2Code.SetupLibrary")]
+[assembly: AssemblyCopyright("Copyright ©  2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("56931a29-273e-4ba3-a9d3-4fddadcc8dae")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2Code.SetupLibrary.csproj
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2Code.SetupLibrary.csproj	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2Code.SetupLibrary.csproj	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{FA90BBEB-8D22-4568-8742-718D7FA355AE}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Xsd2Code.SetupLibrary</RootNamespace>
+    <AssemblyName>Xsd2Code.SetupLibrary</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Configuration.Install" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Management" />
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Xsd2CodeInstaller.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="Xsd2CodeInstaller.Designer.cs">
+      <DependentUpon>Xsd2CodeInstaller.cs</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2Code.SetupLibrary.csproj.vspscc
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2Code.SetupLibrary.csproj.vspscc	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2Code.SetupLibrary.csproj.vspscc	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2CodeInstaller.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2CodeInstaller.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2CodeInstaller.Designer.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,36 @@
+namespace Xsd2Code.SetupLibrary
+{
+    partial class Xsd2CodeInstaller
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new System.ComponentModel.Container();
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2CodeInstaller.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2CodeInstaller.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/Xsd2CodeInstaller.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,215 @@
+using System;
+using System.Collections;
+using System.ComponentModel;
+using System.Configuration.Install;
+using System.Diagnostics;
+using System.IO;
+using System.Reflection;
+using System.Xml;
+using Microsoft.Win32;
+
+namespace Xsd2Code.SetupLibrary
+{
+    /// <summary>
+    /// Custom action for add-in deployment.
+    /// </summary>
+    [RunInstaller(true)]
+    public partial class Xsd2CodeInstaller : Installer
+    {
+        /// <summary>
+        /// Namespace used in the .addin configuration file.
+        /// </summary>         
+        private const string ExtNameSpace = "http://schemas.microsoft.com/AutomationExtensibility";
+
+        /// <summary>
+        /// Addin control file name  
+        /// </summary>
+        private const string addinControlFileName = "Xsd2Code.Addin.Addin";
+
+        /// <summary>
+        /// Addin assembly file name  
+        /// </summary>
+        private const string addinAssemblyFileName = "Xsd2Code.Addin.dll";
+
+        /// <summary>
+        /// Saved state key  
+        /// </summary>
+        private const string savedStateVs2008Key = "vs2008AddinPath";
+
+        /// <summary>
+        /// Saved state key  
+        /// </summary>
+        private const string savedStateVs2010Key = "vs2010AddinPath";
+
+
+        /// <summary>
+        /// Vs2008 registry key
+        /// </summary>
+        private const string vs2008Key = @"SOFTWARE\Microsoft\VisualStudio\9.0";
+
+        /// <summary>
+        /// Vs2010 registry key
+        /// </summary>
+        private const string vs2010Key = @"SOFTWARE\Microsoft\VisualStudio\10.0";
+
+
+        /// <summary>
+        /// Constructor. Initializes components.
+        /// </summary>
+        public Xsd2CodeInstaller()
+        {
+            this.InitializeComponent();
+        }
+
+
+        /// <summary>
+        /// Overrides Installer.Install,
+        /// which will be executed during install process.
+        /// </summary>
+        /// <param name="savedState">The saved state.</param>
+        public override void Install(IDictionary savedState)
+        {
+            base.Install(savedState);
+
+            // Setup .addin path and assembly path
+            string vs2008AddinTarget = Path.Combine(
+                Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
+                @"Visual Studio 2008\Addins");
+
+            string vs2010AddinTarget = Path.Combine(
+                Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
+                @"Visual Studio 2010\Addins");
+
+            string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
+            try
+            {
+                string sourceFile = Path.Combine(assemblyPath, addinControlFileName);
+
+                var addinXml = new XmlDocument();
+                addinXml.Load(sourceFile);
+
+                var nsmgr = new XmlNamespaceManager(addinXml.NameTable);
+                nsmgr.AddNamespace("def", ExtNameSpace);
+
+                // Update Addin/Assembly node
+                SetNodeValue(addinXml, nsmgr,
+                             "/def:Extensibility/def:Addin/def:Assembly",
+                             Path.Combine(assemblyPath, addinAssemblyFileName));
+
+                // Update ToolsOptionsPage/Assembly node
+                SetNodeValue(addinXml, nsmgr,
+                             "/def:Extensibility/def:ToolsOptionsPage/def:Category/def:SubCategory/def:Assembly",
+                             Path.Combine(assemblyPath, addinAssemblyFileName));
+
+                addinXml.Save(sourceFile);
+
+                if (!string.IsNullOrEmpty(GetRegisteryValue(Registry.LocalMachine, vs2008Key, "InstallDir")))
+                {
+                    var targetFolder = new DirectoryInfo(vs2008AddinTarget);
+                    if (!targetFolder.Exists) targetFolder.Create();
+
+                    string targetFile = Path.Combine(vs2008AddinTarget, addinControlFileName);
+                    File.Copy(sourceFile, targetFile, true);
+                    savedState.Add(savedStateVs2008Key, targetFile);
+                }
+
+                if (!string.IsNullOrEmpty(GetRegisteryValue(Registry.LocalMachine, vs2010Key, "InstallDir")))
+                {
+                    var targetFolder = new DirectoryInfo(vs2010AddinTarget);
+                    if (!targetFolder.Exists) targetFolder.Create();
+
+                    string targetFile = Path.Combine(vs2010AddinTarget, addinControlFileName);
+                    File.Copy(sourceFile, targetFile, true);
+                    savedState.Add(savedStateVs2010Key, targetFile);
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.WriteLine(ex.ToString());
+            }
+        }
+
+        private static void SetNodeValue(XmlNode sourceNode, XmlNamespaceManager nsmgr, string xpath, string value)
+        {
+            var node = sourceNode.SelectSingleNode(xpath, nsmgr);
+            if (node != null) node.InnerText = value;
+        }
+
+        /// <summary>
+        /// Overrides Installer.Rollback, which will be executed during rollback process.
+        /// </summary>
+        /// <param name="savedState">The saved state.</param>
+        public override void Rollback(IDictionary savedState)
+        {
+            ////Debugger.Break();
+
+            base.Rollback(savedState);
+
+            try
+            {
+                var fileName = (string)savedState[savedStateVs2008Key];
+                if (!string.IsNullOrEmpty(fileName))
+                {
+                    if (File.Exists(fileName)) File.Delete(fileName);
+                }
+
+                fileName = (string)savedState[savedStateVs2010Key];
+                if (!string.IsNullOrEmpty(fileName))
+                {
+                    if (File.Exists(fileName)) File.Delete(fileName);
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.WriteLine(ex.ToString());
+            }
+        }
+
+        /// <summary>
+        /// Overrides Installer.Uninstall, which will be executed during uninstall process.
+        /// </summary>
+        /// <param name="savedState">The saved state.</param>
+        public override void Uninstall(IDictionary savedState)
+        {
+             base.Uninstall(savedState);
+
+            try
+            {
+                var fileName = (string)savedState[savedStateVs2008Key];
+                if (!string.IsNullOrEmpty(fileName))
+                {
+                    if (File.Exists(fileName)) File.Delete(fileName);
+                }
+
+                fileName = (string)savedState[savedStateVs2010Key];
+                if (!string.IsNullOrEmpty(fileName))
+                {
+                    if (File.Exists(fileName)) File.Delete(fileName);
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.WriteLine(ex.ToString());
+            }
+        }
+
+        /// <summary>
+        /// Gets the registery value.
+        /// </summary>
+        /// <param name="hklm">The HKLM.</param>
+        /// <param name="rootKey">The root key.</param>
+        /// <param name="keyName">Name of the key.</param>
+        /// <returns></returns>
+        public static string GetRegisteryValue(RegistryKey hklm, string rootKey, string keyName)
+        {
+            string result = string.Empty;
+            hklm = hklm.OpenSubKey(rootKey, false);
+            var val = hklm.GetValue(keyName);
+            if (val != null)
+            {
+                return val.ToString();
+            }
+            return string.Empty;
+        }
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/bin/Debug/Xsd2Code.SetupLibrary.dll
===================================================================
(Binary files differ)


Property changes on: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.SetupLibrary/bin/Debug/Xsd2Code.SetupLibrary.dll
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/App.config
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/App.config	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/App.config	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+</configuration>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/AssemblyInfo.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/AssemblyInfo.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/AssemblyInfo.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("XsdGenerator.TestUnit")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("XsdGenerator.TestUnit")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM componenets.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("be99e061-8c6b-4fc5-a937-4dbf4f42aa9f")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/Resources.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/Resources.Designer.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,219 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.4927
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Xsd2Code.TestUnit.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Xsd2Code.TestUnit.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+        ///&lt;!--Created with Liquid XML Studio (http://www.liquid-technologies.com)--&gt;
+        ///&lt;xs:schema attributeFormDefault=&quot;unqualified&quot; elementFormDefault=&quot;qualified&quot; id=&quot;Actor&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
+        ///  &lt;xs:element name=&quot;Actor&quot;&gt;
+        ///    &lt;xs:annotation&gt;
+        ///      &lt;xs:documentation&gt;
+        ///        Actor pépé class include firstname and lastname (ûàéçè).
+        ///      &lt;/xs:documentation&gt;
+        ///    &lt;/xs:annotation&gt;
+        ///    &lt;xs:complexType&gt;
+        ///      &lt;xs:sequence&gt;
+        ///        &lt;xs:element name=&quot;f [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string Actor {
+            get {
+                return ResourceManager.GetString("Actor", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+        ///&lt;!--Created with Liquid XML Studio (http://www.liquid-technologies.com)--&gt;
+        ///&lt;xs:schema xmlns:mstns=&quot;http://tempuri.org/ArrayOfArray.xsd&quot; elementFormDefault=&quot;qualified&quot; targetNamespace=&quot;http://tempuri.org/ArrayOfArray.xsd&quot; id=&quot;ArrayOfArray&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
+        ///  &lt;xs:element name=&quot;root&quot;&gt;
+        ///    &lt;xs:complexType&gt;
+        ///      &lt;xs:sequence minOccurs=&quot;0&quot;&gt;
+        ///        &lt;xs:element minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot; name=&quot;Element&quot; type=&quot;mstns:element&quot; /&gt;
+        ///     [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string ArrayOfArray {
+            get {
+                return ResourceManager.GetString("ArrayOfArray", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
+        ///&lt;xs:schema targetNamespace=&quot;http://tempuri.org/EtudeData.xsd&quot; xmlns:NameSpace1=&quot;http://www.axilog.fr&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:mstns=&quot;http://tempuri.org/EtudeData.xsd&quot; xmlns=&quot;http://tempuri.org/EtudeData.xsd&quot; elementFormDefault=&quot;qualified&quot; id=&quot;EtudeData&quot;&gt;
+        ///  &lt;xs:element name=&quot;ROOT&quot;&gt;
+        ///    &lt;xs:annotation&gt;
+        ///      &lt;xs:documentation&gt;Element racine de l&apos;etude&lt;/xs:documentation&gt;
+        ///    &lt;/xs:annotation&gt;
+        ///    &lt;xs:complexType&gt;
+        ///      &lt;xs:sequence&gt;
+        ///       [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string Circular {
+            get {
+                return ResourceManager.GetString("Circular", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+        ///&lt;!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)--&gt;
+        ///&lt;xs:schema xmlns:mstns=&quot;http://tempuri.org/CircularClassReference.xsd&quot; elementFormDefault=&quot;qualified&quot; targetNamespace=&quot;http://tempuri.org/CircularClassReference.xsd&quot; id=&quot;CircularClassReference&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
+        ///  &lt;xs:complexType name=&quot;Circular&quot;&gt;
+        ///    &lt;xs:sequence&gt;
+        ///      &lt;xs:element name=&quot;circular&quot; type=&quot;mstns:Circular&quot; /&gt;
+        ///      &lt;xs:eleme [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string CircularClassReference {
+            get {
+                return ResourceManager.GetString("CircularClassReference", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+        ///&lt;!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)--&gt;
+        ///&lt;xs:schema attributeFormDefault=&quot;unqualified&quot; elementFormDefault=&quot;qualified&quot; id=&quot;Dvd&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
+        ///  &lt;xs:include schemaLocation=&quot;Actor.xsd&quot; /&gt;
+        ///  &lt;xs:element name=&quot;DvdCollection&quot;&gt;
+        ///    &lt;xs:complexType&gt;
+        ///      &lt;xs:sequence maxOccurs=&quot;unbounded&quot;&gt;
+        ///        &lt;xs:element name=&quot;Dvds&quot; type=&quot;dvd&quot; /&gt;
+        ///      &lt;/xs:sequence&gt;
+        ///    &lt;/xs:complexType&gt;
+        /// [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string dvd {
+            get {
+                return ResourceManager.GetString("dvd", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+        ///&lt;!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)--&gt;
+        ///&lt;xs:schema xmlns:mstns=&quot;http://tempuri.org/Gender.xsd&quot; elementFormDefault=&quot;qualified&quot; targetNamespace=&quot;http://tempuri.org/Gender.xsd&quot; id=&quot;Gender&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
+        ///  &lt;xs:element name=&quot;Root&quot;&gt;
+        ///    &lt;xs:complexType&gt;
+        ///      &lt;xs:sequence&gt;
+        ///        &lt;xs:element name=&quot;GenderElement&quot; type=&quot;mstns:ksgender&quot; /&gt;
+        ///      &lt;/xs:sequence&gt;
+        ///      &lt;xs:attribut [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string Gender {
+            get {
+                return ResourceManager.GetString("Gender", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+        ///&lt;xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot; elementFormDefault=&quot;qualified&quot; attributeFormDefault=&quot;unqualified&quot;&gt;
+        ///  &lt;xs:element name=&quot;Root&quot;&gt;
+        ///    &lt;xs:annotation&gt;
+        ///      &lt;xs:documentation&gt;Doc of root root element&lt;/xs:documentation&gt;
+        ///    &lt;/xs:annotation&gt;
+        ///    &lt;xs:complexType&gt;
+        ///      &lt;xs:sequence&gt;
+        ///        &lt;xs:element name=&quot;SubElement&quot; maxOccurs=&quot;unbounded&quot;&gt;
+        ///          &lt;xs:annotation&gt;
+        ///            &lt;xs:documentation&gt;Doc of unbounded SubElement&lt;/xs:documentation&gt;
+        /// [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string Hierarchical {
+            get {
+                return ResourceManager.GetString("Hierarchical", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+        ///&lt;!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)--&gt;
+        ///&lt;xs:schema xmlns:mstns=&quot;http://tempuri.org/XMLSchema1.xsd&quot; elementFormDefault=&quot;qualified&quot; targetNamespace=&quot;http://tempuri.org/XMLSchema1.xsd&quot; id=&quot;XMLSchema1&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
+        ///  &lt;xs:element name=&quot;MyWrapper&quot;&gt;
+        ///    &lt;xs:complexType&gt;
+        ///      &lt;xs:sequence&gt;
+        ///        &lt;xs:element name=&quot;MyElement&quot; type=&quot;mstns:MyType&quot; /&gt;
+        ///      &lt;/xs:sequence&gt;
+        ///    &lt;/x [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string StackOverFlow {
+            get {
+                return ResourceManager.GetString("StackOverFlow", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+        ///&lt;!--Created with Liquid XML Studio (http://www.liquid-technologies.com)--&gt;
+        ///&lt;xs:schema xmlns=&quot;http://www.portalfiscal.inf.br/nfe&quot; xmlns:ds=&quot;http://www.w3.org/2000/09/xmldsig#&quot; attributeFormDefault=&quot;unqualified&quot; elementFormDefault=&quot;qualified&quot; targetNamespace=&quot;http://www.portalfiscal.inf.br/nfe&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
+        ///  &lt;xs:element name=&quot;StaffMember&quot; type=&quot;TActor&quot;&gt;
+        ///    &lt;xs:annotation&gt;
+        ///      &lt;xs:documentation&gt;A staff member&lt;/xs:documentation&gt;
+        ///  [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string TestAnnotations {
+            get {
+                return ResourceManager.GetString("TestAnnotations", resourceCulture);
+            }
+        }
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/Resources.resx
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/Resources.resx	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Properties/Resources.resx	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="Circular" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\xsd\circular.xsd;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
+  <data name="Hierarchical" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\xsd\hierarchical.xsd;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1</value>
+  </data>
+  <data name="StackOverFlow" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\xsd\stackoverflow.xsd;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
+  <data name="Gender" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\xsd\gender.xsd;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
+  <data name="Actor" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\xsd\actor.xsd;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
+  <data name="ArrayOfArray" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\xsd\arrayofarray.xsd;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
+  <data name="CircularClassReference" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\xsd\circularclassreference.xsd;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
+  <data name="TestAnnotations" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\xsd\testannotations.xsd;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
+  <data name="dvd" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\xsd\dvd.xsd;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
+  </data>
+</root>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/UnitTest.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/UnitTest.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/UnitTest.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,738 @@
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Text;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Xsd2Code.Library;
+using Xsd2Code.Library.Helpers;
+using Xsd2Code.TestUnit.Properties;
+
+namespace Xsd2Code.TestUnit
+{
+    /// <summary>
+    /// Xsd2Code unit tests
+    /// </summary>
+    /// <remarks>
+    /// Revision history:
+    /// 
+    ///     Modified 2009-02-25 by Ruslan Urban 
+    ///     Performed code review
+    ///     Changed output folder to the TestResults folder to preserve files in the testing history
+    ///     TODO: Add tests that compile generated code
+    /// 
+    /// </remarks>
+    [TestClass]
+    public class UnitTest
+    {
+        private readonly object testLock = new object();
+        static readonly object fileLock = new object();
+
+        /// <summary>
+        /// Output folder: TestResults folder relative to the solution root folder
+        /// </summary>
+        private static string OutputFolder
+        {
+            get { return @"c:\temp\"; } // Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\"; }
+        }
+
+        /// <summary>
+        /// Code generation namespace  
+        /// </summary>
+        private const string CodeGenerationNamespace = "Xsd2Code.TestUnit";
+
+        #region Additional test attributes
+
+        //
+        // You can use the following additional attributes as you write your tests:
+        //
+        // Use ClassInitialize to run code before running the first test in the class
+        // [ClassInitialize()]
+        // public static void MyClassInitialize(TestContext testContext) { }
+        //
+        // Use ClassCleanup to run code after all tests in a class have run
+        // [ClassCleanup()]
+        // public static void MyClassCleanup() { }
+        //
+        // Use TestInitialize to run code before running each test 
+        // [TestInitialize()]
+        // public void MyTestInitialize() { }
+        //
+        // Use TestCleanup to run code after each test has run
+        // [TestCleanup()]
+        // public void MyTestCleanup() { }
+        //
+
+        #endregion
+
+        /// <summary>
+        /// Circulars this instance.
+        /// </summary>
+        [TestMethod]
+        public void Circular()
+        {
+            lock (testLock)
+            {
+                // Copy resource file to the run-time directory
+                string inputFilePath = GetInputFilePath("Circular.xsd", Resources.Circular);
+
+                var xsdGen = new GeneratorFacade(GetGeneratorParams(inputFilePath));
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+            }
+        }
+
+        /// <summary>
+        /// Circulars this instance.
+        /// </summary>
+        [TestMethod]
+        public void CircularClassReference()
+        {
+            lock (testLock)
+            {
+
+                // Copy resource file to the run-time directory
+                string inputFilePath = GetInputFilePath("CircularClassReference.xsd", Resources.CircularClassReference);
+                var generatorParams = new GeneratorParams
+                                          {
+                                              InputFilePath = inputFilePath,
+                                              TargetFramework = TargetFramework.Net20,
+                                              AutomaticProperties = true,
+                                              IncludeSerializeMethod = false,
+                                              UseGenericBaseClass = false,
+                                              OutputFilePath = GetOutputFilePath(inputFilePath)
+
+                                          };
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                try
+                {
+                    var cs = new Circular();
+
+#pragma warning disable 168
+                    int count = cs.circular.count;
+#pragma warning restore 168
+
+                    var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                    Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+                }
+                catch (Exception e)
+                {
+                    Assert.Fail(e.Message);
+                }
+            }
+        }
+
+        /// <summary>
+        /// Arrays the of array.
+        /// </summary>
+        [TestMethod]
+        public void ArrayOfArray()
+        {
+            lock (testLock)
+            {
+
+                // Copy resource file to the run-time directory
+                var inputFilePath = GetInputFilePath("ArrayOfArray.xsd", Resources.ArrayOfArray);
+
+                var generatorParams = new GeneratorParams
+                                          {
+                                              GenerateCloneMethod = true,
+                                              IncludeSerializeMethod = true,
+                                              AutomaticProperties = true,
+                                              InputFilePath = inputFilePath,
+                                              NameSpace = "MyNameSpace",
+                                              CollectionObjectType = CollectionType.Array,
+                                              EnableDataBinding = true,
+                                              Language = GenerationLanguage.CSharp,
+                                              OutputFilePath = Path.ChangeExtension(inputFilePath, ".TestGenerated.cs")
+                                          };
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+            }
+        }
+
+        /// <summary>
+        /// Stacks the over flow.
+        /// </summary>
+        [TestMethod]
+        public void StackOverFlow()
+        {
+            lock (testLock)
+            {
+
+                // Copy resource file to the run-time directory
+                string inputFilePath = GetInputFilePath("StackOverFlow.xsd", Resources.StackOverFlow);
+
+                var generatorParams = GetGeneratorParams(inputFilePath);
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+            }
+        }
+
+        [TestMethod]
+        public void Deserialize_ArrayOfMyElement()
+        {
+            lock (testLock)
+            {
+
+                var e = new ArrayOfMyElement();
+                var myE = new MyElement {Name = "Name"};
+                myE.AttributeLists.Add(new NameValuePair {Name = "Name", Value = "Value"});
+                e.MyElement.Add(myE);
+                Exception ex;
+
+                var serialized = e.Serialize();
+                e.SaveToFile(Path.Combine(OutputFolder, "ReproSampleFile.xml"), out ex);
+                if (ex != null) throw ex;
+
+                //try to deserialize
+
+                //generate doc conformant to schema
+
+                ArrayOfMyElement toDeserialize;
+                if (!ArrayOfMyElement.LoadFromFile("ReproSampleFile.xml", out toDeserialize, out ex))
+                {
+                    Console.WriteLine("Unable to deserialize, will exit");
+                    return;
+                }
+
+                var serialized2 = toDeserialize.Serialize();
+
+                Console.WriteLine("Still missing the <NameValuePairElement>");
+                Console.WriteLine(serialized);
+
+                Console.WriteLine("Name value pairs elements missing");
+                Console.WriteLine(serialized2);
+            }
+        }
+
+        /// <summary>
+        /// DVDs this instance.
+        /// </summary>
+        [TestMethod]
+        public void Dvd()
+        {
+            lock (testLock)
+            {
+
+                // Copy resource file to the run-time directory
+                GetInputFilePath("Actor.xsd", Resources.Actor);
+
+                // Copy resource file to the run-time directory
+                string inputFilePath = GetInputFilePath("Dvd.xsd", Resources.dvd);
+                var generatorParams = GetGeneratorParams(inputFilePath);
+                generatorParams.CollectionObjectType = CollectionType.List;
+                generatorParams.TargetFramework = TargetFramework.Net35;
+                generatorParams.EnableDataBinding = true;
+                generatorParams.EnableSummaryComment = true;
+                generatorParams.GenerateDataContracts = false;
+                generatorParams.UseGenericBaseClass = false;
+                generatorParams.GenerateXMLAttributes = true;
+                
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                // Create new dvd collection and save it to file
+                var dvd = new DvdCollection();
+                dvd.Dvds.Add(new dvd {Title = "Matrix"});
+                var newitem = new dvd();
+                newitem.Actor.Add(new Actor {firstname = "James", nationality = "Us"});
+                dvd.Dvds.Add(newitem);
+                var originalXml = dvd.Serialize();
+                dvd.SaveToFile("dvd.xml");
+
+                // Load data fom file and serialize it again.
+                var loadedDvdCollection = DvdCollection.LoadFromFile("dvd.xml");
+                var finalXml = loadedDvdCollection.Serialize();
+
+                // Then comprate two xml string
+                if (!originalXml.Equals(finalXml))
+                {
+                    Assert.Fail("Xml value are not equals");
+                }
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+
+            }
+        }
+
+        /// <summary>
+        /// Genders this instance.
+        /// </summary>
+        [TestMethod]
+        public void Gender()
+        {
+            lock (testLock)
+            {
+
+                // Get the code namespace for the schema.
+                string inputFilePath = GetInputFilePath("Gender.xsd", Resources.Gender);
+
+                var generatorParams = GetGeneratorParams(inputFilePath);
+                generatorParams.TargetFramework = TargetFramework.Net30;
+                generatorParams.AutomaticProperties = true;
+                generatorParams.GenerateDataContracts = true;
+                generatorParams.GenerateXMLAttributes = true;
+                generatorParams.OutputFilePath = GetOutputFilePath(inputFilePath);
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var genderRoot = new Root
+                                     {
+                                         GenderAttribute = ksgender.female,
+                                         GenderAttributeSpecified = true,
+                                         GenderElement = ksgender.female,
+                                         GenderIntAttribute = "toto"
+                                     };
+                Exception ex;
+                genderRoot.SaveToFile(Path.Combine(OutputFolder, "gender.xml"), out ex);
+                if(ex!=null) throw ex;
+
+                var canCompile = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(canCompile.Success, canCompile.Messages.ToString());
+            }
+        }
+
+        [TestMethod]
+        public void GenarateVBCS()
+        {
+            lock (testLock)
+            {
+                // Get the code namespace for the schema.
+                string inputFilePath = GetInputFilePath("Actor.xsd", Resources.Actor);
+
+                var generatorParams = GetGeneratorParams(inputFilePath);
+                generatorParams.TargetFramework = TargetFramework.Net30;
+                generatorParams.AutomaticProperties = true;
+                generatorParams.GenerateDataContracts = true;
+                generatorParams.GenerateXMLAttributes = true;
+                generatorParams.OutputFilePath = GetOutputFilePath(inputFilePath);
+                generatorParams.EnableDataBinding = true;
+                generatorParams.EnableSummaryComment = true;
+                generatorParams.Language = GenerationLanguage.VisualBasic;
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                generatorParams.Language = GenerationLanguage.CSharp;
+                xsdGen = new GeneratorFacade(generatorParams);
+                result = xsdGen.Generate();
+
+                var canCompile = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(canCompile.Success, canCompile.Messages.ToString());
+            }
+        }
+        /// <summary>
+        /// Alows the debug.
+        /// </summary>
+        [TestMethod]
+        public void AlowDebug()
+        {
+            lock (testLock)
+            {
+
+                // Copy resource file to the run-time directory
+                GetInputFilePath("Actor.xsd", Resources.Actor);
+                string inputFilePath = GetInputFilePath("Dvd.xsd", Resources.dvd);
+
+                var generatorParams = GetGeneratorParams(inputFilePath);
+                generatorParams.DisableDebug = false;
+                generatorParams.OutputFilePath = Path.ChangeExtension(generatorParams.InputFilePath, ".DebugEnabled.cs");
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+            }
+        }
+
+        [TestMethod]
+        public void Hierarchical()
+        {
+            lock (testLock)
+            {
+
+                // Copy resource file to the run-time directory
+                string inputFilePath = GetInputFilePath("Hierarchical.xsd", Resources.Hierarchical);
+
+                var generatorParams = GetGeneratorParams(inputFilePath);
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+            }
+        }
+
+        //[TestMethod]
+        //public void Serialize()
+        //{
+        //    DvdCollection dvdCol = GetDvd();
+        //    string dvdColStr1 = dvdCol.Serialize();
+
+        //    DvdCollection dvdColFromXml;
+        //    Exception exception;
+        //    bool sucess = DvdCollection.Deserialize(dvdColStr1, out dvdColFromXml, out exception);
+        //    if (sucess)
+        //    {
+        //        string dvdColStr2 = dvdColFromXml.Serialize();
+        //        if (!dvdColStr1.Equals(dvdColStr2))
+        //            Assert.Fail("dvdColFromXml is not equal after Deserialize");
+        //    }
+        //    else
+        //        Assert.Fail(exception.Message);
+        //}
+
+        [TestMethod]
+        public void Silverlight()
+        {
+            lock (testLock)
+            {
+
+                // Get the code namespace for the schema.
+                GetInputFilePath("Actor.xsd", Resources.Actor);
+                string inputFilePath = GetInputFilePath("dvd.xsd", Resources.dvd);
+
+                var generatorParams = GetGeneratorParams(inputFilePath);
+                generatorParams.TargetFramework = TargetFramework.Silverlight;
+                generatorParams.OutputFilePath = Path.ChangeExtension(generatorParams.InputFilePath,
+                                                                      ".Silverlight20_01.cs");
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+
+                var result = xsdGen.Generate();
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+            }
+        }
+
+
+        [TestMethod]
+        public void XMLAttributes()
+        {
+            lock (testLock)
+            {
+
+                // Get the code namespace for the schema.
+                GetInputFilePath("Actor.xsd", Resources.Actor);
+                string inputFilePath = GetInputFilePath("dvd.xsd", Resources.dvd);
+
+                var generatorParams = GetGeneratorParams(inputFilePath);
+                generatorParams.GenerateXMLAttributes = true;
+
+                generatorParams.TargetFramework = TargetFramework.Net20;
+                generatorParams.OutputFilePath = Path.ChangeExtension(generatorParams.InputFilePath, ".xml.cs");
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+            }
+        }
+
+        [TestMethod]
+        public void AutomaticProperties()
+        {
+            lock (testLock)
+            {
+
+                // Get the code namespace for the schema.
+                GetInputFilePath("Actor.xsd", Resources.Actor);
+                string inputFilePath = GetInputFilePath("dvd.xsd", Resources.dvd);
+
+                var generatorParams = new GeneratorParams {InputFilePath = inputFilePath};
+                GetGeneratorParams(inputFilePath);
+                generatorParams.EnableSummaryComment = true;
+                generatorParams.GenerateDataContracts = false;
+                generatorParams.AutomaticProperties = true;
+
+                generatorParams.TargetFramework = TargetFramework.Net30;
+                generatorParams.OutputFilePath = Path.ChangeExtension(generatorParams.InputFilePath, ".autoProp.cs");
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+            }
+        }
+
+        [TestMethod]
+        public void UseBaseClass()
+        {
+            lock (testLock)
+            {
+
+                // Get the code namespace for the schema.
+                GetInputFilePath("Actor.xsd", Resources.Actor);
+                string inputFilePath = GetInputFilePath("dvd.xsd", Resources.dvd);
+
+                string outputFilePath = Path.ChangeExtension(inputFilePath, ".baseClass.cs");
+                var generatorParams = new GeneratorParams
+                                          {
+                                              InputFilePath = inputFilePath,
+                                              TargetFramework = TargetFramework.Net30,
+                                              EnableSummaryComment = true,
+                                              GenerateDataContracts = true,
+                                              AutomaticProperties = false,
+                                              EnableDataBinding = true,
+                                              UseGenericBaseClass = true,
+                                              BaseClassName = "EntityObject",
+                                              OutputFilePath = outputFilePath
+                                          };
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+            }
+        }
+
+        [TestMethod]
+        public void TestAnnotations()
+        {
+            lock (testLock)
+            {
+
+                // Get the code namespace for the schema.
+                string inputFilePath = GetInputFilePath("TestAnnotations.xsd", Resources.TestAnnotations);
+
+                var generatorParams = new GeneratorParams {InputFilePath = inputFilePath};
+                GetGeneratorParams(inputFilePath);
+
+                generatorParams.EnableSummaryComment = true;
+                generatorParams.TargetFramework = TargetFramework.Net35;
+                generatorParams.AutomaticProperties = true;
+                generatorParams.OutputFilePath = Path.ChangeExtension(generatorParams.InputFilePath,
+                                                                      ".TestAnnotations.cs");
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+            }
+        }
+
+        [TestMethod]
+        public void WcfAttributes()
+        {
+            lock (testLock)
+            {
+
+                // Get the code namespace for the schema.
+                GetInputFilePath("Actor.xsd", Resources.Actor);
+                string inputFilePath = GetInputFilePath("dvd.xsd", Resources.dvd);
+
+                var generatorParams = GetGeneratorParams(inputFilePath);
+                generatorParams.GenerateDataContracts = true;
+                generatorParams.TargetFramework = TargetFramework.Net30;
+                generatorParams.OutputFilePath = Path.ChangeExtension(generatorParams.InputFilePath, ".wcf.cs");
+
+                var xsdGen = new GeneratorFacade(generatorParams);
+                var result = xsdGen.Generate();
+
+                Assert.IsTrue(result.Success, result.Messages.ToString());
+
+                var compileResult = CompileCSFile(generatorParams.OutputFilePath);
+                Assert.IsTrue(compileResult.Success, compileResult.Messages.ToString());
+            }
+        }
+
+        //[TestMethod]
+        //public void Persistent()
+        //{
+        //    DvdCollection dvdCol = GetDvd();
+        //    Exception exception;
+        //    if (!dvdCol.SaveToFile(OutputFolder + @"savedvd.xml", out exception))
+        //        Assert.Fail(string.Format("Failed to save file. {0}", exception.Message));
+
+        //    DvdCollection loadedDvdCollection;
+        //    Exception e;
+        //    if (!DvdCollection.LoadFromFile(OutputFolder + @"savedvd.xml", out loadedDvdCollection, out e))
+        //        Assert.Fail(string.Format("Failed to load file. {0}", e.Message));
+
+        //    string xmlBegin = dvdCol.Serialize();
+        //    string xmlEnd = loadedDvdCollection.Serialize();
+
+        //    if (!xmlBegin.Equals(xmlEnd))
+        //        Assert.Fail(string.Format("xmlBegin and xmlEnd are not equal after LoadFromFile"));
+        //}
+
+        //[TestMethod]
+        //public void InvalidLoadFromFile()
+        //{
+        //    DvdCollection loadedDvdCollection;
+        //    Exception e;
+        //    DvdCollection.LoadFromFile(OutputFolder + @"savedvd.error.xml", out loadedDvdCollection, out e);
+        //}
+
+        //private static DvdCollection GetDvd()
+        //{
+        //    var dvdCol = new DvdCollection();
+        //    var newdvd = new dvd {Title = "Matrix", Style = Styles.Action};
+        //    newdvd.Actor.Add(new Actor {firstname = "Thomas", lastname = "Anderson"});
+        //    dvdCol.Dvds.Add(newdvd);
+        //    return dvdCol;
+        //}
+
+
+        private static string GetInputFilePath(string resourceFileName, string fileContent)
+        {
+            lock (fileLock)
+            {
+                using (var sw = new StreamWriter(OutputFolder + resourceFileName, false))
+                {
+                    sw.Write(fileContent);
+                }
+
+                return OutputFolder + resourceFileName;
+            }
+        }
+
+        private static GeneratorParams GetGeneratorParams(string inputFilePath)
+        {
+            return new GeneratorParams
+                       {
+                           InputFilePath = inputFilePath,
+                           NameSpace = CodeGenerationNamespace,
+                           TargetFramework = TargetFramework.Net20,
+                           CollectionObjectType = CollectionType.ObservableCollection,
+                           DisableDebug = true,
+                           EnableDataBinding = true,
+                           GenerateDataContracts = true,
+                           GenerateCloneMethod = true,
+                           IncludeSerializeMethod = true,
+                           HidePrivateFieldInIde = true,
+                           OutputFilePath = GetOutputFilePath(inputFilePath)
+                       };
+        }
+
+        /// <summary>
+        /// Get output file path
+        /// </summary>
+        /// <param name="inputFilePath">input file path</param>
+        /// <returns></returns>
+        static private string GetOutputFilePath(string inputFilePath)
+        {
+            return Path.ChangeExtension(inputFilePath, ".TestGenerated.cs");
+        }
+
+        /// <summary>
+        /// Compile file
+        /// </summary>
+        /// <param name="filePath">CS file path</param>
+        /// <returns></returns>
+        static private Result<string> CompileCSFile(string filePath)
+        {
+            var result = new Result<string>(null, true);
+            var file = new FileInfo(filePath);
+            if (!file.Exists)
+            {
+                result.Success = false;
+                result.Messages.Add(MessageType.Error, "Input file \"{0}\" does not exist", filePath);
+            }
+            if (result.Success)
+            {
+                try
+                {
+                    var outputPath = Path.ChangeExtension(file.FullName, ".dll");
+                    result.Entity = outputPath;
+
+                    var args = new StringBuilder();
+                    args.Append(" /target:module /nologo /debug");
+                    args.Append(" /out:\"" + outputPath + "\"");
+                    args.Append(" \"" + filePath + "\"");
+
+                    var compilerPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System),
+                                                    @"..\Microsoft.NET\Framework\v2.0.50727\csc.exe");
+
+                    var compilerFile = new FileInfo(compilerPath);
+
+                    Debug.WriteLine(string.Format("Executing:\r\n{0} {1}\r\n", compilerFile.FullName, args));
+
+                    var info = new ProcessStartInfo
+                                   {
+                                       ErrorDialog = false,
+                                       FileName = compilerFile.FullName,
+                                       Arguments = args.ToString(),
+                                       CreateNoWindow = true,
+                                       WindowStyle = ProcessWindowStyle.Minimized
+                                   };
+
+                    using (var process = new Process {StartInfo = info})
+                    {
+                        process.ErrorDataReceived += (s, e) =>
+                                                         {
+                                                             result.Success = false;
+                                                             result.Messages.Add(MessageType.Error, "Error data received", e.Data);
+                                                         };
+
+                        process.Exited += (s, e) => { result.Success = process.ExitCode == 1 && File.Exists(outputPath); };
+
+                        process.OutputDataReceived += (s, e) => result.Messages.Add(MessageType.Debug, "Output data received", e.Data);
+
+                        if (!process.Start())
+                            throw new ApplicationException("Unablle to start process");
+
+                        var exited = process.WaitForExit((int) TimeSpan.FromSeconds(15).TotalMilliseconds);
+                        if (!exited)
+                        {
+                            result.Success = false;
+                            result.Messages.Add(MessageType.Error, "Timeout", "Compile timeout occurred {0}", DateTime.Now - process.StartTime);
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    result.Success = false;
+                    result.Messages.Add(MessageType.Error, "Exception", ex.ToString());
+                }
+            }
+
+            if (result.Messages.Count > 0)
+                Debug.WriteLine(result.Messages.ToString());
+
+            return result;
+        }
+
+    }
+}
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Xsd2Code.TestUnit.csproj
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Xsd2Code.TestUnit.csproj	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Xsd2Code.TestUnit.csproj	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{76D1A3F3-DBA4-4236-B882-52031598757A}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Xsd2Code.TestUnit</RootNamespace>
+    <AssemblyName>Xsd2Code.TestUnit</AssemblyName>
+    <WarningLevel>4</WarningLevel>
+    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>2.0</OldToolsVersion>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>.\bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugSymbols>false</DebugSymbols>
+    <Optimize>true</Optimize>
+    <OutputPath>.\bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Runtime.Serialization">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.XML" />
+    <Reference Include="WindowsBase">
+      <RequiredTargetFramework>3.0</RequiredTargetFramework>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="UnitTest.cs" />
+    <Compile Include="xsd\ArrayOfArray.Designer.cs" />
+    <Compile Include="xsd\CircularClassReference.Designer.cs" />
+    <Compile Include="xsd\dvd.Designer.cs" />
+    <Compile Include="xsd\Gender.cs">
+      <DependentUpon>Gender.xsd</DependentUpon>
+    </Compile>
+    <Compile Include="xsd\Hierarchical.cs">
+      <DependentUpon>Hierarchical.xsd</DependentUpon>
+    </Compile>
+    <Compile Include="xsd\ReproSchema.Designer.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <SubType>Designer</SubType>
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <None Include="App.config" />
+    <Content Include="xsd\ArrayOfArray.xsd">
+      <Generator>xsd2CodeCustomTools</Generator>
+    </Content>
+    <Content Include="xsd\ChoiceSequence.xsd">
+      <LastGenOutput>ChoiceSequence1.Designer.cs</LastGenOutput>
+    </Content>
+    <Content Include="xsd\CircularClassReference.xsd" />
+    <Content Include="xsd\dvd.xsd">
+      <SubType>
+      </SubType>
+    </Content>
+    <Content Include="xsd\Actor.xsd" />
+    <Content Include="xsd\Circular.xsd" />
+    <None Include="xsd\dvd.xsx">
+      <DependentUpon>dvd.xsd</DependentUpon>
+    </None>
+    <Content Include="xsd\Gender.xsd" />
+    <Content Include="xsd\Hierarchical.xsd" />
+    <Content Include="xsd\ReproSchema.xsd" />
+    <Content Include="xsd\StackOverFlow.xsd" />
+    <Content Include="xsd\TestAnnotations.xsd" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Xsd2Code.Library\Xsd2Code.Library.csproj">
+      <Project>{1B59FB12-699C-4927-ACA3-D7F0E0F79100}</Project>
+      <Name>Xsd2Code.Library</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
+</Project>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Xsd2Code.TestUnit.csproj.vspscc
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Xsd2Code.TestUnit.csproj.vspscc	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/Xsd2Code.TestUnit.csproj.vspscc	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Actor.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Actor.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Actor.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--Created with Liquid XML Studio (http://www.liquid-technologies.com)-->
+<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" id="Actor" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="Actor">
+    <xs:annotation>
+      <xs:documentation>
+        Actor pépé class include firstname and lastname (ûàéçè).
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="firstname" type="xs:string">
+          <xs:annotation>
+            <xs:documentation>
+              Gets or sets the firstname of the actor
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="lastname" type="xs:string">
+          <xs:annotation>
+            <xs:documentation>
+              Gets or sets the lastname of the actor
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+      <xs:attribute name="PrincipalActor" type="xs:boolean" />
+      <xs:attribute default="US" name="nationality" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>nationality of actor</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ArrayOfArray.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ArrayOfArray.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ArrayOfArray.Designer.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,35 @@
+// ------------------------------------------------------------------------------
+//  <auto-generated>
+//    Generated by Xsd2Code. Version 2.8.2.29599
+//    <NameSpace>Xsd2Code.TestUnit</NameSpace><Collection>Array</Collection><codeType>CSharp</codeType><EnableDataBinding>False</EnableDataBinding><HidePrivateFieldInIDE>False</HidePrivateFieldInIDE><EnableSummaryComment>False</EnableSummaryComment><IncludeSerializeMethod>False</IncludeSerializeMethod><GenerateCloneMethod>False</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>False</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings>
+//  <auto-generated>
+// ------------------------------------------------------------------------------
+namespace Xsd2Code.TestUnit
+{
+    using System;
+    using System.Diagnostics;
+    using System.Xml.Serialization;
+    using System.Collections;
+    using System.Xml.Schema;
+    using System.ComponentModel;
+
+
+    public partial class root
+    {
+
+        private string[][] elementField;
+
+        [System.Xml.Serialization.XmlArrayItemAttribute("FirstName", typeof(string), IsNullable = false)]
+        public string[][] Element
+        {
+            get
+            {
+                return this.elementField;
+            }
+            set
+            {
+                this.elementField = value;
+            }
+        }
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ArrayOfArray.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ArrayOfArray.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ArrayOfArray.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--Created with Liquid XML Studio (http://www.liquid-technologies.com)-->
+<xs:schema xmlns:mstns="http://tempuri.org/ArrayOfArray.xsd" elementFormDefault="qualified" targetNamespace="http://tempuri.org/ArrayOfArray.xsd" id="ArrayOfArray" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="root">
+    <xs:complexType>
+      <xs:sequence minOccurs="0">
+        <xs:element minOccurs="0" maxOccurs="unbounded" name="Element" type="mstns:element" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:complexType name="element">
+    <xs:sequence minOccurs="0">
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="FirstName" type="xs:string" />
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ChoiceSequence.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ChoiceSequence.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ChoiceSequence.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)-->
+<xs:schema xmlns:mstns="http://tempuri.org/ChoiceSequence.xsd" elementFormDefault="qualified" targetNamespace="http://tempuri.org/ChoiceSequence.xsd" id="ChoiceSequence" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="root">
+    <xs:complexType>
+      <xs:choice minOccurs="0">
+        <xs:sequence>
+          <xs:element ref="mstns:product" />
+        </xs:sequence>
+        <xs:element ref="mstns:computer" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="product">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="Name" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="computer">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="Name" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Circular.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Circular.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Circular.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema targetNamespace="http://tempuri.org/EtudeData.xsd" xmlns:NameSpace1="http://www.axilog.fr" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mstns="http://tempuri.org/EtudeData.xsd" xmlns="http://tempuri.org/EtudeData.xsd" elementFormDefault="qualified" id="EtudeData">
+  <xs:element name="ROOT">
+    <xs:annotation>
+      <xs:documentation>Element racine de l'etude</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="A" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="A">
+    <xs:annotation>
+      <xs:documentation>DOC A</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="B">
+          <xs:annotation>
+            <xs:documentation>DOC REF B</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="mstns:ROOT"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="B">
+    <xs:annotation>
+      <xs:documentation>DOC B</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="ELEMENT_B" type="xs:int" nillable="true">
+          <xs:annotation>
+            <xs:documentation>DOC ELEMENT_B</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/CircularClassReference.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/CircularClassReference.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/CircularClassReference.Designer.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,59 @@
+// ------------------------------------------------------------------------------
+//  <auto-generated>
+//    Generated by Xsd2Code. Version 2.8.2.28608
+//    <NameSpace>Xsd2Code.TestUnit</NameSpace><Collection>List</Collection><codeType>CSharp</codeType><EnableDataBinding>False</EnableDataBinding><HidePrivateFieldInIDE>False</HidePrivateFieldInIDE><EnableSummaryComment>False</EnableSummaryComment><IncludeSerializeMethod>False</IncludeSerializeMethod><UseBaseClass>True</UseBaseClass><GenerateCloneMethod>False</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>False</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings>
+//  <auto-generated>
+// ------------------------------------------------------------------------------
+namespace Xsd2Code.TestUnit
+{
+    using System;
+    using System.Diagnostics;
+    using System.Xml.Serialization;
+    using System.Collections;
+    using System.Xml.Schema;
+    using System.ComponentModel;
+    using System.Collections.Generic;
+
+
+    #region Base entity class
+    public partial class EntityBase<T>
+    {
+    }
+    #endregion
+
+    public partial class Circular : EntityBase<Circular>
+    {
+
+        private Circular circularField;
+
+        private int countField;
+
+        public Circular circular
+        {
+            get
+            {
+                if ((this.circularField == null))
+                {
+                    this.circularField = new Circular();
+                }
+                return this.circularField;
+            }
+            set
+            {
+                this.circularField = value;
+            }
+        }
+
+        public int count
+        {
+            get
+            {
+                return this.countField;
+            }
+            set
+            {
+                this.countField = value;
+            }
+        }
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/CircularClassReference.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/CircularClassReference.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/CircularClassReference.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)-->
+<xs:schema xmlns:mstns="http://tempuri.org/CircularClassReference.xsd" elementFormDefault="qualified" targetNamespace="http://tempuri.org/CircularClassReference.xsd" id="CircularClassReference" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:complexType name="Circular">
+    <xs:sequence>
+      <xs:element name="circular" type="mstns:Circular" />
+      <xs:element name="count" type="xs:int" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="Root" type="mstns:Circular" />
+</xs:schema>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Gender.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Gender.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Gender.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,194 @@
+// ------------------------------------------------------------------------------
+//  <auto-generated>
+//    Generated by Xsd2Code. Version 2.1.3294.28547
+//    <NameSpace>Xsd2Code.TestUnit</NameSpace><Collection>List</Collection><codeType>CSharp</codeType><EnableDataBinding>False</EnableDataBinding><HidePrivateFieldInIDE>False</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><CustomUsings></CustomUsings><CollectionBase></CollectionBase><IncludeSerializeMethod>True</IncludeSerializeMethod><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><DisableDebug>False</DisableDebug>
+//  <auto-generated>
+// ------------------------------------------------------------------------------
+namespace Xsd2Code.TestUnit
+{
+    using System;
+    using System.Diagnostics;
+    using System.Xml.Serialization;
+    using System.Collections;
+    using System.Xml.Schema;
+    using System.ComponentModel;
+    using System.IO;
+    using System.Collections.Generic;
+
+
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")]
+    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://tempuri.org/Gender.xsd")]
+    [System.Xml.Serialization.XmlRootAttribute(Namespace = "http://tempuri.org/Gender.xsd", IsNullable = false)]
+    public partial class Root
+    {
+
+        private ksgender genderElementField;
+
+        private ksgender genderAttributeField;
+
+        private bool genderAttributeFieldSpecified;
+
+        private string genderIntAttributeField;
+
+        /// <remarks/>
+        public ksgender GenderElement
+        {
+            get
+            {
+                return this.genderElementField;
+            }
+            set
+            {
+                this.genderElementField = value;
+            }
+        }
+
+        /// <remarks/>
+        [System.Xml.Serialization.XmlAttributeAttribute()]
+        public ksgender GenderAttribute
+        {
+            get
+            {
+                return this.genderAttributeField;
+            }
+            set
+            {
+                this.genderAttributeField = value;
+            }
+        }
+
+        /// <remarks/>
+        [System.Xml.Serialization.XmlIgnoreAttribute()]
+        public bool GenderAttributeSpecified
+        {
+            get
+            {
+                return this.genderAttributeFieldSpecified;
+            }
+            set
+            {
+                this.genderAttributeFieldSpecified = value;
+            }
+        }
+
+        /// <remarks/>
+        [System.Xml.Serialization.XmlAttributeAttribute(DataType = "integer")]
+        public string GenderIntAttribute
+        {
+            get
+            {
+                return this.genderIntAttributeField;
+            }
+            set
+            {
+                this.genderIntAttributeField = value;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current Root object into an XML document
+        /// </summary>
+        // <returns>string XML value</returns>
+        public virtual string Serialize()
+        {
+            System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(this.GetType());
+            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
+            xmlSerializer.Serialize(memoryStream, this);
+            memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
+            System.IO.StreamReader streamReader = new System.IO.StreamReader(memoryStream);
+            return streamReader.ReadToEnd();
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup into an Root object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output Root 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 Root obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.StringReader stringReader = new System.IO.StringReader(xml);
+                System.Xml.XmlTextReader xmlTextReader = new System.Xml.XmlTextReader(stringReader);
+                System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(Root));
+                obj = ((Root)(xmlSerializer.Deserialize(xmlTextReader)));
+                return true;
+            }
+            catch (System.Exception e)
+            {
+                exception = e;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current Root 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
+            {
+                string xmlString = Serialize();
+                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
+                System.IO.StreamWriter streamWriter = xmlFile.CreateText();
+                streamWriter.WriteLine(xmlString);
+                streamWriter.Close();
+                return true;
+            }
+            catch (System.Exception e)
+            {
+                exception = e;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup from file into an Root object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output Root 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 Root obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.FileStream file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
+                System.IO.StreamReader sr = new System.IO.StreamReader(file);
+                string xmlString = sr.ReadToEnd();
+                sr.Close();
+                file.Close();
+                return Deserialize(xmlString, out obj, out exception);
+            }
+            catch (System.Exception e)
+            {
+                exception = e;
+                return false;
+            }
+        }
+    }
+
+    /// <remarks/>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")]
+    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://tempuri.org/Gender.xsd")]
+    public enum ksgender
+    {
+
+        /// <remarks/>
+        male,
+
+        /// <remarks/>
+        female,
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Gender.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Gender.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Gender.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)-->
+<xs:schema xmlns:mstns="http://tempuri.org/Gender.xsd" elementFormDefault="qualified" targetNamespace="http://tempuri.org/Gender.xsd" id="Gender" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="Root">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="GenderElement" type="mstns:ksgender" />
+      </xs:sequence>
+      <xs:attribute name="GenderAttribute" type="mstns:ksgender" />
+      <xs:attribute name="GenderIntAttribute" type="xs:integer" />
+    </xs:complexType>
+  </xs:element>
+  <xs:simpleType name="ksgender">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="male" />
+      <xs:enumeration value="female" />
+    </xs:restriction>
+  </xs:simpleType>
+</xs:schema>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Hierarchical.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Hierarchical.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Hierarchical.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,435 @@
+// ------------------------------------------------------------------------------
+//  <auto-generated>
+//    Generated by Xsd2Code. Version 2.1.3148.17485
+//   <NameSpace>XSDCodeGen</NameSpace><Collection>List</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment>
+//  <auto-generated>
+// ------------------------------------------------------------------------------
+namespace XSDCodeGen {
+    using System;
+    using System.Diagnostics;
+    using System.Xml.Serialization;
+    using System.Collections;
+    using System.Xml.Schema;
+    using System.ComponentModel;
+    using System.Collections.Generic;
+    
+    
+    /// <summary>
+    /// Data model of historic update
+    /// </summary>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.1434")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+    [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
+    public partial class Historic {
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private System.DateTime dateField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private List <HistoricHistoUpdates> histoUpdatesField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string schemaVersionField;
+        
+        /// <summary>
+        /// .ctor class constructor
+        /// </summary>
+        public Historic() {
+            if ((this.histoUpdatesField == null)) {
+                this.histoUpdatesField = new List <HistoricHistoUpdates>();
+            }
+            this.schemaVersionField = "1.0";
+        }
+        
+        /// <summary>
+        /// Date of update event
+        /// </summary>
+        public System.DateTime Date {
+            get {
+                return this.dateField;
+            }
+            set {
+                if ((dateField.Equals(value) != true)) {
+                    this.dateField = value;
+                    OnPropertyChanged("Date");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Historic of all updates
+        /// </summary>
+        [System.Xml.Serialization.XmlElementAttribute("HistoUpdates")]
+        public List <HistoricHistoUpdates> HistoUpdates {
+            get {
+                return this.histoUpdatesField;
+            }
+            set {
+                if ((histoUpdatesField.Equals(value) != true)) {
+                    this.histoUpdatesField = value;
+                    OnPropertyChanged("HistoUpdates");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// XmlSchema version
+        /// </summary>
+        [System.Xml.Serialization.XmlAttributeAttribute()]
+        [System.ComponentModel.DefaultValueAttribute("1.0")]
+        public string SchemaVersion {
+            get {
+                return this.schemaVersionField;
+            }
+            set {
+                if ((schemaVersionField.Equals(value) != true)) {
+                    this.schemaVersionField = value;
+                    OnPropertyChanged("SchemaVersion");
+                }
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        private void OnPropertyChanged(string info) {
+            PropertyChangedEventHandler handler = PropertyChanged;
+            if (handler != null) {
+                handler(this, new PropertyChangedEventArgs(info));
+            }
+        }
+    }
+    
+    /// <summary>
+    /// Historic of all updates
+    /// </summary>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.1434")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+    public partial class HistoricHistoUpdates {
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string updateIdField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private System.DateTime updateDateField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private bool updateSucessField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string updateErrorMsgField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string updateCodeActionField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string updateLineActionField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private HistoricHistoUpdatesComputer computerField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string dSKDBField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string histoGUIDField;
+        
+        /// <summary>
+        /// .ctor class constructor
+        /// </summary>
+        public HistoricHistoUpdates() {
+            if ((this.computerField == null)) {
+                this.computerField = new HistoricHistoUpdatesComputer();
+            }
+            this.updateSucessField = false;
+        }
+        
+        /// <summary>
+        /// Identifier of update
+        /// </summary>
+        public string UpdateId {
+            get {
+                return this.updateIdField;
+            }
+            set {
+                if ((updateIdField.Equals(value) != true)) {
+                    this.updateIdField = value;
+                    OnPropertyChanged("UpdateId");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Date of the update
+        /// </summary>
+        public System.DateTime UpdateDate {
+            get {
+                return this.updateDateField;
+            }
+            set {
+                if ((updateDateField.Equals(value) != true)) {
+                    this.updateDateField = value;
+                    OnPropertyChanged("UpdateDate");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// 0 = Error
+        /// 1 = sucess
+        /// </summary>
+        public bool UpdateSucess {
+            get {
+                return this.updateSucessField;
+            }
+            set {
+                if ((updateSucessField.Equals(value) != true)) {
+                    this.updateSucessField = value;
+                    OnPropertyChanged("UpdateSucess");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Error message
+        /// </summary>
+        public string UpdateErrorMsg {
+            get {
+                return this.updateErrorMsgField;
+            }
+            set {
+                if ((updateErrorMsgField.Equals(value) != true)) {
+                    this.updateErrorMsgField = value;
+                    OnPropertyChanged("UpdateErrorMsg");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Action code failed
+        /// </summary>
+        [System.Xml.Serialization.XmlElementAttribute(DataType="integer")]
+        public string UpdateCodeAction {
+            get {
+                return this.updateCodeActionField;
+            }
+            set {
+                if ((updateCodeActionField.Equals(value) != true)) {
+                    this.updateCodeActionField = value;
+                    OnPropertyChanged("UpdateCodeAction");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Action number line failed
+        /// </summary>
+        [System.Xml.Serialization.XmlElementAttribute(DataType="integer")]
+        public string UpdateLineAction {
+            get {
+                return this.updateLineActionField;
+            }
+            set {
+                if ((updateLineActionField.Equals(value) != true)) {
+                    this.updateLineActionField = value;
+                    OnPropertyChanged("UpdateLineAction");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Computer information
+        /// </summary>
+        public HistoricHistoUpdatesComputer Computer {
+            get {
+                return this.computerField;
+            }
+            set {
+                if ((computerField.Equals(value) != true)) {
+                    this.computerField = value;
+                    OnPropertyChanged("Computer");
+                }
+            }
+        }
+        
+        /// <remarks/>
+        public string DSKDB {
+            get {
+                return this.dSKDBField;
+            }
+            set {
+                if ((dSKDBField.Equals(value) != true)) {
+                    this.dSKDBField = value;
+                    OnPropertyChanged("DSKDB");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Garantee unicity on server historic (generated on client)
+        /// </summary>
+        public string HistoGUID {
+            get {
+                return this.histoGUIDField;
+            }
+            set {
+                if ((histoGUIDField.Equals(value) != true)) {
+                    this.histoGUIDField = value;
+                    OnPropertyChanged("HistoGUID");
+                }
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        private void OnPropertyChanged(string info) {
+            PropertyChangedEventHandler handler = PropertyChanged;
+            if (handler != null) {
+                handler(this, new PropertyChangedEventArgs(info));
+            }
+        }
+    }
+    
+    /// <summary>
+    /// Computer information
+    /// </summary>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.1434")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+    public partial class HistoricHistoUpdatesComputer : System.ComponentModel.INotifyPropertyChanged {
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private long freeDiskSpaceField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string cPUField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string osField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string oSServicePackField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private int memoryField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string screenResolutionField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string dSKPCField;
+        
+        /// <summary>
+        /// Indicate the free diskspace in  Octets.
+        /// </summary>
+        public long FreeDiskSpace {
+            get {
+                return this.freeDiskSpaceField;
+            }
+            set {
+                if ((freeDiskSpaceField.Equals(value) != true)) {
+                    this.freeDiskSpaceField = value;
+                    OnPropertyChanged("FreeDiskSpace");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Type of CPU
+        /// </summary>
+        public string CPU {
+            get {
+                return this.cPUField;
+            }
+            set {
+                if ((cPUField.Equals(value) != true)) {
+                    this.cPUField = value;
+                    OnPropertyChanged("CPU");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Os Name
+        /// </summary>
+        public string OS {
+            get {
+                return this.osField;
+            }
+            set {
+                if ((osField.Equals(value) != true)) {
+                    this.osField = value;
+                    OnPropertyChanged("OS");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// SP
+        /// </summary>
+        public string OSServicePack {
+            get {
+                return this.oSServicePackField;
+            }
+            set {
+                if ((oSServicePackField.Equals(value) != true)) {
+                    this.oSServicePackField = value;
+                    OnPropertyChanged("OSServicePack");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// In Mo
+        /// </summary>
+        public int Memory {
+            get {
+                return this.memoryField;
+            }
+            set {
+                if ((memoryField.Equals(value) != true)) {
+                    this.memoryField = value;
+                    OnPropertyChanged("Memory");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Ex. 1024x768
+        /// </summary>
+        public string ScreenResolution {
+            get {
+                return this.screenResolutionField;
+            }
+            set {
+                if ((screenResolutionField.Equals(value) != true)) {
+                    this.screenResolutionField = value;
+                    OnPropertyChanged("ScreenResolution");
+                }
+            }
+        }
+        
+        /// <remarks/>
+        public string DSKPC {
+            get {
+                return this.dSKPCField;
+            }
+            set {
+                if ((dSKPCField.Equals(value) != true)) {
+                    this.dSKPCField = value;
+                    OnPropertyChanged("DSKPC");
+                }
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        private void OnPropertyChanged(string info) {
+            PropertyChangedEventHandler handler = PropertyChanged;
+            if (handler != null) {
+                handler(this, new PropertyChangedEventArgs(info));
+            }
+        }
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Hierarchical.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Hierarchical.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/Hierarchical.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+  <xs:element name="Root">
+    <xs:annotation>
+      <xs:documentation>Doc of root root element</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="SubElement" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:documentation>Doc of unbounded SubElement</xs:documentation>
+          </xs:annotation>
+          <xs:complexType>
+            <xs:sequence>
+              <xs:element name="SubItem" type="xs:string">
+                <xs:annotation>
+                  <xs:documentation>Doc of SubItem element</xs:documentation>
+                </xs:annotation>
+              </xs:element>
+
+              <xs:element name="SubRootItem">
+                <xs:annotation>
+                  <xs:documentation>Doc of SubRootItem element</xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                  <xs:sequence>
+                    <xs:element name="SubItem2" type="xs:long">
+                      <xs:annotation>
+                        <xs:documentation>Doc of SubItem2 element</xs:documentation>
+                      </xs:annotation>
+                    </xs:element>
+                  </xs:sequence>
+                </xs:complexType>
+              </xs:element>
+            </xs:sequence>
+          </xs:complexType>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ReproSchema.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ReproSchema.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ReproSchema.Designer.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,665 @@
+// ------------------------------------------------------------------------------
+//  <auto-generated>
+//    Generated by Xsd2Code. Version 2.8.2.29599
+//    <NameSpace>Xsd2Code.TestUnit</NameSpace><Collection>List</Collection><codeType>CSharp</codeType><EnableDataBinding>False</EnableDataBinding><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><GenerateCloneMethod>False</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>False</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>False</DisableDebug><CustomUsings></CustomUsings>
+//  <auto-generated>
+// ------------------------------------------------------------------------------
+namespace Xsd2Code.TestUnit
+{
+    using System;
+    using System.Diagnostics;
+    using System.Xml.Serialization;
+    using System.Collections;
+    using System.Xml.Schema;
+    using System.ComponentModel;
+    using System.IO;
+    using System.Collections.Generic;
+
+
+    /// <summary>
+    /// The root element that wraps up all UIElements into an array that's consumed by KAF.
+    /// </summary>
+    public partial class ArrayOfMyElement
+    {
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private List<MyElement> myElementField;
+
+        /// <summary>
+        /// .ctor class constructor
+        /// </summary>
+        public ArrayOfMyElement()
+        {
+            if ((this.myElementField == null))
+            {
+                this.myElementField = new List<MyElement>();
+            }
+        }
+
+        public List<MyElement> MyElement
+        {
+            get
+            {
+                return this.myElementField;
+            }
+            set
+            {
+                this.myElementField = value;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current ArrayOfMyElement object into an XML document
+        /// </summary>
+        // <returns>string XML value</returns>
+        public virtual string Serialize()
+        {
+            System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(this.GetType());
+            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
+            xmlSerializer.Serialize(memoryStream, this);
+            memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
+            System.IO.StreamReader streamReader = new System.IO.StreamReader(memoryStream);
+            return streamReader.ReadToEnd();
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup into an ArrayOfMyElement object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output ArrayOfMyElement 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 ArrayOfMyElement obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.StringReader stringReader = new System.IO.StringReader(xml);
+                System.Xml.XmlTextReader xmlTextReader = new System.Xml.XmlTextReader(stringReader);
+                System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(ArrayOfMyElement));
+                obj = ((ArrayOfMyElement)(xmlSerializer.Deserialize(xmlTextReader)));
+                return true;
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current ArrayOfMyElement 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
+            {
+                string xmlString = Serialize();
+                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
+                System.IO.StreamWriter streamWriter = xmlFile.CreateText();
+                streamWriter.WriteLine(xmlString);
+                streamWriter.Close();
+                return true;
+            }
+            catch (System.Exception e)
+            {
+                exception = e;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup from file into an ArrayOfMyElement object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output ArrayOfMyElement 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 ArrayOfMyElement obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.FileStream file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
+                System.IO.StreamReader sr = new System.IO.StreamReader(file);
+                string xmlString = sr.ReadToEnd();
+                sr.Close();
+                file.Close();
+                return Deserialize(xmlString, out obj, out exception);
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+    }
+
+    /// <summary>
+    /// Represents a generic object in the user interface such as a button or text box.
+    /// </summary>
+    public partial class MyElement
+    {
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string nameField;
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private List<NameValuePair> attributeListsField;
+
+        /// <summary>
+        /// .ctor class constructor
+        /// </summary>
+        public MyElement()
+        {
+            if ((this.attributeListsField == null))
+            {
+                this.attributeListsField = new List<NameValuePair>();
+            }
+        }
+
+        public string Name
+        {
+            get
+            {
+                return this.nameField;
+            }
+            set
+            {
+                this.nameField = value;
+            }
+        }
+
+        [System.Xml.Serialization.XmlArrayItemAttribute("ArrayOfNameValuePair", IsNullable = false)]
+        [System.Xml.Serialization.XmlArrayItemAttribute("NameValuePair", IsNullable = false, NestingLevel = 1)]
+        public List<NameValuePair> AttributeLists
+        {
+            get
+            {
+                return this.attributeListsField;
+            }
+            set
+            {
+                this.attributeListsField = value;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current MyElement object into an XML document
+        /// </summary>
+        // <returns>string XML value</returns>
+        public virtual string Serialize()
+        {
+            System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(this.GetType());
+            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
+            xmlSerializer.Serialize(memoryStream, this);
+            memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
+            System.IO.StreamReader streamReader = new System.IO.StreamReader(memoryStream);
+            return streamReader.ReadToEnd();
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup into an MyElement object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output MyElement 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 MyElement obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.StringReader stringReader = new System.IO.StringReader(xml);
+                System.Xml.XmlTextReader xmlTextReader = new System.Xml.XmlTextReader(stringReader);
+                System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(MyElement));
+                obj = ((MyElement)(xmlSerializer.Deserialize(xmlTextReader)));
+                return true;
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current MyElement 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
+            {
+                string xmlString = Serialize();
+                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
+                System.IO.StreamWriter streamWriter = xmlFile.CreateText();
+                streamWriter.WriteLine(xmlString);
+                streamWriter.Close();
+                return true;
+            }
+            catch (System.Exception e)
+            {
+                exception = e;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup from file into an MyElement object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output MyElement 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 MyElement obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.FileStream file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
+                System.IO.StreamReader sr = new System.IO.StreamReader(file);
+                string xmlString = sr.ReadToEnd();
+                sr.Close();
+                file.Close();
+                return Deserialize(xmlString, out obj, out exception);
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+    }
+
+    /// <summary>
+    /// Repro
+    /// </summary>
+    public partial class NameValuePair
+    {
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string nameField;
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string valueField;
+
+        public string Name
+        {
+            get
+            {
+                return this.nameField;
+            }
+            set
+            {
+                this.nameField = value;
+            }
+        }
+
+        public string Value
+        {
+            get
+            {
+                return this.valueField;
+            }
+            set
+            {
+                this.valueField = value;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current NameValuePair object into an XML document
+        /// </summary>
+        // <returns>string XML value</returns>
+        public virtual string Serialize()
+        {
+            System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(this.GetType());
+            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
+            xmlSerializer.Serialize(memoryStream, this);
+            memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
+            System.IO.StreamReader streamReader = new System.IO.StreamReader(memoryStream);
+            return streamReader.ReadToEnd();
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup into an NameValuePair object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output NameValuePair 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 NameValuePair obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.StringReader stringReader = new System.IO.StringReader(xml);
+                System.Xml.XmlTextReader xmlTextReader = new System.Xml.XmlTextReader(stringReader);
+                System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(NameValuePair));
+                obj = ((NameValuePair)(xmlSerializer.Deserialize(xmlTextReader)));
+                return true;
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current NameValuePair 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
+            {
+                string xmlString = Serialize();
+                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
+                System.IO.StreamWriter streamWriter = xmlFile.CreateText();
+                streamWriter.WriteLine(xmlString);
+                streamWriter.Close();
+                return true;
+            }
+            catch (System.Exception e)
+            {
+                exception = e;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup from file into an NameValuePair object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output NameValuePair 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 NameValuePair obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.FileStream file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
+                System.IO.StreamReader sr = new System.IO.StreamReader(file);
+                string xmlString = sr.ReadToEnd();
+                sr.Close();
+                file.Close();
+                return Deserialize(xmlString, out obj, out exception);
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+    }
+
+    /// <summary>
+    /// Repro
+    /// </summary>
+    public partial class AttributeLists
+    {
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private List<NameValuePair> arrayOfNameValuePairField;
+
+        /// <summary>
+        /// .ctor class constructor
+        /// </summary>
+        public AttributeLists()
+        {
+            if ((this.arrayOfNameValuePairField == null))
+            {
+                this.arrayOfNameValuePairField = new List<NameValuePair>();
+            }
+        }
+
+        [System.Xml.Serialization.XmlArrayItemAttribute("NameValuePair", typeof(NameValuePair), IsNullable = false)]
+        public List<NameValuePair> ArrayOfNameValuePair
+        {
+            get
+            {
+                return this.arrayOfNameValuePairField;
+            }
+            set
+            {
+                this.arrayOfNameValuePairField = value;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current AttributeLists object into an XML document
+        /// </summary>
+        // <returns>string XML value</returns>
+        public virtual string Serialize()
+        {
+            System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(this.GetType());
+            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
+            xmlSerializer.Serialize(memoryStream, this);
+            memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
+            System.IO.StreamReader streamReader = new System.IO.StreamReader(memoryStream);
+            return streamReader.ReadToEnd();
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup into an AttributeLists object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output AttributeLists 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 AttributeLists obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.StringReader stringReader = new System.IO.StringReader(xml);
+                System.Xml.XmlTextReader xmlTextReader = new System.Xml.XmlTextReader(stringReader);
+                System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(AttributeLists));
+                obj = ((AttributeLists)(xmlSerializer.Deserialize(xmlTextReader)));
+                return true;
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current AttributeLists 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
+            {
+                string xmlString = Serialize();
+                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
+                System.IO.StreamWriter streamWriter = xmlFile.CreateText();
+                streamWriter.WriteLine(xmlString);
+                streamWriter.Close();
+                return true;
+            }
+            catch (System.Exception e)
+            {
+                exception = e;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup from file into an AttributeLists object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output AttributeLists 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 AttributeLists obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.FileStream file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
+                System.IO.StreamReader sr = new System.IO.StreamReader(file);
+                string xmlString = sr.ReadToEnd();
+                sr.Close();
+                file.Close();
+                return Deserialize(xmlString, out obj, out exception);
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+    }
+
+    /// <summary>
+    /// Repro
+    /// </summary>
+    public partial class ArrayOfNameValuePair
+    {
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private List<NameValuePair> nameValuePairField;
+
+        /// <summary>
+        /// .ctor class constructor
+        /// </summary>
+        public ArrayOfNameValuePair()
+        {
+            if ((this.nameValuePairField == null))
+            {
+                this.nameValuePairField = new List<NameValuePair>();
+            }
+        }
+
+        public List<NameValuePair> NameValuePair
+        {
+            get
+            {
+                return this.nameValuePairField;
+            }
+            set
+            {
+                this.nameValuePairField = value;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current ArrayOfNameValuePair object into an XML document
+        /// </summary>
+        // <returns>string XML value</returns>
+        public virtual string Serialize()
+        {
+            System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(this.GetType());
+            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
+            xmlSerializer.Serialize(memoryStream, this);
+            memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
+            System.IO.StreamReader streamReader = new System.IO.StreamReader(memoryStream);
+            return streamReader.ReadToEnd();
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup into an ArrayOfNameValuePair object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output ArrayOfNameValuePair 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 ArrayOfNameValuePair obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.StringReader stringReader = new System.IO.StringReader(xml);
+                System.Xml.XmlTextReader xmlTextReader = new System.Xml.XmlTextReader(stringReader);
+                System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(ArrayOfNameValuePair));
+                obj = ((ArrayOfNameValuePair)(xmlSerializer.Deserialize(xmlTextReader)));
+                return true;
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Serializes current ArrayOfNameValuePair 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
+            {
+                string xmlString = Serialize();
+                System.IO.FileInfo xmlFile = new System.IO.FileInfo(fileName);
+                System.IO.StreamWriter streamWriter = xmlFile.CreateText();
+                streamWriter.WriteLine(xmlString);
+                streamWriter.Close();
+                return true;
+            }
+            catch (System.Exception e)
+            {
+                exception = e;
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// Deserializes workflow markup from file into an ArrayOfNameValuePair object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output ArrayOfNameValuePair 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 ArrayOfNameValuePair obj, out System.Exception exception)
+        {
+            exception = null;
+            obj = null;
+            try
+            {
+                System.IO.FileStream file = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
+                System.IO.StreamReader sr = new System.IO.StreamReader(file);
+                string xmlString = sr.ReadToEnd();
+                sr.Close();
+                file.Close();
+                return Deserialize(xmlString, out obj, out exception);
+            }
+            catch (System.Exception ex)
+            {
+                exception = ex;
+                return false;
+            }
+        }
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ReproSchema.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ReproSchema.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/ReproSchema.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="ArrayOfMyElement">
+    <xs:annotation>
+      <xs:documentation>
+        The root element that wraps up all UIElements into an array that's consumed by KAF.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="MyElement" minOccurs="1" maxOccurs="unbounded" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="MyElement">
+    <xs:annotation>
+      <xs:documentation>
+        Represents a generic object in the user interface such as a button or text box.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:all>
+        <xs:element name="Name" minOccurs="1" maxOccurs="1" type="xs:token">
+          <xs:annotation>
+            <xs:documentation>
+              The name of the UI element. This name should be unique to each element, as its used as a key to
+              retrieve the element from the UIElement Factory.
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>        
+        <xs:element ref="AttributeLists" minOccurs="1" maxOccurs="1" />
+      </xs:all>
+    </xs:complexType>
+  </xs:element> 
+  <xs:element name="AttributeLists">
+    <xs:annotation>
+      <xs:documentation>
+        Repro
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="ArrayOfNameValuePair" minOccurs="1" maxOccurs="unbounded" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ArrayOfNameValuePair">
+    <xs:annotation>
+      <xs:documentation>
+        Repro
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="NameValuePair" minOccurs="1" maxOccurs="unbounded" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="NameValuePair">
+    <xs:annotation>
+      <xs:documentation>
+        Repro
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:all>
+        <xs:element name="Name" minOccurs="1" maxOccurs="1" type="xs:token">
+          <xs:annotation>
+            <xs:documentation>
+              The name of the attribute.
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="Value" minOccurs="1" maxOccurs="1" type="xs:token">
+          <xs:annotation>
+            <xs:documentation>
+              The value of the attribute.
+            </xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:all>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/StackOverFlow.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/StackOverFlow.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/StackOverFlow.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)-->
+<xs:schema xmlns:mstns="http://tempuri.org/XMLSchema1.xsd" elementFormDefault="qualified" targetNamespace="http://tempuri.org/XMLSchema1.xsd" id="XMLSchema1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="MyWrapper">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="MyElement" type="mstns:MyType" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:complexType name="MyType" abstract="true">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="MyElement" type="mstns:MyType" />
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/TestAnnotations.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/TestAnnotations.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/TestAnnotations.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--Created with Liquid XML Studio (http://www.liquid-technologies.com)-->
+<xs:schema xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.portalfiscal.inf.br/nfe" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="StaffMember" type="TActor">
+    <xs:annotation>
+      <xs:documentation>A staff member</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:complexType name="TActor">
+    <xs:annotation>
+      <xs:documentation>Represents a TActor</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="firstname" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            Gets or sets the firstname of the actor
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="lastname" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            Gets or sets the lastname of the actor
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.Designer.cs	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.Designer.cs	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,996 @@
+// ------------------------------------------------------------------------------
+//  <auto-generated>
+//    Generated by Xsd2Code. Version 3.0.0.41569
+//    <NameSpace>Xsd2Code.TestUnit</NameSpace><Collection>List</Collection><codeType>CSharp</codeType><EnableDataBinding>True</EnableDataBinding><EnableLasyLoading>False</EnableLasyLoading><HidePrivateFieldInIDE>True</HidePrivateFieldInIDE><EnableSummaryComment>True</EnableSummaryComment><IncludeSerializeMethod>True</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenerateCloneMethod>True</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net30</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>True</GenerateXMLAttributes><AutomaticProperties>False</AutomaticProperties><DisableDebug>True</DisableDebug><CustomUsings></CustomUsings>
+//  </auto-generated>
+// ------------------------------------------------------------------------------
+namespace Xsd2Code.TestUnit {
+    using System;
+    using System.Diagnostics;
+    using System.Xml.Serialization;
+    using System.Collections;
+    using System.Xml.Schema;
+    using System.ComponentModel;
+    using System.IO;
+    using System.Collections.Generic;
+    
+    
+    /// <summary>
+    /// Actor pépé class include firstname and lastname (ûàéçè).
+    /// </summary>
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+    [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
+    public partial class Actor {
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string firstnameField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string lastnameField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private bool principalActorField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private bool principalActorFieldSpecified;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string nationalityField;
+        
+        private static System.Xml.Serialization.XmlSerializer serializer;
+        
+        public Actor() {
+            this.nationalityField = "US";
+        }
+        
+        /// <summary>
+        /// Gets or sets the firstname of the actor
+        /// </summary>
+        public string firstname {
+            get {
+                return this.firstnameField;
+            }
+            set {
+                if ((this.firstnameField != null)) {
+                    if ((firstnameField.Equals(value) != true)) {
+                        this.firstnameField = value;
+                        this.OnPropertyChanged("firstname");
+                    }
+                }
+                else {
+                    this.firstnameField = value;
+                    this.OnPropertyChanged("firstname");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Gets or sets the lastname of the actor
+        /// </summary>
+        public string lastname {
+            get {
+                return this.lastnameField;
+            }
+            set {
+                if ((this.lastnameField != null)) {
+                    if ((lastnameField.Equals(value) != true)) {
+                        this.lastnameField = value;
+                        this.OnPropertyChanged("lastname");
+                    }
+                }
+                else {
+                    this.lastnameField = value;
+                    this.OnPropertyChanged("lastname");
+                }
+            }
+        }
+        
+        [System.Xml.Serialization.XmlAttributeAttribute()]
+        public bool PrincipalActor {
+            get {
+                return this.principalActorField;
+            }
+            set {
+                if ((principalActorField.Equals(value) != true)) {
+                    this.principalActorField = value;
+                    this.OnPropertyChanged("PrincipalActor");
+                }
+            }
+        }
+        
+        [System.Xml.Serialization.XmlIgnoreAttribute()]
+        public bool PrincipalActorSpecified {
+            get {
+                return this.principalActorFieldSpecified;
+            }
+            set {
+                if ((principalActorFieldSpecified.Equals(value) != true)) {
+                    this.principalActorFieldSpecified = value;
+                    this.OnPropertyChanged("PrincipalActorSpecified");
+                }
+            }
+        }
+        
+        /// <summary>
+        /// nationality of actor
+        /// </summary>
+        [System.Xml.Serialization.XmlAttributeAttribute()]
+        [System.ComponentModel.DefaultValueAttribute("US")]
+        public string nationality {
+            get {
+                return this.nationalityField;
+            }
+            set {
+                if ((this.nationalityField != null)) {
+                    if ((nationalityField.Equals(value) != true)) {
+                        this.nationalityField = value;
+                        this.OnPropertyChanged("nationality");
+                    }
+                }
+                else {
+                    this.nationalityField = value;
+                    this.OnPropertyChanged("nationality");
+                }
+            }
+        }
+        
+        private static System.Xml.Serialization.XmlSerializer Serializer {
+            get {
+                if (serializer == null) {
+                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Actor));
+                }
+                return serializer;
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        public virtual void OnPropertyChanged(string info) {
+            PropertyChangedEventHandler handler = PropertyChanged;
+            if (handler != null) {
+                handler(this, new PropertyChangedEventArgs(info));
+            }
+        }
+        
+        #region Serialize/Deserialize
+        /// <summary>
+        /// Serializes current Actor 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 Actor object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output Actor 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 Actor obj, out System.Exception exception) {
+            exception = null;
+            obj = default(Actor);
+            try {
+                obj = Deserialize(xml);
+                return true;
+            }
+            catch (System.Exception ex) {
+                exception = ex;
+                return false;
+            }
+        }
+        
+        public static bool Deserialize(string xml, out Actor obj) {
+            System.Exception exception = null;
+            return Deserialize(xml, out obj, out exception);
+        }
+        
+        public static Actor Deserialize(string xml) {
+            System.IO.StringReader stringReader = null;
+            try {
+                stringReader = new System.IO.StringReader(xml);
+                return ((Actor)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
+            }
+            finally {
+                if (stringReader != null) {
+                    stringReader.Dispose();
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Serializes current Actor 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 workflow markup from file into an Actor object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output Actor 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 Actor obj, out System.Exception exception) {
+            exception = null;
+            obj = default(Actor);
+            try {
+                obj = LoadFromFile(fileName);
+                return true;
+            }
+            catch (System.Exception ex) {
+                exception = ex;
+                return false;
+            }
+        }
+        
+        public static bool LoadFromFile(string fileName, out Actor obj) {
+            System.Exception exception = null;
+            return LoadFromFile(fileName, out obj, out exception);
+        }
+        
+        public static Actor 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 Actor object
+        /// </summary>
+        public virtual Actor Clone() {
+            return ((Actor)(this.MemberwiseClone()));
+        }
+        #endregion
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+    [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
+    public partial class DvdCollection {
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private List<dvd> dvdsField;
+        
+        private static System.Xml.Serialization.XmlSerializer serializer;
+        
+        /// <summary>
+        /// .ctor class constructor
+        /// </summary>
+        public DvdCollection() {
+            this.dvdsField = new List<dvd>();
+        }
+        
+        [System.Xml.Serialization.XmlElementAttribute("Dvds")]
+        public List<dvd> Dvds {
+            get {
+                return this.dvdsField;
+            }
+            set {
+                if ((this.dvdsField != null)) {
+                    if ((dvdsField.Equals(value) != true)) {
+                        this.dvdsField = value;
+                        this.OnPropertyChanged("Dvds");
+                    }
+                }
+                else {
+                    this.dvdsField = value;
+                    this.OnPropertyChanged("Dvds");
+                }
+            }
+        }
+        
+        private static System.Xml.Serialization.XmlSerializer Serializer {
+            get {
+                if (serializer == null) {
+                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(DvdCollection));
+                }
+                return serializer;
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        public virtual void OnPropertyChanged(string info) {
+            PropertyChangedEventHandler handler = PropertyChanged;
+            if (handler != null) {
+                handler(this, new PropertyChangedEventArgs(info));
+            }
+        }
+        
+        #region Serialize/Deserialize
+        /// <summary>
+        /// Serializes current DvdCollection 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 DvdCollection object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output DvdCollection 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 DvdCollection obj, out System.Exception exception) {
+            exception = null;
+            obj = default(DvdCollection);
+            try {
+                obj = Deserialize(xml);
+                return true;
+            }
+            catch (System.Exception ex) {
+                exception = ex;
+                return false;
+            }
+        }
+        
+        public static bool Deserialize(string xml, out DvdCollection obj) {
+            System.Exception exception = null;
+            return Deserialize(xml, out obj, out exception);
+        }
+        
+        public static DvdCollection Deserialize(string xml) {
+            System.IO.StringReader stringReader = null;
+            try {
+                stringReader = new System.IO.StringReader(xml);
+                return ((DvdCollection)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
+            }
+            finally {
+                if (stringReader != null) {
+                    stringReader.Dispose();
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Serializes current DvdCollection 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 workflow markup from file into an DvdCollection object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output DvdCollection 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 DvdCollection obj, out System.Exception exception) {
+            exception = null;
+            obj = default(DvdCollection);
+            try {
+                obj = LoadFromFile(fileName);
+                return true;
+            }
+            catch (System.Exception ex) {
+                exception = ex;
+                return false;
+            }
+        }
+        
+        public static bool LoadFromFile(string fileName, out DvdCollection obj) {
+            System.Exception exception = null;
+            return LoadFromFile(fileName, out obj, out exception);
+        }
+        
+        public static DvdCollection 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 DvdCollection object
+        /// </summary>
+        public virtual DvdCollection Clone() {
+            return ((DvdCollection)(this.MemberwiseClone()));
+        }
+        #endregion
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    public partial class dvd {
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private string titleField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private Styles styleField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private List<Actor> actorField;
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private int publishYearField;
+        
+        private static System.Xml.Serialization.XmlSerializer serializer;
+        
+        public dvd() {
+            this.actorField = new List<Actor>();
+            this.titleField = "DefaultTitle";
+            this.styleField = Styles.Action;
+        }
+        
+        [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+        public string Title {
+            get {
+                return this.titleField;
+            }
+            set {
+                if ((this.titleField != null)) {
+                    if ((titleField.Equals(value) != true)) {
+                        this.titleField = value;
+                        this.OnPropertyChanged("Title");
+                    }
+                }
+                else {
+                    this.titleField = value;
+                    this.OnPropertyChanged("Title");
+                }
+            }
+        }
+        
+        public Styles Style {
+            get {
+                return this.styleField;
+            }
+            set {
+                if ((styleField.Equals(value) != true)) {
+                    this.styleField = value;
+                    this.OnPropertyChanged("Style");
+                }
+            }
+        }
+        
+        [System.Xml.Serialization.XmlElementAttribute("Actor")]
+        public List<Actor> Actor {
+            get {
+                return this.actorField;
+            }
+            set {
+                if ((this.actorField != null)) {
+                    if ((actorField.Equals(value) != true)) {
+                        this.actorField = value;
+                        this.OnPropertyChanged("Actor");
+                    }
+                }
+                else {
+                    this.actorField = value;
+                    this.OnPropertyChanged("Actor");
+                }
+            }
+        }
+        
+        public int PublishYear {
+            get {
+                return this.publishYearField;
+            }
+            set {
+                if ((publishYearField.Equals(value) != true)) {
+                    this.publishYearField = value;
+                    this.OnPropertyChanged("PublishYear");
+                }
+            }
+        }
+        
+        private static System.Xml.Serialization.XmlSerializer Serializer {
+            get {
+                if (serializer == null) {
+                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(dvd));
+                }
+                return serializer;
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        public virtual void OnPropertyChanged(string info) {
+            PropertyChangedEventHandler handler = PropertyChanged;
+            if (handler != null) {
+                handler(this, new PropertyChangedEventArgs(info));
+            }
+        }
+        
+        #region Serialize/Deserialize
+        /// <summary>
+        /// Serializes current dvd 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 dvd object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output dvd 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 dvd obj, out System.Exception exception) {
+            exception = null;
+            obj = default(dvd);
+            try {
+                obj = Deserialize(xml);
+                return true;
+            }
+            catch (System.Exception ex) {
+                exception = ex;
+                return false;
+            }
+        }
+        
+        public static bool Deserialize(string xml, out dvd obj) {
+            System.Exception exception = null;
+            return Deserialize(xml, out obj, out exception);
+        }
+        
+        public static dvd Deserialize(string xml) {
+            System.IO.StringReader stringReader = null;
+            try {
+                stringReader = new System.IO.StringReader(xml);
+                return ((dvd)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
+            }
+            finally {
+                if (stringReader != null) {
+                    stringReader.Dispose();
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Serializes current dvd 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 workflow markup from file into an dvd object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output dvd 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 dvd obj, out System.Exception exception) {
+            exception = null;
+            obj = default(dvd);
+            try {
+                obj = LoadFromFile(fileName);
+                return true;
+            }
+            catch (System.Exception ex) {
+                exception = ex;
+                return false;
+            }
+        }
+        
+        public static bool LoadFromFile(string fileName, out dvd obj) {
+            System.Exception exception = null;
+            return LoadFromFile(fileName, out obj, out exception);
+        }
+        
+        public static dvd 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 dvd object
+        /// </summary>
+        public virtual dvd Clone() {
+            return ((dvd)(this.MemberwiseClone()));
+        }
+        #endregion
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
+    public enum Styles {
+        
+        /// <remarks/>
+        Action,
+        
+        /// <remarks/>
+        Fiction,
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
+    [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
+    public partial class Actors {
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        private List<Actor> actorField;
+        
+        private static System.Xml.Serialization.XmlSerializer serializer;
+        
+        /// <summary>
+        /// .ctor class constructor
+        /// </summary>
+        public Actors() {
+            this.actorField = new List<Actor>();
+        }
+        
+        [System.Xml.Serialization.XmlElementAttribute("Actor")]
+        public List<Actor> Actor {
+            get {
+                return this.actorField;
+            }
+            set {
+                if ((this.actorField != null)) {
+                    if ((actorField.Equals(value) != true)) {
+                        this.actorField = value;
+                        this.OnPropertyChanged("Actor");
+                    }
+                }
+                else {
+                    this.actorField = value;
+                    this.OnPropertyChanged("Actor");
+                }
+            }
+        }
+        
+        private static System.Xml.Serialization.XmlSerializer Serializer {
+            get {
+                if (serializer == null) {
+                    serializer = new System.Xml.Serialization.XmlSerializer(typeof(Actors));
+                }
+                return serializer;
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        public virtual void OnPropertyChanged(string info) {
+            PropertyChangedEventHandler handler = PropertyChanged;
+            if (handler != null) {
+                handler(this, new PropertyChangedEventArgs(info));
+            }
+        }
+        
+        #region Serialize/Deserialize
+        /// <summary>
+        /// Serializes current Actors 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 Actors object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output Actors 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 Actors obj, out System.Exception exception) {
+            exception = null;
+            obj = default(Actors);
+            try {
+                obj = Deserialize(xml);
+                return true;
+            }
+            catch (System.Exception ex) {
+                exception = ex;
+                return false;
+            }
+        }
+        
+        public static bool Deserialize(string xml, out Actors obj) {
+            System.Exception exception = null;
+            return Deserialize(xml, out obj, out exception);
+        }
+        
+        public static Actors Deserialize(string xml) {
+            System.IO.StringReader stringReader = null;
+            try {
+                stringReader = new System.IO.StringReader(xml);
+                return ((Actors)(Serializer.Deserialize(System.Xml.XmlReader.Create(stringReader))));
+            }
+            finally {
+                if (stringReader != null) {
+                    stringReader.Dispose();
+                }
+            }
+        }
+        
+        /// <summary>
+        /// Serializes current Actors 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 workflow markup from file into an Actors object
+        /// </summary>
+        // <param name="xml">string workflow markup to deserialize</param>
+        // <param name="obj">Output Actors 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 Actors obj, out System.Exception exception) {
+            exception = null;
+            obj = default(Actors);
+            try {
+                obj = LoadFromFile(fileName);
+                return true;
+            }
+            catch (System.Exception ex) {
+                exception = ex;
+                return false;
+            }
+        }
+        
+        public static bool LoadFromFile(string fileName, out Actors obj) {
+            System.Exception exception = null;
+            return LoadFromFile(fileName, out obj, out exception);
+        }
+        
+        public static Actors 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 Actors object
+        /// </summary>
+        public virtual Actors Clone() {
+            return ((Actors)(this.MemberwiseClone()));
+        }
+        #endregion
+    }
+}

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.xsd
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.xsd	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.xsd	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--Created with Liquid XML Studio - FREE Community Edition (http://www.liquid-technologies.com)-->
+<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" id="Dvd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:include schemaLocation="Actor.xsd" />
+  <xs:element name="DvdCollection">
+    <xs:complexType>
+      <xs:sequence maxOccurs="unbounded">
+        <xs:element name="Dvds" type="dvd" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="Actors">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element maxOccurs="unbounded" ref="Actor" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:complexType name="dvd">
+    <xs:sequence>
+      <xs:element name="Title" nillable="true" default="DefaultTitle" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+              Gets or sets the title of dvd.
+            </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element default="Action" name="Style" type="Styles" />
+      <xs:element maxOccurs="unbounded" ref="Actor">
+        <xs:annotation>
+          <xs:documentation>
+              Represent the actor list
+              The list include Firstname and last name of the actor.
+            </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="PublishYear" type="xs:int" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:simpleType name="Styles">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Action" />
+      <xs:enumeration value="Fiction" />
+    </xs:restriction>
+  </xs:simpleType>
+</xs:schema>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.xsx
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.xsx	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.TestUnit/xsd/dvd.xsx	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--This file is auto-generated by the XML Schema Designer. It holds layout information for components on the designer surface.-->
+<XSDDesignerLayout Style="LeftRight" layoutVersion="2" viewPortLeft="3022" viewPortTop="782" zoom="150">
+    <DvdCollection_XmlElement left="4022" top="1782" width="5891" height="3016" selected="0" zOrder="1" index="0" expanded="1">
+        <ref_x003D_dvds_XmlElement left="10556" top="1782" width="5292" height="3016" selected="0" zOrder="6" index="0" expanded="1">
+            <ref_x003D_Actor_XmlElement left="16482" top="1782" width="5292" height="3016" selected="0" zOrder="9" index="2" expanded="0" />
+        </ref_x003D_dvds_XmlElement>
+    </DvdCollection_XmlElement>
+    <Actor_XmlElement left="4128" top="8626" width="5732" height="3016" selected="0" zOrder="2" index="1" expanded="1" />
+    <dvds_XmlElement left="4039" top="5151" width="5857" height="3016" selected="0" zOrder="3" index="2" expanded="1">
+        <ref_x003D_Actor_XmlElement left="10530" top="5151" width="5292" height="3016" selected="0" zOrder="12" index="2" expanded="1" />
+    </dvds_XmlElement>
+</XSDDesignerLayout>
\ No newline at end of file

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.sln
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.sln	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.sln	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,88 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xsd2Code", "Xsd2Code.Console\Xsd2Code.csproj", "{020AC7D1-E8FD-47CA-B162-9738FA4E2348}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xsd2Code.Library", "Xsd2Code.Library\Xsd2Code.Library.csproj", "{1B59FB12-699C-4927-ACA3-D7F0E0F79100}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xsd2Code.TestUnit", "Xsd2Code.TestUnit\Xsd2Code.TestUnit.csproj", "{76D1A3F3-DBA4-4236-B882-52031598757A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xsd2Code.Addin", "Xsd2Code.Addin\Xsd2Code.Addin.csproj", "{45D359A7-1E3E-4988-8774-DB96AF49C59A}"
+EndProject
+Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Xsd2Code.Setup", "Xsd2Code.Setup\Xsd2Code.Setup.vdproj", "{58F8EB12-2466-498B-903B-3D1C604975C4}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xsd2Code.SetupLibrary", "Xsd2Code.SetupLibrary\Xsd2Code.SetupLibrary.csproj", "{FA90BBEB-8D22-4568-8742-718D7FA355AE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xsd2Code.CustomTool", "Xsd2Code.CustomTool\Xsd2Code.CustomTool.csproj", "{7CD3B99F-0999-4054-80ED-B0977D723AFD}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F9908FD4-95AF-43DF-A6E3-C4A85F37EDCC}"
+	ProjectSection(SolutionItems) = preProject
+		Xsd2Code.vsmdi = Xsd2Code.vsmdi
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(TeamFoundationVersionControl) = preSolution
+		SccNumberOfProjects = 8
+		SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
+		SccTeamFoundationServer = https://tfs04.codeplex.com/
+		SccLocalPath0 = .
+		SccProjectUniqueName1 = Xsd2Code.Addin\\Xsd2Code.Addin.csproj
+		SccProjectName1 = Xsd2Code.Addin
+		SccLocalPath1 = Xsd2Code.Addin
+		SccProjectUniqueName2 = Xsd2Code.Console\\Xsd2Code.csproj
+		SccProjectName2 = Xsd2Code.Console
+		SccLocalPath2 = Xsd2Code.Console
+		SccProjectUniqueName3 = Xsd2Code.Library\\Xsd2Code.Library.csproj
+		SccProjectName3 = Xsd2Code.Library
+		SccLocalPath3 = Xsd2Code.Library
+		SccProjectUniqueName4 = Xsd2Code.TestUnit\\Xsd2Code.TestUnit.csproj
+		SccProjectName4 = Xsd2Code.TestUnit
+		SccLocalPath4 = Xsd2Code.TestUnit
+		SccProjectUniqueName5 = Xsd2Code.Setup\\Xsd2Code.Setup.vdproj
+		SccProjectName5 = Xsd2Code.Setup
+		SccLocalPath5 = Xsd2Code.Setup
+		SccProjectUniqueName6 = Xsd2Code.SetupLibrary\\Xsd2Code.SetupLibrary.csproj
+		SccProjectName6 = Xsd2Code.SetupLibrary
+		SccLocalPath6 = Xsd2Code.SetupLibrary
+		SccProjectUniqueName7 = Xsd2Code.CustomTool\\Xsd2Code.CustomTool.csproj
+		SccProjectName7 = Xsd2Code.CustomTool
+		SccLocalPath7 = Xsd2Code.CustomTool
+	EndGlobalSection
+	GlobalSection(TestCaseManagementSettings) = postSolution
+		CategoryFile = Xsd2Code.vsmdi
+	EndGlobalSection
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{020AC7D1-E8FD-47CA-B162-9738FA4E2348}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{020AC7D1-E8FD-47CA-B162-9738FA4E2348}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{020AC7D1-E8FD-47CA-B162-9738FA4E2348}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{020AC7D1-E8FD-47CA-B162-9738FA4E2348}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1B59FB12-699C-4927-ACA3-D7F0E0F79100}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1B59FB12-699C-4927-ACA3-D7F0E0F79100}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1B59FB12-699C-4927-ACA3-D7F0E0F79100}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1B59FB12-699C-4927-ACA3-D7F0E0F79100}.Release|Any CPU.Build.0 = Release|Any CPU
+		{76D1A3F3-DBA4-4236-B882-52031598757A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{76D1A3F3-DBA4-4236-B882-52031598757A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{76D1A3F3-DBA4-4236-B882-52031598757A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{76D1A3F3-DBA4-4236-B882-52031598757A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{45D359A7-1E3E-4988-8774-DB96AF49C59A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{45D359A7-1E3E-4988-8774-DB96AF49C59A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{45D359A7-1E3E-4988-8774-DB96AF49C59A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{45D359A7-1E3E-4988-8774-DB96AF49C59A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{58F8EB12-2466-498B-903B-3D1C604975C4}.Debug|Any CPU.ActiveCfg = Debug
+		{58F8EB12-2466-498B-903B-3D1C604975C4}.Release|Any CPU.ActiveCfg = Release
+		{FA90BBEB-8D22-4568-8742-718D7FA355AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{FA90BBEB-8D22-4568-8742-718D7FA355AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{FA90BBEB-8D22-4568-8742-718D7FA355AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{FA90BBEB-8D22-4568-8742-718D7FA355AE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7CD3B99F-0999-4054-80ED-B0977D723AFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7CD3B99F-0999-4054-80ED-B0977D723AFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7CD3B99F-0999-4054-80ED-B0977D723AFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7CD3B99F-0999-4054-80ED-B0977D723AFD}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

Added: sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.vsmdi
===================================================================
--- sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.vsmdi	                        (rev 0)
+++ sandbox/maestro-2.5/Thirdparty/Xsd2Code/Xsd2Code.vsmdi	2010-05-21 07:18:48 UTC (rev 4918)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TestLists xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">
+  <TestList name="Lists of Tests" id="8c43106b-9dc1-4907-a29f-aa66a61bf5b6" />
+</TestLists>
\ No newline at end of file



More information about the mapguide-commits mailing list