ANT脚本:xmlcatalog没有读取本地dtd

时间:2018-04-19 11:48:52

标签: ant tibco-business-works xmltask xmlcatalog

我有一个名为TIBCOUniversalInstaller_TRA_5.10.0.silent的XML文件,如下所示。我想使用xmltask任务在ant脚本中使用“替换”目标替换XML文件中的值。 XML文件如下:

<?xml  version="1.0"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>---Universal Installer Silent Installation Properties---</comment>

<!--accept the license agreement-->
<entry key="acceptLicense">true</entry>
<entry key="installationRoot">/opt/tibco</entry>
<entry key="environmentName">TRA</entry>
</properties>

在解析XML文件时,由于我的服务器无法访问java.sun.com,所以我在本地计算机上下载了properties.dtd并使用xmlcatalog任务我强制ant脚本读取properties.dtd的本地副本.Below是我的蚂蚁脚本

 <xmlcatalog id="dtd">
      <dtd  publicId="SYSTEM" location="/home/tibco/BW-AUTOMATION- 
     PROJECT/Environments/properties.dtd"/>
 </xmlcatalog>
 <xmltask source="${TRASoftwareFolder}/TIBCOUniversalInstaller_TRA_5.10.0.silent" dest="${TRASoftwareFolder}/TIBCOUniversalInstaller_TRA_5.10.0.silent">
 <xmlcatalog refid="dtd">
 </xmlcatalog>
 <replace path="/:properties/:entry/:[@key='installationRoot']/text()" 
 withText="/home/tibco"/>
</xmltask>

但仍然在解析XML内容时,每次进入http://java.sun.com/dtd/properties.dtd并且我得到“Connection Refused Error”。 当我做调试时,我看到下面哪个我相信可能会出问题,而且总是去网站而不是本地dtd文件。

DEBUG LOGS:

“找不到匹配的商品,解析器将使用:'http://java.sun.com/dtd/properties.dtd'”

我相信这是因为我在“dtd元素”中的“publicId”属性中将“SYSTEM”作为值。 你能否告诉我这个给定的dtd的“publicID”属性应该是什么值,以便它在解析时匹配目录。

如果还有其他方法可以阅读/替换此XML文件,请提供建议。

由于

0 个答案:

没有答案