注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发AJAX → 文章内容

java 实现的XML schema 验证

作者:佚名 来源:不详 发布时间:2007-12-10 22:12:12

  最近对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;
    }
}
更多内容请看PCdog.com--Web开发专题

  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved