Next in thread → Next in month →

Re: [xml-dev] Catalogs, rewriteURI and xml:base

From
<>
To
Date
2016-11-09T15:23:44Z
ID
<>
Thread
Re: [xml-dev] Catalogs, rewriteURI and xml:base
Nobody ? Norm, Apache xml-community ?
No idea ?

Christophe

Le 2016-11-07 14:25, Christophe Marchand a écrit :
> Hello,
> 
> I've something strange, and don't know if I do not understand OASIS
> catalog specification, or if there is a bug in Apache Resolver...
> 
> I have this catalog :
> 
> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
>   <group xml:base="cp:/catalog.xml">
>     <rewriteURI uriStartString="foo:" rewritePrefix="cp:"/>
>     <rewriteSystem systemIdStartString="foo:" rewritePrefix="cp:"/>
>   </group>
>   <group xml:base="file:/home/fake/catalog.xml" [1]>
>     <rewriteURI uriStartString="bar:" rewritePrefix="cp:"/>
>     <rewriteSystem systemIdStartString="bar:" rewritePrefix="cp:"/>
>   </group>
> </catalog>
> 
> Dependending on I have or not support for cp: protocol (first group
> xml:base), the first xml:base (cp:/catalog.xml) is rewritten fo
> file:cp:/catalog.xml. It is normal ? I can imagine that new
> URI(xx).isAbsolute() is used to know if it should be absolutized (?).
> That's strange, but, Ok, I can accept this...
> 
> Then, if cp: support is enabled, if I try to resolve
> bar:/schemaBar/bar.rnc, it is resolved as cp:/schemaBar/bar.rnc, but
> if I try to resolve foe:/schemaFoe/foe.rnc, it is resolved as null.
> 
> My question is : with rewriteSystem / rewriteURI, does the xml:base
> may change the resolution ? In specification, xml:base is not
> mentionned in
> https://www.oasis-open.org/committees/entity/spec-2001-08-06.html#s.rewrite,
> but it is said " If the value of the rewritePrefix attribute is
> relative, it must be made absolute with respect to the base URI
> currently in effect."  in
> https://www.oasis-open.org/committees/entity/spec-2001-08-06.html#s.rewritesystem
> 
> 
> My thought was that xml:base was used only to absolutized relatives
> URI, and not absolute ones. Then, with Apache resolver, if I set debug
> output ON, I get this while loading catalog :
> 
> Cannot find CatalogManager.properties
> Parse catalog: ./xcatalog
> Loading catalog: ./xcatalog
> Default BASE:
> file:////home/ext-cmarchand/devel/apache/xml-commons/xcatalog
> Catalog does not exist:
> file:////home/ext-cmarchand/devel/apache/xml-commons/xcatalog
> Parse catalog: ../../github/jing-trang/cmarchand_test/catalog-bug.xml
> Loading catalog:
> ../../github/jing-trang/cmarchand_test/catalog-bug.xml
> Default BASE:
> file:////home/ext-cmarchand/devel/github/jing-trang/cmarchand_test/catalog-bug.xml
> xml:base: cp:/catalog.xml
> BASE CUR:
> file:////home/ext-cmarchand/devel/github/jing-trang/cmarchand_test/catalog-bug.xml
> BASE STR: cp:/catalog.xml
> BASE NEW: cp:/catalog.xml
> rewriteURI: foo:
>     cp:
> REWRITE_URI: foo:
>     cp:/catalog.xml
> rewriteSystem: foo:
>     cp:
> REWRITE_SYSTEM: foo:
>     cp:/catalog.xml
> (reset) xml:base:
> file:////home/ext-cmarchand/devel/github/jing-trang/cmarchand_test/catalog-bug.xml
> BASE CUR: cp:/catalog.xml
> BASE STR:
> file:////home/ext-cmarchand/devel/github/jing-trang/cmarchand_test/catalog-bug.xml
> BASE NEW:
> file:////home/ext-cmarchand/devel/github/jing-trang/cmarchand_test/catalog-bug.xml
> xml:base: file:/home/fake/catalog.xml
> BASE CUR:
> file:////home/ext-cmarchand/devel/github/jing-trang/cmarchand_test/catalog-bug.xml
> BASE STR: file:/home/fake/catalog.xml
> BASE NEW: file:/home/fake/catalog.xml
> rewriteURI: bar:
>     cp:
> REWRITE_URI: bar:
>     cp:
> rewriteSystem: bar:
>     cp:
> REWRITE_SYSTEM: bar:
>     cp:
> (reset) xml:base:
> file:////home/ext-cmarchand/devel/github/jing-trang/cmarchand_test/catalog-bug.xml
> BASE CUR: file:/home/fake/catalog.xml
> BASE STR:
> file:////home/ext-cmarchand/devel/github/jing-trang/cmarchand_test/catalog-bug.xml
> BASE NEW:
> file:////home/ext-cmarchand/devel/github/jing-trang/cmarchand_test/catalog-bug.xml
> 
> We can see the REWRITE_SYSTEM are not processed the same with
> different xml:base.
> 
> I will enjoy any help to locate the problem (my code, my catalog, or
> Apache Resolver)...
> 
> Thanks in advance,
> Christophe
> 
> 
> Links:
> ------
> [1] file:/home/fake/catalog.xml
Next in thread → Next in month →