Changes between Version 6 and Version 7 of MapGuideRfc25


Ignore:
Timestamp:
Aug 9, 2007, 1:42:03 PM (17 years ago)
Author:
jasonchen
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc25

    v6 v7  
    3535== Proposed Solution ==
    3636
    37 This 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.
    38 
    3937An additioanl OEM component has been added to the source -- jsoncpp. Jsoncpp is a C++ implementation of the JSON specification (http://sourceforge.net/projects/jsoncpp/).
    4038
    4139Two additional classes have been added to assist the JSON implementation in !MapGuide:
     40
    42411) The !MgJsonDoc Class
     42
    4343- !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.
    4444
    45 2) The MgXmlJsonConvert Class
     452) The !MgXmlJsonConvert Class
     46
    4647- !MgXmlJsonConvert converts an XML document into a JSON formatted document.
    4748
     
    5152
    5253# !EnumerateCategories (1)
     54
    5355# !EnumerateCoordinateSystems (1)
    5456
     
    5658
    5759# !EnumerateResourceReferences (3)
     60
    5861# !EnumerateResources (3)
     62
    5963# !GetResourceContent (3)
     64
    6065# !GetResourceHeader (3)
     66
    6167# !EnumerateResourceData (3)
     68
    6269# !GetResourceData (3)
     70
    6371# !EnumerateUnmanagedData (3)
    6472
     
    6674
    6775# !GetFeatureProviders (3)
     76
    6877# !GetCapabilities (3)
     78
    6979# !GetConnectPropertyValues (1)
     80
    7081# !DescribeSchema (4)
     82
    7183# !SelectFeatures (2)
     84
    7285# !SelectAggregates (1)
     86
    7387# !GetSpatialContexts (1)
     88
    7489# !GetLongTransactions (1)
     90
    7591# !EnumerateDataStores (3)
     92
    7693# !GetSchemaMapping (3)
     94
    7795# !GetSchemas (1)
     96
    7897# !GetClasses (1)
     98
    7999# !GetClassDefinition (2)
     100
    80101# !GetIdentityProperties (1)
     102
    81103# !ExecuteSqlQuery (1)
     104
    82105# !GetFdoCacheInfo (4)
    83106
     
    87110
    88111where the appended labeling scheme indicates the different implementation considerations:
     112
    89113(1) Web-tier changes -- every !ToXml function is matched with an !ToJson function implementation that creates a JSON document in place,
     114
    90115(2) Web-tier changes -- utilizes the !MgXmlJsonConvert class to convert XML documents to JSON documents.
     116
    91117(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.
     118
    92119(4) Server changes -- an extra API has been added matching the respective API call (e.g. !DescribeSchemaAsXml has !DescribeSchemaAsJson as the JSON version, 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.
    93120