On Tue, Oct 13, 2015 at 12:37:27PM +0100, Ricardo Filipe Soares Garcia da wrote:
> Hi list

  Hi Ricardo,

> I'm trying to prepare an XML catalog for working with OGC schemas[1], more
> concretely the csw 2.0.2 schema[2].
> 
> This catalog's purpose is to use my locally downloaded schemas instead of
> fetching them from OGC's repository every time I need to validate something.
> 
> when I use xmllint without my catalog, the testing file[3] gets validated
> OK, but the process takes a while, because the schemas have to be fetched
> over the network:

  okay

> # bash
> export XML_DEBUG_CATALOG=1
> 
> xmllint --load-trace --noout --schema
> /home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/csw/2.0.2/CSW-discovery.xsd
> /home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/csw/2.0.2/examples/capabilities/Capabilities_tC22.xml
> 
> 
> ... (lots of downloading of schemas happening here)
> 
> Loaded
> URL="/home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/csw/2.0.2/examples/capabilities/Capabilities_tC22.xml"
> ID="(null)"
> /home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/csw/2.0.2/examples/capabilities/Capabilities_tC22.xml
> validates
> 
> Now after downloading the whole opengis schemas, plus the W3C's xlink and
> xml schemas into some common directory I have built a catalog file like
> this:
> 
> <?xml version="1.0"?>
> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
>   <rewriteURI uriStartString="http://www.w3.org/";
> rewritePrefix="/home/geo2/dev/xmlschemas/w3c/"/>
>   <rewriteURI uriStartString="http://schemas.opengis.net/";
> rewritePrefix="/home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/"/>
> </catalog>

  That should work though it might be better to be a bit more selective
i.e. give more focused uriStartString values

> When trying this out, xmllint fails saying that it cannot even compile the
> schema:
> 
> # bash
> export XML_CATALOG_FILES=/home/geo2/dev/lixo/test_catalog.xml
> 
> xmllint --load-trace --nonet --noout --schema
> /home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/csw/2.0.2/CSW-discovery.xsd
> /home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/csw/2.0.2/examples/capabilities/Capabilities_tC22.xml

  Don't disable net, if you're missing one reference it may fail, it's
better to run with the network and see if it still tries to transfer something

> ... (everything is fetched from my local repository, but eventually I start
> getting errors like this)
> 
> Resolve: sysID http://schemas.opengis.net/gml/3.1.1/smil/smil20.xsd
> Resolve URI http://schemas.opengis.net/gml/3.1.1/smil/smil20.xsd
> Using rewriting rule http://schemas.opengis.net/
> Loaded URL="http://schemas.opengis.net/gml/3.1.1/smil/smil20.xsd";
> ID="(null)"
> Loaded
> URL="/home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/gml/3.1.1/smil/smil20-language.xsd"
> ID="(null)"
> /home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/gml/3.1.1/smil/smil20-language.xsd:33:
> element import: Schemas parser warning : Element '{
> http://www.w3.org/2001/XMLSchema}import': Skipping import of schema located
> at
> '/home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/gml/3.1.1/smil/smil20.xsd'
> for the namespace 'http://www.w3.org/2001/SMIL20/', since this namespace
> was already imported with the schema located at '
> http://schemas.opengis.net/gml/3.1.1/smil/smil20.xsd'.

  so the same schemas is referenced from 2 different location, that sounds
bad, are they actually identical. If they embedded a copy to be able to
tweak it that may result in the following errors if you don't load their
version.

> Loaded
> URL="/home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/gml/3.1.1/base/temporalReferenceSystems.xsd"
> ID="(null)"
> Loaded
> URL="/home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/gml/3.1.1/base/temporalTopology.xsd"
> ID="(null)"
> /home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/filter/1.1.0/filter.xsd:31:
> element element: Schemas parser error : Element '{
> http://www.w3.org/2001/XMLSchema}element': A global element declaration '{
> http://www.opengis.net/ogc}_Id' does already exist.
> /home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/filter/1.1.0/filter.xsd:34:
> element element: Schemas parser error : Element '{
> http://www.w3.org/2001/XMLSchema}element': A global element declaration '{
> http://www.opengis.net/ogc}FeatureId' does already exist.
> 
> ... (and it finally fails with)
> 
> WXS schema
> /home/geo2/dev/xmlschemas/SCHEMAS_OPENGIS_NET/csw/2.0.2/CSW-discovery.xsd
> failed to compile
> 
> So it seems that there is something missing from my xml catalog. It is
> almost working (no files are being downloaded from the network). I've been
> looking at libxml2's docs on catalogs[4], and also the OASIS spec[5], but I
> haven't been able to make much more from it.
> 
> Thanks for your help

  I'm afraid I don't know, more debug seems needed, try the suggested steps

Daniel

> [1] - http://schemas.opengis.net/
> [2] -http://schemas.opengis.net/csw/2.0.2/CSW-publication.xsd
> [3] -
> http://schemas.opengis.net/csw/2.0.2/examples/capabilities/Capabilities_tC22.xml
> [4] - http://xmlsoft.org/catalog.html
> [5] -
> https://www.oasis-open.org/committees/entity/spec-2001-08-06.html#s.public
> 
> -- 
> ___________________________ ___ __
> Ricardo Garcia Silva

> _______________________________________________
> xml mailing list, project page  http://xmlsoft.org/
> xml@gnome.org
> https://mail.gnome.org/mailman/listinfo/xml


-- 
Daniel Veillard      | Open Source and Standards, Red Hat
veill...@redhat.com  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | virtualization library  http://libvirt.org/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to