`
123003473
  • 浏览: 1064609 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java 利用XSD 验证XML文件

    博客分类:
  • java
 
阅读更多
XSD文件 (XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 具体使用方法和定义请参看:

http://www.w3school.com.cn/schema/index.asp

java自jdk1.5以上新增了SchemaFactory类 可以实现对XSD验证的支持,使用起来也很方便。

以下代码可用在JDK1.5+ 验证xml

public class SimpleErrorHandler implements ErrorHandler {  
    public void warning(SAXParseException e) throws SAXException {  
        System.out.println(e.getMessage());  
    }  
  
    public void error(SAXParseException e) throws SAXException {  
        System.out.println(e.getMessage());  
    }  
  
    public void fatalError(SAXParseException e) throws SAXException {  
        System.out.println(e.getMessage());  
    }  
}  
  
  
SAXParserFactory factory = SAXParserFactory.newInstance();  
  
SchemaFactory schemaFactory =   
    SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");  
  
factory.setSchema(schemaFactory.newSchema(  
    new Source[] {new StreamSource("contacts.xsd")}));  
  
SAXParser parser = factory.newSAXParser();  
  
SAXReader reader = new SAXReader(parser.getXMLReader());  
reader.setValidation(false);  
reader.setErrorHandler(new SimpleErrorHandler());  
reader.read("contacts.xml");  



具体的可参看:http://www.edankert.com/validate.html



在JDK1.5之前不提供对XSD的支持,以为在JDK1.5之前众多的XML  API已经满天飞 可使用DOM4j + xerces  如果读取XML节点使用XPATH的话 需要saxpath.jar



JDK1.4+DOM4J+xerces 验证xml文件

public class ParserErrorHandler implements ErrorHandler {  
   private static final  Logger logger = Logger.getLogger(ParserErrorHandler.class);  
    public void error(SAXParseException e) throws SAXException {  
          
        //logger.error(e);  
        throw e;  
  
    }  
  
    public void fatalError(SAXParseException e) throws SAXException {  
        //logger.error(e);  
        throw e;  
  
    }  
  
    public void warning(SAXParseException e) throws SAXException {  
        //logger.error(e);  
        throw e;  
  
    }  
  
}  
--定义SAXReader  后读取xml文件如果不符合XSD规则的话就会跑异常  
  
SAXReader reader = new SAXReader();  
           
        reader.setValidation(true);  
        reader.setFeature("http://xml.org/sax/features/validation", true);  
        reader.setFeature("http://apache.org/xml/features/validation/schema",  
                true);  
        reader  
                .setProperty(  
                        "http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",  
                        “xxx.XSD");  
        reader.setErrorHandler(new ParserErrorHandler());  


【转载地址】
http://blog.csdn.net/a276202460/article/details/5483183
分享到:
评论

相关推荐

    java生成xsd,xml示例

    XML用于结构化数据的存储和传输,而XSD则为XML文档提供了语义验证的规则。本教程将详细介绍如何在Java环境中生成XML和XSD文件。 XML是一种标记语言,它允许我们在文档中定义元素、属性和结构。这些元素和属性描述了...

    XML验证器(XSD验证XML)

    XML验证器(XSD验证XML)是指一种工具或程序,它能够检查XML文档是否符合预先定义的XSD模式。这个附带Delphi7源码的XML验证器,是为了解决在Delphi开发环境中对XML数据进行验证的需求。Delphi是一种流行的面向对象的...

    xml文件转xsd文件

    4. **验证XML文件**:使用XSD文件对XML文件进行验证,确保XML符合XSD定义的规则。可以使用XML解析器或者命令行工具如`xmllint`来进行验证。 5. **生成Java类**:利用JAXB或其他类似的工具,如Apache CXF的XJC,根据...

    利用xsd校验xml

    在标题“利用xsd校验xml”中,我们讨论的核心是通过XML Schema(XSD)来验证XML文档是否符合预定义的模式。这个过程是确保XML数据有效性和正确性的重要步骤,特别是当XML被用作数据交换或者在复杂的系统间通信时。 ...

    根据XSD检查XML并修复

    附件是我写的一个demo程序,该程序的功能是根据一个定义好的XSD文件去检查指定的XML文件是否满足XSD的约束。 这里的约束比标准的约束要弱一些,比如:这里的约束不限制元素出现的顺序,只关心有没有这个元素。 我...

    java中Dom验证XMl文件合法非法

    总结来说,Java中的DOM解析器配合XML Schema Factory可以有效地验证XML文件的合法性,通过捕获解析异常和检查返回的`Document`对象来判断验证结果。同时,注意性能优化和安全防护,避免潜在的攻击风险。

    6、xsd验证xml文件的java代码

    NULL 博文链接:https://nickfover.iteye.com/blog/2155663

    Xsd转换xml

    一旦有了XSD,我们就可以根据这个模式验证XML文档,确保其符合规范。 在“Xsd转换xml”这个场景中,通常指的是利用XSD文件生成对应的XML实例文档。这个过程是基于XSD的规则,自动生成一个符合该模式的XML文档。这在...

    JAXB 利用xsd文件生成java类

    在Java开发中,JAXB提供了一种方便的方式,允许开发者通过XML Schema (XSD) 文件来生成对应的Java类,从而简化XML处理的工作流程。 1. **XML Schema (XSD) 文件**: - XML Schema是一种W3C标准,用于定义XML文档的...

    纯Java(swing)写的xsd验证xml - 含

    标题中的“纯Java(swing)写的xsd验证xml”是指使用Java编程语言,结合Swing图形用户界面库,开发的一个工具,用于验证XML文档是否符合指定的XSD(XML Schema Definition)规范。XML Schema是W3C推荐的一种XML文档...

    前段时间做JAVA XSD校验XML时整理的JAR包

    需要其它工具包的朋友可以留下邮箱,我传其它包

    XSD使用dom4j校验XML

    总之,DOM4J结合XSD提供了一种高效且灵活的方式来验证XML文件的结构和内容。这对于保证数据交换的准确性和一致性具有重要意义,特别是在需要处理大量XML数据的系统中。理解和掌握这一技术,能够帮助开发者提高代码的...

    xml文件自动转成java对象工具

    XSD是XML的一种规范,定义了XML文档的结构和数据类型,它提供了一种方式来验证XML文档是否符合预设的规则。XSD文件转Java工具能够基于XSD文件生成对应的Java类,这些类包含了与XSD定义的元素和属性相对应的字段和...

    XSD根据xml生成schema文件

    在实际应用中,XSD不仅可以帮助我们验证XML文档,还可以用于生成Java类、WSDL服务定义等,极大地提升了XML在各种应用场景下的可操作性。对于开发人员来说,理解和掌握XSD是提高工作效率和代码质量的重要技能。 通过...

    用java读取修改xml文件的代码实现

    Java还提供了处理XML Schema(XSD)的能力,可以验证XML文档是否符合特定的模式。`javax.xml.validation`包包含了所需的工具,如`SchemaFactory`和`Validator`。 在实际应用中,选择合适的解析器取决于XML文件的...

    xml 转成xsd

    在Java代码中,可以调用Trang提供的API或命令行工具,传入XML文件作为输入,输出对应的XSD文件。 一旦有了XSD文件,就可以使用JAXB或类似的库(如Apache CXF或Castor)自动生成Java Bean类。这些生成的类会包含对应...

    java读取xml文件

    本教程将深入讲解如何在 Java 中处理 XML 文件,同时涉及 XML 的 DTD(Document Type Definition)验证。 首先,我们需要了解 Java 中用于解析 XML 的主要库:JAXB (Java Architecture for XML Binding) 和 DOM ...

    castor解析xml与xsd校验xml

    4. **解析XML到Java对象**:使用`Unmarshaller`接口实例化的对象,调用`unmarshal()`方法,传入XML文件或输入流,即可将XML转换为Java对象。例如: ```java File xmlFile = new File("path/to/xml/file.xml"); ...

    xsd转换成java对象

    XSD转换成Java对象的过程,也称为XML到Java对象的绑定或者XML Schema Binding,是将XML数据映射为Java类,使得程序能够方便地读取、操作和验证XML数据。这一过程在处理XML数据丰富的系统中非常常见,如Web服务或企业...

    使用SAXParser(SAXParserFactory.newInstance())验证XML文件格式---XSD

    本篇文章将深入探讨如何使用Java中的SAXParser和SAXParserFactory类来验证XML文件是否符合指定的XSD规范。 首先,`SAXParserFactory.newInstance()` 是Java API中用于创建SAXParser实例的方法,它是`javax.xml....

Global site tag (gtag.js) - Google Analytics