技术开发 频道

Java中实现XMLschema验证的代码

  【IT168 技术文档】最近对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;   }   }
0
相关文章