Version 3 (modified by 16 years ago) ( diff ) | ,
---|
MapGuide RFC 70 - Apply Schema ¶
This page contains an change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.
Status ¶
RFC Template Version | (1.0) |
Submission Date | June 26, 2009 |
Last Modified | Leaf Li Timestamp |
Author | Leaf Li |
RFC Status | draft |
Implementation Status | under development |
Proposed Milestone | 2.2 |
Assigned PSC guide(s) | Tom Fukushima |
Voting History | (vote date) |
+1 | |
+0 | |
-0 | |
-1 | |
no vote |
Overview ¶
This proposal is to extend MapGuide Feature Service to support applying schema.
Motivation ¶
Currently MapGuide Web API doesn’t support any functionality to create or modify schema of a feature source. The RFC is used to eliminate this limitation.
Proposed Solution ¶
Schema, Class and Property Definition ¶
ApplySchema need not only support adding, modifying but also support deleting schema elements. So we need a method to mark the schema element for deletion. The method Delete() will be added to classes MgFeatureSchema, MgClassDefinition, MgPropertyDefinition for it.
/// \brief /// Contains one or more feature class definitions, which specify the structure /// of feature data in a datastore. class MgFeatureSchema: public MgNamedSerializable { PUBLISHED_API: ...... /// \brief /// Marks the schema for deletion. /// /// \return /// Returns nothing. void Delete(); }; /// \brief /// Defines a feature class belonging to a schema. class MgClassDefinition: public MgNamedSerializable { PUBLISHED_API: ...... /// \brief /// Marks the class for deletion. /// /// \return /// Returns nothing. void Delete(); }; /// \brief /// Defines the base class for the concreate property definition classes which /// are used to create data, geometric, object, and raster property definitions. class MgPropertyDefinition: public MgProperty { PUBLISHED_API: ...... /// \brief /// Marks the property for deletion. /// /// \return /// Returns nothing. void Delete(); };
Changes to Feature Service ¶
Feature Service will be extended to add one method to apply a schema.
class MgFeatureService : public MgService { PUBLISHED_API: /// \brief /// Creates or updates a feature schema within the DataStore. /// /// \param resource (MgResourceIdentifier) /// A resource identifier referring to a feature source. /// \param schema /// Input schema to be created or updated. /// /// \return /// Returns nothing. /// virtual void ApplySchema( MgResourceIdentifier* resource, MgFeatureSchema* schema) = 0; };
Implications ¶
This is new API only. There will be no effect on existing applications. However, API documentation need to be updated.
Test Plan ¶
Add unit tests for method MgFeatureService::ApplySchema into the existing Feature Service unit tests.
Funding/Resources ¶
Supplied by Autodesk.