Changes between Version 7 and Version 8 of FdoEnhancedSchemaNameSupport
- Timestamp:
- 10/18/07 15:05:02 (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FdoEnhancedSchemaNameSupport
v7 v8 30 30 • in GML, the schema name must be a valid URI. Most current FDO schema names are valid URI's. However, most GML schema names tend to conform to the http scheme (see glossary), as seen in the following example. FDO Schema names would tend to not fit the http scheme. 31 31 32 A typical example might be a Roads schema defined by the municipality " MyCity". The FDO schema might simply be "Roads". However, the GML schema name might look something like this:32 A typical example might be a Roads schema defined by the municipality "!MyCity". The FDO schema might simply be "Roads". However, the GML schema name might look something like this: 33 33 34 34 http://www.mycity.on.ca/departments/transportation/Roads … … 194 194 • Qualified Schema Element name compatibility. This option changes the rules for constructing qualified element names. In pre-slate, double quotes are always literals but in Slate they would be delimiters. It is unlikely that any pre-existing schema names start and end with a double quote but it is possible. 195 195 196 • GML Schema names no longer guaranteed to follow the http scheme. Almost every GML schema we've seen sofar follows this URI naming scheme, so customers might complain if we don't always follow it. Therefore, this option does not work well for the Publish as WFS use case. Clients doing this sort of publishing will likely start specifying FdoXmlFlags toWriteXml to ensure that the GML Schema name follows the http scheme.196 • GML Schema names no longer guaranteed to follow the http scheme. Almost every GML schema we've seen sofar follows this URI naming scheme, so customers might complain if we don't always follow it. Therefore, this option does not work well for the Publish as WFS use case. Clients doing this sort of publishing will likely start specifying !FdoXmlFlags to !WriteXml to ensure that the GML Schema name follows the http scheme. 197 197 198 198 Conclusions: … … 278 278 Cons: 279 279 280 • More complicated API. Client must create set of override classes, instead of just setting the schema name attributes or FdoXmlFlags.280 • More complicated API. Client must create set of override classes, instead of just setting the schema name attributes or !FdoXmlFlags. 281 281 282 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. … … 322 322 323 323 324 Currently, FdoFeatureSchemaCollection is the highest level schema object. Under this optionFdoSchemaNamespaceCollection would become the highest level object.324 Currently, !FdoFeatureSchemaCollection is the highest level schema object. Under this option !FdoSchemaNamespaceCollection would become the highest level object. 325 325 326 326 The SDF and RDBMS providers would be changed to handle namespaces. For the RDBMS providers, this would likely mean adding a new MetaSchema table. For backward compatibility, we'd need to introduce the concept of a default namespace. Feature Schemas in pre-existing datastores would automatically go under the default namespace. … … 363 363 Pros: 364 364 365 • More generalized than the Schema Name Attribute approach. Instead of putting a schema override on FdoFeatureSchema, we add a new provider-neutral concept to the Fdo Feature schema model.365 • More generalized than the Schema Name Attribute approach. Instead of putting a schema override on !FdoFeatureSchema, we add a new provider-neutral concept to the Fdo Feature schema model. 366 366 367 367 • Better than the Schema Override approach since a separate Schema Overrides set is not required to customize schema name translation between FDO and GML. … … 377 377 • Schema names themselves no longer unique, unless also qualified by namespace. Some applications might rely on schema names being unique 378 378 379 • Introduces a whole new level to the Fdo Feature Schema model, adding to its complexity. This isalso a departure from the OpenGeospatial model, where a schema is a namespace, rather than being contained in a namespace.379 • Introduces a whole new level to the Fdo Feature Schema model, adding to its complexity. This isalso a departure from the !OpenGeospatial model, where a schema is a namespace, rather than being contained in a namespace. 380 380 381 381 • This option may seem to get rid of the problem where schemas read from GML have long names. However, it merely splits these long names and puts the more complex part in the namespace name. Clients still new need both namespace and schema name to uniquely identify a schema. … … 384 384 385 385 • This option is viable but not recommended. The main reasons are: 386 o it departs from the OpenGeospatial schema model386 o it departs from the !OpenGeospatial schema model 387 387 o it adds complication to the FDO Feature Schema model 388 388 o the implementation effort is a bit high. … … 391 391 ==== Just a Name ==== 392 392 393 Under this option, namespace would not be a fully fledged Fdo Schema Element but merely a new attribute on FdoFeatureSchema: 394 393 Under this option, namespace would not be a fully fledged Fdo Schema Element but merely a new attribute on !FdoFeatureSchema: 395 394 396 395 {{{ … … 402 401 }}} 403 402 404 405 403 The Schema name would no longer be unique within FDO Datastore, the combination of namespace and schema name would be unique (Otherwise, this option would be the same as the Schema Name Attributes option). 406 404 407 FdoFeatureSchemaCollection would be impacted in that it cannot hold schemas of different namespaces since schema names must be unique within each collection. Because of this, FdoIDescribeSchema cannot retrieve all schemas for an FDO datastore if they are in different namespaces. This necessitates adding a new command:405 !FdoFeatureSchemaCollection would be impacted in that it cannot hold schemas of different namespaces since schema names must be unique within each collection. Because of this, FdoIDescribeSchema cannot retrieve all schemas for an FDO datastore if they are in different namespaces. This necessitates adding a new command: 408 406 409 407 … … 419 417 420 418 421 Note that it is a bit different than the FdoIDescibeNamespace from the previous section, in that it returns an FdoFeatureSchemaCollection. Therefore, this command will only be able to retrieve the schemas for a single namespace. This also means we need an extra command to list all the namespaces on a datastore.419 Note that it is a bit different than the FdoIDescibeNamespace from the previous section, in that it returns an !FdoFeatureSchemaCollection. Therefore, this command will only be able to retrieve the schemas for a single namespace. This also means we need an extra command to list all the namespaces on a datastore. 422 420 423 421 We'd still need to add namespace to qualified schema element names and modify the feature commands to handle the namespace component. … … 427 425 Pros: 428 426 429 • introduces a bit less complexity to the FDO Schema model in that there is no new FdoSchemaNamespace class.427 • introduces a bit less complexity to the FDO Schema model in that there is no new !FdoSchemaNamespace class. 430 428 431 429 Cons: 432 430 433 431 • less flexible since FdoIDescribeNamespace cannot retrieve schemas for all namespaces. 434 • an extra command is required to list namespaces, since there is no FdoSchemaNamespaceCollection class.432 • an extra command is required to list namespaces, since there is no !FdoSchemaNamespaceCollection class. 435 433 436 434 Conclusion: 437 435 438 • Same Conclusions as for Schema Namespace - Full Object. However, eliminating the FdoSchemaNamespace andFdoSchemaNamespaceCollection objects doesn't buy us much so this sub-option is not recommended.436 • Same Conclusions as for Schema Namespace - Full Object. However, eliminating the !FdoSchemaNamespace and !FdoSchemaNamespaceCollection objects doesn't buy us much so this sub-option is not recommended. 439 437 440 438