[mapguide-commits] r8479 - in trunk/Tools/Maestro: . Doc Doc/Images Doc/Topics Maestro MaestroAPITests OSGeo.MapGuide.MaestroAPI OSGeo.MapGuide.MaestroAPI/CrossConnection OSGeo.MapGuide.MaestroAPI/Feature OSGeo.MapGuide.MaestroAPI/Mapping OSGeo.MapGuide.MaestroAPI/Resource OSGeo.MapGuide.MaestroAPI/Resource/Conversion OSGeo.MapGuide.MaestroAPI/Resource/Preview OSGeo.MapGuide.MaestroAPI/Resource/Validation OSGeo.MapGuide.MaestroAPI/Schema OSGeo.MapGuide.MaestroAPI.Tests OSGeo.MapGuide.MaestroAPI.Tests/Resource OSGeo.MapGuide.ObjectModels

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Sun Dec 28 20:46:11 PST 2014


Author: jng
Date: 2014-12-28 20:46:11 -0800 (Sun, 28 Dec 2014)
New Revision: 8479

Added:
   trunk/Tools/Maestro/Doc/Images/ObjectModelsClassDiagram.png
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/Resource/
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/Resource/ResourceSchemaChainTests.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/CoreTypes.cd
Modified:
   trunk/Tools/Maestro/Doc/Images/CoreTypesClassDiagram.png
   trunk/Tools/Maestro/Doc/MaestroAPI.shfbproj
   trunk/Tools/Maestro/Doc/Topics/ClassDiagram.aml
   trunk/Tools/Maestro/Doc/Topics/Concept_ObjectModels.aml
   trunk/Tools/Maestro/Doc/Topics/Deployment_AspNet.aml
   trunk/Tools/Maestro/Doc/Topics/Deployment_Desktop.aml
   trunk/Tools/Maestro/Doc/Topics/GettingStarted.aml
   trunk/Tools/Maestro/Doc/Topics/Welcome.aml
   trunk/Tools/Maestro/Maestro/Maestro.csproj
   trunk/Tools/Maestro/MaestroAPITests/ConnectionTestBase.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/OSGeo.MapGuide.MaestroAPI.Tests.csproj
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoreTypes.cd
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CredentialWriter.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceRebaser.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/IFeatureReader.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ImageSymbolConverter.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Preview/IResourcePreviewUrlGenerator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Preview/ResourcePreviewUrlGenerator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorLoader.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj
   trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs
   trunk/Tools/Maestro/UnitTests.playlist
Log:
Fix up Maestro API documentation in light of #2513. Add more code examples and expand the test suite a little bit more.

Modified: trunk/Tools/Maestro/Doc/Images/CoreTypesClassDiagram.png
===================================================================
(Binary files differ)

Added: trunk/Tools/Maestro/Doc/Images/ObjectModelsClassDiagram.png
===================================================================
(Binary files differ)


Property changes on: trunk/Tools/Maestro/Doc/Images/ObjectModelsClassDiagram.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: trunk/Tools/Maestro/Doc/MaestroAPI.shfbproj
===================================================================
--- trunk/Tools/Maestro/Doc/MaestroAPI.shfbproj	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/Doc/MaestroAPI.shfbproj	2014-12-29 04:46:11 UTC (rev 8479)
@@ -8,7 +8,7 @@
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{cb4aa0db-a135-4a98-ab15-f31e8e964b91}</ProjectGuid>
-    <SHFBSchemaVersion>1.9.3.0</SHFBSchemaVersion>
+    <SHFBSchemaVersion>1.9.9.0</SHFBSchemaVersion>
     <!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual
          Studio adds them anyway -->
     <AssemblyName>Documentation</AssemblyName>
@@ -17,57 +17,73 @@
     <!-- SHFB properties -->
     <OutputPath>.\Help\</OutputPath>
     <HtmlHelpName>MaestroAPI</HtmlHelpName>
-    <FrameworkVersion>.NET 4.0.30319</FrameworkVersion>
+    <FrameworkVersion>.NET Framework 4.0</FrameworkVersion>
     <HelpTitle>MapGuide Maestro API Documentation</HelpTitle>
     <IndentHtml>True</IndentHtml>
-    <PresentationStyle>vs2010</PresentationStyle>
+    <PresentationStyle>VS2013</PresentationStyle>
     <SandcastlePath>
     </SandcastlePath>
     <DocumentationSources>
       <DocumentationSource sourceFile="..\SDK\addin-bin\Maestro.Base.dll" />
-      <DocumentationSource sourceFile="..\SDK\addin-bin\Maestro.Base.xml" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.Editors.dll" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.Editors.xml" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.Login.dll" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.Login.xml" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.Packaging.dll" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.Packaging.xml" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.Shared.UI.dll" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.Shared.UI.xml" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.MapViewer.dll" />
-      <DocumentationSource sourceFile="..\SDK\bin\Maestro.MapViewer.xml" />
-      <DocumentationSource sourceFile="..\SDK\bin\OSGeo.MapGuide.ExtendedObjectModels.dll" />
-      <DocumentationSource sourceFile="..\SDK\bin\OSGeo.MapGuide.ExtendedObjectModels.xml" />
-      <DocumentationSource sourceFile="..\SDK\bin\OSGeo.MapGuide.MaestroAPI.dll" />
-      <DocumentationSource sourceFile="..\SDK\bin\OSGeo.MapGuide.MaestroAPI.xml" />
-    </DocumentationSources>
+<DocumentationSource sourceFile="..\SDK\addin-bin\Maestro.Base.xml" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.Editors.dll" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.Editors.xml" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.Login.dll" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.Login.xml" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.MapViewer.dll" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.MapViewer.xml" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.Packaging.dll" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.Packaging.xml" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.Shared.UI.dll" />
+<DocumentationSource sourceFile="..\SDK\bin\Maestro.Shared.UI.xml" />
+<DocumentationSource sourceFile="..\SDK\bin\OSGeo.MapGuide.MaestroAPI.dll" />
+<DocumentationSource sourceFile="..\SDK\bin\OSGeo.MapGuide.MaestroAPI.xml" />
+<DocumentationSource sourceFile="..\SDK\bin\OSGeo.MapGuide.ObjectModels.dll" />
+<DocumentationSource sourceFile="..\SDK\bin\OSGeo.MapGuide.ObjectModels.xml" /></DocumentationSources>
     <VisibleItems>Attributes, InheritedMembers, Protected, SealedProtected</VisibleItems>
     <ApiFilter>
-      <Filter entryType="Namespace" fullName="Aga.Controls" isExposed="False" />
       <Filter entryType="Namespace" fullName="Maestro.Editors.FeatureSource.Preview" isExposed="False" />
-      <Filter entryType="Namespace" fullName="Maestro.Editors.FeatureSource.Providers.Odbc" isExposed="False" />
-      <Filter entryType="Namespace" fullName="Maestro.Editors.FeatureSource.Providers.Odbc.Drivers" isExposed="False" />
-      <Filter entryType="Namespace" fullName="Maestro.Editors.LayerDefinition.Vector.Scales" isExposed="False" />
-      <Filter entryType="Namespace" fullName="Maestro.Editors.LayerDefinition.Vector.StyleEditors" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.ApplicationDefinition_1_0_0" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.DrawingSource_1_0_0" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LayerDefinition_1_0_0" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LoadProcedure_1_0_0" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.MapDefinition_1_0_0" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_0_0" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.SymbolLibrary_1_0_0" isExposed="False" />
-      <Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.WebLayout_1_0_0" isExposed="False" />
-    </ApiFilter>
+<Filter entryType="Namespace" fullName="Maestro.Editors.FeatureSource.Providers.Odbc" isExposed="False" />
+<Filter entryType="Namespace" fullName="Maestro.Editors.FeatureSource.Providers.Odbc.Drivers" isExposed="False" />
+<Filter entryType="Namespace" fullName="Maestro.Editors.LayerDefinition.Vector.Scales" isExposed="False" />
+<Filter entryType="Namespace" fullName="Maestro.Editors.LayerDefinition.Vector.StyleEditors" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.ApplicationDefinition.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.Capabilities.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.Capabilities.v1_1_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.DrawingSource.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.FeatureSource.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LayerDefinition.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LayerDefinition.v1_1_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LayerDefinition.v1_2_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LayerDefinition.v1_3_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LayerDefinition.v2_3_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LayerDefinition.v2_4_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LoadProcedure.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LoadProcedure.v1_1_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.LoadProcedure.v2_2_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.MapDefinition.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.MapDefinition.v2_3_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.MapDefinition.v2_4_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.PrintLayout.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.RuntimeMap.v2_6_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.SymbolDefinition.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.SymbolDefinition.v1_1_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.SymbolDefinition.v2_4_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.SymbolLibrary.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.WatermarkDefinition.v2_3_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.WatermarkDefinition.v2_4_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.WebLayout.v1_0_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.WebLayout.v1_1_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.WebLayout.v2_4_0" isExposed="False" />
+<Filter entryType="Namespace" fullName="OSGeo.MapGuide.ObjectModels.WebLayout.v2_6_0" isExposed="False" /></ApiFilter>
     <SdkLinkType>None</SdkLinkType>
-    <FeedbackEMailAddress>jumpinjackie at gmail.com</FeedbackEMailAddress>
+    <FeedbackEMailAddress>jumpinjackie%40gmail.com</FeedbackEMailAddress>
     <WebsiteSdkLinkType>None</WebsiteSdkLinkType>
     <HtmlSdkLinkType>None</HtmlSdkLinkType>
     <MSHelp2SdkLinkType>None</MSHelp2SdkLinkType>
     <MSHelpViewerSdkLinkType>None</MSHelpViewerSdkLinkType>
     <CopyrightText>%28c%29 2013, Jackie Ng</CopyrightText>
-    <SyntaxFilters>CSharp, VisualBasic, CPlusPlus, FSharp, AspNet</SyntaxFilters>
+    <SyntaxFilters>C#, Visual Basic, Managed C++, F#, ASP.NET</SyntaxFilters>
     <RootNamespaceContainer>True</RootNamespaceContainer>
     <Preliminary>False</Preliminary>
     <MissingTags>Summary, Parameter, Returns, AutoDocumentCtors, Namespace, TypeParameter, AutoDocumentDispose</MissingTags>
@@ -76,6 +92,12 @@
 &lt%3b/summary&gt%3b</ProjectSummary>
     <RootNamespaceTitle>API Reference</RootNamespaceTitle>
     <IncludeFavorites>True</IncludeFavorites>
+    <MaximumGroupParts>2</MaximumGroupParts>
+    <NamespaceGrouping>False</NamespaceGrouping>
+    <SdkLinkTarget>Blank</SdkLinkTarget>
+    <NamingMethod>Guid</NamingMethod>
+    <Language>en-US</Language>
+    <ContentPlacement>AboveNamespaces</ContentPlacement>
   </PropertyGroup>
   <!-- There are no properties for these groups.  AnyCPU needs to appear in
        order for Visual Studio to perform the build.  The others are optional
@@ -130,6 +152,10 @@
     <Folder Include="Topics\" />
   </ItemGroup>
   <ItemGroup>
+    <Image Include="Images\ObjectModelsClassDiagram.png">
+      <ImageId>ObjectModelsClassDiagram</ImageId>
+      <AlternateText>Object Models Class Diagram</AlternateText>
+    </Image>
     <Image Include="Images\CoreTypesClassDiagram.png">
       <ImageId>CoreTypesClassDiagram</ImageId>
       <AlternateText>Core Types Class Diagram</AlternateText>

