package com; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import javax.xml.XMLConstants; import javax.xml.stream.FactoryConfigurationError; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.impl.builder.StAXOMBuilder; import org.xml.sax.SAXException; public class validateXML { /** * XSD和XML文件放在工程的bin路径下 */ public static boolean validate(String schemaLocaltion, OMElement request) throws SAXException, IOException { // 获取Schema工厂类 // 这里的XMLConstants.W3C_XML_SCHEMA_NS_URI的值就是://http://www.w3.org/2001/XMLSchema SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); // 获取XSD文件,以流的方式读取到Source中 // XSD文件的位置相对于类文件位置 Source schemaSource = new StreamSource(new FileInputStream(schemaLocaltion)); Schema schema = factory.newSchema(schemaSource); // 这里是将一个DOM树对象转换成流对象,以便对DOM树对象验证 // 如果是对XML文件进行验证,用FileInputStream即可 String input = request.toString(); ByteArrayInputStream bais = new ByteArrayInputStream( input.getBytes("UTF-8")); // 获取验证器,验证器的XML Schema源就是之前创建的Schema Validator validator = schema.newValidator(); Source source = new StreamSource(bais); // 执行验证 try { validator.validate(source); return true; } catch (Exception ex) { ex.printStackTrace(); return false; } finally { bais.close(); } } /** * get OMElement soap request from specified XML file. * * @param request * @return * @throws FileNotFoundException * @throws XMLStreamException * @throws FactoryConfigurationError */ public static OMElement getRequest(String filePath) throws FileNotFoundException, XMLStreamException, FactoryConfigurationError { XMLStreamReader reader = XMLInputFactory.newInstance() .createXMLStreamReader( new FileInputStream(new File(filePath))); StAXOMBuilder builder = new StAXOMBuilder(reader); OMElement requestMessage = builder.getDocumentElement(); return requestMessage; } public static void main(String[] args) { try { if (validate("D:\\Documents\\2014.11work\\mzyw1.xsd", getRequest("D:\\Documents\\2014.11work\\mzyw1.xml"))) { System.out.println("customer_err.xml格式良好"); } else { System.out.println("customer_err.xml格式有误,请检查!"); } } catch (Exception ex) { ex.printStackTrace(); System.out.println("文件格式有误,请检查!"); } } }
相关推荐
附件是我写的一个demo程序,该程序的功能是根据一个定义好的XSD文件去检查...1 解析XSD文件,并将其规定的XML结构映射至自定义的Java类(XMLNode); 2 根据得到XML结构,逐一检查目标XML中是否存在指定的元素或属性。
根据XML模式(xsd文件)快速轻松地验证XML文件。 需要安装Java。 在Mac和Linux上的用法: ./xsdv.sh test.xsd test.xml Windows命令提示符下的用法: xsdv test.xsd test.xml 如果您发现它有用并且想要在系统...
NULL 博文链接:https://zhoujianboy.iteye.com/blog/816343
ava校验XML是件很扯淡的事情,... 下面不扯这些废话了,我用DOM4j结合javaxml api使用XSD来校验一个xml有效性,下面这个例子虽然和蹩脚,但是也费了一番功夫,放出来大家研究吧,有更好的实现也希望能和我一同分享。
基本的linter(XML +部分XSD验证) 基于XSD的快速自动完成功能(利用来自XSD的评论) 格式化XML(选定范围或完整文档) 自动关闭和自动重命名当前编辑的标签(仅适用于给定行中的单个标签) xml节点/属性的鼠标...
3、利用XSD文件的XML3种验证方法 1)Dom4j的SAXValidator (dom4j.jar, javax.xml.parsers 相关类) 2)Javax.xml.validation API(Java1.5及以上) 3)Jdom(jdom.jar,xerces.jar) 4、详细说明ppt文档
假如有一天我们的应用程序不需要再业务代码执行前记录日志了,只需要修改XML文件中的定义,而不用更改AdviceDemo的代码: xml 代码 1. <bean id="messageSender" class="com.savage.aop.HttpMessageSender">bean> ...
JavaXML 该项目通过 Java 处理多种 XML 文件操作。 获取 XML 中的元素编号 XSD 验证 提取元素值
xstream是一种序列 化工具而不是数据绑定工具,就是说不能从xml或者xml schema definition (xsd)文件生成类。 和其他序列化工具相比,xstream 有三个突出的特点: xstream不关心序列化/逆序列化的类的字段的可见性...
ajax调用java实例源码xsd 表格 您想要制作一个提交结构化数据 (XML/JSON) 的 Web 表单。 xsd-forms基于已用一些表示信息注释的 xml 模式 (XSD) 为您生成 Web 表单。 xsd-forms已被部署到一个免费可用的环境中,以...
XSD架构验证器 (XSD)模式验证器,使用执行实际验证。 先决条件 在后台,该实用程序使用Java进行实际验证。 它假定javac和java在路径上。 如果存在JAVA_HOME环境变量,它将使用它来定位已安装的JDK。 在某些...
针对DTD(在文件中引用/定义)和XSD(通过 )进行验证 多个文件 写入日志文件 处理压缩流(xz,bzip2,gz) 可以并行工作 可以使用DOM或SAX 可以将分组的错误消息写入JSON文件 不支持: 通过对XSD,RNC,RNG,...
XML技术与Web程序设计,这本是课程大作业,现已提交,分享出来供大家参考,java语言,用的dom4j解析创建xml文档,还有清晰的xsd文件,里面用了正则对相关数据进行了验证,3个xml文件,一个可以分页显示全部信息,一...
使用XSD验证XML文档。 定义将已开发的XML文档转换为每个作业中指定的文档的方法。 选择7。近战武器。 近战武器可以根据以下方案进行构造: 类型-类型(刀,匕首,军刀等)。 方便-一手或两手。 原产地是原产...
该解决方案是一个Java控制台程序,用于提供一种验证ONIX XML格式文件的方法,该文件是表示有关书籍(以及其他媒体)的电子数据的国际标准。 这种格式是由国际图书贸易机构EDITEUR建立的。 由于ONIX格式使用外部DTD...
由于它们实际上是从 JAXB 生成的 Java 对象,因此它们由模式文件支持,并且可以轻松地序列化为 XML。 由于它们实际上是使用插件生成的,它们与 JPA 兼容。 到目前为止,如此标准。 使用这些 bean 进行编程需要普通...
XSD推理器XSDInferencer 是一个自动 XML Schema 生成工具,它自动生成 XSD 文件,一些提供的 XML 正面示例可以根据这些文件进行验证。 它还从该文档的内容中收集统计信息。 通过利用许多常用的 XSD 功能,该工具生成...