首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> XML >> WebServices >> 正文

java 实现的XML schema 验证

最近对Schema 验证研究了一下, 代码如下:
所需JAR包需要自己下载(版本一定要正确)

public class SchemaValidation {

    public static void main(String[] args) {
        validate();
    }

    public static void validate() {
        try {
            SchemaValidation demo = new SchemaValidation();
            // Give the xml and schema name
            InputStream xmlString = demo.getClass().getResourceAsStream("GBAInit.xml");
            InputStream schemaStr = demo.getClass().getResourceAsStream("GBAInitSchema.xsd");
    
            SAXReader reader = createSAXReader(schemaStr);
            System.out.println("XSD parse successfully !");
            
            Document document = reader.read(xmlString);
            System.out.println("Successfully validation .. . ");
        } catch (DocumentException e) {
            System.out.println("Exception occurred: " + e);
            Throwable nestedException = e.getNestedException();
            if (nestedException != null) {
                System.out.println("NestedException: " + nestedException);
                nestedException.printStackTrace();
            } else {
                e.printStackTrace();
            }
        } catch (Throwable t) {
            System.out.println("Exception occurred: " + t);
            t.printStackTrace();
        }
    }

    /** Registers the Verifier with the SAXReader */
    protected SAXReader createSAXReader(InputStream schemaURI) throws Exception {

        System.out.println("Loaded schema document: " + schemaURI);

        // use autodetection of schemas
        VerifierFactory factory = new com.sun.msv.verifier.jarv.TheFactoryImpl();
        Schema schema = factory.compileSchema(schemaURI);

        Verifier verifier = schema.newVerifier();
        verifier.setErrorHandler(new ErrorHandler() {
            public void error(SAXParseException e) {
                System.out.println("ERROR: " + e);
            }

            public void fatalError(SAXParseException e) {
                System.out.println("FATAL: " + e);
            }

            public void warning(SAXParseException e) {
                System.out.println("WARNING: " + e);
            }
        });

        // now install the verifying filter
        VerifierFilter filter = verifier.getVerifierFilter();
        SAXReader reader = new SAXReader();
        reader.setXMLFilter(filter);
        return reader;
    }
}
【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·Oracle外键及外键约束修改行为
 ·开源软件测试工具学习专题
 ·JSP Web开发 入门基础到高手进阶教程
 ·JavaFX—是Java桌面的新希望么?
 ·安全至上 .NET开发安全策略
 ·测试用例设计之道-测试用例学习专题
 ·面向Java开发人员的Scala指南
 ·Java设计模式之实例详解
 ·Oracle数据库11g 面向DBA和开发人员的重要新特性
 ·桌面应用软件编程 J2SE技术详解
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航