数据加载中...
Welcome to javafans club
网站刚开 , 谢谢大家的到来..
当前位置| 主页>Java技术资讯>WebServices>

java 实现的XML schema 验证

2008-07-15 作者:佚名 来源:网络 阅读
最近对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;
    }
}

上一篇:XFire中实现WS-Security

下一篇:ESB(企业服务总线)的是与非
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,请自觉遵守互联网相关政策法规。违者移交公安机关处理
用户名: 密码:
匿名?
注册
Sitemap Links Contcat us
© 2008 Javafans.Net 苏ICP备06044966号