最近碰到一个项目,我们项目中需要生成一个xml文件,但是生成出来的文件要符合他们的xsd规范,网上找了一圈,没找到利用xsd生成xml文件的案例,所以,就想着自己生成然后验证一下
废话少说,直接干代码
import java.io.File;
import java.io.IOException;
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.xml.sax.SAXException;
public class ValidateXML {
public ValidateXML(){
}
public static void main(String[] args){
boolean a = false;
try {
//第一个参数放入你的xsd文件,第二个你的xml文件,就会调用方法去验证
//如何不符合规范,就会报错,符合就会输出true成功
a = Validatexml("C://Users//YuRongQi//Desktop//xml//123.xsd","C://Users//YuRongQi//Desktop//xml//book2.xml");
} catch (SAXException e) {
a = false;
System.out.println("sax错误,验证不通过");
e.printStackTrace();
} catch (IOException e) {
a = false;
System.out.println("io错误,验证不通过");
e.printStackTrace();
}
System.out.println(a);
}
public static boolean Validatexml(String xsdpath,String xmlpath) throws SAXException,IOException{
//建立schema工厂
SchemaFactory schemaFactory=SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
//建立验证文档文件对象,利用此文件对象所封装的文件进行schema验证
File schemaFile=new File(xsdpath);
//利用schema工厂,接收验证文档文件对象生成Schema对象
Schema schema=schemaFactory.newSchema(schemaFile);
//通过Schema产生针对于此Schema的验证器,利用schenaFile进行验证
Validator validator=schema.newValidator();
//得到验证的数据源
Source source=new StreamSource(xmlpath);
//开始验证,成功输出success!!!,失败输出fail
validator.validate(source);
return true;
}
}
版权声明:本文为Y_R_Q原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。