`

在程序中控制使用dtd校验xml

阅读更多
首先,为DocumentBuilder 设置EntityResolver
DocumentBuilderFactory df = DocumentBuilderFactory.newInstance() 
DocumentBuilder db = df.newDocumentBuilder();
db.setEntityResolver(new YourHandler());

这里给db设置你自己的handler,下面是YourHandler 的实现
class YourHandler extends DefaultHandler{
 public InputSource resolveEntity (String publicId, String systemId)
	throws IOException, SAXException
    {
	return null;
    }
}

YourHandler继承DefaultHandler,DefaultHandler的resolveEntity 的缺省实现是返回null,也就是返回空的dtd。
在调用DocumentBuilder 的parse来生成Document的时候,会调用YourHandler的resolveEntity 方法,得到dtd文件。
这里覆盖DefaultHandler的resolveEntity 就可以实现用程序来控制是否使用dtd校验,使用哪个dtd来校验xml。
比如,
public InputSource resolveEntity (String publicId, String systemId)
	throws IOException, SAXException
    {
	return new InputSource(new StringReader("<?xml version=\"1.0\" encoding=\"\UTF8"?>"));

    }
}

返回一个没有内容的文件,等于不做校验。
分享到:
评论

相关推荐

    使用DTD验证XML文档

    使用DTD验证XML文档 一、 DTD的定义: a) DTD是Document Type Defintion的缩写,即文档类型定义。DTD用来描述XML文档的结构。...c) DTD使应用程序可以使用一个标准DTD校验从外部接收的XML数据是否有效。

    DTD验证XML详解

    - **内部DTD**:将DTD包含在XML文档的开头,以`&lt;!DOCTYPE&gt;`声明开始。 - **外部DTD**:通过`&lt;!DOCTYPE&gt;`声明引用外部的DTD文件,如`&lt;!DOCTYPE document SYSTEM "DTD_file.dtd"&gt;`。 3. **DTD验证过程**: - **...

    XML校验工具,可以用来进行XML合法性检验

    3. **在线校验**:将XML文档内容粘贴到W3C提供的校验工具中,选择DTD校验方式,并上传相应的DTD文件。 4. **查看结果**:校验完成后,查看是否有任何错误或警告信息,并根据反馈修正XML文档。 #### 八、总结 通过...

    IE浏览器校验dtd文件小插件(含使用说明)

    Iexmltls是XML开发者和数据处理人员的得力助手,它通过集成在IE浏览器中,提供了一种便捷的XML文档与DTD校验方式。对于需要频繁处理XML和DTD的用户来说,这款插件无疑提高了工作效率,降低了错误率,是值得信赖的...

    第135讲phpxml编程②cdata实体字符处理指令dtd快速入门编程校验xml.pdf

    在本讲中,我们将深入探讨PHP与XML的结合使用,特别是关于CDATA、实体字符处理以及DTD(Document Type Definition)的快速入门。XML是一种强大的数据交换格式,它允许我们以结构化的方式存储和传输数据。而PHP作为一...

    自定义MyEclipse的DTD文档校验

    在开发过程中,通过DTD校验可以确保XML配置文件的正确性,避免因配置错误而导致的运行时异常。对于像Struts这样的MVC框架,正确的DTD校验能帮助开发者快速定位配置问题,提高代码质量。 #### 二、MyEclipse内置DTD...

    XML的DTD教程

    2. **外部DTD文档**:将DTD定义放在单独的文件中,然后在XML文档中引用。 ```xml &lt;!DOCTYPE 根元素 SYSTEM "DTD文件路径"&gt; ``` 3. **内部与外部DTD文档结合**:同时使用内部和外部DTD定义。 ```xml &lt;!DOCTYPE ...

    castor解析xml与xsd校验xml

    3. **校验XML**:当使用Castor的`unmarshal()`方法解析XML时,如果启用了XSD校验,Castor会自动检查XML是否符合指定的XSD。如果XML不符合规范,Castor将抛出`MarshalException`。 4. **异常处理**:在代码中,需要...

    Java通过XML Schema校验XML

    ### Java通过XML Schema校验XML #### 背景与挑战 XML(可扩展标记语言)作为一种标准的数据交换格式,在Web服务、配置文件以及其他多种应用领域有着广泛的应用。随着XML的普及,对于XML数据有效性的校验变得越来越...

    XML验证器(XSD验证XML)

    在提供的链接中,,博主详细介绍了如何在Delphi7中使用XML Schema进行XML文档的验证。文章可能包括以下步骤: 1. 加载XML文档:创建一个IXMLDOMDocument对象,使用Load方法加载XML文件。 2. 加载XSD模式:同样创建...

    xml约束 xml经典之二

    可以使用XML解析器,如Microsoft.XMLDOM(在IE5及以上版本的浏览器中内置),来加载XML文件并进行DTD验证。在JavaScript中,可以通过创建XML文档解析器对象,开启校验,然后加载XML文件,最后检查解析错误来实现这个...

    xmlValidate.rar

    在实际应用中,XML校验工具不仅可以用于单个XML文档的校验,还可以集成到系统中,对输入或输出的XML数据进行实时验证,提高系统的健壮性。例如,在Web服务、数据交换平台或者企业级应用中,XML校验是确保数据交换...

    通过Schema验证XML格式是否正确

    7. **异常处理**:在验证过程中,可能出现的错误如XML格式错误、未找到Schema、Schema不匹配等,都需要通过try-catch块进行捕获和处理,以确保程序的健壮性。 8. **编程实践**:编写这样的代码需要理解XML的基本...

    xml的JAVA解析与格式定义

    在Java中,你可以使用`javax.xml.validation`包中的类来验证XML文档是否符合DTD或Schema。例如,`SchemaFactory`和`Validator`可以用来创建和使用Schema对象进行XML验证。 6. **Java操纵XML实例讲解**: 在实际...

    Dubbo配置文件依赖的本地DTD

    为了解决这个问题,我们可以将DTD文件复制到本地,并在XML文件中指定使用本地DTD。这样,即使网络连接不稳定,也能保证配置文件的正常解析。 在"DTD-xsd.zip"这个压缩包文件中,可能包含了Dubbo配置文件所需的一...

    配置Mybatis_DTD环境

    这样IDE就会在解析Mybatis的XML配置文件时,使用这些DTD来校验文件的格式。 接下来,创建Mybatis的XML配置文件: 1. 右键点击项目中的包,选择“New”然后选择“Other”。 2. 在弹出的对话框中,可以在搜索框中...

    Eclipse的XML编辑器

    使用DTD或Schema校验XML。从XML生成DTD或Schema。与其它编辑器相比最大不同之处在 于,Rinzo能够与Java elements结合在一起。你可以打开一个类的定义,自动完成类名,从XML声明创建类。这将非常有用假如你要编辑web....

    XML考试题库大全

    在 XML 中,开发者可以使用多种技术来定义一个 XML 文档的结构,包括 DTD、XML Schema、Namespace 和 UML 等。其中,DTD(Document Type Definition)是 XML 文档的结构定义的传统方法,它使用一系列声明来定义文档...

    java开发jar包dtd.zip

    在实际开发中,使用DTD配合Java的XML解析库(如Java的DOM API、SAX API或JAXB)可以实现XML数据的有效处理。例如,当接收到XML数据时,开发者可以利用DTD进行校验,确保数据的完整性和正确性,避免因数据错误导致的...

    XMLSpy使用说明及技巧

    * XMLSpyEnt只显示xml文件中的第一个Schema校验错误位置,如检查xml文件中是否还含有其他错误,请将出现错误的位置修改正确,然后在点击Validate图标,进行Schema校验,以此类推,直至该xml文件的Schema校验正确。...

Global site tag (gtag.js) - Google Analytics