读取jar包中的xsd并对xml校验
来源:互联网 发布:p2p运营模式数据图表 编辑:程序博客网 时间:2024/06/05 02:29
/*** 校验xml文档内容格式是否正确** @param xmlContent* @throws WorkFlowException*/public void checkProcessDef(InputStream xmlContent) throws WorkFlowException {// String xsdFileName = USER_DIR + File.separator + "src" + File.separator + "main" +File.separator + "resources"// + File.separator + "config" + File.separator + "process.xsd";//获取资源路径try {URL path = this.getClass().getClassLoader().getResource("config/process.xsd");SchemaFactory schemaFactory =SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");Schema compiledSchema = schemaFactory.newSchema(path);SAXParserFactory factory = SAXParserFactory.newInstance();factory.setNamespaceAware(true);factory.setValidating(false);factory.setSchema(compiledSchema);Validator validator = compiledSchema.newValidator();Source sc = new StreamSource(xmlContent);validator.validate(sc);if (log.isInfoEnabled()) {log.info("流程定义文件校验通过!");}// String xsdFileName = path.getPath();//// //创建默认的XML错误处理器// XMLErrorHandler errorHandler = new XMLErrorHandler();// //获取基于 SAX 的解析器的实例// SAXParserFactory factory = SAXParserFactory.newInstance();// //解析器在解析时验证 XML 内容。// factory.setValidating(true);// //指定由此代码生成的解析器将提供对 XML 名称空间的支持。// factory.setNamespaceAware(true);// //使用当前配置的工厂参数创建 SAXParser 的一个新实例。// SAXParser parser = factory.newSAXParser();// //创建一个读取工具// SAXReader xmlReader = new SAXReader();// //获取要校验xml文档实例// Document xmlDocument = (Document) xmlReader.read(xmlContent);// //设置 XMLReader 的基础实现中的特定属性。核心功能和属性列表可以在[url]http://sax.sourceforge.net/?selected=get-set[/url] 中找到。// parser.setProperty(SCHEMA_LANGUAGE, SCHEMA_VALUE);// parser.setProperty(SCHEMA_SOURCE, "jar:file:" + xsdFileName);// //创建一个SAXValidator校验工具,并设置校验工具的属性// SAXValidator validator = new SAXValidator(parser.getXMLReader());// //设置校验工具的错误处理器,当发生错误时,可以从处理器对象中得到错误信息。// validator.setErrorHandler(errorHandler);// //校验// validator.validate(xmlDocument);//// XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint());// //如果错误信息不为空,说明校验失败,打印错误信息// if (errorHandler.getErrors().hasContent()) {// writer.write(errorHandler.getErrors());// log.error("checkProcessDef error" + errorHandler.getErrors().getStringValue());// throw new WorkFlowException("validate xml file fail by the xsd file");// } else {// if (log.isInfoEnabled()) {// log.info("good,validate success!");// }// }} catch (Exception e) {log.error("流程定义文件校验失败!!!");throw new WorkFlowException(e.getMessage());}}
0 0
- 读取jar包中的xsd并对xml校验
- XSD校验XML
- SpringMVC + mybatis 无法读取JAR包中的XML配置文件问题
- SpringMVC + mybatis 无法读取JAR包中的XML配置文件问题
- 用Jaxp包中的SAX技术对XML文件进行解析并完成对文件的读取操作.doc
- 通过xsd校验xml文件
- xsd去校验xml例子
- XSD校验XML JAVA实现
- 利用xsd校验xml文件格式
- xsd文件校验xml内容
- 读取jar包中的文件
- 读取Jar包中的配置文件
- Eclipse中XML Catalog批量导入jar中的xsd
- Spring的xml配置文件引入不同jar包的xsd看jar包功能-递增模式
- 如何读取JAR包中的资源文件(如XML、TXT等)
- java 使用xsd文件 校验 xml文件
- java使用xsd校验xml样例
- 读取jar包中的properties文件
- C# TextBox
- ANROID动态加载技术系列索引
- leetcode #114 in cpp
- ubuntu安装vim工具
- 30、JavaScript中简单拖拽DIV的实现
- 读取jar包中的xsd并对xml校验
- 使用IO流进行文件的拷贝
- android studio 能在真机上启动程序,不能在模拟器上启动(模拟器能启动,adb也能识别)
- 结构体字节对齐
- C与lua交互
- 通联量化的公开课
- nginx内置预定义变量
- Hibernate深入学习(一):实体映射文件中的package,auto-import,dynamic-insert,dynamic-update用法
- Hamming(7,4)编译码器