首先,为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的定义: a) DTD是Document Type Defintion的缩写,即文档类型定义。DTD用来描述XML文档的结构。...c) DTD使应用程序可以使用一个标准DTD校验从外部接收的XML数据是否有效。
- **内部DTD**:将DTD包含在XML文档的开头,以`<!DOCTYPE>`声明开始。 - **外部DTD**:通过`<!DOCTYPE>`声明引用外部的DTD文件,如`<!DOCTYPE document SYSTEM "DTD_file.dtd">`。 3. **DTD验证过程**: - **...
3. **在线校验**:将XML文档内容粘贴到W3C提供的校验工具中,选择DTD校验方式,并上传相应的DTD文件。 4. **查看结果**:校验完成后,查看是否有任何错误或警告信息,并根据反馈修正XML文档。 #### 八、总结 通过...
Iexmltls是XML开发者和数据处理人员的得力助手,它通过集成在IE浏览器中,提供了一种便捷的XML文档与DTD校验方式。对于需要频繁处理XML和DTD的用户来说,这款插件无疑提高了工作效率,降低了错误率,是值得信赖的...
在本讲中,我们将深入探讨PHP与XML的结合使用,特别是关于CDATA、实体字符处理以及DTD(Document Type Definition)的快速入门。XML是一种强大的数据交换格式,它允许我们以结构化的方式存储和传输数据。而PHP作为一...
在开发过程中,通过DTD校验可以确保XML配置文件的正确性,避免因配置错误而导致的运行时异常。对于像Struts这样的MVC框架,正确的DTD校验能帮助开发者快速定位配置问题,提高代码质量。 #### 二、MyEclipse内置DTD...
2. **外部DTD文档**:将DTD定义放在单独的文件中,然后在XML文档中引用。 ```xml <!DOCTYPE 根元素 SYSTEM "DTD文件路径"> ``` 3. **内部与外部DTD文档结合**:同时使用内部和外部DTD定义。 ```xml <!DOCTYPE ...
3. **校验XML**:当使用Castor的`unmarshal()`方法解析XML时,如果启用了XSD校验,Castor会自动检查XML是否符合指定的XSD。如果XML不符合规范,Castor将抛出`MarshalException`。 4. **异常处理**:在代码中,需要...
### Java通过XML Schema校验XML #### 背景与挑战 XML(可扩展标记语言)作为一种标准的数据交换格式,在Web服务、配置文件以及其他多种应用领域有着广泛的应用。随着XML的普及,对于XML数据有效性的校验变得越来越...
在提供的链接中,,博主详细介绍了如何在Delphi7中使用XML Schema进行XML文档的验证。文章可能包括以下步骤: 1. 加载XML文档:创建一个IXMLDOMDocument对象,使用Load方法加载XML文件。 2. 加载XSD模式:同样创建...
可以使用XML解析器,如Microsoft.XMLDOM(在IE5及以上版本的浏览器中内置),来加载XML文件并进行DTD验证。在JavaScript中,可以通过创建XML文档解析器对象,开启校验,然后加载XML文件,最后检查解析错误来实现这个...
在实际应用中,XML校验工具不仅可以用于单个XML文档的校验,还可以集成到系统中,对输入或输出的XML数据进行实时验证,提高系统的健壮性。例如,在Web服务、数据交换平台或者企业级应用中,XML校验是确保数据交换...
在Java中,你可以使用`javax.xml.validation`包中的类来验证XML文档是否符合DTD或Schema。例如,`SchemaFactory`和`Validator`可以用来创建和使用Schema对象进行XML验证。 6. **Java操纵XML实例讲解**: 在实际...
7. **异常处理**:在验证过程中,可能出现的错误如XML格式错误、未找到Schema、Schema不匹配等,都需要通过try-catch块进行捕获和处理,以确保程序的健壮性。 8. **编程实践**:编写这样的代码需要理解XML的基本...
为了解决这个问题,我们可以将DTD文件复制到本地,并在XML文件中指定使用本地DTD。这样,即使网络连接不稳定,也能保证配置文件的正常解析。 在"DTD-xsd.zip"这个压缩包文件中,可能包含了Dubbo配置文件所需的一...
这样IDE就会在解析Mybatis的XML配置文件时,使用这些DTD来校验文件的格式。 接下来,创建Mybatis的XML配置文件: 1. 右键点击项目中的包,选择“New”然后选择“Other”。 2. 在弹出的对话框中,可以在搜索框中...
使用DTD或Schema校验XML。从XML生成DTD或Schema。与其它编辑器相比最大不同之处在 于,Rinzo能够与Java elements结合在一起。你可以打开一个类的定义,自动完成类名,从XML声明创建类。这将非常有用假如你要编辑web....
在 XML 中,开发者可以使用多种技术来定义一个 XML 文档的结构,包括 DTD、XML Schema、Namespace 和 UML 等。其中,DTD(Document Type Definition)是 XML 文档的结构定义的传统方法,它使用一系列声明来定义文档...
在实际开发中,使用DTD配合Java的XML解析库(如Java的DOM API、SAX API或JAXB)可以实现XML数据的有效处理。例如,当接收到XML数据时,开发者可以利用DTD进行校验,确保数据的完整性和正确性,避免因数据错误导致的...
* XMLSpyEnt只显示xml文件中的第一个Schema校验错误位置,如检查xml文件中是否还含有其他错误,请将出现错误的位置修改正确,然后在点击Validate图标,进行Schema校验,以此类推,直至该xml文件的Schema校验正确。...