`

java xsd校验xml

    博客分类:
  • xml
 
阅读更多

下面使用xsd校验xml

public class XmlValidator {
	private static String errorMsg;
	public static boolean check(String xmlFile, String xsdFile){
		boolean rs = false;		
		rs = checkXSDFormat(xmlFile, xsdFile);
		return rs;
	}
		
	/**
	 * 校验	
	 */
	private static boolean checkXSDFormat(String xmlFile, String xsdFile) {
		SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
		XSDErrorHandler errorHandler = new XSDErrorHandler();
		Validator validator = null;
		try {
			Schema schema = factory.newSchema(new File(xsdFile));
			validator = schema.newValidator();			
			validator.setErrorHandler(errorHandler);
			
		} catch (SAXParseException e) {			
			errorMsg = e.getMessage();
			return false;
		} catch (SAXException e) {			
			errorMsg = e.getMessage();
			return false;
		}		
		FileInputStream fis = null;
		try {
			fis = new FileInputStream(xmlFile);
			validator.validate(new StreamSource(fis));//new File(this.xmlFile)));
		} catch (SAXException e) {			
			errorMsg = e.getMessage();
			return false;
		} catch (IOException e) {			
			errorMsg = e.getMessage();
			return false;
		} finally {
			if(fis != null){
				try {
					fis.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		if(errorHandler.getError() != null){
			errorMsg = errorHandler.getError();
			return false;
		}
		return true;
	}
	
	public static String getError() {
		return errorMsg;
	}
}

 测试

public class XmlValidate {
	private static String xmlFile = "xml文件路径";
	private static String xsdFile = "对应的xsd文件路径";
	public static void main(String[] args) {
		System.out.println(XmlValidator.check(xmlFile, xsdFile));
		System.out.println(XmlValidator.getError());
	}
}

 

分享到:
评论

相关推荐

    前段时间做JAVA XSD校验XML时整理的JAR包

    需要其它工具包的朋友可以留下邮箱,我传其它包

    Java XSD校验工具

    可以根据XSD校验XML规则

    Java通过XML Schema校验XML

    ava校验XML是件很扯淡的事情,因为Sun的XML相关软件包会令你云里雾里。  W3C这块的XML相关的规范相当的多,这也是导致XML处理器起来费劲的主要原因。要想精通这些规范和相关的API,实在是异想天开(新的规范在不停...

    自动生成xsd所需的jar包

    执行java -jar trang.jar a.xml a.xsd即可生成需要发的xsd校验文件

    Oxygen XML Editor 20.1.2018080903 XML编辑器

    Oxygen XML Editor 是一款基于Java的XML编辑器,支持XML, XSL, TXT, XSD, DTD文档,能自行校验XML, XSL, XSD代码,提示脚本错误。Oxygen能自动完成结束标签,代码高亮现实,支持Unicode。 应用介绍 Oxygen XML ...

    Test2.java

    java环境下,main方法中传递xsd规则文件路径,xml路径,校验xml文件是否符合xsd规则。

    oXygenXMLEditor(基于Java的XML编辑器)v19免费特别版(附注册机补丁)32位Linux版

    Oxygen XML Editor 19是基于java打造的一款xml编辑器,这个是18的升级版本,在界面和功能上都有所升级,可以方便开发者对XML, XSL, TXT, XSD, DTD等功能进行管理操作,软件集成了实用的代码高亮显示、代码自动完成、...

    Oxygen XML Editor

    Oxygen XML Editor是一款基于Java的XML编辑器,支持XML, XSL, TXT, XSD, DTD文档,能自行校验XML, XSL, XSD代码,提示脚本错误。Oxygen能自动完成结束标签,代码高亮现实,支持Unicode,亲测可用.

    oXygenXMLEditor(基于Java的XML编辑器)v19免费特别版(附注册机破解补丁)32位

    Oxygen XML Editor 19是基于java打造的一款xml编辑器,这个是18的升级版本,在界面和功能上都有所升级,可以方便开发者对XML, XSL, TXT, XSD, DTD等功能进行管理操作,软件集成了实用的代码高亮显示、代码自动完成、...

    OxygenEclipse16.1

    Oxygen XML Editor 是一款基于Java的XML编辑器,支持XML, XSL, TXT, XSD, DTD文档,能自行校验XML, XSL, XSD代码,提示脚本错误。Oxygen能自动完成结束

    day023-xml解析笔记和代码.rar

    schema约束:xml Schema Definition xsd文件 例如: <?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace=...

    单点登录源码

    FluentValidator | 校验框架 | [https://github.com/neoremind/fluent-validator](https://github.com/neoremind/fluent-validator) Thymeleaf | 模板引擎 | [http://www.thymeleaf.org/](http://www.thymeleaf.org/...

    asp.net知识库

    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本...Serialize Your Deck with Positron [XML Serialization, XSD, C#]...

Global site tag (gtag.js) - Google Analytics