Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
dlang = etree.SubElement(slang,
util.nspath_eval('inspire_common:DefaultLanguage', self.inspire_namespaces))
etree.SubElement(dlang,
util.nspath_eval('inspire_common:Language', self.inspire_namespaces)).text = self.inspire_config['default_language']
for l in self.inspire_config['languages_supported'].split(','):
lang = etree.SubElement(slang,
util.nspath_eval('inspire_common:SupportedLanguage', self.inspire_namespaces))
etree.SubElement(lang,
util.nspath_eval('inspire_common:Language', self.inspire_namespaces)).text = l
clang = etree.SubElement(ex_caps,
util.nspath_eval('inspire_common:ResponseLanguage', self.inspire_namespaces))
etree.SubElement(clang,
util.nspath_eval('inspire_common:Language', self.inspire_namespaces)).text = self.inspire_config['current_language']
return ex_caps
def exceptionreport2diagnostic(self, element):
"""transform a CSW exception into an SRU diagnostic"""
node = etree.Element(
util.nspath_eval('zs:searchRetrieveResponse', self.namespaces), nsmap=self.namespaces)
etree.SubElement(node, util.nspath_eval('zs:version', self.namespaces)).text = self.sru_version
diagnostics = etree.SubElement(node, util.nspath_eval('zs:diagnostics', self.namespaces))
diagnostic = etree.SubElement(
diagnostics, util.nspath_eval('zs:diagnostic', self.namespaces))
etree.SubElement(diagnostic, util.nspath_eval('zd:diagnostic', self.namespaces)).text = \
'info:srw/diagnostic/1/7'
etree.SubElement(diagnostic, util.nspath_eval('zd:message', self.namespaces)).text = \
element.xpath('//ows:Exception/ows:ExceptionText|//ows20:Exception/ows20:ExceptionText', namespaces=self.context.namespaces)[0].text
etree.SubElement(diagnostic, util.nspath_eval('zd:details', self.namespaces)).text = \
element.xpath('//ows:Exception|//ows20:Exception', namespaces=self.context.namespaces)[0].attrib.get('exceptionCode')
return node
etree.SubElement(node, util.nspath_eval('os:totalResults',
self.context.namespaces)).text = self.exml.xpath(
'//@numberOfRecordsMatched')[0]
etree.SubElement(node, util.nspath_eval('os:startIndex',
self.context.namespaces)).text = str(startindex)
etree.SubElement(node, util.nspath_eval('os:itemsPerPage',
self.context.namespaces)).text = self.exml.xpath(
'//@numberOfRecordsReturned')[0]
for rec in self.exml.xpath('//atom:entry',
namespaces=self.context.namespaces):
node.append(rec)
elif response_name == 'Capabilities':
node = etree.Element(util.nspath_eval('os:OpenSearchDescription', self.namespaces), nsmap=self.namespaces)
etree.SubElement(node, util.nspath_eval('os:ShortName', self.namespaces)).text = self.exml.xpath('//ows20:Title', namespaces=self.context.namespaces)[0].text[:16]
etree.SubElement(node, util.nspath_eval('os:LongName', self.namespaces)).text = self.exml.xpath('//ows20:Title', namespaces=self.context.namespaces)[0].text
etree.SubElement(node, util.nspath_eval('os:Description', self.namespaces)).text = self.exml.xpath('//ows20:Abstract', namespaces=self.context.namespaces)[0].text
etree.SubElement(node, util.nspath_eval('os:Tags', self.namespaces)).text = ' '.join(x.text for x in self.exml.xpath('//ows20:Keyword', namespaces=self.context.namespaces))
# Requirement-022
node1 = etree.SubElement(node, util.nspath_eval('os:Url', self.namespaces))
node1.set('type', 'application/xml')
node1.set('template', '%sservice=CSW&version=3.0.0&request=GetRecords&elementsetname=full&typenames=csw:Record&resulttype=results&q={searchTerms?}&bbox={geo:box?}&time={time:start?}/{time:end?}&outputformat=application/xml&outputschema=http://www.opengis.net/cat/csw/3.0&startposition={startIndex?}&maxrecords={count?}&recordids={geo:uid?}' % self.bind_url)
# Requirement-023
node1 = etree.SubElement(node, util.nspath_eval('os:Url', self.namespaces))
node1.set('type', 'application/atom+xml')
node1.set('template', '%smode=opensearch&service=CSW&version=3.0.0&request=GetRecords&elementsetname=full&typenames=csw:Record&resulttype=results&q={searchTerms?}&bbox={geo:box?}&time={time:start?}/{time:end?}&outputformat=application/atom%%2Bxml&startposition={startIndex?}&maxrecords={count?}&recordids={geo:uid?}' % self.bind_url)
node1 = etree.SubElement(node, util.nspath_eval('os:Image', self.namespaces))
node1.set('type', 'image/vnd.microsoft.icon')
node1.set('width', '16')
util.nspath_eval('soapenv:Value', self.context.namespaces)
).text = 'soap:Server'
node4 = etree.SubElement(
node3,
util.nspath_eval('soapenv:Reason', self.context.namespaces)
)
etree.SubElement(
node4,
util.nspath_eval('soapenv:Text', self.context.namespaces)
).text = 'A server exception was encountered.'
node4 = etree.SubElement(
node3,
util.nspath_eval('soapenv:Detail', self.context.namespaces)
)
node4.append(self.response)
else:
node2.append(self.response)
self.response = node
def _get_pt_freeurl(val, language):
freeurl = etree.Element(util.nspath_eval('gm03:GM03_2_1Core.Core.PT_FreeURL', NAMESPACES))
urlgroup = etree.SubElement(freeurl, util.nspath_eval('gm03:URLGroup', NAMESPACES))
ptgroup = etree.SubElement(urlgroup, util.nspath_eval('gm03:GM03_2_1Core.Core.PT_URLGroup', NAMESPACES))
if language:
etree.SubElement(ptgroup, util.nspath_eval('gm03:language', NAMESPACES)).text = language
etree.SubElement(ptgroup, util.nspath_eval('gm03:plainURL', NAMESPACES)).text = val
return freeurl
etree.SubElement(record, util.nspath_eval('sru:recordPacking', self.namespaces)).text = 'XML'
etree.SubElement(record, util.nspath_eval('sru:recordSchema', self.namespaces)).text = 'http://explain.z3950.org/dtd/2.1/'
recorddata = etree.SubElement(record, util.nspath_eval('sru:recordData', self.namespaces))
explain = etree.SubElement(recorddata, util.nspath_eval('zr:explain', self.namespaces))
serverinfo = etree.SubElement(explain, util.nspath_eval('zr:serverInfo', self.namespaces), protocol='SRU', version=self.sru_version, transport='http', method='GET POST SOAP')
etree.SubElement(serverinfo, util.nspath_eval('zr:host', self.namespaces)).text = environ.get('HTTP_HOST', environ["SERVER_NAME"]) # WSGI allows for either of these
etree.SubElement(serverinfo, util.nspath_eval('zr:port', self.namespaces)).text = environ['SERVER_PORT']
etree.SubElement(serverinfo, util.nspath_eval('zr:database', self.namespaces)).text = 'pycsw'
databaseinfo = etree.SubElement(explain, util.nspath_eval('zr:databaseInfo', self.namespaces))
etree.SubElement(databaseinfo, util.nspath_eval('zr:title', self.namespaces), lang='en', primary='true').text = element.xpath('//ows:Title|//ows20:Title', namespaces=self.context.namespaces)[0].text
etree.SubElement(databaseinfo, util.nspath_eval('zr:description', self.namespaces), lang='en', primary='true').text = element.xpath('//ows:Abstract|//ows20:Abstract', namespaces=self.context.namespaces)[0].text
indexinfo = etree.SubElement(explain, util.nspath_eval('zr:indexInfo', self.namespaces))
etree.SubElement(indexinfo, util.nspath_eval('zr:set', self.namespaces), name='dc', identifier='info:srw/cql-context-set/1/dc-v1.1')
for key, value in sorted(self.mappings['csw:Record']['index'].items()):
zrindex = etree.SubElement(indexinfo, util.nspath_eval('zr:index', self.namespaces), id=value)
etree.SubElement(zrindex, util.nspath_eval('zr:title', self.namespaces)).text = key
zrmap = etree.SubElement(zrindex, util.nspath_eval('zr:map', self.namespaces))
etree.SubElement(zrmap, util.nspath_eval('zr:map', self.namespaces), set='dc').text = key
zrindex = etree.SubElement(indexinfo, util.nspath_eval('zr:index', self.namespaces))
zrmap = etree.SubElement(zrindex, util.nspath_eval('zr:map', self.namespaces))
etree.SubElement(zrmap, util.nspath_eval('zr:name', self.namespaces), set='dc').text = 'title222'
schemainfo = etree.SubElement(explain, util.nspath_eval('zr:schemaInfo', self.namespaces))
if hasattr(self, 'exception') and self.exception:
node3 = etree.SubElement(node2, util.nspath_eval('soapenv:Fault',
self.context.namespaces))
node4 = etree.SubElement(node3, util.nspath_eval('soapenv:Code',
self.context.namespaces))
etree.SubElement(node4, util.nspath_eval('soapenv:Value',
self.context.namespaces)).text = 'soap:Server'
node4 = etree.SubElement(node3, util.nspath_eval('soapenv:Reason',
self.context.namespaces))
etree.SubElement(node4, util.nspath_eval('soapenv:Text',
self.context.namespaces)).text = 'A server exception was encountered.'
node4 = etree.SubElement(node3, util.nspath_eval('soapenv:Detail',
self.context.namespaces))
node4.append(self.response)
else:
node2.append(self.response)
self.response = node
if bbox is not None:
try:
bbox2 = util.wkt2geom(bbox)
except:
return None
if len(bbox2) == 4:
boundingbox = etree.Element(util.nspath_eval('ows:BoundingBox',
nsmap), crs='urn:x-ogc:def:crs:EPSG:6.11:4326',
dimensions='2')
etree.SubElement(boundingbox, util.nspath_eval('ows:LowerCorner',
nsmap)).text = '%s %s' % (bbox2[1], bbox2[0])
etree.SubElement(boundingbox, util.nspath_eval('ows:UpperCorner',
nsmap)).text = '%s %s' % (bbox2[3], bbox2[2])
return boundingbox
else:
return None
else:
return None
etree.SubElement(keywords,
util.nspath_eval('ows:Type', self.parent.context.namespaces),
codeSpace='ISOTC211/19115').text = \
metadata_main.get('identification_keywords_type', 'missing')
etree.SubElement(serviceidentification,
util.nspath_eval('ows:ServiceType', self.parent.context.namespaces),
codeSpace='OGC').text = 'CSW'
for stv in self.parent.context.model['parameters']['version']['values']:
etree.SubElement(serviceidentification,
util.nspath_eval('ows:ServiceTypeVersion',
self.parent.context.namespaces)).text = stv
etree.SubElement(serviceidentification,
util.nspath_eval('ows:Fees', self.parent.context.namespaces)).text = \
metadata_main.get('identification_fees', 'missing')
etree.SubElement(serviceidentification,
util.nspath_eval('ows:AccessConstraints',
self.parent.context.namespaces)).text = \
metadata_main.get('identification_accessconstraints', 'missing')
if serviceprovider:
LOGGER.debug('Writing section ServiceProvider.')
serviceprovider = etree.SubElement(node,
util.nspath_eval('ows:ServiceProvider', self.parent.context.namespaces))
etree.SubElement(serviceprovider,
util.nspath_eval('ows:ProviderName', self.parent.context.namespaces)).text = \
metadata_main.get('provider_name', 'missing')
# always write out Filter_Capabilities
LOGGER.debug('Writing section Filter_Capabilities.')
fltcaps = etree.SubElement(node,
util.nspath_eval('ogc:Filter_Capabilities', self.parent.context.namespaces))
spatialcaps = etree.SubElement(fltcaps,
util.nspath_eval('ogc:Spatial_Capabilities', self.parent.context.namespaces))
geomops = etree.SubElement(spatialcaps,
util.nspath_eval('ogc:GeometryOperands', self.parent.context.namespaces))
for geomtype in \
fes1.MODEL['GeometryOperands']['values']:
etree.SubElement(geomops,
util.nspath_eval('ogc:GeometryOperand',
self.parent.context.namespaces)).text = geomtype
spatialops = etree.SubElement(spatialcaps,
util.nspath_eval('ogc:SpatialOperators', self.parent.context.namespaces))
for spatial_comparison in \
fes1.MODEL['SpatialOperators']['values']:
etree.SubElement(spatialops,
util.nspath_eval('ogc:SpatialOperator', self.parent.context.namespaces),
name=spatial_comparison)
scalarcaps = etree.SubElement(fltcaps,
util.nspath_eval('ogc:Scalar_Capabilities', self.parent.context.namespaces))
etree.SubElement(scalarcaps, util.nspath_eval('ogc:LogicalOperators',
self.parent.context.namespaces))