Modified: trunk/Tools/Maestro/Doc/Topics/ClassDiagram.aml
===================================================================
--- trunk/Tools/Maestro/Doc/Topics/ClassDiagram.aml	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/Doc/Topics/ClassDiagram.aml	2014-12-29 04:46:11 UTC (rev 8479)
@@ -42,6 +42,31 @@
           </section>
       </sections> -->
     </section>
+    <section address="ObjectModelsClassDiagramSection">
+      <title>Class Diagram: MapGuide Object Model Core Types</title>
+      <content>
+        <!-- Uncomment this to create a sub-section outline
+        <autoOutline /> -->
+        <para>The following class diagram outlines the core classes and interfaces of the Maestro API</para>
+        <mediaLink><image xlink:href="ObjectModelsClassDiagram" placement="center" /></mediaLink>
+      </content>
+      <!-- If a section contains a sections element, its content creates
+           sub-sections.  These are not collapsible.
+      <sections>
+          <section address="SubSection1">
+              <title>Sub-section 1</title>
+              <content>
+                  <para>Sub-section content.</para>
+              </content>
+          </section>
+          <section address="SubSection2">
+              <title>Sub-section 2</title>
+              <content>
+                  <para>Sub-section content.</para>
+              </content>
+          </section>
+      </sections> -->
+    </section>
     <relatedTopics>
       <!-- One or more of the following:
            - A local link

Modified: trunk/Tools/Maestro/Doc/Topics/Concept_ObjectModels.aml
===================================================================
--- trunk/Tools/Maestro/Doc/Topics/Concept_ObjectModels.aml	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/Doc/Topics/Concept_ObjectModels.aml	2014-12-29 04:46:11 UTC (rev 8479)
@@ -146,8 +146,9 @@
 		  </row>
 		</table>
 		<para>
-		To determine whether a given interface is accessible, you can either check the <codeEntityReference qualifyHint="false">P:OSGeo.MapGuide.MaestroAPI.Resource.IVersionedEntity.ResourceVersion</codeEntityReference> and refer
-		to this table to see if these interfaces can be casted from their older versions. Or you can utilise language features such as C#'s 
+		To determine whether a given interface is accessible, you can either check the <codeEntityReference qualifyHint="false">P:OSGeo.MapGuide.ObjectModels.IVersionedEntity.ResourceVersion</codeEntityReference> and refer
+		to this table to see if these interfaces can be casted from their older versions. Or you can utilise language features such as C#'s as keyword to cast objects to specific interfaces. If the casted object is not null, then that
+		interface is supported
 		</para>
       </content>
     </section>

Modified: trunk/Tools/Maestro/Doc/Topics/Deployment_AspNet.aml
===================================================================
--- trunk/Tools/Maestro/Doc/Topics/Deployment_AspNet.aml	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/Doc/Topics/Deployment_AspNet.aml	2014-12-29 04:46:11 UTC (rev 8479)
@@ -28,20 +28,12 @@
 		</para>
 		<list class="bullet">
 		  <listItem><para>OSGeo.MapGuide.MaestroAPI.dll</para></listItem>
+          <listItem><para>OSGeo.MapGuide.ObjectModels.dll</para></listItem>
 		  <listItem><para>ConnectionProviders.xml</para></listItem>
 		  <listItem><para>Ciloci.Flee.dll</para></listItem>
 		  <listItem><para>NetTopologySuite.Merged.dll</para></listItem>
 		  <listItem><para>OSGeo.MapGuide.MaestroAPI.Http.dll</para></listItem>
 		</list>
-		<para>
-		In addition, if you have referenced the OSGeo.MapGuide.ExtenedObjectModels assembly
-		and need to support all known resource versions (greater than v1.0.0), then your application needs to
-		include the following additional binaries in your application's bin directory:
-		</para>
-		<list class="bullet">
-		  <listItem><para>OSGeo.MapGuide.ExtendedObjectModels.dll</para></listItem>
-		  <listItem><para>OSGeo.MapGuide.ObjectModels.*.dll</para></listItem>
-		</list>
       </content>
 	</section>
 	<section address="OptionalAspNetLibs">

Modified: trunk/Tools/Maestro/Doc/Topics/Deployment_Desktop.aml
===================================================================
--- trunk/Tools/Maestro/Doc/Topics/Deployment_Desktop.aml	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/Doc/Topics/Deployment_Desktop.aml	2014-12-29 04:46:11 UTC (rev 8479)
@@ -28,20 +28,12 @@
 		</para>
 		<list class="bullet">
 		  <listItem><para>OSGeo.MapGuide.MaestroAPI.dll</para></listItem>
+		  <listItem><para>OSGeo.MapGuide.ObjectModels.dll</para></listItem>
 		  <listItem><para>ConnectionProviders.xml</para></listItem>
 		  <listItem><para>Ciloci.Flee.dll</para></listItem>
 		  <listItem><para>NetTopologySuite.Merged.dll</para></listItem>
 		  <listItem><para>OSGeo.MapGuide.MaestroAPI.Http.dll</para></listItem>
 		</list>
-		<para>
-		In addition, if you have referenced the OSGeo.MapGuide.ExtenedObjectModels assembly
-		and need to support all known resource versions (greater than v1.0.0), then your application needs to
-		include the following additional binaries:
-		</para>
-		<list class="bullet">
-		  <listItem><para>OSGeo.MapGuide.ExtendedObjectModels.dll</para></listItem>
-		  <listItem><para>OSGeo.MapGuide.ObjectModels.*.dll</para></listItem>
-		</list>
       </content>
     </section>
     <section address="OptionalDesktopLibs">

Modified: trunk/Tools/Maestro/Doc/Topics/GettingStarted.aml
===================================================================
--- trunk/Tools/Maestro/Doc/Topics/GettingStarted.aml	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/Doc/Topics/GettingStarted.aml	2014-12-29 04:46:11 UTC (rev 8479)
@@ -56,8 +56,8 @@
         <!-- Uncomment this to create a sub-section outline
         <autoOutline /> -->
         <para>
-        To use the Maestro API in your project, your application must target the .net Framework 2.0 or higher. You can use
-        any version (and any edition) of Visual Studio that supports targeting the .net Framework 2.0 or higher.
+        To use the Maestro API in your project, your application must target the .net Framework 4.0 or higher. You can use
+        any version (and any edition) of Visual Studio that supports targeting the .net Framework 4.0 or higher.
         </para>
       </content>
     </section>
@@ -67,7 +67,7 @@
         <!-- Uncomment this to create a sub-section outline
         <autoOutline /> -->
         <para>
-        To use the Maestro API in your project, simply reference the OSGeo.MapGuide.MaestroAPI assembly from the SDK.
+        To use the Maestro API in your project, simply reference the OSGeo.MapGuide.MaestroAPI and OSGeo.MapGuide.ObjectModels assemblies from the SDK.
         </para>
         <para>
         Also ensure that the ConnectionProviders.xml file is also copied to your application's output directory. If you want to use certain
@@ -76,35 +76,6 @@
         </para>
       </content>
     </section>
-	<section address="ExtendedModelSetup">
-      <title>Setting up extended model support</title>
-      <content>
-        <!-- Uncomment this to create a sub-section outline
-        <autoOutline /> -->
-        <para>
-        The Maestro API understands and supports all known schema versions of every resource. If your application only references
-        the OSGeo.MapGuide.MaestroAPI assembly, it will only recognise v1.0.0 resources. Newer versions will return an <codeEntityReference qualifyHint="false">T:OSGeo.MapGuide.ObjectModels.UntypedResource</codeEntityReference> if you
-        are to retrieve a resource via <codeEntityReference qualifyHint="false" autoUpgrade="true">M:OSGeo.MapGuide.MaestroAPI.Services.IResourceService.GetResource(System.String)</codeEntityReference>.
-        
-        Such objects are basically arbitrary containers of XML content.
-        </para>
-        <para>
-        For your application to recognise all supported resource schema versions, and to have the above APIs return strongly typed objects,
-        you will need to also reference the OSGeo.MapGuide.ExtendedObjectModels assembly and have all OSGeo.MapGuide.ObjectModels.* assemblies
-        copied to your application's output directory (which referencing the ExtendedObjectModels assembly should automatically do)
-        
-        Then in your application's entry point, add the following line of code:
-        </para>
-		<code language="cs"> 
-		ModelSetup.Initialize();
-		</code>
-		<para>
-		This line of code will automatically register the additional schema versions with the Maestro API. For an ASP.net application,
-		you can use the Application_Start() entry point in Global.asax to add this line of code. For ASP.net MVC and other .net-based
-		web frameworks, look for a similar initialization entry point to insert this line of code.
-		</para>
-      </content>
-    </section>
     <relatedTopics>
       <!-- One or more of the following:
            - A local link

Modified: trunk/Tools/Maestro/Doc/Topics/Welcome.aml
===================================================================
--- trunk/Tools/Maestro/Doc/Topics/Welcome.aml	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/Doc/Topics/Welcome.aml	2014-12-29 04:46:11 UTC (rev 8479)
@@ -12,7 +12,7 @@
         </para>
         <list class="bullet">
            <listItem><para>The Maestro API core (OSGeo.MapGuide.MaestroAPI.dll)</para></listItem>
-           <listItem><para>The Maestro Extended Object Model Helper (OSGeo.MapGuide.ExtendedObjectModels.dll)</para></listItem>
+           <listItem><para>The Maestro Extended Object Model Helper (OSGeo.MapGuide.ObjectModels.dll)</para></listItem>
         </list>
         <para>
         For building GUI applications, you can tap into the Maestro UI components, which consist of:

Modified: trunk/Tools/Maestro/Maestro/Maestro.csproj
===================================================================
--- trunk/Tools/Maestro/Maestro/Maestro.csproj	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/Maestro/Maestro.csproj	2014-12-29 04:46:11 UTC (rev 8479)
@@ -111,10 +111,6 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\Thirdparty\NTS\NetTopologySuite.Merged.dll</HintPath>
     </Reference>
-    <Reference Include="OSGeo.MapGuide.ExtendedObjectModels, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\SDK\bin\OSGeo.MapGuide.ExtendedObjectModels.dll</HintPath>
-    </Reference>
     <Reference Include="OSGeo.MapGuide.MaestroAPI, Version=3.0.0.5475, Culture=neutral, PublicKeyToken=f526c48929fda856, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\SDK\bin\OSGeo.MapGuide.MaestroAPI.dll</HintPath>

Modified: trunk/Tools/Maestro/MaestroAPITests/ConnectionTestBase.cs
===================================================================
--- trunk/Tools/Maestro/MaestroAPITests/ConnectionTestBase.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/MaestroAPITests/ConnectionTestBase.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -467,10 +467,7 @@
             fs.ResourceID = fsId;
             conn.ResourceService.SaveResource(fs);
 
-            using (var ms = CredentialWriter.Write(actualUser, actualPass))
-            {
-                conn.ResourceService.SetResourceData(fsId, "MG_USER_CREDENTIALS", ResourceDataType.String, ms);
-            }
+            fs.SetEncryptedCredentials(conn, actualUser, actualPass);
 
             string result = conn.FeatureService.TestConnection(fsId);
             Assert.AreEqual("TRUE", result.ToUpper());

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoreTypes.cd
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoreTypes.cd	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoreTypes.cd	2014-12-29 04:46:11 UTC (rev 8479)
@@ -1,232 +1,203 @@
 <?xml version="1.0" encoding="utf-8"?>
 <ClassDiagram MajorVersion="1" MinorVersion="1" GroupingSetting="Access">
   <Comment CommentText="Runtime Map Classes">
