`
keyboardsun
  • 浏览: 58258 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

DTD验证错误 问题解决 取消DTD验证 跳过DTD验证

阅读更多
在我们读取xml文件的时候,比如hibenate.cfg.xml这样的配置文件.
在文件的头上会有.
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
如果直接读取的话
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(new FileInputStream("hibenate.cfg.xml"));

会报错,呵呵,说DTD不存在,我想搞过这个的一定都遇到这样的方法.

如何解决呢?

新建一个类
import java.io.ByteArrayInputStream;
import java.io.IOException;

import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

/**
* 取消DTD的验证
* @author sunlei
*
*/
public class NullEntityResolver implements EntityResolver {
static String emptyDtd = "";
static ByteArrayInputStream byteIs = new ByteArrayInputStream(emptyDtd.getBytes());

/**
* @see org.xml.sax.EntityResolver#resolveEntity(java.lang.String, java.lang.String)
*/
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
return new InputSource(byteIs);
}
}

然后在你读取xml的时候
NullEntityResolver resolver = new NullEntityResolver();
xmlReader.setEntityResolver(resolver);
doc = xmlReader.read(file);
呵呵,在read前加上这两行.嗯,问题顺利解决.
就是这么简单.

支持原创啊. 转载请标明出处 http://www.chinacsharp.net

http://blog.csdn.net/keyboardsun 作者 keyboardsun

分享到:
评论

相关推荐

    使用DTD验证XML文档

    使用DTD验证XML文档 一、 DTD的定义: a) DTD是Document Type Defintion的缩写,即文档类型定义。DTD用来描述XML文档的结构。 二、 DTD可能包含的内容: a) 元素的定义规则。 b) 元素之间的关系规则。 c) 属性的定义...

    DTD验证XML详解

    - **解析器**:XML解析器读取XML文档并根据关联的DTD进行验证,如果发现不符合规则的地方,会报告错误。 4. **使用DTD的好处**: - **一致性**:确保所有符合DTD的XML文档都有相同的结构,方便处理和解析。 - **...

    使用SAX验证XML格式--DTD验证

    通过创建SAX解析器和实现事件处理器,我们可以定制错误处理逻辑,从而及时发现并解决XML文档中的问题。而DOMValidator.java可能是另一种验证方式的实现,使用DOM解析器来验证XML文档的完整性。在实际项目中,根据...

    实验二-基于DTD实现XML文档的有效性验证.doc

    本文档总结了基于DTD实现XML文档的有效性验证的实验报告。实验目的是通过定义和引用DTD来实现XML文档的有效性验证,并掌握DTD中各要素的定义。 知识点: 1. DTD(Document Type Definition)的定义:DTD是用于定义...

    使用XmlDocumentXmlDataDocument类加载XML文件时如何忽略DTD验证

    如果你的应用程序依赖于DTD定义的规则,那么忽略验证可能会导致数据处理错误或不一致。因此,在实际应用中,是否忽略DTD验证应根据具体需求谨慎考虑。 在处理大量XML数据时,性能也是需要考虑的因素。使用`...

    使用DOM4J验证DTD最简单的方法

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得更为简单。...在实际开发中,正确验证XML文档对于防止错误和确保程序的健壮性至关重要。

    DTD 总结 DTD 总结 DTD 总结

    - **验证XML文档**:DTD的主要功能是对XML文档进行结构验证,确保文档元素、属性等符合预先定义的规则。 - **规定文档结构**:DTD定义了文档元素的层次关系,例如哪些元素可以包含在其他元素内部,哪些元素只能...

    DTD 教程 DTD 实例

    XML 解析器在解析文档时会进行验证,如果发现任何违反 DTD 规则的地方,会抛出错误。这有助于确保数据的一致性和可靠性。 **DTD 实例** 一个简单的 DTD 实例可能如下: ```xml <!DOCTYPE catalog [ <!ELEMENT ...

    使用DTD实现文档结构定义

    1.改正以下message.xml文档的语法错误,并将内部DTD改为外部DTD,并要求验证文档有效性。 <!DOCTYPE myMessage [ <!ELEMENT myMessage (message)> <!ELEMENT message (#PCDATA)> ]> !- -这是一个注释>> <message>...

    DTD和Schema

    **DTD(Document Type Definition)与XML Schema是XML文档结构定义的两种主要方法,它们用于确保XML文档遵循预定义的规则,从而保持数据的一致性和可读性。** **DTD(文档类型定义)**是XML规范早期引入的一种方式...

    DTD的CHM帮助文档

    5. **文档验证**:描述如何使用DTD进行XML文档的验证,包括使用XML解析器进行验证的过程和可能出现的错误消息。 6. **CHM文件的结构**:解释CHM文件的内部结构,包括如何通过索引和目录快速访问内容,以及如何使用...

    dtd.rar_dtd_java dtd_xml dtd

    标题"DTD.rar_dtd_java dtd_xml dtd"暗示了这是一个与XML文档类型定义(DTD)相关的Java程序,可能包含了用于验证XML文档是否符合DTD规范的代码。"rar"表明这个资源是以RAR格式压缩的文件,通常包含多个相关文件。 ...

    解析DTD文件

    - **易于验证**:通过验证工具,可以轻松检查XML文档是否符合DTD,减少错误。 - **代码复用**:实体声明允许重复使用的代码片段,提高效率。 - **文档自解释**:DTD与XML文档分离,使得文档结构更清晰,便于理解...

    sql-map-2.dtd和sql-map-config-2.dtd

    引入sql-map-config-2.dtd后,开发者可以确保配置文件的语法正确,避免因格式错误导致的运行时问题。 在实际应用中,这两个DTD文件通常会被引用到对应的XML配置文件顶部,如下所示: ```xml <!DOCTYPE sqlMap ...

    mybatis-3-config.dtd mybatis-3-mapper.dtd

    在实际应用中,`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd` 通过引入机制被引用到XML配置文件中,确保解析器能够理解并验证配置文件的语法。例如: ```xml <!DOCTYPE configuration PUBLIC "-//mybatis.org...

    将DTD与XML文档相关联之外部DTD

    如果XML文档中的元素或属性不符合DTD的定义,解析器将报告错误。 外部DTD的好处包括: 1. **模块化**:由于DTD与XML文档分离,我们可以创建多个独立的DTD来处理不同部分的文档,然后在需要时组合它们。 2. **复用...

    mybatis-3-config/mapper.dtd 解决mybatis头文件报错

    解决mybatis头文件报错 下载好压缩包 解压将文件放到本地文件夹 例如 D盘的哪个文件夹 D:\mybatis\ ;然后打开eclipse ->Window->prefenrence->XML->XML Catalog->User Specifiled Entreis->Add->Location(此处是你...

    DOM4J解析XML时DTD路径问题

    - **性能考虑**:虽然上述方法可以解决网络不可用时的解析问题,但在生产环境中,可能还需要考虑其他因素,例如DTD文件的实际位置是否可以被缓存或存储在本地,以提高性能。 - **安全性**:使用自定义的`...

    mybatis的dtd.zip

    3. **DTD的作用**:DTD的主要作用是验证XML文件的语法,确保它符合特定的规范,防止因为配置错误导致程序运行异常。例如,如果在映射文件中误用了不被DTD支持的标签,解析时会抛出错误。 4. **XML Schema替代DTD**...

Global site tag (gtag.js) - Google Analytics