服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

xml文件dtd路径解析――in eclipse(图)


  上传一篇刚写的html怎么这么麻烦啊?!有没有简单途径?
  
  1、xml文件声明的dtd文件路径如下:
  
  <?xml version="1.0" encoding="utf-8"?>
  
  <!doctype ejb-jar public "-//sun microsystems, inc.//dtd enterprise javabeans 2.0//en"
  
  "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
  
  <ejb-jar >
  
  。。。。。。
  
  </ejb-jar>
  
  2、dtd声明解析原则:
  
  d o c t y p e声明不仅包含常规的关键字和根元素名称,而且包含指示外部d t d源的关键字和d t d的位置。x m l规范定义了几种声明源的方法。声明中可以使用关键字system 或 public。如果使用 system 关键字,解析器将仅根据给出的u r l寻找dtd?dtd通过u r l显式地直接定位。
  
  然而,如果d t d源关键字为 public,情况就略微复杂一些。p u b l i c关键字用于声明众所周知的词汇表。例如,假设出版界已经对图书种类d t d达成了大量共识。需要根据该词汇表解析文档的应用程序可能会通过某种策略来定位d t d。如果这个d t d非常普及,应用程序或许有本地拷贝。直接使用本地拷贝可能比从we b服务器上远程下载更可取。d t d可能存放在数据库中,或者可以通过其他与应用程序相关的技术获得。如果使用p u b l i c关键字和u r i,应用程序就有机会利用自己的算法定位d t d。统一资源标识符(uri)可以是url,也可以是一个单独的名字。
  
  例如:
  
  <!doctype ejb-jar public “universal/publishing/book”
  
  “http://www.myweb.com/dtd/books.dtd” >
  
  如果u r i“universal/publishing/book”对于处理这类文档的应用程序来说是已知的,应用程序可以通过某种有效的方式自行寻找d t d。或许我们恰好有适合该领域的解析器。它可能有d t d的本地拷贝,或者它可以访问由本地数据库服务器维护的d t d。最关键的是,寻找d t d的方法主要是由负责处理d o c t y p e声明的应用程序确定的。
  
  当然,“众所周知”通常是相对的。因此, xml 1.0允许p u b l i c声明同时有公共u r i和系统标识符。如果使用文档的应用程序或解析器不能从p u b l i c关键字提供的u r i定位d t d,它必须使用系统标识符。
  
  在本例中,文档的设计者允许作为接收方的应用程序根据公共的u r i自行寻找d t d。如果该过程失败,对我们的出版领域不熟悉的通用解析器一般属于这种情况,应用程序可以从地址为 http://www.myweb.com/ 的we b服务器请求指定的文件,即获取网络上的dtd文件:http://www.myweb.com/dtd/books.dtd 。
  
  3、eclispe中配置dtd路径:
  
  如果初始状态下没有配置ejb-jar.xml文件的dtd路径,而eclipse又不能去sun公司validate的情况下,eclipse报错。
  
  可以根据ejb-jar.xml文件声明的public doctype,指示eclipse到一个本地的dtd文件去验证。
  
  已声明的 "-//sun microsystems, inc.//dtd enterprise javabeans 2.0//en" 为 本地dtd文件的一个别名。
  
  可以利用eclipse的 【xml catalog】来配置:
  
  
 xml文件dtd路径解析――in eclipse(图)(图一)

  
  添加一个【user specified entries】,用户自定义的本地dtd验证入口:
  
  【add…】 à
  
  
xml文件dtd路径解析――in eclipse(图)(图二)

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

扫描关注微信公众号