xmldtdsaxonxercesxmlcatalog

XML Catalog rewriteSystem with Xerces2j doesn't work


I tried to redirect my DTD just from the old to a new location using Xerces2J with Saxon and an XML Catalog. But Always I've got this error:

Parse catalog: C:/temp/catalog.xml
Loading catalog: C:/temp/catalog.xml
Default BASE: file:C:/temp/catalog.xml
override: no
OVERRIDE: no
rewriteURI: file:///zfhpsys
    file:///X:/z186485_hpsys_pa_cr113019_revision_tracking/zfhpsys
REWRITE_URI: file:///zfhpsys
    file:/X:/z186485_hpsys_pa_cr113019_revision_tracking/zfhpsys
rewriteURI: /
    file:///X:/z186485_hpsys_pa_cr113019_revision_tracking/
REWRITE_URI: /
    file:/X:/z186485_hpsys_pa_cr113019_revision_tracking/
rewriteSystem: /zfhpsys
    file:///X:/z186485_hpsys_pa_cr113019_revision_tracking/zfhpsys
REWRITE_SYSTEM: /zfhpsys
    file:/X:/z186485_hpsys_pa_cr113019_revision_tracking/zfhpsys
Failure reading file:
/X:/z186485_hpsys_pa_cr113019_revision_tracking/zfhpsys/tool_int/software_doku/dokusystem/serna/plugin/software_doku/example/revisons2.xml: 
\zfhpsys\tool_int\software_doku\dokusystem\epic\custom\doctypes\XMLBlock\XMLBlock.dtd 
(File not found)

So the substition doesn't work. This is my catalog.xml:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN" "http://www.oasis-    open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"  prefer="system">  
 <rewriteSystem systemIdStartString="/zfhpsys"    rewritePrefix="file:///X:/z186485_hpsys_pa_cr113019_revision_tracking/zfhpsys"/>
 <rewriteURI    uriStartString="file:///zfhpsys"  rewritePrefix="file:///X:/z186485_hpsys_pa_cr113019_revision_tracking/zfhpsys"/> 
 <rewriteURI    uriStartString="/"                rewritePrefix="file:///X:/z186485_hpsys_pa_cr113019_revision_tracking/"/>
</catalog>

And this is the XML-File:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE XMLBlock SYSTEM "/zfhpsys/tool_int/software_doku/dokusystem/epic/custom/doctypes/XMLBlock/XMLBlock.dtd" [
<!ENTITY csv SYSTEM "/zfhpsys/tool_int/software_doku/dokusystem/serna/plugin/software_doku/example/sample_config.csv">]>
<XMLBlock DocID="bla">
  <Title if="(TEST)">Doc Name</Title>
  <Description>
    <Heading>[1.1] EDIT description</Heading>
    <Content if="(CANCEL_BUTTON)">Er hörte leise Schritte hinter sich. </Content>
  </Description>
</XMLBlock>

At least the CatalogManager.properties:

 catalogs=C:/temp/catalog.xml
 relative-catalogs=false
 static-catalog=no
 catalog-class-name=org.apache.xml.resolver.Resolver
 verbosity=10

So the log tells me that the catalog has been read, but the SYSTEM has not been replaced. What did I wrong?

Best regards

Markus


Solution

  • I just added (for Windows)

    <rewriteURI uriStartString="file:/zfhpsys" rewritePrefix="file:///X:/z186485_hpsys_pa_cr113019_revision_track/zfhpsys" />
    

    Thanks to Michael Kay, Dave Pawson, Jirka Kosek and George Bina.