-    <Position X="24.124" Y="1.189" Height="0.311" Width="2.759" />
+    <Position X="3.856" Y="7.847" Height="0.311" Width="2.759" />
   </Comment>
   <Comment CommentText="Maestro API root classes / interfaces">
-    <Position X="23.786" Y="6.767" Height="0.441" Width="2.653" />
+    <Position X="1.25" Y="13" Height="0.441" Width="2.653" />
   </Comment>
-  <Comment CommentText="Resource Object Model - Core Interfaces">
-    <Position X="11.447" Y="1.277" Height="0.38" Width="2.691" />
-  </Comment>
   <Comment CommentText="Services API - Core Interfaces">
-    <Position X="7.741" Y="7.09" Height="0.402" Width="2.215" />
+    <Position X="7.491" Y="1.59" Height="0.402" Width="2.215" />
   </Comment>
-  <Comment CommentText="The UntypedResource class is an arbitrary container of XML content and is only returned by any API that returns IResource if the resource schema version is not recognised or not supported yet">
-    <Position X="7.26" Y="2.033" Height="1.032" Width="2.744" />
-  </Comment>
   <Comment CommentText="Use IServerConnection.GetService(int) to create service objects of the specified type, passing in a ServiceType enum casted to an int. Use connection capabilities to determine supported services. All IServerConnection implementations have built-in support for resource and feature services and are accessible  via the top-level ResourceService and FeatureService properties.">
-    <Position X="11.946" Y="6.668" Height="1.073" Width="4.942" />
+    <Position X="11.696" Y="1.168" Height="1.073" Width="4.942" />
   </Comment>
   <Comment CommentText="The IMappingService provides operations to create, open and interact with a RuntimeMap and methods to create RuntimeMapLayer and RuntimeMapGroup instances that can then be added to the RuntimeMap">
-    <Position X="24.11" Y="1.653" Height="0.984" Width="3.113" />
+    <Position X="3.81" Y="8.406" Height="0.984" Width="3.113" />
   </Comment>
   <Comment CommentText="Schema API - Classes used to model the structure of a Feature Source">
-    <Position X="22.665" Y="9.539" Height="0.353" Width="4.34" />
+    <Position X="10.5" Y="9.5" Height="0.353" Width="4.34" />
   </Comment>
   <Comment CommentText="A FeatureSourceDescription contains 1 or more FeatureSchema instances">
-    <Position X="22.665" Y="10.171" Height="0.316" Width="4.327" />
+    <Position X="10.5" Y="10.132" Height="0.316" Width="4.327" />
   </Comment>
   <Comment CommentText="A FeatureSchema contains 1 or more ClassDefinition instances">
-    <Position X="22.665" Y="10.543" Height="0.341" Width="4.327" />
+    <Position X="10.5" Y="10.504" Height="0.341" Width="4.327" />
   </Comment>
   <Comment CommentText="A ClassDefinition contains 1 or more PropertyDefinition instances">
-    <Position X="22.665" Y="10.927" Height="0.341" Width="4.327" />
+    <Position X="10.5" Y="10.888" Height="0.341" Width="4.327" />
   </Comment>
   <Comment CommentText="Accessing and creating instances of other classes and interfaces in this diagram is usually done through one of these 4 classes/interfaces">
-    <Position X="23.801" Y="7.423" Height="0.75" Width="2.642" />
+    <Position X="4.169" Y="12.867" Height="0.75" Width="2.642" />
   </Comment>
   <Comment CommentText="Feature API - Core Interfaces for working with data queried via IFeatureService">
-    <Position X="31.958" Y="2.231" Height="0.503" Width="2.656" />
+    <Position X="24.208" Y="2.481" Height="0.503" Width="2.656" />
   </Comment>
   <Comment CommentText="Feature Queries return IFeatureReader">
-    <Position X="31.958" Y="2.984" Height="0.379" Width="2.656" />
+    <Position X="24.208" Y="3.234" Height="0.379" Width="2.656" />
   </Comment>
   <Comment CommentText="Aggregate and SQL Queries return IReader">
-    <Position X="31.958" Y="3.467" Height="0.39" Width="2.656" />
+    <Position X="24.208" Y="3.717" Height="0.39" Width="2.656" />
   </Comment>
   <Comment CommentText="Both IReader and IFeatureReader are forward-only iterators. Must first call ReadNext() on respective readers to access the data">
-    <Position X="31.958" Y="3.973" Height="0.75" Width="2.644" />
+    <Position X="24.208" Y="4.223" Height="0.75" Width="2.644" />
   </Comment>
   <Comment CommentText="IReader and IFeatureReader are IEnumerable<IRecord> and IEnumerable<IFeature> respectively. This means that these readers can also be iterated via a foreach loop instead of ReadNext() in a while loop">
-    <Position X="31.969" Y="4.85" Height="1.192" Width="2.622" />
+    <Position X="24.219" Y="5.1" Height="1.192" Width="2.622" />
   </Comment>
   <Comment CommentText="Used for describing and querying drawing data from a Drawing Source">
-    <Position X="2.026" Y="11.19" Height="0.594" Width="2.492" />
+    <Position X="1.776" Y="5.69" Height="0.594" Width="2.492" />
   </Comment>
   <Comment CommentText="Used for assisting in building Fusion Flexible Layouts (aka. Application Definitions)">
-    <Position X="4.786" Y="10.065" Height="0.75" Width="2.221" />
+    <Position X="4.536" Y="4.565" Height="0.75" Width="2.221" />
   </Comment>
   <Comment CommentText="Used for rendering / pre-caching of Map Tiles">
-    <Position X="7.266" Y="9.617" Height="0.531" Width="1.971" />
+    <Position X="7.016" Y="4.117" Height="0.531" Width="1.971" />
   </Comment>
   <Comment CommentText="Used for creating, opening and interacting with a Runtime Map">
-    <Position X="9.529" Y="11.295" Height="0.552" Width="1.971" />
+    <Position X="9.279" Y="5.795" Height="0.552" Width="1.971" />
   </Comment>
   <Comment CommentText="Used for querying MapGuide Server information">
-    <Position X="11.758" Y="10.034" Height="0.51" Width="1.981" />
+    <Position X="11.508" Y="4.534" Height="0.51" Width="1.981" />
   </Comment>
   <Comment CommentText="Used for querying spatial and non-spatial data from a Feature Source. Also provides APIs for describing the structure of a Feature Source">
-    <Position X="13.995" Y="12.784" Height="0.844" Width="2.742" />
+    <Position X="13.777" Y="7.963" Height="0.844" Width="2.742" />
   </Comment>
   <Comment CommentText="Used for saving, reading and managing resources in a MapGuide Repository">
-    <Position X="17.005" Y="15.232" Height="0.573" Width="2.742" />
+    <Position X="16.755" Y="9.732" Height="0.573" Width="2.742" />
   </Comment>
-  <Comment CommentText="Load Procedure objects can be executed via IServerConnection.ExecuteLoadProcedure()">
-    <Position X="14.599" Y="4.711" Height="0.563" Width="2.669" />
-  </Comment>
-  <Comment CommentText="Check the ResourceType property to determine which interface an IResource instance can be cast into">
-    <Position X="13.708" Y="2.187" Height="0.719" Width="2.21" />
-  </Comment>
   <Comment CommentText="Use the Type property of PropertyDefinition to determine the subclass it can be cast to">
-    <Position X="20.218" Y="12.461" Height="0.654" Width="2.287" />
+    <Position X="8.053" Y="12.422" Height="0.654" Width="2.287" />
   </Comment>
   <Comment CommentText="Custom Commands - Interfaces for custom commands to execute custom functionality. Support for such commands vary between connection providers">
-    <Position X="31.667" Y="11.437" Height="0.904" Width="2.841" />
+    <Position X="19.5" Y="11.5" Height="0.904" Width="2.841" />
   </Comment>
   <Comment CommentText="Mutable features and records can have their property values modified">
-    <Position X="27.74" Y="4.188" Height="0.708" Width="1.7" />
+    <Position X="19.99" Y="4.438" Height="0.708" Width="1.7" />
   </Comment>
-  <Class Name="OSGeo.MapGuide.MaestroAPI.ConnectionProviderRegistry" Collapsed="true">
-    <Position X="21.25" Y="7" Width="2.25" />
+  <Comment CommentText="The ResourceObjectConverter allows  for conversion of resources between schema versions">
+    <Position X="8.092" Y="8.232" Height="0.624" Width="2.252" />
+  </Comment>
+  <Comment CommentText="The ResourceValidatorSet allows for validation to be performed on resources to ensure certain rules and constraints are not violated">
+    <Position X="10.848" Y="8.421" Height="0.813" Width="2.394" />
+  </Comment>
+  <Class Name="OSGeo.MapGuide.MaestroAPI.ConnectionProviderRegistry">
+    <Position X="1.5" Y="14" Width="2.25" />
+    <Compartments>
+      <Compartment Name="Private" Collapsed="true" />
+    </Compartments>
     <TypeIdentifier>
-      <HashCode>AAAgEAEAAAAAAAEAAAAAAAAAAAIQAAAAAAIEABAAAAA=</HashCode>
+      <HashCode>AAAgEAEAAAAAAAEAAAEAAAAAAAIQAAAAAAIEABAAAAA=</HashCode>
       <FileName>ConnectionProviderRegistry.cs</FileName>
     </TypeIdentifier>
   </Class>
-  <Class Name="OSGeo.MapGuide.ObjectModels.ObjectFactory" Collapsed="true">
-    <Position X="21.25" Y="6.25" Width="2.25" />
-    <TypeIdentifier>
-      <HashCode>iaANAgAABERABAAAJAoAkAAgRAAACABAYAhAgCCAAEg=</HashCode>
-      <FileName>ObjectModels\ObjectFactory.cs</FileName>
-    </TypeIdentifier>
-  </Class>
-  <Class Name="OSGeo.MapGuide.MaestroAPI.ResourceTypeRegistry" Collapsed="true">
-    <Position X="21.25" Y="7.75" Width="2.25" />
-    <TypeIdentifier>
-      <HashCode>AAAAAAAAAAAAAARAAAAAAAAAACBACAAAAAACAAAAAAA=</HashCode>
-      <FileName>ResourceTypeRegistry.cs</FileName>
-    </TypeIdentifier>
-  </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Mapping.RuntimeMap" Collapsed="true">
-    <Position X="21.5" Y="2" Width="2.25" />
+    <Position X="1.25" Y="8.5" Width="2.25" />
     <TypeIdentifier>
-      <HashCode>VgqRItUhFBECAAABI4BWwSaLymhwkBLFjRIFYIFISVA=</HashCode>
+      <HashCode>VguRItUhEFECEAQBI4A2xSaJymhwkBLFjRIFoIGISUA=</HashCode>
       <FileName>Mapping\RuntimeMap.cs</FileName>
     </TypeIdentifier>
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Mapping.RuntimeMapGroup" Collapsed="true">
-    <Position X="21.5" Y="4.75" Width="2.25" />
+    <Position X="1.25" Y="11.75" Width="2.25" />
     <TypeIdentifier>
       <HashCode>QEAAIEEAAAAAAAAAIAQQQAQACCBBAAAJAQBAAAAAAAI=</HashCode>
       <FileName>Mapping\RuntimeMapGroup.cs</FileName>
     </TypeIdentifier>
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Mapping.RuntimeMapLayer" Collapsed="true">
-    <Position X="24.25" Y="4.75" Width="2.25" />
+    <Position X="4" Y="11.75" Width="2.25" />
     <TypeIdentifier>
