def __extract_dd_infos(self): xpatheval = etree.XPathEvaluator(self.xml, namespaces=self.config['XML_NAMESPACES']) dd_schema = self.config['DD']['schema'] self.wtb_objectid = DDSync.helpers.sql_helper.get_dd_sequence_number(self.config) self.wtb_bezeichnung = unicode(xpatheval("string(gmd:name/gco:CharacterString)")) self.logger.info("DD-Infos der Wertetabelle " + self.wtb_bezeichnung + " werden zusammengetragen.") self.wtb_bezeichnung_mittel_de = unicode(xpatheval("string(gmd:description/gco:CharacterString)")) self.wtb_bezeichnung_mittel_fr = unicode(xpatheval("string(gmd:description/gmd:PT_FreeText/gmd:textGroup/gmd:LocalisedCharacterString[@locale = '#FR'])")) self.wtb_join_primarykey = unicode(xpatheval("string(bee:primaryKey/gco:CharacterString)")) self.wtb_join_typ = unicode(xpatheval("string(bee:joinType/bee:joinTypeCode/@codeListValue)")) self.wtb_autoload = unicode(xpatheval("string(bee:autoload/gco:Boolean)")) self.wtb_importname = "x" self.sql_statements.append("INSERT INTO %s.tb_wertetabelle (WTB_OBJECTID, EZS_OBJECTID, WTB_BEZEICHNUNG, WTB_BEZEICHNUNG_MITTEL_DE, WTB_BEZEICHNUNG_MITTEL_FR, WTB_JOIN_FOREIGNKEY, WTB_JOIN_PRIMARYKEY, WTB_JOIN_TYP, WTB_AUTOLOAD, WTB_IMPORTNAME) VALUES (%s, %s, '%s', '%s', '%s', '%s', '%s', '%s', %s, '%s')" % (dd_schema, self.wtb_objectid, self.ezs_objectid, self.wtb_bezeichnung, clean(self.wtb_bezeichnung_mittel_de), clean(self.wtb_bezeichnung_mittel_fr), self.wtb_join_foreignkey, self.wtb_join_primarykey, self.wtb_join_typ, self.wtb_autoload, self.wtb_importname))
def extract_dd_infos(self): xpatheval = etree.XPathEvaluator(self.xml, namespaces=self.config['XML_NAMESPACES']) dd_schema = self.config['DD']['schema'] # TB_EBENE self.ebe_objectid = self.__get_ebe_objectid() if self.ebe_objectid == "0": self.ebe_exists = False self.ebe_objectid = DDSync.helpers.sql_helper.get_dd_sequence_number(self.config) else: self.ebe_exists = True datatype = unicode(xpatheval("string(/csw:GetRecordByIdResponse/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/bee:dataType/bee:dataTypecode/@codeListValue)")) self.dat_objectid = self.__get_dat_objectid(datatype) self.ebe_bezeichnung_mittel_de = unicode(xpatheval("string(/csw:GetRecordByIdResponse/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString)")) self.ebe_bezeichnung_mittel_fr = unicode(xpatheval("string(/csw:GetRecordByIdResponse/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gmd:PT_FreeText/gmd:textGroup/gmd:LocalisedCharacterString[@locale = '#FR'])")) self.ebe_bezeichnung_lang_de = unicode(xpatheval("string(/csw:GetRecordByIdResponse/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:otherCitationDetails/gco:CharacterString)")) self.ebe_bezeichnung_lang_fr = unicode(xpatheval("string(/csw:GetRecordByIdResponse/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:otherCitationDetails/gmd:PT_FreeText/gmd:textGroup/gmd:LocalisedCharacterString[@locale = '#FR'])")) # TB_EBENE_ZEITSTAND self.ezs_objectid = DDSync.helpers.sql_helper.get_dd_sequence_number(self.config) self.leg_objectid_de = "NULL" self.leg_objectid_fr = "NULL" self.ezs_reihenfolge = self.__get_ezs_reihenfolge() self.imp_objectid = "14" self.ezs_importname = "x" # WERTETABELLEN self.__get_valuetables(xpatheval("/csw:GetRecordByIdResponse/gmd:MD_Metadata/gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:class/gmd:MD_Class/gmd:attribute/gmd:MD_Attribute")) # LEGENDEN self.__get_legends(xpatheval("/csw:GetRecordByIdResponse/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:graphicOverview/gmd:MD_BrowseGraphic")) self.__get_standard_legends() # Wenn es die Ebene (TB_EBENE) schon gibt, dann muss sie nicht aktualisiert werden. if not self.ebe_exists: self.sql_statements.append("INSERT INTO %s.TB_EBENE (EBE_OBJECTID, DAT_OBJECTID, EBE_BEZEICHNUNG, EBE_BEZEICHNUNG_MITTEL_DE, EBE_BEZEICHNUNG_MITTEL_FR, EBE_BEZEICHNUNG_LANG_DE, EBE_BEZEICHNUNG_LANG_FR) VALUES (%s, %s, '%s', '%s', '%s', '%s', '%s')" % (dd_schema, self.ebe_objectid, self.dat_objectid, self.code, clean(self.ebe_bezeichnung_mittel_de), clean(self.ebe_bezeichnung_mittel_fr), clean(self.ebe_bezeichnung_lang_de), clean(self.ebe_bezeichnung_lang_fr))) self.sql_statements.append("INSERT INTO %s.TB_EBENE_ZEITSTAND (EZS_OBJECTID, GZS_OBJECTID, EBE_OBJECTID, LEG_OBJECTID_DE, LEG_OBJECTID_FR, EZS_REIHENFOLGE, IMP_OBJECTID, UUID, EZS_BEZEICHNUNG_MITTEL_DE, EZS_BEZEICHNUNG_MITTEL_FR, EZS_BEZEICHNUNG_LANG_DE, EZS_BEZEICHNUNG_LANG_FR, EZS_IMPORTNAME) VALUES (%s, %s, %s, %s, %s, %s, %s, '%s', '%s', '%s', '%s', '%s', '%s')" % (dd_schema, self.ezs_objectid, self.gzs_objectid, self.ebe_objectid, self.leg_objectid_de, self.leg_objectid_fr, self.ezs_reihenfolge, self.imp_objectid, self.uuid, clean(self.ebe_bezeichnung_mittel_de), clean(self.ebe_bezeichnung_mittel_fr), clean(self.ebe_bezeichnung_lang_de), clean(self.ebe_bezeichnung_lang_fr), self.ezs_importname))
def __extract_dd_infos(self): xpatheval = etree.XPathEvaluator(self.xml, namespaces=self.config['XML_NAMESPACES']) dd_schema = self.config['DD']['schema'] self.leg_objectid_de = DDSync.helpers.sql_helper.get_dd_sequence_number(self.config) self.leg_objectid_fr = DDSync.helpers.sql_helper.get_dd_sequence_number(self.config) self.leg_bezeichnung = unicode(xpatheval("string(gmd:fileName/gco:CharacterString)")) self.logger.info("DD-Infos der Legende " + self.leg_bezeichnung + " werden zusammengetragen.") # Legende deutsch self.leg_bezeichnung_mittel_de_de = unicode(xpatheval("string(bee:legendTitleDE/gco:CharacterString)")) self.leg_bezeichnung_mittel_fr_de = unicode(xpatheval("string(bee:legendTitleFR/gco:CharacterString)")) # Legende französisch self.leg_bezeichnung_mittel_de_fr = unicode(xpatheval("string(bee:legendTitleDE/gmd:PT_FreeText/gmd:textGroup/gmd:LocalisedCharacterString[@locale = '#FR'])")) self.leg_bezeichnung_mittel_fr_fr = unicode(xpatheval("string(bee:legendTitleFR/gmd:PT_FreeText/gmd:textGroup/gmd:LocalisedCharacterString[@locale = '#FR'])")) self.sql_statements.append("INSERT INTO %s.tb_legende (LEG_OBJECTID, EZS_OBJECTID, SPR_OBJECTID, LEG_BEZEICHNUNG, LEG_BEZEICHNUNG_MITTEL_DE, lEG_BEZEICHNUNG_MITTEL_FR) VALUES (%s, %s, 1, '%s', '%s', '%s')" % (dd_schema, self.leg_objectid_de, self.ezs_objectid, self.leg_bezeichnung, clean(self.leg_bezeichnung_mittel_de_de), clean(self.leg_bezeichnung_mittel_fr_de))) self.sql_statements.append("INSERT INTO %s.tb_legende (LEG_OBJECTID, EZS_OBJECTID, SPR_OBJECTID, LEG_BEZEICHNUNG, LEG_BEZEICHNUNG_MITTEL_DE, lEG_BEZEICHNUNG_MITTEL_FR) VALUES (%s, %s, 2, '%s', '%s', '%s')" % (dd_schema, self.leg_objectid_fr, self.ezs_objectid, self.leg_bezeichnung, clean(self.leg_bezeichnung_mittel_de_fr), clean(self.leg_bezeichnung_mittel_fr_fr)))