sxd文件束缚xml,测验xml是否契合标准凯发娱乐 - 凯发娱乐

sxd文件束缚xml,测验xml是否契合标准凯发娱乐

2019年02月16日11时23分14秒 | 作者: 语梦 | 标签: 文件,束缚,目标 | 浏览: 17820

常常会用到xml文件,可是不知道xml文件是否契合对应的xsd束缚,下面张贴出来验证的办法:

 

                          xsd文件束缚xml,测验xml是否契合标准(附件为xml文件盒xsd文件)

 

 

 

package utlis;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
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;
 * @author changpan
 * @desc:深圳供需渠道
 * Jun 7, 2013
public class ValidateXMLUtils {
 * 依据xsd文件验证xml文件是否契合规矩
 * @param xsdpath
 * @param xmlpath
 * @return
 * @throws SAXException
 * @throws IOException
 public static Map String,Object Validatexml(String xmlpath,String xsdpath) throws SAXException,IOException{
 Map String,Object result = new HashMap String,Object 
 //树立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
 try{
 validator.validate(source); 
 result.put("status", 1);
 result.put("message", "数据校验成功");
 return result;
 }catch(Exception ex){
 String error=ex.getMessage();
 error = error.substring(error.indexOf("valid.1.2.1:")+12,error.length());
 result.put("status", 0);
 result.put("message", error);
 return result;
 public static void main(String[] args) {
 String xsdpath="C:\\Users\\Administrator\\workspace_1\\jcjg\\supervision\\utlis\\objinfo.xsd";
 String xmlpath="C:\\Users\\Administrator\\workspace_1\\jcjg\\supervision\\utlis\\objinfo.xml";
 try {
 Map String, Object validatexml = Validatexml(xmlpath,xsdpath);
 System.out.println(validatexml);//{message=数据校验成功, status=1}
 } catch (Exception e) {
 e.printStackTrace();

 

 

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章