-      <HashCode>QEAIYEMQATQAEQQBYARwQATALHBTgIQJE0NACAKyyBM=</HashCode>
+      <HashCode>QEAI4EMYATQAEQQBYARwQATALHBTgIQJE0NACAKyyBM=</HashCode>
       <FileName>Mapping\RuntimeMapLayer.cs</FileName>
     </TypeIdentifier>
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Mapping.KeyValueCollection<TKey, TVal>" Collapsed="true">
-    <Position X="22.75" Y="3" Width="2.5" />
+    <Position X="2.5" Y="10" Width="2.5" />
     <TypeIdentifier>
-      <HashCode>AGIAAEAAAAAABBAQCQBABARAAAAAAAAACAAIAABQICE=</HashCode>
+      <HashCode>AmIAAEAACIAEBBARCSBAhCRQQAUMARAACAAIAABQICM=</HashCode>
       <FileName>Mapping\Collections.cs</FileName>
     </TypeIdentifier>
     <Lollipop Position="0.2" />
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Mapping.RuntimeMapLayerCollection" Collapsed="true">
-    <Position X="24.25" Y="4" Width="2.25" />
+    <Position X="4" Y="11" Width="2.25" />
     <TypeIdentifier>
       <HashCode>AAIAAEAAAAAABAAACQAABABQAAAAAAAACAEAAAAAAIE=</HashCode>
       <FileName>Mapping\Collections.cs</FileName>
     </TypeIdentifier>
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Mapping.RuntimeMapGroupCollection" Collapsed="true">
-    <Position X="21.5" Y="4" Width="2.25" />
+    <Position X="1.25" Y="11" Width="2.25" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAABAAAAQAABAAQAAAAAAAAAAAAAAAAAAE=</HashCode>
       <FileName>Mapping\Collections.cs</FileName>
     </TypeIdentifier>
   </Class>
-  <Class Name="OSGeo.MapGuide.ObjectModels.UntypedResource" Collapsed="true">
-    <Position X="10.25" Y="2.25" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AAEAAAAAEAAAAAACAIAAQQAAgCAAAAAAAAAACAAAABA=</HashCode>
-      <FileName>ObjectModels\UntypedResource.cs</FileName>
-    </TypeIdentifier>
-    <Lollipop Position="0.2" />
-  </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Schema.ClassDefinition" Collapsed="true">
-    <Position X="20.25" Y="11.5" Width="2" />
+    <Position X="8" Y="11.5" Width="2" />
     <TypeIdentifier>
-      <HashCode>AAAQAoAQADBAECAACUAAQAAKAQAAAAAYAAAAgAACABA=</HashCode>
+      <HashCode>AAAQAoAQEDBAECAACUAAQAAIAQAAAAAYAAAAAAACADA=</HashCode>
       <FileName>Schema\ClassDefinition.cs</FileName>
     </TypeIdentifier>
     <Lollipop Position="0.2" />
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Schema.FeatureSchema" Collapsed="true">
-    <Position X="20.25" Y="10.5" Width="2" />
+    <Position X="8" Y="10.5" Width="2" />
     <TypeIdentifier>
-      <HashCode>AEAAAAAAAAEAAGAACABAAAACCBAAAAAAAAAAgAAAAAA=</HashCode>
+      <HashCode>AEAAAAAAAAEAAGAACABAAAACCBAAAAAAAAAAgAAAABA=</HashCode>
       <FileName>Schema\FeatureSchema.cs</FileName>
     </TypeIdentifier>
     <Lollipop Position="0.2" />
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Schema.FeatureSourceDescription" Collapsed="true">
-    <Position X="20.25" Y="9.5" Width="2" />
+    <Position X="8" Y="9.5" Width="2" />
     <TypeIdentifier>
-      <HashCode>AAAAAAAAAAAAAAAAAAAgAAAACABACAAgAAAgAAAAgAA=</HashCode>
+      <HashCode>AAAAAAAAAAAAAAAAAAAgAAAACABACAAgAAAgAAAAgBA=</HashCode>
       <FileName>Schema\FeatureSourceDescription.cs</FileName>
     </TypeIdentifier>
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Schema.DataPropertyDefinition" Collapsed="true">
-    <Position X="22.75" Y="13.5" Width="2" />
+    <Position X="10.5" Y="13.5" Width="2" />
     <TypeIdentifier>
       <HashCode>AAAAAgAAAAIAgAAQAAIAAABCAoBAAAAAAQAAgACAMIA=</HashCode>
       <FileName>Schema\DataPropertyDefinition.cs</FileName>
     </TypeIdentifier>
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Schema.GeometricPropertyDefinition" Collapsed="true">
-    <Position X="20.25" Y="13.5" Width="2.25" />
+    <Position X="8" Y="13.5" Width="2.25" />
     <TypeIdentifier>
       <HashCode>QAQAAAAAgAAAAAASAAAAQAAOAAAAQAAAARAAgARAAIA=</HashCode>
       <FileName>Schema\GeometricPropertyDefinition.cs</FileName>
     </TypeIdentifier>
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Schema.PropertyDefinition" Collapsed="true">
-    <Position X="22.75" Y="12.5" Width="2" />
+    <Position X="10.5" Y="12.5" Width="2" />
     <TypeIdentifier>
-      <HashCode>AAAgAAAAAAAAAAAAAAAAQAACAAAAAAAAAQAAgAAAAJA=</HashCode>
+      <HashCode>AAAgAAAAEAAAAAAAAAAAQAACAAAAAAAAAQAAgAAAALA=</HashCode>
       <FileName>Schema\PropertyDefinition.cs</FileName>
     </TypeIdentifier>
     <Lollipop Position="0.2" />
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Schema.RasterPropertyDefinition" Collapsed="true">
-    <Position X="25" Y="13.5" Width="2" />
+    <Position X="12.75" Y="13.5" Width="2" />
     <TypeIdentifier>
       <HashCode>AAAAAQAAgAAAAAAQAAAAAAACAAAAQAAAAQAAgAAAIIA=</HashCode>
       <FileName>Schema\RasterPropertyDefinition.cs</FileName>
     </TypeIdentifier>
   </Class>
-  <Class Name="OSGeo.MapGuide.MaestroAPI.Resource.ResourceIdentifier" Collapsed="true">
-    <Position X="5" Y="2.25" Width="1.75" />
+  <Class Name="OSGeo.MapGuide.MaestroAPI.Resource.Validation.ResourceValidatorSet">
+    <Position X="11" Y="6.5" Width="1.75" />
+    <Compartments>
+      <Compartment Name="Private" Collapsed="true" />
+    </Compartments>
     <TypeIdentifier>
-      <HashCode>gAJiKBBAAACBgAIEGEgAQERKBAACIQRBCAAEQABABCA=</HashCode>
-      <FileName>Resource\ResourceIdentifier.cs</FileName>
-    </TypeIdentifier>
-  </Class>
-  <Class Name="OSGeo.MapGuide.MaestroAPI.Resource.Validation.ResourceValidatorSet" Collapsed="true">
-    <Position X="5" Y="1.25" Width="1.75" />
-    <TypeIdentifier>
       <HashCode>AAAAAAAAAACAAAAAAAAQAAAAAAIAAAAIAAAAAAAAAAA=</HashCode>
       <FileName>Resource\Validation\ResourceValidatorSet.cs</FileName>
     </TypeIdentifier>
   </Class>
-  <Class Name="OSGeo.MapGuide.MaestroAPI.Resource.Conversion.ResourceObjectConverter" Collapsed="true">
-    <Position X="2.75" Y="1.25" Width="2" />
+  <Class Name="OSGeo.MapGuide.MaestroAPI.Resource.Conversion.ResourceObjectConverter">
+    <Position X="8.25" Y="6.75" Width="2" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
       <FileName>Resource\Conversion\IResourceConverter.cs</FileName>
@@ -234,325 +205,213 @@
     <Lollipop Position="0.2" />
   </Class>
   <Class Name="OSGeo.MapGuide.MaestroAPI.Mapping.MapSelection" Collapsed="true">
-    <Position X="21.5" Y="1.25" Width="2.25" />
+    <Position X="1.25" Y="7.75" Width="2.25" />
     <TypeIdentifier>
       <HashCode>AGIAAEAAAAAgABAQCAAABAQAACBAAAAECEAAAABQMAA=</HashCode>
       <FileName>Mapping\MapSelection.cs</FileName>
     </TypeIdentifier>
     <Lollipop Position="0.2" />
   </Class>
-  <Interface Name="OSGeo.MapGuide.MaestroAPI.IServerConnection" Collapsed="true">
-    <Position X="21.25" Y="8.5" Width="2.25" />
+  <Interface Name="OSGeo.MapGuide.MaestroAPI.IServerConnection">
+    <Position X="4" Y="14" Width="2.25" />
     <TypeIdentifier>
-      <HashCode>AAAAEgAAEBAAABEAAAAGSABIAAAAEAAAEAlAAAAQAFA=</HashCode>
+      <HashCode>AAACEgAAEBAAABEAAAAGSABIAAAAEAAAEClAAAAQAFQ=</HashCode>
       <FileName>IServerConnection.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Services.IDrawingService">
-    <Position X="2" Y="8.25" Width="2.5" />
+    <Position X="1.75" Y="2.75" Width="2.5" />
     <TypeIdentifier>
       <HashCode>AABAEAAACACAAAAAAAAAABAAAgAIAAAACAAAAAAAAAQ=</HashCode>
       <FileName>Services\IDrawingService.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Services.ITileService">
-    <Position X="7.25" Y="8.25" Width="2" />
+    <Position X="7" Y="2.75" Width="2" />
     <TypeIdentifier>
       <HashCode>AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
       <FileName>Services\ITileService.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Services.IFeatureService">
-    <Position X="14" Y="8.25" Width="2.75" />
+    <Position X="13.75" Y="2.75" Width="2.75" />
     <TypeIdentifier>
-      <HashCode>IAAAAAAIAAMCAAAAECIABAgAAAIABAAAAAAABEAAACA=</HashCode>
+      <HashCode>IAABAAAIAAMCAAAAECIABAgAAAIABAAAABAABEAAACA=</HashCode>
       <FileName>Services\IFeatureService.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Services.IFusionService">
-    <Position X="4.75" Y="8.25" Width="2.25" />
+    <Position X="4.5" Y="2.75" Width="2.25" />
     <TypeIdentifier>
       <HashCode>AAAAAAAQAAAAAAAAAAAAAQAAAAAAAAAAgAAAAAAAAAA=</HashCode>
       <FileName>Services\IFusionService.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Services.IMappingService">
-    <Position X="9.5" Y="8.25" Width="2" />
+    <Position X="9.25" Y="2.75" Width="2" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAEAAAAAAAAAEAAAAAAEAAAAAEABAAEAAAUAE=</HashCode>
       <FileName>Services\IMappingService.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Services.IResourceService">
