2012年2月29日星期三

Java中用XML Schema检验XML实战 - Michael Ma的博客 - ITeye技术网站

Java中用XML Schema检验XML实战 - Michael Ma的博客 - ITeye技术网站


上一篇文章"XML Schema检验XML文档结构"中,简单介绍了XML Schema及其写法,这篇主要针对java开发者,在程序中检验XML的有效性。

由于程序中经常会对xml的validation进行检验,通过DOM解析再一项一项check的方式,陈旧而且写起来繁杂。本文介绍一种快速检验 xml的方法,借助javax.xml.validation包下的Validator, Schema, SchemaFactory等类,通过传入XML Schema Definition(XSD)文件进行验证。

代码如下:

public static void main(String[] args) throws IOException, SAXException {   String xmlFile = "test.xml"  String xsdFile = "test.xsd"   // 1. Lookup a factory for the W3C XML Schema language  SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");   // 2. Compile the schema.   File schemaLocation = new File(xsdFile);  Schema schema = factory.newSchema(schemaLocation);   // 3. Get a validator from the schema.  Validator validator = schema.newValidator();   // 4. Parse the document you want to check.  Source source = new StreamSource(xmlFile);   // 5. Check the document  try {   validator.validate(source);   System.out.println(xmlFile  + " is valid.");   } catch (SAXException ex) {   System.out.println(xmlFile  + " is not valid because ");   System.out.println(ex.getMessage());  } }

没有评论: