Пример #1
0
    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))
Пример #2
0
    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))
Пример #3
0
 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)))