-    <Position X="17" Y="8.25" Width="2.75" />
+    <Position X="16.75" Y="2.75" Width="2.75" />
     <TypeIdentifier>
       <HashCode>BAAAoACAgU0BEAAEAAAAAIICGEJAAEUIAAAAWBAEAAA=</HashCode>
       <FileName>Services\IResourceService.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Services.IService" Collapsed="true">
-    <Position X="10.25" Y="7" Width="1.5" />
+    <Position X="10" Y="1.5" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
       <FileName>Services\IService.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Services.ISiteService">
-    <Position X="11.75" Y="8.25" Width="2" />
+    <Position X="11.5" Y="2.75" Width="2" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAAgAAAAAAAgAAAAAAAAAAQAAAAAAAA=</HashCode>
       <FileName>Services\ISiteService.cs</FileName>
     </TypeIdentifier>
   </Interface>
-  <Interface Name="IResource" Collapsed="true">
-    <Position X="12" Y="2" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AAAAAAAAEAAAAAACAIAAQAAAACAAAAAAAAAACAAAAAA=</HashCode>
-      <FileName>Resource\IResource.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.FeatureSource.IFeatureSource" Collapsed="true">
-    <Position X="3.25" Y="3.75" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AQAAAAAAAAwGgAAAAAAAAAAQIAAAAQAQkSAAIAAAABg=</HashCode>
-      <FileName>ObjectModels\FeatureSourceInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.DrawingSource.IDrawingSource" Collapsed="true">
-    <Position X="5" Y="3.75" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AAAAAAAAAAABAgEgAAAAAAAAAACAAAgAAAAAAAAAEAA=</HashCode>
-      <FileName>ObjectModels\DrawingSourceInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.LayerDefinition.ILayerDefinition" Collapsed="true">
-    <Position X="6.75" Y="3.75" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA=</HashCode>
-      <FileName>ObjectModels\LayerInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.MapDefinition.IMapDefinition" Collapsed="true">
-    <Position X="10.25" Y="3.75" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>ACMAAACIBQAAAAAQAABAIAQQAAAgAEIAwAAACAJEAAA=</HashCode>
-      <FileName>ObjectModels\MapDefinitionInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.WebLayout.IWebLayout" Collapsed="true">
-    <Position X="8.5" Y="3.75" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>gCAAAQCAABAAAUBAAQAAABIIAABAIBBgAACAAIADCRg=</HashCode>
-      <FileName>ObjectModels\WebLayoutInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.WebLayout.IWebLayout2" Collapsed="true">
-    <Position X="8.5" Y="5" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
-      <FileName>ObjectModels\WebLayoutInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.PrintLayout.IPrintLayout" Collapsed="true">
-    <Position X="12" Y="3.75" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AQEQAAECAAAAAAABABICAAAgAAAAAAgAIAAAAAEAAAA=</HashCode>
-      <FileName>ObjectModels\PrintLayoutInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.ApplicationDefinition.IApplicationDefinition" Collapsed="true">
-    <Position X="17.25" Y="3.75" Width="1.75" />
-    <TypeIdentifier>
-      <HashCode>AAAAAQEAAAABAEIAAAACAAAAAAABAAAEIAQgAAQAAQE=</HashCode>
-      <FileName>ObjectModels\ApplicationDefinitionInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.LoadProcedure.ILoadProcedure" Collapsed="true">
-    <Position X="15.5" Y="3.75" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
-      <FileName>ObjectModels\LoadProcedureInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.SymbolLibrary.ISymbolLibrary" Collapsed="true">
-    <Position X="13.75" Y="3.75" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAA=</HashCode>
-      <FileName>ObjectModels\SymbolLibraryInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.SymbolDefinition.ISymbolDefinitionBase" Collapsed="true">
-    <Position X="19.25" Y="3.75" Width="2" />
-    <TypeIdentifier>
-      <HashCode>AAAAAAAAAQAgAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAA=</HashCode>
-      <FileName>ObjectModels\SymbolInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.SymbolDefinition.ISimpleSymbolDefinition" Collapsed="true">
-    <Position X="17.5" Y="5.75" Width="2" />
-    <TypeIdentifier>
-      <HashCode>CAAQAAAQACMkAAAgAAAAAAAACAAAAiEgAQACAwAAAAg=</HashCode>
-      <FileName>ObjectModels\SymbolInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.SymbolDefinition.ICompoundSymbolDefinition" Collapsed="true">
-    <Position X="17.5" Y="4.75" Width="2.25" />
-    <TypeIdentifier>
-      <HashCode>AAAAAAAACQgAAAAAAAAQAAAAAAAAAAAACAAAACAAAAA=</HashCode>
-      <FileName>ObjectModels\SymbolInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
-  <Interface Name="OSGeo.MapGuide.ObjectModels.MapDefinition.IMapDefinition2" Collapsed="true">
-    <Position X="10.25" Y="5" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
-      <FileName>ObjectModels\MapDefinitionInterfaces.cs</FileName>
-    </TypeIdentifier>
-  </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Feature.IReader">
-    <Position X="29" Y="6.5" Width="1.5" />
+    <Position X="21.25" Y="6.75" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAACAAAA=</HashCode>
       <FileName>Feature\IReader.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Feature.IRecord">
-    <Position X="29.75" Y="2" Width="2" />
+    <Position X="22" Y="2.25" Width="2" />
     <TypeIdentifier>
       <HashCode>BAAAAAQggAACAAAACAAABAIAAAAEAAQYIBAAAAAABkA=</HashCode>
       <FileName>Feature\IReader.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Feature.IFeatureReader">
-    <Position X="30" Y="8.5" Width="1.5" />
+    <Position X="22.25" Y="8.75" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
       <FileName>Feature\IFeatureReader.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Feature.IFeature">
-    <Position X="31" Y="6.5" Width="1.5" />
+    <Position X="23.25" Y="6.75" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAIAAAAA=</HashCode>
       <FileName>Feature\IFeatureReader.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Feature.IMutableFeature" Collapsed="true">
-    <Position X="27.75" Y="3.25" Width="1.5" />
+    <Position X="20" Y="3.5" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAIAAAAA=</HashCode>
       <FileName>Feature\IFeatureReader.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Feature.IMutableRecord" Collapsed="true">
-    <Position X="27.75" Y="2" Width="1.5" />
+    <Position X="20" Y="2.25" Width="1.5" />
     <TypeIdentifier>
       <HashCode>IEBAAAIgAAEAAAAACEAAAAAAIABACAAAAAEAAAAABCA=</HashCode>
       <FileName>Feature\IReader.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Commands.ICommand" Collapsed="true">
-    <Position X="29.75" Y="12.75" Width="1.5" />
+    <Position X="17.5" Y="12.75" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
       <FileName>Commands\ICommand.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Commands.ICreateDataStore">
-    <Position X="28" Y="14" Width="1.5" />
+    <Position X="15.75" Y="14" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAEAAQAAAAAAAAEAAAAAAAAAAAAAABgAAA=</HashCode>
       <FileName>Commands\FeatureManipulationCommands.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Commands.IDeleteFeatures">
-    <Position X="31.75" Y="14.5" Width="1.5" />
+    <Position X="19.5" Y="14.5" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAQAAAAAAAAAABAAAAAAAAAAAAAAAAA=</HashCode>
       <FileName>Commands\FeatureManipulationCommands.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Commands.IFeatureCommand">
-    <Position X="31.75" Y="12.75" Width="1.5" />
+    <Position X="19.5" Y="12.75" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAA=</HashCode>
       <FileName>Commands\FeatureManipulationCommands.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Commands.IInsertFeatures">
-    <Position X="33.5" Y="14.5" Width="1.5" />
+    <Position X="21.25" Y="14.5" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAQAAAAAAAAAAAAAQAAAAAAAAAAAAAA=</HashCode>
       <FileName>Commands\FeatureManipulationCommands.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Commands.IUpdateFeatures">
-    <Position X="35.25" Y="14.5" Width="1.5" />
+    <Position X="23" Y="14.5" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAQAAAAAAAAAABAAAAAAAgAAAAAAAAA=</HashCode>
       <FileName>Commands\FeatureManipulationCommands.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Commands.IApplySchema">
-    <Position X="29.75" Y="14" Width="1.5" />
+    <Position X="17.5" Y="14" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAQAAAAAAAAEAAAAAAAAAAAAAAAgAAA=</HashCode>
       <FileName>Commands\FeatureManipulationCommands.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Commands.IGetResourceContents">
-    <Position X="29.75" Y="11.25" Width="1.5" />
+    <Position X="17.5" Y="11.25" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
       <FileName>Commands\IGetResourceContents.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Interface Name="OSGeo.MapGuide.MaestroAPI.Commands.IGetFdoCacheInfo">
-    <Position X="28" Y="12.25" Width="1.5" />
+    <Position X="15.75" Y="12.25" Width="1.5" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
       <FileName>Commands\IGetFdoCacheInfo.cs</FileName>
     </TypeIdentifier>
   </Interface>
   <Enum Name="OSGeo.MapGuide.MaestroAPI.Services.ServiceType">
-    <Position X="7.25" Y="10.5" Width="2" />
+    <Position X="4.5" Y="5.5" Width="2" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAIAABgAAAAAAAACAAAAAAAAAAAAAACIAAAQA=</HashCode>
       <FileName>Services\ServiceType.cs</FileName>
     </TypeIdentifier>
   </Enum>
-  <Enum Name="OSGeo.MapGuide.MaestroAPI.ResourceTypes">
-    <Position X="1" Y="1.25" Width="1.5" />
-    <TypeIdentifier>
-      <HashCode>AAgAMAAAAARAAAAQAAAAAAIAAAAACAABAAAAgAQABAA=</HashCode>
-      <FileName>Enums.cs</FileName>
-    </TypeIdentifier>
-  </Enum>
   <Enum Name="OSGeo.MapGuide.MaestroAPI.Schema.DataPropertyType">
-    <Position X="22.75" Y="14.5" Width="2" />
+    <Position X="10.5" Y="14.5" Width="2" />
     <TypeIdentifier>
       <HashCode>AEAAAAAAAQAAAAAAQAAAAACAJAACAAQAEEAAAACAAAA=</HashCode>
       <FileName>Schema\PropertyDefinition.cs</FileName>
     </TypeIdentifier>
   </Enum>
   <Enum Name="OSGeo.MapGuide.MaestroAPI.Schema.FeatureGeometricType">
-    <Position X="20.25" Y="14.5" Width="2.25" />
+    <Position X="8" Y="14.5" Width="2.25" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAgAAAAAAAAAAEAAAAAAAIgIAAAAAAAAA=</HashCode>
       <FileName>Schema\GeometricPropertyDefinition.cs</FileName>
     </TypeIdentifier>
   </Enum>
   <Enum Name="OSGeo.MapGuide.MaestroAPI.Schema.PropertyDefinitionType">
-    <Position X="25" Y="11.5" Width="2" />
+    <Position X="12.75" Y="11.5" Width="2" />
     <TypeIdentifier>
       <HashCode>AAAAAAAAAAAAAAAhAAAAAAAAAAAAABAAAAAAAAAAgQA=</HashCode>
       <FileName>Schema\PropertyDefinition.cs</FileName>
     </TypeIdentifier>
   </Enum>
   <Enum Name="OSGeo.MapGuide.MaestroAPI.Commands.CommandType">
