使用Xerces2j的XML Catalog rewriteSystem不起作用

时间:2014-12-04 09:17:48

标签: xml dtd saxon xerces xmlcatalog

我尝试使用带有Saxon和XML Catalog的Xerces2J将我的DTD从旧位置重定向到新位置。但总是我有这个错误:

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)

所以这个替代品不起作用。 这是我的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>

这是XML文件:

<?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>

至少是CatalogManager.properties:

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

因此日志告诉我目录已被读取,但SYSTEM尚未被替换。 我错了什么?

祝你好运

马库斯

1 个答案:

答案 0 :(得分:0)

我刚添加(适用于Windows)

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

感谢Michael Kay,Dave Pawson,Jirka Kosek和George Bina。