NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_ODBC::OvPhysicalSchemaMapping::OvPhysicalSchemaMapping(NAMESPACE_OSGEO_FDO_COMMANDS_SCHEMA::PhysicalSchemaMapping^ schemaMapping, System::Boolean autoDelete) : NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvPhysicalSchemaMapping(schemaMapping, autoDelete) { // Validate IN Parameter if (nullptr == schemaMapping) throw gcnew System::ArgumentNullException(); // Retrieve the provider name for the FdoOdbcOvPhysicalSchemaMapping class FdoPtr<FdoOdbcOvPhysicalSchemaMapping> odbcSchemaMapping = FdoOdbcOvPhysicalSchemaMapping::Create(); FdoStringP odbcProviderName = odbcSchemaMapping->GetProvider(); // Retrieve the provider name of the schema mapping object passed into the constructor System::String^ sProviderName = schemaMapping->Provider; // If the provider named do not match throw an Invalid Argument exception if (odbcProviderName != StringToUni(sProviderName)) throw gcnew System::ArgumentException(); }
FdoXmlLpSchemaCollection* FdoXmlSchemaManager::_schemas() { if (m_lpSchemas == NULL) { m_lpSchemas = FdoXmlLpSchemaCollection::Create(this); FdoInt32 count = m_fdoSchemas->GetCount(); FdoPtr<FdoPhysicalSchemaMappingCollection> mappings = m_flags->GetSchemaMappings(); if ( mappings == NULL ) mappings = m_fdoSchemas->GetXmlSchemaMappings(); FdoInt32 count1 = mappings->GetCount(); FdoPtr<FdoXmlSchemaMapping> tempXmlMapping = FdoXmlSchemaMapping::Create(L"temp"); for (int i = 0; i < count; i++) { FdoPtr<FdoFeatureSchema> schema = m_fdoSchemas->GetItem(i); FdoPtr<FdoXmlSchemaMapping> mapping = static_cast<FdoXmlSchemaMapping*>(mappings->GetItem(tempXmlMapping->GetProvider(), schema->GetName())); FdoPtr<FdoXmlLpSchema> lpSchema = FdoXmlLpSchema::Create(schema, mapping); m_lpSchemas->Add(lpSchema); } } return m_lpSchemas.p; }