-    <Position X="34.75" Y="11.75" Width="1.5" />
+    <Position X="22.5" Y="11.75" Width="1.5" />
     <TypeIdentifier>
-      <HashCode>AAAAAAAABAAQAAGAAAAAAAAAAIBAAAAAAAAAAAAIAAA=</HashCode>
+      <HashCode>AAAAAAAABAAQAAWEAAAAAAAAAIBAAAAAAAAAAAAIAAA=</HashCode>
       <FileName>Commands\CommandType.cs</FileName>
     </TypeIdentifier>
   </Enum>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CredentialWriter.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CredentialWriter.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CredentialWriter.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -81,7 +81,7 @@
     /// <summary>
     /// Utility class to create encrypted Feature Source credentials
     /// </summary>
-    public class CredentialWriter
+    internal class CredentialWriter
     {
         //NOTE: This is a verbatim copy of MgCryptographyUtil in MgDev\Common\Security to the best I can do in .net
         //Only the encryption bits are implemented. Maestro has no need to decrypt MG_USER_CREDENTIALS

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceRebaser.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceRebaser.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceRebaser.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -68,6 +68,17 @@
     /// <summary>
     /// A helper class to re-base referenced resource ids in a resource document
     /// </summary>
+    /// <example>
+    /// How to use the ResourceRebaser
+    /// <code>
+    /// IServerConnection conn;
+    /// ...
+    /// IResource layerDef = conn.ResourceService.GetResource("Library://Test/Sample.LayerDefinition");
+    /// var rebaser = new ResourceRebaser(layerDef);
+    /// //Change all resource id references within to point to the new parent location
+    /// rebaser.Rebase("Library://Test/", "Library://Rebased/");
+    /// </code>
+    /// </example>
     public class ResourceRebaser
     {
         private IResource _res;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/IFeatureReader.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/IFeatureReader.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/IFeatureReader.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -36,6 +36,23 @@
     /// <item><description>The exception for this is if you are access the value via the indexer. In this case you only need determine the property type when casting from the System.Object that is returned by the indexer</description></item>
     /// </list>
     /// </remarks>
+    /// <example>
+    /// How an IFeatureReader is normally used
+    /// <code>
+    ///     IServerConnection conn = ConnectionProviderRegistry.CreateConnection("Maestro.Http",
+    ///         "Username", "Administrator",
+    ///         "Password", "admin",
+    ///         "Url", "http://localhost/mapguide/mapagent/mapagent.fcgi");
+    ///     using (IFeatureReader reader = conn.FeatureService.QueryFeatureSource("Library://Test/Parcels.FeatureSource", "Default:Parcels", null))
+    ///     {
+    ///         while (reader.ReadNext())
+    ///         {
+    ///             //Process the current feature
+    ///         }
+    ///         reader.Close();
+    ///     }
+    /// </code>
+    /// </example>
     public interface IFeatureReader : IReader, IFeature, IEnumerable<IFeature>
     {
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -36,8 +36,6 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Mapping
 {
-    //TODO: Verify the code examples here :)
-
     /// <summary>
     /// Represents a runtime instance of a Map Definition
     /// </summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ImageSymbolConverter.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ImageSymbolConverter.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/ImageSymbolConverter.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -38,6 +38,17 @@
     /// A utility class that extracts image symbols from a Symbol Library and converts them
     /// to image-based Symbol Definition resources
     /// </summary>
+    /// <example>
+    /// This example shows how an ImageSymbolConverter is used
+    /// <code>
+    /// <![CDATA[
+    /// IServerConnection conn;
+    /// ...
+    /// var converter = new ImageSymbolConverter(conn, "Library://Test.SymbolLibrary");
+    /// converter.ExtractSymbols("Library://ExtractedSymbols/");
+    /// ]]>
+    /// </code>
+    /// </example>
     public class ImageSymbolConverter
     {
         private string _symbolLibId;
@@ -58,10 +69,16 @@
             _conn = conn;
         }
 
+        /// <summary>
+        /// Extracts the specified symbols to the given folder
+        /// </summary>
+        /// <param name="targetFolder"></param>
+        /// <param name="symbols"></param>
+        /// <param name="progressCallback"></param>
         public void ExtractSymbols(string targetFolder, IEnumerable<string> symbols, Action<int, int> progressCallback)
         {
             Check.ArgumentNotEmpty(targetFolder, "targetFolder"); //NOXLATE
-            Check.ThatPreconditionIsMet(ResourceIdentifier.IsFolderResource(targetFolder), "ResourceIdentifier.IsFolderResource(targetFolder)"); //NOXLATE
+            Check.ThatArgumentIsFolder(targetFolder, "targetFolder"); //NOXLATE
 
             if (symbols == null)
             {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Preview/IResourcePreviewUrlGenerator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Preview/IResourcePreviewUrlGenerator.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Preview/IResourcePreviewUrlGenerator.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -24,14 +24,36 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Preview
 {
+    /// <summary>
+    /// Generates preview URLs for any given resource
+    /// </summary>
     public interface IResourcePreviewUrlGenerator
     {
+        /// <summary>
+        /// Gets or sets whether to use the AJAX viewer for previewing
+        /// </summary>
         bool UseAjaxViewer { get; set; }
 
+        /// <summary>
+        /// Gets or sets whether to insert a debug watermark in the previewed resource
+        /// </summary>
         bool AddDebugWatermark { get; set; }
 
+        /// <summary>
+        /// Generates a preview URL for the given resource
+        /// </summary>
+        /// <param name="res"></param>
+        /// <param name="locale"></param>
+        /// <param name="isNew"></param>
+        /// <param name="sessionID"></param>
+        /// <returns></returns>
         string GeneratePreviewUrl(IResource res, string locale, bool isNew, string sessionID);
 
+        /// <summary>
+        /// Gets whether the given resource type is previewable
+        /// </summary>
+        /// <param name="resourceType"></param>
+        /// <returns></returns>
         bool IsPreviewableType(string resourceType);
     }
 }
\ No newline at end of file

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Preview/ResourcePreviewUrlGenerator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Preview/ResourcePreviewUrlGenerator.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Preview/ResourcePreviewUrlGenerator.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -26,6 +26,9 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Preview
 {
+    /// <summary>
+    /// Base class of any resource preview URL generator
+    /// </summary>
     public abstract class ResourcePreviewUrlGenerator : IResourcePreviewUrlGenerator
     {
         protected ResourcePreviewUrlGenerator()

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -43,6 +43,20 @@
                 case "LayerDefinition-1.2.0.xsd": //NOXLATE
                 case "LayerDefinition-1.3.0.xsd": //NOXLATE
                     return new string[] { schema, "SymbolDefinition-1.1.0.xsd", "PlatformCommon-1.0.0.xsd" }; //NOXLATE
+                case "LayerDefinition-2.4.0.xsd": //NOXLATE
+                    return new string[] { schema, "SymbolDefinition-2.4.0.xsd", "WatermarkDefinition-2.4.0.xsd", "PlatformCommon-1.0.0.xsd" }; //NOXLATE
+                case "WatermarkDefinition-2.3.0.xsd": //NOXLATE
+                    return new string[] { schema, "SymbolDefinition-1.1.0.xsd" }; //NOXLATE
+                case "WatermarkDefinition-2.4.0.xsd": //NOXLATE
+                    return new string[] { schema, "SymbolDefinition-2.4.0.xsd" }; //NOXLATE
+                case "SymbolDefinition-1.0.0.xsd": //NOXLATE
+                case "SymbolDefinition-1.1.0.xsd": //NOXLATE
+                case "SymbolDefinition-2.4.0.xsd": //NOXLATE
+                    return new string[] { schema, "PlatformCommon-1.0.0.xsd" }; //NOXLATE
+                case "MapDefinition-2.3.0.xsd": //NOXLATE
+                    return new string[] { schema, "WatermarkDefinition-2.3.0.xsd" }; //NOXLATE
+                case "MapDefinition-2.4.0.xsd": //NOXLATE
+                    return new string[] { schema, "WatermarkDefinition-2.4.0.xsd" }; //NOXLATE
             }
             return new string[] { schema, "PlatformCommon-1.0.0.xsd" }; //NOXLATE
         }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -31,9 +31,20 @@
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
     /// <summary>
-    /// Provides the means for the resource validation system to avoid validating
-    /// already validated resources
+    /// Provides a context for the resource validation system. This improves performance of validation by skipping
+    /// over already validated resources and re-using previously cached information where possible
     /// </summary>
+    /// <example>
+    /// This example shows how a ResourceValidationContext is used
+    /// <code>
+    /// <![CDATA[
+    /// IResource resource;
+    /// IServerConnection conn;
+    /// ...
+    /// var context = new ResourceValidationContext(conn);
+    /// var issues = ResourceValidatorSet.Validate(context, item, false);
+    /// ]]>
+    /// </code>
     public class ResourceValidationContext
     {
         private Dictionary<string, string> _validated;
@@ -64,7 +75,7 @@
         /// <summary>
         /// Clears all cached items and validated resources
         /// </summary>
-        public void Reset()
+        internal void Reset()
         {
             _validated.Clear();
             _resources.Clear();

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorLoader.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorLoader.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorLoader.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -25,6 +25,19 @@
     /// <summary>
     /// Utility class that initializes the default set of resource validators
     /// </summary>
+    /// <example>
+    /// This example shows how a ResourceValidatorLoader is used
+    /// <code>
+    /// <![CDATA[
+    /// IResource resource;
+    /// IServerConnection conn;
+    /// ...
+    /// ResourceValidatorLoader.LoadStockValidators();
+    /// var context = new ResourceValidationContext(conn);
+    /// var issues = ResourceValidatorSet.Validate(context, item, false);
+    /// ]]>
+    /// </code>
+    /// </example>
     public static class ResourceValidatorLoader
     {
         private static bool m_initialized = false;
@@ -32,6 +45,10 @@
         /// <summary>
         /// Loads the default set of validators in this assembly
         /// </summary>
+        /// <remarks>
+        /// This method only needs to be called once. Subsequent calls return immediately. As such it is ideal
+        /// to put this call in your application's startup/initialization code.
+        /// </remarks>
         public static void LoadStockValidators()
         {
             if (m_initialized)

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -28,8 +28,20 @@
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
     /// <summary>
-    /// A collection of resource validators
+    /// A collection of resource validators. Use this to validate a given resource for common issues.
     /// </summary>
+    /// <example>
+    /// This example shows how a ResourceValidatorSet is used
+    /// <code>
+    /// <![CDATA[
+    /// IResource resource;
+    /// IServerConnection conn;
+    /// ...
+    /// var context = new ResourceValidationContext(conn);
+    /// var issues = ResourceValidatorSet.Validate(context, item, false);
+    /// ]]>
+    /// </code>
+    /// </example>
     public static class ResourceValidatorSet
     {
         private static List<IResourceValidator> m_validators = new List<IResourceValidator>();

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -27,8 +27,22 @@
 namespace OSGeo.MapGuide.MaestroAPI.Resource.Validation
 {
     /// <summary>
-    /// A "bucket" class that filters out redundant validation messages
+    /// A "bucket" class that filters out redundant validation messages and allows for filtering the set of
+    /// validation results by resource and specific validation status types
     /// </summary>
+    /// <example>
+    /// This example shows how a ValidationResultSet is used
+    /// <code>
+    /// <![CDATA[
+    /// IResource resource;
+    /// IServerConnection conn;
+    /// ...
+    /// var context = new ResourceValidationContext(conn);
+    /// var issues = ResourceValidatorSet.Validate(context, item, false);
+    /// var results = new ValidationResultSet(issues);
+    /// ]]>
+    /// </code>
+    /// </example>
     public class ValidationResultSet
     {
         //HACK: Abusing the Key component of Dictionary<K, V> because there is no

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -29,10 +29,11 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Schema
 {
-    //TODO: Expand on documentation as this is an important class
-
     /// <summary>
-    /// Represents a FDO class definition
+    /// Represents a FDO class definition. A Class Definition defines the structure of features that originate
+    /// from it in feature queries. Class Definitions usually contain a Geometry property for spatial features.
+    /// 
+    /// Class Definitions belong to a Feature Schema
     /// </summary>
     public class ClassDefinition : SchemaElement, IFdoSerializable
     {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/OSGeo.MapGuide.MaestroAPI.Tests.csproj
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/OSGeo.MapGuide.MaestroAPI.Tests.csproj	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/OSGeo.MapGuide.MaestroAPI.Tests.csproj	2014-12-29 04:46:11 UTC (rev 8479)
@@ -69,6 +69,7 @@
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
     <Compile Include="ResourceTests.cs" />
+    <Compile Include="Resource\ResourceSchemaChainTests.cs" />
     <Compile Include="SchemaTests.cs" />
     <Compile Include="Schema\ClassDefinitionTests.cs" />
     <Compile Include="Schema\DataPropertyDefinitionTests.cs" />

Added: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/Resource/ResourceSchemaChainTests.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/Resource/ResourceSchemaChainTests.cs	                        (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Tests/Resource/ResourceSchemaChainTests.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -0,0 +1,69 @@
+#region Disclaimer / License
+
+// Copyright (C) 2014, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+#endregion Disclaimer / License
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using OSGeo.MapGuide.MaestroAPI.Resource;
+using NUnit.Framework;
+
+namespace OSGeo.MapGuide.MaestroAPI.Resource.Tests
+{
+    [TestFixture()]
+    public class ResourceSchemaChainTests
+    {
+        [Test()]
+        public void GetValidatingSchemasTest()
+        {
+            var schemas = ResourceSchemaChain.GetValidatingSchemas("LayerDefinition-1.0.0.xsd");
+            Assert.Contains("PlatformCommon-1.0.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("LayerDefinition-1.1.0.xsd");
+            Assert.Contains("PlatformCommon-1.0.0.xsd", schemas);
+            Assert.Contains("SymbolDefinition-1.0.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("LayerDefinition-1.2.0.xsd");
+            Assert.Contains("PlatformCommon-1.0.0.xsd", schemas);
+            Assert.Contains("SymbolDefinition-1.1.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("LayerDefinition-1.3.0.xsd");
+            Assert.Contains("PlatformCommon-1.0.0.xsd", schemas);
+            Assert.Contains("SymbolDefinition-1.1.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("LayerDefinition-2.4.0.xsd");
+            Assert.Contains("PlatformCommon-1.0.0.xsd", schemas);
+            Assert.Contains("SymbolDefinition-2.4.0.xsd", schemas);
+            Assert.Contains("WatermarkDefinition-2.4.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("WatermarkDefinition-2.3.0.xsd");
+            Assert.Contains("SymbolDefinition-1.1.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("WatermarkDefinition-2.4.0.xsd");
+            Assert.Contains("SymbolDefinition-2.4.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("SymbolDefinition-1.0.0.xsd");
+            Assert.Contains("PlatformCommon-1.0.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("SymbolDefinition-1.1.0.xsd");
+            Assert.Contains("PlatformCommon-1.0.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("SymbolDefinition-2.4.0.xsd");
+            Assert.Contains("PlatformCommon-1.0.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("MapDefinition-2.3.0.xsd");
+            Assert.Contains("WatermarkDefinition-2.3.0.xsd", schemas);
+            schemas = ResourceSchemaChain.GetValidatingSchemas("MapDefinition-2.4.0.xsd");
+            Assert.Contains("WatermarkDefinition-2.4.0.xsd", schemas);
+        }
+    }
+}

Added: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/CoreTypes.cd
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/CoreTypes.cd	                        (rev 0)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/CoreTypes.cd	2014-12-29 04:46:11 UTC (rev 8479)
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ClassDiagram MajorVersion="1" MinorVersion="1">
+  <Comment CommentText="Resource Object Model - Core Interfaces">
+    <Position X="8.254" Y="0.547" Height="0.38" Width="2.691" />
+  </Comment>
+  <Comment CommentText="Check the ResourceType property to determine which interface an IResource instance can be cast into">
+    <Position X="8.569" Y="3.499" Height="0.719" Width="2.21" />
+  </Comment>
+  <Comment CommentText="The UntypedResource class is an arbitrary container of XML content and is only returned by any API that returns IResource if the resource schema version is not recognised or not supported yet">
+    <Position X="14.75" Y="0.5" Height="1.032" Width="2.744" />
+  </Comment>
+  <Comment CommentText="The ObjectFactory is the central place for creating IResource-derived instances and their component type and to also serialize/deserialize such instances to/from XML ">
+    <Position X="1.56" Y="0.587" Height="0.734" Width="3.562" />
+  </Comment>
+  <Comment CommentText="An ILayerDefinition continans a sub-layer, which can be  either vector, drawing or raster">
+    <Position X="22.669" Y="3.316" Height="0.75" Width="2.316" />
+  </Comment>
+  <Class Name="OSGeo.MapGuide.ObjectModels.ObjectFactory">
+    <Position X="1.5" Y="1.75" Width="3" />
+    <Compartments>
+      <Compartment Name="Fields" Collapsed="true" />
+    </Compartments>
+    <TypeIdentifier>
+      <HashCode>iaANAgAIBERABARAZAoAkAAgRDRACABAcAhCgCCAAEg=</HashCode>
+      <FileName>ObjectFactory.cs</FileName>
+    </TypeIdentifier>
+  </Class>
+  <Class Name="OSGeo.MapGuide.ObjectModels.UntypedResource" Collapsed="true" BaseTypeListCollapsed="true">
+    <Position X="13" Y="0.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAEAAAAAAAAAAAACAIAAQQAAgCAAAAAAAAAACAAAABA=</HashCode>
+      <FileName>UntypedResource.cs</FileName>
+    </TypeIdentifier>
+    <Lollipop Position="0.2" Collapsed="true" />
+  </Class>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.IResource" Collapsed="true">
+    <Position X="11.25" Y="0.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAACAIAAQAAAACAAAAAAAAAACAAAAAA=</HashCode>
+      <FileName>IResource.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.ApplicationDefinition.IApplicationDefinition" Collapsed="true">
+    <Position X="12" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAQEAAAABAEIAAAACAAAAAAABAAAEIAQgAAQAAQA=</HashCode>
+      <FileName>ApplicationDefinition\ApplicationDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.DrawingSource.IDrawingSource" Collapsed="true">
+    <Position X="13.75" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAABAgEgAAAAAAAAAACAAAgAAAAAAAAAEAA=</HashCode>
+      <FileName>DrawingSource\DrawingSourceInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.FeatureSource.IFeatureSource" Collapsed="true">
+    <Position X="21.25" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AQAAAAAAAAwGgAAAAAAAAAAQIAAAAQAQkSAAIAAAABg=</HashCode>
+      <FileName>FeatureSource\FeatureSourceInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.LayerDefinition.ILayerDefinition" Collapsed="true">
+    <Position X="23" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA=</HashCode>
+      <FileName>LayerDefinition\LayerDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.LoadProcedure.ILoadProcedure" Collapsed="true">
+    <Position X="17.75" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>LoadProcedure\LoadProcedureInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.MapDefinition.IMapDefinition" Collapsed="true">
+    <Position X="6.75" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>ACMAAAiIBQAAAAAQAABAIAwQAAAgAEIAwAAgCAJEAAA=</HashCode>
+      <FileName>MapDefinition\MapDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.MapDefinition.IMapDefinition2" Collapsed="true">
+    <Position X="6.75" Y="3.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>MapDefinition\MapDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.PrintLayout.IPrintLayout" Collapsed="true">
+    <Position X="19.5" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AQEQAAECAAAAAAABABICAAAgAAAAAAgAIAAAAAEAAAA=</HashCode>
+      <FileName>PrintLayout\PrintLayoutInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.SymbolDefinition.ISymbolDefinitionBase" Collapsed="true">
+    <Position X="15.5" Y="2.25" Width="2" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAQAgAAAAAAAAAAQAAAAAAAABAQAAAAAAAAA=</HashCode>
+      <FileName>SymbolDefinition\SymbolDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.SymbolDefinition.ISimpleSymbolDefinition" Collapsed="true">
+    <Position X="14.25" Y="3.75" Width="2.25" />
+    <TypeIdentifier>
+      <HashCode>CAAQAAAQACMkAAAgAAAAAAAACAAAAiEgAQACAwAAAAg=</HashCode>
+      <FileName>SymbolDefinition\SymbolDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.SymbolDefinition.ICompoundSymbolDefinition" Collapsed="true">
+    <Position X="16.75" Y="3.75" Width="2.25" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAACQgAAAAAAAAQAAAAAAAAAAAACAAAACAAAAA=</HashCode>
+      <FileName>SymbolDefinition\SymbolDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.SymbolLibrary.ISymbolLibrary" Collapsed="true">
+    <Position X="10.25" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAA=</HashCode>
+      <FileName>SymbolLibrary\SymbolLibraryInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.WatermarkDefinition.IWatermarkDefinition" Collapsed="true">
+    <Position X="8.5" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAgIAAEIgAAAAAAAJAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>WatermarkDefinition\WatermarkDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.WebLayout.IWebLayout" Collapsed="true">
+    <Position X="5" Y="2.25" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>gCAAAQCAABAAAUBAAQAAABIIAABAIBBgAACAAIADCRg=</HashCode>
+      <FileName>WebLayout\WebLayoutInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.WebLayout.IWebLayout2" Collapsed="true">
+    <Position X="5" Y="3.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>WebLayout\WebLayoutInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.WebLayout.IWebLayout3" Collapsed="true">
+    <Position X="5" Y="4.75" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAABAAAAQAAAAAAAAACAQAAAAAAAgAAAAAAAA=</HashCode>
+      <FileName>WebLayout\WebLayoutInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.LayerDefinition.IVectorLayerDefinition" Collapsed="true">
+    <Position X="20.5" Y="5.5" Width="2" />
+    <TypeIdentifier>
+      <HashCode>hAEAAAEAACAEAAAACiAAACgAABBAUCAASAAIAAAAgAA=</HashCode>
+      <FileName>LayerDefinition\LayerDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.LayerDefinition.IVectorLayerDefinition2" Collapsed="true">
+    <Position X="20.5" Y="6.5" Width="2" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA=</HashCode>
+      <FileName>LayerDefinition\LayerDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.LayerDefinition.ISubLayerDefinition" Collapsed="true">
+    <Position X="22.75" Y="4.25" Width="2.25" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAgAAAAAAAAAAgAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>LayerDefinition\LayerDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.LayerDefinition.IDrawingLayerDefinition" Collapsed="true">
+    <Position X="25.25" Y="5.5" Width="2.25" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAIAAAAAAAEAAAAAAQAAAAAAAIAAAAAAAAAAAAA=</HashCode>
+      <FileName>LayerDefinition\LayerDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.LayerDefinition.IRasterLayerDefinition" Collapsed="true">
+    <Position X="22.75" Y="5.5" Width="2.25" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAACBAAAAAAAAAAAAAAABAACAAAABAACBAgAA=</HashCode>
+      <FileName>LayerDefinition\LayerDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Interface Name="OSGeo.MapGuide.ObjectModels.LayerDefinition.ISubLayerDefinition2" Collapsed="true">
+    <Position X="20.5" Y="4.25" Width="2" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
+      <FileName>LayerDefinition\LayerDefinitionInterfaces.cs</FileName>
+    </TypeIdentifier>
+  </Interface>
+  <Enum Name="OSGeo.MapGuide.ObjectModels.ResourceTypes">
+    <Position X="5" Y="6" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAgAMAAAAARAAAAQAAAAAAIAAAAACAABAAAAgAQARAA=</HashCode>
+      <FileName>ResourceTypes.cs</FileName>
+    </TypeIdentifier>
+  </Enum>
+  <Font Name="Segoe UI" Size="9" />
+</ClassDiagram>
\ No newline at end of file

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/OSGeo.MapGuide.ObjectModels.csproj	2014-12-29 04:46:11 UTC (rev 8479)
@@ -289,7 +289,9 @@
       <LastGenOutput>Strings.Designer.cs</LastGenOutput>
     </EmbeddedResource>
   </ItemGroup>
-  <ItemGroup />
+  <ItemGroup>
+    <None Include="CoreTypes.cd" />
+  </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.

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.ObjectModels/ObjectFactory.cs	2014-12-29 04:46:11 UTC (rev 8479)
@@ -101,14 +101,13 @@
     /// as this ensures that there are no null child properties where the XML schema forbids
     /// it.
     ///
-    /// By default this class will only create v1.0.0 of any specified top-level resource unless specified. In order to be able to create
-    /// newer versions, you need to register the appropriate methods that can create resources of this version:
+    /// By default this class will only create known versions of any top-level resource (as of writing, up to MapGuide
+    /// Open Source 2.6 / AIMS 2015). In order to be able to create newer versions where support has not yet been added to
+    /// this library, you will need to register the appropriate methods that can create resources of this version:
     ///
     ///  - <see cref="RegisterLayerFactoryMethod"/> for Layer Definitions
     ///
     /// This registration needs to be done as part of your application's startup/initialization phase.
-    ///
-    /// In the context of Maestro, this registration is automatically done as part of the addin's startup process
     /// </summary>
     public class ObjectFactory
     {

Modified: trunk/Tools/Maestro/UnitTests.playlist
===================================================================
--- trunk/Tools/Maestro/UnitTests.playlist	2014-12-29 01:41:22 UTC (rev 8478)
+++ trunk/Tools/Maestro/UnitTests.playlist	2014-12-29 04:46:11 UTC (rev 8479)
@@ -1 +1 @@
-<Playlist Version="1.0"><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GeometricPropertyDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.IndexOfTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestWebLayoutConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestUniqueIssues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.FindPropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities240" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.WriteXmlTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestParse3dWkt" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities220" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestLayerScaleRangeOverlap" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionConversions" /><Add Test="
 OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestLoadProcedureValidation" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GeometryTypesToStringTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.AddClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestWebLayout" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcSaveLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlFeatureJoinValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities120" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlAggregateNullValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.GetOrdinalTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestArgParser" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.T
 ests.FeatureSchemaTests.CloneTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionNestedGroupDelete" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.RemovePropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerRemove" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestCreate" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupReordering" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsSaveLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcLoad2" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.RemovePropertyAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.GetClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.ClassDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities250" /><Add
  Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities200" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.RemoveClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.DataPropertyDefinitionTests.IsNumericTypeTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestClassNameEncoding" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities110" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestSymbolDefinitionConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities210" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GetIndividualGeometricTypesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestValidationResultSet" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad3" /><
 Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.DataPropertyDefinitionTests.DataPropertyDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupRemove" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities260" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.SpecificGeometryTypesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestMySqlSchema" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestFeatureSchemaRoundtrip" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities100" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupAdd" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities230" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad2" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestLoadProcedureCon
 versions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestLayerDefinitionConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.GetItemTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestCase1896" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerAdd" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.ClearIdentityPropertiesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlFeatureNullValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerReordering" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.IndexOfPropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.CloneTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestParseXyzmWkt" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestConnectionString" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.Featu
 reSchemaTests.FeatureSchemaTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerInsert" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterLayerFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithNameAndCoordSys" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateWatermarkTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.FeatureSourceTests.TestFeatureSourceFileParameters" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimplePointTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateCalculatedPropertyTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePoint3DTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterCompoundSymbolFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSymbolLibraryTest" /><Add
  Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestResourceTypeDescriptor" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestValidResourceIdentifiers" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMetadataTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterSimpleSymbolFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterWatermarkDefinitionFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSecurityUserTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSymbolTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateAttributeRelationTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.DrawingSourceTests.DrawingSourceDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceExtensionTest" /><Add Test="OSGeo.MapGu
 ide.ObjectModels.Tests.ObjectFactoryTests.CreateLoadProcedureTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestCloning" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterWebLayoutFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ApplicationDefinitionTests.ApplicationDefinitionDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePrintLayoutTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithNameAndCoordSysAndExtent" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePoint2DTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterResourceTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSecurityGroupTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.Object
 FactoryTests.CreateSimpleLabelTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceTestWithParameters" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSolidLineTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateLoadProcedureTestWithFileNames" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateEnvelopeTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateDefaultLayerTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateCompoundSymbolTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSolidFillTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterResourceSerializerTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.FeatureSourceTests.FeatureSourceDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterMap
 DefinitionFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterLoadProcedureFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateDrawingSourceTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithName" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.ResourceMigratorTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.MoveResourcesWithOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.CopyResourcesWithOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.CopyResourcesWithoutOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.MoveResourcesWithoutOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceRebaserTests.RebaseTest"
  /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceRebaserTests.ResourceRebaserTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.UnsupportedConnectionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayerByNameTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveLayerAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.UpdateMapDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.IndexOfLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.SetViewCenterTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetGroupByNameTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetGroupsOfGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayer
 sOfGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayerByObjectIdTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.InsertLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.ToMapDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetFiniteDisplayScaleAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.SetLayerIndexTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.NotNullTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.RangeTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.IsFolderTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.NotEmptyTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.PreconditionTest" /></Playlist>
\ No newline at end of file
+<Playlist Version="1.0"><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GeometricPropertyDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.IndexOfTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestWebLayoutConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestUniqueIssues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.FindPropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities240" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.WriteXmlTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestParse3dWkt" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities220" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestLayerScaleRangeOverlap" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionConversions" /><Add Test="
 OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestLoadProcedureValidation" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GeometryTypesToStringTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.AddClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestWebLayout" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcSaveLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlFeatureJoinValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities120" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlAggregateNullValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.GetOrdinalTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestArgParser" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.T
 ests.FeatureSchemaTests.CloneTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionNestedGroupDelete" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.RemovePropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerRemove" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestCreate" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupReordering" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsSaveLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestOdbcLoad2" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.RemovePropertyAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.GetClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.ClassDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities250" /><Add
  Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities200" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.RemoveClassTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.DataPropertyDefinitionTests.IsNumericTypeTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestClassNameEncoding" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities110" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestSymbolDefinitionConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities210" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.GetIndividualGeometricTypesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestValidationResultSet" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad3" /><
 Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.DataPropertyDefinitionTests.DataPropertyDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupRemove" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities260" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.GeometricPropertyDefinitionTests.SpecificGeometryTypesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestMySqlSchema" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.SchemaTests.TestFeatureSchemaRoundtrip" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities100" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionGroupAdd" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.CapabilityTests.TestHttpCapabilities230" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ConfigurationDocumentTests.TestWmsLoad2" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestLoadProcedureCon
 versions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestLayerDefinitionConversions" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.FeatureSchemaTests.GetItemTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ValidationTests.TestCase1896" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerAdd" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.ClearIdentityPropertiesTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.FeatureReaderTests.TestXmlFeatureNullValues" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerReordering" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.IndexOfPropertyTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.SchemaTests.CloneTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestParseXyzmWkt" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.MiscTests.TestConnectionString" /><Add Test="OSGeo.MapGuide.MaestroAPI.Schema.Tests.Featu
 reSchemaTests.FeatureSchemaTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Tests.ResourceTests.TestMapDefinitionLayerInsert" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterLayerFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithNameAndCoordSys" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateWatermarkTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.FeatureSourceTests.TestFeatureSourceFileParameters" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimplePointTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateCalculatedPropertyTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePoint3DTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterCompoundSymbolFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSymbolLibraryTest" /><Add
  Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestResourceTypeDescriptor" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestValidResourceIdentifiers" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMetadataTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterSimpleSymbolFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterWatermarkDefinitionFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSecurityUserTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSymbolTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateAttributeRelationTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.DrawingSourceTests.DrawingSourceDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceExtensionTest" /><Add Test="OSGeo.MapGu
 ide.ObjectModels.Tests.ObjectFactoryTests.CreateLoadProcedureTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ResourceTests.TestCloning" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterWebLayoutFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.ApplicationDefinitionTests.ApplicationDefinitionDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePrintLayoutTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithNameAndCoordSysAndExtent" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreatePoint2DTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterResourceTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSecurityGroupTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.Object
 FactoryTests.CreateSimpleLabelTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateFeatureSourceTestWithParameters" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSolidLineTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateLoadProcedureTestWithFileNames" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateEnvelopeTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateDefaultLayerTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateCompoundSymbolTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateSimpleSolidFillTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterResourceSerializerTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.FeatureSourceTests.FeatureSourceDeserializationWithFullContentModel" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterMap
 DefinitionFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.RegisterLoadProcedureFactoryMethodTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateDrawingSourceTest" /><Add Test="OSGeo.MapGuide.ObjectModels.Tests.ObjectFactoryTests.CreateMapDefinitionTestWithName" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.ResourceMigratorTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.MoveResourcesWithOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.CopyResourcesWithOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.CopyResourcesWithoutOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceMigratorTests.MoveResourcesWithoutOverwriteTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceRebaserTests.RebaseTest"
  /><Add Test="OSGeo.MapGuide.MaestroAPI.CrossConnection.Tests.ResourceRebaserTests.ResourceRebaserTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.UnsupportedConnectionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayerByNameTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveLayerAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.UpdateMapDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.IndexOfLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.SetViewCenterTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetGroupByNameTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetGroupsOfGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayer
 sOfGroupTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.RemoveLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetLayerByObjectIdTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.InsertLayerTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.ToMapDefinitionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.GetFiniteDisplayScaleAtTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Mapping.Tests.RuntimeMapTests.SetLayerIndexTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.NotNullTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.RangeTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.IsFolderTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.NotEmptyTest" /><Add Test="OSGeo.MapGuide.ObjectModel.Tests.CheckTests.PreconditionTest" /><Add Test="OSGeo.MapGuide.MaestroAPI.Resource.Tests.ResourceSchemaChainTests.
 GetValidatingSchemasTest" /></Playlist>
\ No newline at end of file



More information about the mapguide-commits mailing list