快速业务通道

XML文件DTD路径解析问题(in Eclipse) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

XML文件DTD路径解析问题(in Eclipse)

时间:2010-12-29 liby

1、xml文件声明的dtd文件路径如下:

<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEejb-jarPUBLIC"-//SunMicrosystems,Inc.//DTDEnterpriseJavaBeans2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> <ejb-jar> 。。。。。。 </ejb-jar>

2、dtd声明解析原则:

DOCTYPE声明不仅包含常规的关键字和根元素名称,而且包含指示外部DTD源的关键字和DTD的位置。XML规范定义了几种声明源的方法。声明中可以使用关键字SYSTEM或PUBLIC。如果使用SYSTEM关键字,解析器将仅根据给出的URL寻找DTD?DTD通过URL显式地直接定位。

然而,如果DTD源关键字为PUBLIC,情况就略微复杂一些。PUBLIC关键字用于声明众所周知的词汇表。例如,假设出版界已经对图书种类DTD达成了大量共识。需要根据该词汇表解析文档的应用程序可能会通过某种策略来定位DTD。如果这个DTD非常普及,应用程序或许有本地拷贝。直接使用本地拷贝可能比从Web服务器上远程下载更可取。DTD可能存放在数据库中,或者可以通过其他与应用程序相关的技术获得。如果使用PUBLIC关键字和URI,应用程序就有机会利用自己的算法定位DTD。统一资源标识符(URI)可以是URL,也可以是一个单独的名字。

例如:

<!DOCTYPEejb-jarPUBLIC“universal/publishing/book”              “http://www.myweb.com/dtd/books.dtd”>

如果URI“universal/Publishing/Book”对于处理这类文档的应用程序来说是已知的,应用程序可以通过某种有效的方式自行寻找DTD。或许我们恰好有适合该领域的解析器。它可能有DTD的本地拷贝,或者它可以访问由本地数据库服务器维护的DTD。最关键的是,寻找DTD的方法主要是由负责处理DOCTYPE声明的应用程序确定的。

当然,“众所周知”通常是相对的。因此,XML1.0允许PUBLIC声明同时有公共URI和系统标识符。如果使用文档的应用程序或解析器不能从PUBLIC关键字提供的URI定位DTD,它必须使用系统标识符。

在本例中,文档的设计者允许作为接收方的应用程序根据公共的URI自行寻找DTD。如果该过程失败,对我们的出版领域不熟悉的通用解析器一般属于这种情况,应用程序可以从地址为http://www.myweb.com/的Web服务器请求指定的文件,即获取网络上的dtd文件:http://www.myweb.com/dtd/books.dtd。

3、Eclispe中配置dtd路径:

如果初始状态下没有配置ejb-jar.xml文件的dtd路径,而eclipse又不能去sun公司validate的情况下,eclipse报错。

可以根据ejb-jar.xml文件声明的PUBLICDOCTYPE,指示eclipse到一个本地的dtd文件去验证。

已声明的"-//SunMicrosystems,Inc.//DTDEnterpriseJavaBeans2.0//EN"为本地dtd文件的一个别名。

XML文件DTD路径解析问题(in Eclipse)(2)

时间:2010-12-29 liby

可以利用Eclipse的【XMLCatalog】来配置:

XML文件DTD路径解析问题(in Eclipse) - 编程入门网

添加一个【UserSpecifiedEntries】,用户自定义的本地dtd验证入口:

【Add…】 à

XML文件DTD路径解析问题(in Eclipse) - 编程入门网

保存,然后在ejb-jar.xml文件上右键->[ValidateXmlfile],Eclipse提示验证通过,不再提示错误。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号