Changes between Version 3 and Version 4 of MapGuideRfc25

Aug 9, 2007, 12:47:37 PM (15 years ago)



  • MapGuideRfc25

    v3 v4  
    3737This is a more detailed description of the actual changes desired.  The contents of this section will vary based on the target of the RFC, be it a technical change, website change, or process change.  For example, for a technical change, items such as files, XML schema changes, and API chances would be identified.  For a process change, the new process would be laid out in detail.  For a website change, the files affected would be listed.
     39An additioanl OEM component has been added to the source -- jsoncpp. Jsoncpp is a C++ implementation of the JSON specification (
     41Two additional classes have been added to assist the JSON implementation in MapGuide:
     421) The MgJsonDoc Class
     43- MgJsonDoc is a wrapper over the jsoncpp implementation. MgJsonDoc provides many easy-to-use interfaces, such as Begin* and End*, for creating JSON documents from an XML perspective. For example, to create as JSON document for the corresponding XML content---<Node>Text</Node>---, one would call BeginObject("Node"), SetValue("Text"), and EndObject() subsequently.
     452) The MgXmlJsonConvert Class
     46- MgXmlJsonConvert converts an XML document into a JSON formatted document.
     48The following Web-tier to Server APIs are affected:
     50Coordinate System
     52# EnumerateCategories (1)
     53# EnumerateCoordinateSystems (1)
     57# EnumerateResourceReferences (3)
     58# EnumerateResources (3)
     59# GetResourceContent (3)
     60# GetResourceHeader (3)
     61# EnumerateResourceData (3)
     62# GetResourceData (3)
     63# EnumerateUnmanagedData (3)
     67# GetFeatureProviders (3)
     68# GetCapabilities (3)
     69# GetConnectPropertyValues (1)
     70# DescribeSchema (4)
     71# SelectFeatures (2)
     72# SelectAggregates (1)
     73# GetSpatialContexts (1)
     74# GetLongTransactions (1)
     75# EnumerateDataStores (3)
     76# GetSchemaMapping (3)
     77# GetSchemas (1)
     78# GetClasses (1)
     79# GetClassDefinition (2)
     80# GetIdentityProperties (1)
     81# ExecuteSqlQuery (1)
     82# GetFdoCacheInfo (4)
     86# GetVisibleMapExtent (1)
     88where the appended labeling scheme indicates the different implementation considerations:
     89(1) Web-tier changes -- every ToXml function is matched with an ToJson function implementation that creates a JSON document in place,
     90(2) Web-tier changes -- utilizes the MgXmlJsonConvert class to convert XML documents to JSON documents.
     91(3) Server changes -- an extra parameter "CREFSTRING format" has been added to the respective API call; the MgXmlJsonConvert class is used if format equals to the JSON MIME type.
     92(4) Server changes -- an extra API has been added matching the respective API call (e.g. DescribeSchemaAsXml has DescribeSchemaAsJson as its counter part, and GetFDOCacheInfo has GetFDOCacheInfoAsJson as its JSON specific implementation); this is because the original APIs return "STRING" and could not be efficiently adapted by the conversion process within the MgXmlJsonConvert class implementation; and for the affected APIs, the MgByteReader* is returned instead.
    3994== Implications ==