Changes between Version 5 and Version 6 of FdoEnhancedSchemaNameSupport


Ignore:
Timestamp:
Oct 18, 2007, 2:55:22 PM (17 years ago)
Author:
gregboone
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FdoEnhancedSchemaNameSupport

    v5 v6  
    263263
    264264        • Despite the overlap with GML schema overrides, this would currently be the recommended option, since it is the best one mentioned in this document.
     265
     266==== Schema Overrides ====
     267
     268The !FdoXmlSchemaMapping class already provides a way to match FDO and GML names for each feature schema. This is provided by this class' name (FDO name) and targetNamespace (GML name) settings. This class can already be passed to !ReadXml() and !WriteXml() via the !FdoXmlFlags. We'd just need to start using its mappings in !ReadXml() and !WriteXml().
     269
     270Pros:
     271
     272        • Flexible. The GML and FDO schema name correspondences can be set on a per-schema basis.
     273
     274        • More consistent with rest of FDO since GML names specified as GML-specific overrides.
     275
     276        • Opens up the ability to specify overrides for other FDO schema elements and customize how they are translated to GML. This would allow us to round trip other GML and XML Schema constructs, that don't easily fit into FDO, such as xs:choice elements.
     277
     278Cons:
     279
     280        • More complicated API. Client must create set of override classes, instead of just setting the schema name attributes or FdoXmlFlags.
     281
     282        • Problematic for Schema Exchange use case. Instead of ensuring consistent url prefixes are used by both !ReadXml() and !WriteXML(), the customer must ensure that consistent GML Schema Overrides are used. Instead of having to manage names, they have to manage object hierarchies or XML fragments.
     283
     284        • Problematic for Publish as WFS use case. The GML Schema Overrides must be persisted somehow so that consistent GML schema names are used, each time someone retrieves schemas from the WFS. Currently, they must be persisted in some file storage location.
     285
     286One way to mitigate this con is the allow them to be stored in the provider datastore if the provider supports FdoIApplySchema. The RDBMS provider implementations of this command can take a set of schema overrides. However, they discard all overrides except those for that particular provider. A possible enhancement would be for the RDBMS providers to be able to persist schema overrides from other providers. This could be done by adding a CLOB column to f_schemainfo, where these overrides would be stored in XML format. There is a problem with doing this in that Schema Overrides cannot be serialized to XML without their corresponding provider being present, which is not guaranteed. Perhaps this enhancement should be limited to just handling GML Schema Overrides. These overrides can be serialized using only core FDO.
     287
     288Conclusions:
     289
     290        • This is the most elegant solution but it lacks the simplicity of the Schema Name Attributes option:
     291                o it requires the use of Schema Overrides, which are not popular with application developers.
     292                o the persistence problems are worse. Instead of needing to persist a name, a whole set of classes or an XML fragment must be persisted.
     293