最近碰到一个项目,我们项目中需要生成一个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 {
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{
SchemaFactory schemaFactory=SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
File schemaFile=new File(xsdpath);
Schema schema=schemaFactory.newSchema(schemaFile);
Validator validator=schema.newValidator();
Source source=new StreamSource(xmlpath);
validator.validate(source);
return true;
}
}