论坛首页 综合技术版

XMLSpy编辑工具中如何设置XML的DTD/XSD校验指向本地,而不要直接指向网络去?

浏览 3581 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2006-09-16 关键字: XML DTD XSD 校验
XMLSpy编辑工具中如何设置XML的DTD/XSD校验指向本地,而不要直接指向网络去?
前提:在不修改XML的条件下,修改XML的,不要这个,这个变态的谁都会。。。

其它的工具及另外的方法如下,但是想获取到类似XMLBuddy的cache一样的功能。何办?

  XMLBuddy

  由于打开XML文件时会根据XML文件里定义的DTD去网上查找相应的DTD文件,这样导至打开的时候会相当慢,特别是如果你的机器上不了外网的话,就更慢了。

  解决的办法有两个:

  一、在本机开启Web服务(如Tomcat等等),并设置端口为80,然后根据DTD 的目录结构建立相应的结构,并把DTD文件放进去。然后在hosts文件里把本机的地址映射到相应的DTD指定的网站去,如:
  127.0.0.1 www.springframework.org

  这样打开XML文件时就会在本机寻找DTD文件进行验证,速度就快很多了

  二、打开XMLBuddy插件的安装目录,并找到其中的cache目录,比如:%ECLIPSE_HOME%\PlugInsNew\xmlbuddy\eclipse\plugins\com.objfac.xmleditor_2.0.72\.cache

  打开meta.xml文件,一看就知道怎么处理了吧,如法炮制,选把DTD文件拷贝到这个cache目录里,再增加内容到meta.xml里来,比如:
<file>
<pub>-//SPRING//DTD  BEAN//EN</pub>
<abs>http://www.springframework.org/dtd/spring-beans.dtd</abs>
<rel>spring-beans.dtd</rel>
</file>

  要增加其它的DTD文件方法类似,不断地增加说明与DTD文件即可。

  于是在编辑XML文件时就会有相关的提示及错误提示信息,可以减少一些书写XML文件时发生的低级错误了。

在XMLSpy里一直没有找到这个相应的功能,有谁知道吗?
   
时间:2006-09-16
问题得到解决,方法总结如下:
安装主目录假定为%XMLSPY_HOME%
1、在%XMLSPY_HOME%\下有个MainCatalog.xml,修改属性为可写,并打开,就知道如何象XMLBuddy炮制了。

2、将你的DTD如spring-beans.dtd拷贝%XMLSPY_HOME%\Schemas\java\目录下;

3、在MainCatalog.xml的
<!--Java Section-->

下增加一行
<public publicId="-//SPRING//DTD BEAN//EN" uri="schemas/java/spring-beans.dtd"/>

保存,重新打个XMLSpy即可进行验证了。

其它的DTD/XSD等文件如法炮制即可。
   
0 请登录后投票
时间:2007-09-11
你的另一篇文章里说
<uri name="http://java.sun.com/xml/ns/j2ee" uri="schemas/java/web-app_2_4.xsd"/>

也可以, 不知道有啥区别?

对XML只是初步了解, 得多向老乡学习
   
0 请登录后投票
时间:2007-09-11
http://yulimin.javaeye.com/blog/87706
:
web-app_2_4.xsd验证web.xml报j2ee_web_services_client_1_1.xsd找不到
   
0 请登录后投票
时间:2007-09-18
前者是 DTD 的定义方式
<public publicId="-//SPRING//DTD BEAN//EN" uri="schemas/java/spring-beans.dtd"/>


后者是 XSD 的定义方式, 即 namespace 形式
<uri name="http://java.sun.com/xml/ns/j2ee" uri="schemas/java/web-app_2_4.xsd"/>


不同的定义方式而已,都是达到验证 XML 是否合式而已。
当然两者可以进行切换,如有可能,以 XSD 为主。
   
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
JavaEye推荐