[mapguide-commits] r8829 - sandbox/jng/clean_json/Web/src/HttpHandler

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Nov 11 07:13:21 PST 2015


Author: jng
Date: 2015-11-11 07:13:21 -0800 (Wed, 11 Nov 2015)
New Revision: 8829

Modified:
   sandbox/jng/clean_json/Web/src/HttpHandler/JsonDoc.cpp
   sandbox/jng/clean_json/Web/src/HttpHandler/JsonDoc.h
   sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.cpp
   sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.h
Log:
De-quote element node text content based on known element types when CLEAN=1 and output format is JSON

Split XML_DATA_TYPE_NUMBER into XML_DATA_TYPE_NUM_DOUBLE and XML_DATA_TYPE_NUM_INT to distinguish the required formatting

Also add new overloads of Add() to MgJsonDoc to doubles and ints

Modified: sandbox/jng/clean_json/Web/src/HttpHandler/JsonDoc.cpp
===================================================================
--- sandbox/jng/clean_json/Web/src/HttpHandler/JsonDoc.cpp	2015-11-11 14:25:02 UTC (rev 8828)
+++ sandbox/jng/clean_json/Web/src/HttpHandler/JsonDoc.cpp	2015-11-11 15:13:21 UTC (rev 8829)
@@ -112,6 +112,30 @@
     node->Element[name] = value;
 }
 
