GithubHelp home page GithubHelp logo

Comments (4)

andrea-perego avatar andrea-perego commented on June 12, 2024 1

Thanks for contributing the script, @arbakker . I included a link to it in the "How To" page (see commit 41026c2).

from iso-19139-to-dcat-ap.

andrea-perego avatar andrea-perego commented on June 12, 2024

Thanks for reporting this issue, @jescriu .

I've tried to run the transformation via the GeoDCAT-AP API demo, which uses the PHP implementation, and it works:

http://geodcat-ap.semic.eu/api/?outputSchema=extended&src=https%3A%2F%2Fwww.ide.cat%2Fservei%2Fcatalunya%2Fcataleg-idec%2Fcsw%3Frequest%3DGetRecordById%26service%3DCSW%26version%3D2.0.2%26outputSchema%3Dhttp%3A%2F%2Fwww.isotc211.org%2F2005%2Fgmd%26ElementSetName%3Dfull%26ID%3Dinspire-adreces&outputFormat=text%2Fhtml

It seems that the problem with the proposed Python script is that the etree.parse function does not support HTTPS.

A possible fix:

import lxml.etree as ET
from urllib2 import urlopen

# The URL of the XML document to be transformed. Here it corresponds to a "GetRecords" output of a fictitious CSW, with the "maxRecords" parameter set to 10.
xmlURL = "http://some.site/csw?request=GetRecords&service=CSW&version=2.0.2&namespace=xmlns%28csw=http://www.opengis.net/cat/csw%29&resultType=results&outputSchema=http://www.isotc211.org/2005/gmd&outputFormat=application/xml&typeNames=csw:Record&elementSetName=full&constraintLanguage=CQL_TEXT&constraint_language_version=1.1.0&maxRecords=10"

# The URL pointing to the latest version of the XSLT.
xslURL = "https://raw.githubusercontent.com/SEMICeu/iso-19139-to-dcat-ap/master/iso-19139-to-dcat-ap.xsl"
  
xml = ET.parse(urlopen(xmlURL))
xsl = ET.parse(urlopen(xslURL))

transform = ET.XSLT(xsl)

print(ET.tostring(transform(xml), pretty_print=True))

Does this work?

from iso-19139-to-dcat-ap.

arbakker avatar arbakker commented on June 12, 2024

I wrote a Python script using urllib.request from the Python standard library solving this issue. The script accepts urls and file paths as arguments.

from iso-19139-to-dcat-ap.

andrea-perego avatar andrea-perego commented on June 12, 2024

@jescriu , I updated the Python script as illustrated in #29 (comment) (see 41026c2).

Is this fix addressing your issue?

About your other question:

The XSLT should always return a correct RDF file, irrespective of the tool you're using.

Other options to test it are the GeoDCAT-AP API I mentioned earlier in this thread, or the command line tool above kindly contributed by @arbakker .

from iso-19139-to-dcat-ap.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.