+void MgJsonDoc::Add(const char * name, double value)
+{
+    MgJsonNode *node = m_tree.top();
+    node->Element[StaticString(name)] = value;
+}
+
+void MgJsonDoc::Add(const string & name, double value)
+{
+    MgJsonNode *node = m_tree.top();
+    node->Element[name] = value;
+}
+
+void MgJsonDoc::Add(const char * name, INT64 value)
+{
+    MgJsonNode *node = m_tree.top();
+    node->Element[StaticString(name)] = (Json::Value::Int)value;
+}
+
+void MgJsonDoc::Add(const string & name, INT64 value)
+{
+    MgJsonNode *node = m_tree.top();
+    node->Element[name] = (Json::Value::Int)value;
+}
+
 void MgJsonDoc::AddAttribute(const char *name, const char *value)
 {
     this->Add("@" + string(name), value);

Modified: sandbox/jng/clean_json/Web/src/HttpHandler/JsonDoc.h
===================================================================
--- sandbox/jng/clean_json/Web/src/HttpHandler/JsonDoc.h	2015-11-11 14:25:02 UTC (rev 8828)
+++ sandbox/jng/clean_json/Web/src/HttpHandler/JsonDoc.h	2015-11-11 15:13:21 UTC (rev 8829)
@@ -77,6 +77,10 @@
     void Add(const string &name, const string &value);
     void Add(const char *name, bool value);
     void Add(const string &name, bool value);
+    void Add(const char* name, double value);
+    void Add(const string &name, double value);
+    void Add(const char* name, INT64 value);
+    void Add(const string &name, INT64 value);
     void AddAttribute(const char *name, const char *value);
     void AddAttribute(const char *name, const string &value);
     void AddAttribute(const string &name, const char *value);

Modified: sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.cpp
===================================================================
--- sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.cpp	2015-11-11 14:25:02 UTC (rev 8828)
+++ sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.cpp	2015-11-11 15:13:21 UTC (rev 8829)
@@ -193,12 +193,43 @@
     MgUtil::WideCharToMultiByte(X2W(node->getNodeName()), nodeName);
     if (nodeType == DOMNode::TEXT_NODE)
     {
-        string textContent;
-        MgUtil::WideCharToMultiByte(X2W(node->getTextContent()), textContent);
+        STRING wTextContent = X2W(node->getTextContent());
+        string textContent = MgUtil::WideCharToMultiByte(wTextContent);
 
         if (bClean)
         {
-            m_jsonDoc.AddAttribute(nodeName, textContent);
+            int type;
+            if (GetElementType(node, type))
+            {
+                switch (type)
+                {
+                case XML_DATA_TYPE_BOOLEAN:
+                    {
+                        bool b = MgUtil::StringToBoolean(wTextContent);
+                        m_jsonDoc.Add(nodeName, b);
+                    }
+                    break;
+                case XML_DATA_TYPE_NUM_INT:
+                    {
+                        INT64 l = MgUtil::StringToInt64(wTextContent);
+                        m_jsonDoc.Add(nodeName, l);
+                    }
+                    break;
+                case XML_DATA_TYPE_NUM_DOUBLE:
+                    {
+                        double d = MgUtil::StringToDouble(wTextContent);
+                        m_jsonDoc.Add(nodeName, d);
+                    }
+                    break;
+                default:
+                    m_jsonDoc.Add(nodeName, textContent);
+                    break;
+                }
+            }
+            else //Type assumed to be string
+            {
+                m_jsonDoc.Add(nodeName, textContent);
+            }
         }
         else
         {
@@ -227,13 +258,44 @@
                 DOMNode *childNode = childNodes->item(0);
                 if (childNode->getNodeType() == DOMNode::TEXT_NODE)
                 {
-                    string textContent;
-                    MgUtil::WideCharToMultiByte(X2W(childNode->getTextContent()), textContent);
+                    STRING wTextContent = X2W(childNode->getTextContent());
+                    string textContent = MgUtil::WideCharToMultiByte(wTextContent);
                     if (this->ValidateTextContent(textContent))
                     {
                         if (bClean)
                         {
-                            m_jsonDoc.Add(nodeName, textContent);
+                            int type;
+                            if (GetElementType(node, type))
+                            {
+                                switch (type)
+                                {
+                                case XML_DATA_TYPE_BOOLEAN:
+                                    {
+                                        bool b = MgUtil::StringToBoolean(wTextContent);
+                                        m_jsonDoc.Add(nodeName, b);
+                                    }
+                                    break;
+                                case XML_DATA_TYPE_NUM_INT:
+                                    {
+                                        INT64 l = MgUtil::StringToInt64(wTextContent);
+                                        m_jsonDoc.Add(nodeName, l);
+                                    }
+                                    break;
+                                case XML_DATA_TYPE_NUM_DOUBLE:
+                                    {
+                                        double d = MgUtil::StringToDouble(wTextContent);
+                                        m_jsonDoc.Add(nodeName, d);
+                                    }
+                                    break;
+                                default:
+                                    m_jsonDoc.Add(nodeName, textContent);
+                                    break;
+                                }
+                            }
+                            else //Type assumed to be string
+                            {
+                                m_jsonDoc.Add(nodeName, textContent);
+                            }
                         }
                         else
                         {
@@ -328,7 +390,9 @@
         DOMNode* currentNode = node->getParentNode();
         while (NULL != currentNode)
         {
-            if (currentNode->getNodeType() == DOMNode::DOCUMENT_NODE) {
+            DOMNode::NodeType nt = currentNode->getNodeType();
+            if (nt == DOMNode::ELEMENT_NODE)
+            {
                 STRING pathPart = L"/";
                 pathPart += currentNode->getNodeName();
                 elPath = pathPart + elPath;
@@ -375,9 +439,9 @@
 bool MgXmlJsonConvert::Initialize()
 {
     //ApplicationDefinition-1.0.0.xsd
-    s_elementPathTypeMap["/ApplicationDefinition/MapSet/MapGroup/InitialView/CenterX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ApplicationDefinition/MapSet/MapGroup/InitialView/CenterY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ApplicationDefinition/MapSet/MapGroup/InitialView/Scale"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/ApplicationDefinition/MapSet/MapGroup/InitialView/CenterX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ApplicationDefinition/MapSet/MapGroup/InitialView/CenterY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ApplicationDefinition/MapSet/MapGroup/InitialView/Scale"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/ApplicationDefinition/WidgetSet/Widget/Disabled"] = XML_DATA_TYPE_BOOLEAN;
     //ApplicationDefinitionInfo-1.0.0.xsd
     s_elementPathTypeMap["/ApplicationDefinitionWidgetInfoSet/WidgetInfo/StandardUi"] = XML_DATA_TYPE_BOOLEAN;
@@ -385,23 +449,23 @@
     //DataStoreList-1.0.0.xsd
     s_elementPathTypeMap["/DataStoreList/DataStore/FdoEnabled"] = XML_DATA_TYPE_BOOLEAN;
     //DrawingSource-1.0.0.xsd
-    s_elementPathTypeMap["/DrawingSource/Sheet/Extent/MinX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/DrawingSource/Sheet/Extent/MinY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/DrawingSource/Sheet/Extent/MaxX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/DrawingSource/Sheet/Extent/MaxY"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/DrawingSource/Sheet/Extent/MinX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/DrawingSource/Sheet/Extent/MinY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/DrawingSource/Sheet/Extent/MaxX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/DrawingSource/Sheet/Extent/MaxY"] = XML_DATA_TYPE_NUM_DOUBLE;
     //FdoLongTransactionList-1.0.0.xsd
     s_elementPathTypeMap["/FdoLongTransactionList/LongTransaction/@IsActive"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/FdoLongTransactionList/LongTransaction/@IsFrozen"] = XML_DATA_TYPE_BOOLEAN;
     //FdoSpatialContextList-1.0.0.xsd
     s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/@IsActive"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/XYTolerance"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/ZTolerance"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/Extent/LowerLeftCoordinate/X"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/Extent/LowerLeftCoordinate/Y"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/Extent/UpperRightCoordinate/X"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/Extent/UpperRightCoordinate/Y"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/XYTolerance"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/ZTolerance"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/Extent/LowerLeftCoordinate/X"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/Extent/LowerLeftCoordinate/Y"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/Extent/UpperRightCoordinate/X"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/FdoSpatialContextList/SpatialContext/Extent/UpperRightCoordinate/Y"] = XML_DATA_TYPE_NUM_DOUBLE;
     //FdoProviderCapabilities-1.1.0.xsd
-    s_elementPathTypeMap["/FeatureProviderCapabilities/Geometry/Dimensionality"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/FeatureProviderCapabilities/Geometry/Dimensionality"] = XML_DATA_TYPE_NUM_INT;
     s_elementPathTypeMap["/FeatureProviderCapabilities/Connection/SupportsLocking"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/FeatureProviderCapabilities/Connection/SupportsTimeout"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/FeatureProviderCapabilities/Connection/SupportsTransactions"] = XML_DATA_TYPE_BOOLEAN;
@@ -442,17 +506,17 @@
     //FeatureSource-1.0.0.xsd
     s_elementPathTypeMap["/FeatureSource/Extension/AttributeRelate/ForceOneToOne"] = XML_DATA_TYPE_BOOLEAN;
     //LayerDefinition-2.4.0.xsd
-    s_elementPathTypeMap["/LayerDefinition/DrawingLayerDefinition/Opacity"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/DrawingLayerDefinition/MinScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/DrawingLayerDefinition/MaxScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/Opacity"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/MinScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/MaxScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/AreaTypeStyle/AreaRule/Label/AdvancedPlacement/ScaleLimit"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/LayerDefinition/DrawingLayerDefinition/Opacity"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/DrawingLayerDefinition/MinScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/DrawingLayerDefinition/MaxScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/Opacity"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/MinScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/MaxScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/AreaTypeStyle/AreaRule/Label/AdvancedPlacement/ScaleLimit"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/AreaTypeStyle/ShowInLegend"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/LineTypeStyle/LineRule/Label/AdvancedPlacement/ScaleLimit"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/LineTypeStyle/LineRule/Label/AdvancedPlacement/ScaleLimit"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/LineTypeStyle/ShowInLegend"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/PointTypeStyle/PointRule/Label/AdvancedPlacement/ScaleLimit"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/PointTypeStyle/PointRule/Label/AdvancedPlacement/ScaleLimit"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/PointTypeStyle/DisplayAsText"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/PointTypeStyle/AllowOverpost"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/PointTypeStyle/ShowInLegend"] = XML_DATA_TYPE_BOOLEAN;
@@ -466,69 +530,69 @@
     s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/PointTypeStyle/PointRule/PointSymbolization2D/W2D/MaintainAspect"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/PointTypeStyle/PointRule/PointSymbolization2D/Block/MaintainAspect"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LayerDefinition/VectorLayerDefinition/VectorScaleRange/CompositeTypeStyle/ShowInLegend"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/Opacity"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Label/AdvancedPlacement/ScaleLimit"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/RedBand/LowBand"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/RedBand/HighBand"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/RedBand/LowChannel"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/RedBand/HighChannel"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/GreenBand/LowBand"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/GreenBand/HighBand"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/GreenBand/LowChannel"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/GreenBand/HighChannel"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/BlueBand/LowBand"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/BlueBand/HighBand"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/BlueBand/LowChannel"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/BlueBand/HighChannel"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/HillShade/Azimuth"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/HillShade/Altitude"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/HillShade/ScaleFactor"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/BrightnessFactor"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/ContrastFactor"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/SurfaceStyle/ZeroValue"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/SurfaceStyle/ScaleFactor"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/MinScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/MaxScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/RebuildFactor"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/Opacity"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Label/AdvancedPlacement/ScaleLimit"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/RedBand/LowBand"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/RedBand/HighBand"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/RedBand/LowChannel"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/RedBand/HighChannel"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/GreenBand/LowBand"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/GreenBand/HighBand"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/GreenBand/LowChannel"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/GreenBand/HighChannel"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/BlueBand/LowBand"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/BlueBand/HighBand"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/BlueBand/LowChannel"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/Color/Bands/BlueBand/HighChannel"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/HillShade/Azimuth"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/HillShade/Altitude"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/HillShade/ScaleFactor"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/BrightnessFactor"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/ColorStyle/ColorRule/ContrastFactor"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/SurfaceStyle/ZeroValue"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/SurfaceStyle/ScaleFactor"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/MinScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/MaxScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LayerDefinition/GridLayerDefinition/GridScaleRange/RebuildFactor"] = XML_DATA_TYPE_NUM_DOUBLE;
     //LoadProcedure-2.2.0.xsd
-    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GeoReferenceOverride/LocationX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GeoReferenceOverride/LocationY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GeoReferenceOverride/ScaleX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GeoReferenceOverride/ScaleY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/SubsampleFactor"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GeoReferenceOverride/LocationX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GeoReferenceOverride/LocationY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GeoReferenceOverride/ScaleX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GeoReferenceOverride/ScaleY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/SubsampleFactor"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GenerateSpatialDataSources"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GenerateLayers"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GenerateMaps"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/RasterLoadProcedure/GenerateSymbolLibraries"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/LoadProcedure/DwgLoadProcedure/Generalization"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/LoadProcedure/DwgLoadProcedure/Generalization"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/LoadProcedure/DwgLoadProcedure/ClosedPolylinesToPolygons"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/DwgLoadProcedure/GenerateSpatialDataSources"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/DwgLoadProcedure/GenerateLayers"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/DwgLoadProcedure/GenerateMaps"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/DwgLoadProcedure/GenerateSymbolLibraries"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/DwgLoadProcedure/LayerComponents/LayerComponent/Selected"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/LoadProcedure/SdfLoadProcedure/Generalization"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/LoadProcedure/SdfLoadProcedure/Generalization"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/LoadProcedure/SdfLoadProcedure/GenerateSpatialDataSources"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/SdfLoadProcedure/GenerateLayers"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/SdfLoadProcedure/GenerateMaps"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/SdfLoadProcedure/GenerateSymbolLibraries"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/LoadProcedure/SQLiteLoadProcedure/Generalization"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/LoadProcedure/SQLiteLoadProcedure/Generalization"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/LoadProcedure/SQLiteLoadProcedure/GenerateSpatialDataSources"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/SQLiteLoadProcedure/GenerateLayers"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/SQLiteLoadProcedure/GenerateMaps"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/SQLiteLoadProcedure/GenerateSymbolLibraries"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/LoadProcedure/ShpLoadProcedure/Generalization"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/LoadProcedure/ShpLoadProcedure/Generalization"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/LoadProcedure/ShpLoadProcedure/GenerateSpatialDataSources"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/ShpLoadProcedure/GenerateLayers"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/ShpLoadProcedure/GenerateMaps"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/ShpLoadProcedure/GenerateSymbolLibraries"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/LoadProcedure/ShpLoadProcedure/ConvertToSdf"] = XML_DATA_TYPE_BOOLEAN;
     //MapDefinition-2.4.0.xsd
-    s_elementPathTypeMap["/MapDefinition/Extents/MinX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/MapDefinition/Extents/MinY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/MapDefinition/Extents/MaxX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/MapDefinition/Extents/MaxY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/MapDefinition/BaseMapDefinition/FiniteDisplayScale"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/MapDefinition/Extents/MinX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/MapDefinition/Extents/MinY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/MapDefinition/Extents/MaxX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/MapDefinition/Extents/MaxY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/MapDefinition/BaseMapDefinition/FiniteDisplayScale"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/MapDefinition/MapLayer/Selectable"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/MapDefinition/MapLayer/ShowInLegend"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/MapDefinition/MapLayer/ExpandInLegend"] = XML_DATA_TYPE_BOOLEAN;
@@ -543,9 +607,9 @@
     s_elementPathTypeMap["/MapDefinition/BaseMapDefinition/BaseMapLayerGroup/BaseMapLayer/ExpandInLegend"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/MapDefinition/BaseMapDefinition/BaseMapLayerGroup/BaseMapLayer/Visible"] = XML_DATA_TYPE_BOOLEAN;
     //PrintLayout-1.0.0.xsd
-    s_elementPathTypeMap["/PrintLayout/PageProperties/BackgroundColor/Red"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/PrintLayout/PageProperties/BackgroundColor/Blue"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/PrintLayout/PageProperties/BackgroundColor/Green"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/PrintLayout/PageProperties/BackgroundColor/Red"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/PrintLayout/PageProperties/BackgroundColor/Blue"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/PrintLayout/PageProperties/BackgroundColor/Green"] = XML_DATA_TYPE_NUM_INT;
     s_elementPathTypeMap["/PrintLayout/LayoutProperties/ShowTitle"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/PrintLayout/LayoutProperties/ShowLegend"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/PrintLayout/LayoutProperties/ShowScaleBar"] = XML_DATA_TYPE_BOOLEAN;
@@ -555,110 +619,110 @@
     s_elementPathTypeMap["/PrintLayout/LayoutProperties/ShowCustomLogos"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/PrintLayout/LayoutProperties/ShowCustomText"] = XML_DATA_TYPE_BOOLEAN;
     //ProfileResult-2.4.0.xsd
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/LayerCount"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Scale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/RenderTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/CreateImageTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Extents/MinX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Extents/MinY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Extents/MaxX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Extents/MaxY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderDynamicOverlay/LayerCount"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderDynamicOverlay/Scale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderDynamicOverlay/RenderTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderDynamicOverlay/CreateImageTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderLayer/RenderTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderLayer/ScaleRange/MinScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderLayer/ScaleRange/MaxScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderLayers/RenderTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderSelection/RenderTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderWatermark/RenderTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderWatermarks/RenderTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ProfileResult/ProfileRenderLabels/RenderTime"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/LayerCount"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Scale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/RenderTime"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/CreateImageTime"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Extents/MinX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Extents/MinY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Extents/MaxX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderMap/Extents/MaxY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderDynamicOverlay/LayerCount"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderDynamicOverlay/Scale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderDynamicOverlay/RenderTime"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderDynamicOverlay/CreateImageTime"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderLayer/RenderTime"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderLayer/ScaleRange/MinScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderLayer/ScaleRange/MaxScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderLayers/RenderTime"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderSelection/RenderTime"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderWatermark/RenderTime"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderWatermarks/RenderTime"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/ProfileResult/ProfileRenderLabels/RenderTime"] = XML_DATA_TYPE_NUM_DOUBLE;
     //ResourceList-1.0.0.xsd
-    s_elementPathTypeMap["/ResourceList/ResourceFolder/Depth"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ResourceList/ResourceFolder/NumberOfFolders"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ResourceList/ResourceFolder/NumberOfDocuments"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/ResourceList/ResourceDocument/Depth"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/ResourceList/ResourceFolder/Depth"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/ResourceList/ResourceFolder/NumberOfFolders"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/ResourceList/ResourceFolder/NumberOfDocuments"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/ResourceList/ResourceDocument/Depth"] = XML_DATA_TYPE_NUM_INT;
     s_elementPathTypeMap["/ResourceList/ResourceFolder/ResourceFolderHeader/Security/Inherited"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/ResourceList/ResourceDocument/ResourceDocumentHeader/Security/Inherited"] = XML_DATA_TYPE_BOOLEAN;
     //RuntimeMap-2.6.0.xsd
-    s_elementPathTypeMap["/RuntimeMap/DisplayDpi"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/Group/Type"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/RuntimeMap/DisplayDpi"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/RuntimeMap/Group/Type"] = XML_DATA_TYPE_NUM_INT;
     s_elementPathTypeMap["/RuntimeMap/Group/DisplayInLegend"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/RuntimeMap/Group/ExpandInLegend"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/RuntimeMap/Group/Visible"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/RuntimeMap/Group/ActuallyVisible"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/RuntimeMap/Layer/Type"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/Layer/ScaleRange/MinScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/Layer/ScaleRange/MaxScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/Layer/ScaleRange/FeatureStyle/Type"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/RuntimeMap/Layer/Type"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/RuntimeMap/Layer/ScaleRange/MinScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/RuntimeMap/Layer/ScaleRange/MaxScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/RuntimeMap/Layer/ScaleRange/FeatureStyle/Type"] = XML_DATA_TYPE_NUM_INT;
     s_elementPathTypeMap["/RuntimeMap/Layer/Selectable"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/RuntimeMap/Layer/DisplayInLegend"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/RuntimeMap/Layer/ExpandInLegend"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/RuntimeMap/Layer/Visible"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/RuntimeMap/Layer/ActuallyVisible"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/RuntimeMap/FiniteDisplayScale"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/CoordinateSystem/MetersPerUnit"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/Extents/LowerLeftCoordinate/X"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/Extents/LowerLeftCoordinate/Y"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/Extents/UpperRightCoordinate/X"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/Extents/UpperRightCoordinate/Y"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/RuntimeMap/FiniteDisplayScale"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/RuntimeMap/CoordinateSystem/MetersPerUnit"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/RuntimeMap/Extents/LowerLeftCoordinate/X"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/RuntimeMap/Extents/LowerLeftCoordinate/Y"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/RuntimeMap/Extents/UpperRightCoordinate/X"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/RuntimeMap/Extents/UpperRightCoordinate/Y"] = XML_DATA_TYPE_NUM_DOUBLE;
     //RuntimeMap-3.0.0.xsd
-    s_elementPathTypeMap["/RuntimeMap/TileWidth"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/RuntimeMap/TileHeight"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/RuntimeMap/TileWidth"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/RuntimeMap/TileHeight"] = XML_DATA_TYPE_NUM_INT;
     //SiteInformation-1.0.0.xsd
-    s_elementPathTypeMap["/SiteInformation/SiteServer/OperatingSystem/AvailablePhysicalMemory"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/SiteServer/OperatingSystem/TotalPhysicalMemory"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/SiteServer/OperatingSystem/AvailableVirtualMemory"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/SiteServer/OperatingSystem/TotalVirtualMemory"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/AdminOperationsQueueCount"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/ClientOperationsQueueCount"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/SiteOperationsQueueCount"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/AverageOperationTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/CpuUtilization"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/TotalOperationTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/ActiveConnections"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/TotalConnections"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/TotalOperationsProcessed"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/TotalOperationsReceived"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Statistics/Uptime"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/SiteInformation/SiteServer/OperatingSystem/AvailablePhysicalMemory"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/SiteServer/OperatingSystem/TotalPhysicalMemory"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/SiteServer/OperatingSystem/AvailableVirtualMemory"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/SiteServer/OperatingSystem/TotalVirtualMemory"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/AdminOperationsQueueCount"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/ClientOperationsQueueCount"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/SiteOperationsQueueCount"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/AverageOperationTime"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/CpuUtilization"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/TotalOperationTime"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/ActiveConnections"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/TotalConnections"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/TotalOperationsProcessed"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/TotalOperationsReceived"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Statistics/Uptime"] = XML_DATA_TYPE_NUM_INT;
     //SiteInformation-2.2.0.xsd
-    s_elementPathTypeMap["/SiteInformation/Server/OperatingSystem/AvailablePhysicalMemory"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/OperatingSystem/TotalPhysicalMemory"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/OperatingSystem/AvailableVirtualMemory"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/OperatingSystem/TotalVirtualMemory"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/AdminOperationsQueueCount"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/ClientOperationsQueueCount"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/SiteOperationsQueueCount"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/AverageOperationTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/CpuUtilization"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/WorkingSet"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/VirtualMemory"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/TotalOperationTime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/ActiveConnections"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/TotalConnections"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/TotalOperationsProcessed"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/TotalOperationsReceived"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/Uptime"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/CacheSize"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/SiteInformation/Server/Statistics/CacheDroppedEntries"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/SiteInformation/Server/OperatingSystem/AvailablePhysicalMemory"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/OperatingSystem/TotalPhysicalMemory"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/OperatingSystem/AvailableVirtualMemory"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/OperatingSystem/TotalVirtualMemory"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/AdminOperationsQueueCount"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/ClientOperationsQueueCount"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/SiteOperationsQueueCount"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/AverageOperationTime"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/CpuUtilization"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/WorkingSet"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/VirtualMemory"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/TotalOperationTime"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/ActiveConnections"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/TotalConnections"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/TotalOperationsProcessed"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/TotalOperationsReceived"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/Uptime"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/CacheSize"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/SiteInformation/Server/Statistics/CacheDroppedEntries"] = XML_DATA_TYPE_NUM_INT;
     //UnmanagedDataList-1.0.0.xsd
-    s_elementPathTypeMap["/UnmanagedDataList/UnmanagedDataFolder/NumberOfFolders"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/UnmanagedDataList/UnmanagedDataFolder/NumberOfFiles"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/UnmanagedDataList/UnmanagedDataFolder/NumberOfFolders"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/UnmanagedDataList/UnmanagedDataFile/Size"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/UnmanagedDataList/UnmanagedDataFolder/NumberOfFolders"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/UnmanagedDataList/UnmanagedDataFolder/NumberOfFiles"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/UnmanagedDataList/UnmanagedDataFolder/NumberOfFolders"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/UnmanagedDataList/UnmanagedDataFile/Size"] = XML_DATA_TYPE_NUM_INT;
     //WebLayout-2.6.0.xsd
-    s_elementPathTypeMap["/WebLayout/PointSelectionBuffer"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/WebLayout/InformationPane/Width"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/WebLayout/PointSelectionBuffer"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/WebLayout/InformationPane/Width"] = XML_DATA_TYPE_NUM_INT;
     s_elementPathTypeMap["/WebLayout/InformationPane/LegendVisible"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/WebLayout/InformationPane/PropertiesVisible"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/WebLayout/TaskPane/Width"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/WebLayout/CommandSet/Command/MatchLimit"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/WebLayout/TaskPane/Width"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/WebLayout/CommandSet/Command/MatchLimit"] = XML_DATA_TYPE_NUM_INT;
     s_elementPathTypeMap["/WebLayout/CommandSet/Command/DisableIfSelectionEmpty"] = XML_DATA_TYPE_BOOLEAN;
-    s_elementPathTypeMap["/WebLayout/Map/InitialView/CenterX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/WebLayout/Map/InitialView/CenterY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/WebLayout/Map/InitialView/Scale"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/WebLayout/Map/InitialView/CenterX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/WebLayout/Map/InitialView/CenterY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/WebLayout/Map/InitialView/Scale"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/WebLayout/EnablePingServer"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/WebLayout/ToolBar/Visible"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/WebLayout/InformationPane/Visible"] = XML_DATA_TYPE_BOOLEAN;
@@ -668,17 +732,17 @@
     s_elementPathTypeMap["/WebLayout/StatusBar/Visible"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/WebLayout/ZoomControl/Visible"] = XML_DATA_TYPE_BOOLEAN;
     //WatermarkDefinition-2.4.0.xsd
-    s_elementPathTypeMap["/WatermarkDefinition/Position/XYPosition/XPosition/Offset"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/WatermarkDefinition/Position/XYPosition/YPosition/Offset"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/WatermarkDefinition/Position/TilePosition/TileWidth"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/WatermarkDefinition/Position/TilePosition/TileHeight"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/WatermarkDefinition/Appearance/Transparency"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/WatermarkDefinition/Appearance/Rotation"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/WatermarkDefinition/Position/XYPosition/XPosition/Offset"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/WatermarkDefinition/Position/XYPosition/YPosition/Offset"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/WatermarkDefinition/Position/TilePosition/TileWidth"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/WatermarkDefinition/Position/TilePosition/TileHeight"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/WatermarkDefinition/Appearance/Transparency"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/WatermarkDefinition/Appearance/Rotation"] = XML_DATA_TYPE_NUM_DOUBLE;
     //TileSetDefinition-3.0.0.xsd
-    s_elementPathTypeMap["/TileSetDefinition/Extents/MinX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/TileSetDefinition/Extents/MinY"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/TileSetDefinition/Extents/MaxX"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/TileSetDefinition/Extents/MaxY"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/TileSetDefinition/Extents/MinX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/TileSetDefinition/Extents/MinY"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/TileSetDefinition/Extents/MaxX"] = XML_DATA_TYPE_NUM_DOUBLE;
+    s_elementPathTypeMap["/TileSetDefinition/Extents/MaxY"] = XML_DATA_TYPE_NUM_DOUBLE;
     s_elementPathTypeMap["/TileSetDefinition/BaseMapLayerGroup/Visible"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/TileSetDefinition/BaseMapLayerGroup/ShowInLegend"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/TileSetDefinition/BaseMapLayerGroup/ExpandInLegend"] = XML_DATA_TYPE_BOOLEAN;
@@ -686,8 +750,8 @@
     s_elementPathTypeMap["/TileSetDefinition/BaseMapLayerGroup/BaseMapLayer/ShowInLegend"] = XML_DATA_TYPE_BOOLEAN;
     s_elementPathTypeMap["/TileSetDefinition/BaseMapLayerGroup/BaseMapLayer/ExpandInLegend"] = XML_DATA_TYPE_BOOLEAN;
     //Miscellaneous MapGuide response types that don't have a formal schema
-    s_elementPathTypeMap["/SessionTimeout/Value"] = XML_DATA_TYPE_NUMBER;
-    s_elementPathTypeMap["/FeatureInformation/SelectedFeatures/SelectedLayer/LayerMetadata/Property/Type"] = XML_DATA_TYPE_NUMBER;
+    s_elementPathTypeMap["/SessionTimeout/Value"] = XML_DATA_TYPE_NUM_INT;
+    s_elementPathTypeMap["/FeatureInformation/SelectedFeatures/SelectedLayer/LayerMetadata/Property/Type"] = XML_DATA_TYPE_NUM_INT;
 
     //FeatureSource-1.0.0.xsd
     s_multiElementPaths.insert("/FeatureSource/Parameter");

Modified: sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.h
===================================================================
--- sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.h	2015-11-11 14:25:02 UTC (rev 8828)
+++ sandbox/jng/clean_json/Web/src/HttpHandler/XmlJsonConvert.h	2015-11-11 15:13:21 UTC (rev 8829)
@@ -22,9 +22,10 @@
 #include "System/XmlUtil.h"
 #include "JsonDoc.h"
 
-#define XML_DATA_TYPE_NUMBER 1
-#define XML_DATA_TYPE_BOOLEAN 2
-#define XML_DATA_TYPE_STRING 3
+#define XML_DATA_TYPE_NUM_INT 1
+#define XML_DATA_TYPE_NUM_DOUBLE 2
+#define XML_DATA_TYPE_BOOLEAN 3
+#define XML_DATA_TYPE_STRING 4
 
 /// \cond INTERNAL
 class MgXmlJsonConvert



More information about the mapguide-commits mailing list