xml校验工具

xml校验工具,用于校验xml报文是否符合xsd规范

在线网站也可以校验
https://www.xmlvalidation.com/

源码及工具下载地址
https://download.csdn.net/download/qq_21271511/54181672

工具使用

选择对应的xsd及xml文件

点击确定后获取校验结果

失败则显示失败原因

代码

主面板

/**   * @Title: MainFrame.java * @Package com.agree.mainFrame * @Description: 主面板* @author lyz * @date 2015-12-5 下午12:13:42 * @version V1.0   */
package xmlValidate.com.agree.main;import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileNameExtensionFilter;import xmlValidate.com.agree.xmlUtil.XmlValidate;/*** @ClassName: MainFrame* @Description: 主面板* @author lyz * @date 2015-12-5 下午12:13:42* */
public class MainFrame extends JFrame {private static final long serialVersionUID = 1L;private JFrame jf = null;private JPanel jPanel;private JTextField text_xsd = new JTextField("", 20);// xsd文件路径private JTextField text_xml = new JTextField("", 20);// xml文件路径// 得到屏幕分辨率int width = Toolkit.getDefaultToolkit().getScreenSize().width;int height = Toolkit.getDefaultToolkit().getScreenSize().height;public MainFrame() {jf = new JFrame();jf.setVisible(true);jf.setTitle("校验工具");jf.setSize(400, 180);jf.setLocation((width - 400) / 2, (height - 300) / 2);jf.setResizable(false);// 窗体不可调整jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 窗体关闭时关闭应用程序jPanel = new JPanel();JLabel label1 = new JLabel("请选择xsd文件");JButton input = new JButton("浏览");JLabel label2 = new JLabel("请选择xml文件");JButton output = new JButton("浏览");JButton submit = new JButton("确定");JButton exit = new JButton("退出");jPanel.add(label1);jPanel.add(text_xsd);jPanel.add(input);jPanel.add(label2);jPanel.add(text_xml);jPanel.add(output);jPanel.add(submit, BorderLayout.SOUTH);jPanel.add(exit, BorderLayout.SOUTH);jf.add(jPanel);input.addActionListener(new MouseAction("input"));output.addActionListener(new MouseAction("output"));submit.addActionListener(new MouseAction("submit"));exit.addActionListener(new MouseAction("exit"));}class MouseAction implements ActionListener {private String onclick = "";public MouseAction(String str) {onclick = str;}@Overridepublic void actionPerformed(ActionEvent e) {// 文件选择if ("input".equals(onclick)) {JFileChooser chooser = new JFileChooser();chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);chooser.setFileFilter(new FileNameExtensionFilter("xsd files", "xsd"));int returnval = chooser.showDialog(jf, "请选择文件");if (returnval == JFileChooser.APPROVE_OPTION) {String inputFileName = chooser.getSelectedFile().getPath();text_xsd.setText(inputFileName);}} else if ("output".equals(onclick)) {JFileChooser chooser = new JFileChooser();chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);chooser.setCurrentDirectory(new File("."));chooser.setFileFilter(new FileNameExtensionFilter("xml files", "xml"));int returnval = chooser.showDialog(jf, "请选择文件");if (returnval == JFileChooser.APPROVE_OPTION) {String outputFileName2 = chooser.getSelectedFile().getPath();text_xml.setText(outputFileName2);}} else if ("submit".equals(onclick)) {System.out.println(text_xsd.getText());System.out.println(text_xml.getText());boolean isPassed = false;try {FileInputStream xsd = new FileInputStream(text_xsd.getText());FileInputStream xml = new FileInputStream(text_xml.getText());isPassed = XmlValidate.validate(xml, xsd);} catch (Exception err) {JOptionPane.showMessageDialog(null, "校验失败!" + err, "消息", JOptionPane.ERROR_MESSAGE);}if (!"".equals(text_xsd.getText()) && !"".equals(text_xml.getText())) {}if (isPassed) {JOptionPane.showMessageDialog(null, "校验成功!", "消息", JOptionPane.INFORMATION_MESSAGE);} else {JOptionPane.showMessageDialog(null, "校验失败!", "消息", JOptionPane.ERROR_MESSAGE);}} else if ("exit".equals(onclick)) {jf.dispose();}}}public static void main(String[] args) {MainFrame mf = new MainFrame();}
}

工具类

package xmlValidate.com.agree.xmlUtil;import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;import javax.xml.XMLConstants;
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 lyz**/
public class XmlValidate {/*** @param isXml* @param isXsd* @return* @throws SAXException* @throws IOException*/public static boolean validate(InputStream isXml, InputStream isXsd) throws SAXException, IOException {boolean flag = false;SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);try {Source xsd = new StreamSource(isXsd);Schema schema = sf.newSchema(xsd);Validator validator = schema.newValidator();validator.validate(new StreamSource(isXml));flag = true;} catch (SAXException e) {flag = false;throw new SAXException(e.getMessage());} catch (IOException e) {flag = false;throw new IOException(e.getMessage());} finally {if (isXml != null) {isXml.close();isXml = null;}if (isXsd != null) {isXsd.close();isXsd = null;}}return flag;}/*** @param isXml* @param isXsd* @return* @throws SAXException* @throws IOException*/public static boolean validate(InputStream isXml, File isXsd) throws SAXException, IOException {boolean flag = false;SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);try {Source xsd = new StreamSource(isXsd);Schema schema = sf.newSchema(xsd);Validator validator = schema.newValidator();validator.validate(new StreamSource(isXml));flag = true;} catch (SAXException e) {e.printStackTrace();flag = false;throw new SAXException(e.getMessage());} catch (IOException e) {e.printStackTrace();flag = false;throw new IOException(e.getMessage());} finally {if (isXml != null) {isXml.close();isXml = null;}}return flag;}/*** @param isXml* @param xsd* @return* @throws SAXException* @throws IOException*/public static boolean validate(InputStream isXml, URL xsd) throws SAXException, IOException {boolean flag = false;SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);try {Schema schema = sf.newSchema(xsd);Validator validator = schema.newValidator();validator.validate(new StreamSource(isXml));flag = true;} catch (SAXException e) {e.printStackTrace();flag = false;throw new SAXException(e.getMessage());} catch (IOException e) {e.printStackTrace();flag = false;throw new IOException(e.getMessage());} finally {if (isXml != null) {isXml.close();isXml = null;}}return flag;}/*** @param xml* @param xsd* @return* @throws SAXException* @throws IOException*/public static boolean validate(File xml, File xsd) throws SAXException, IOException {boolean flag = false;SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);try {Schema schema = sf.newSchema(xsd);Validator validator = schema.newValidator();validator.validate(new StreamSource(xml));flag = true;} catch (SAXException e) {e.printStackTrace();flag = false;throw new SAXException(e.getMessage());} catch (IOException e) {e.printStackTrace();flag = false;throw new IOException(e.getMessage());}return flag;}//  public static void main(String[] args)
//          throws JAXBException, DocumentException, UnsupportedEncodingException, IOException {//      boolean isPassed = false;
//      FileInputStream xml = new FileInputStream("C:\\Users\\14435\\Desktop\\ccms.903.001.02.xml");
//      FileInputStream xsd = new FileInputStream("C:\\Users\\14435\\Desktop\\ccms.903.001.02.xsd");
//      try {//          isPassed = validate(xml, xsd);
//      } catch (SAXException e) {//
//      }
//      if (isPassed) {//          System.out.println("通过");
//      } else {//          System.out.println("没有通过");
//      }
//  }}

xsd校验xml工具相关推荐

  1. java使用xsd校验xml样例

    知识点: XSD文件是指XML结构定义 ( XML Schemas Definition )文件,是DTD的替代品.可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合 ...

  2. java xsd校验xml文件

    1.需要maven依赖,版本的话根据自己需求来定 <dependency><groupId>dom4j</groupId><artifactId>dom ...

  3. JBPM流程部署校验之java利用XSD校验XML

    JBPM流程定义校验之java利用XSD校验XML 上篇我们学习了在.net中怎样利用XSD来验证xml,今天我们来看一下在java中怎样实现利用xsd来校验xml! /**  *   */ pack ...

  4. java xsd校验_Java使用xsd校验xml

    最近项目需要使用xsd对xml进行预校验,于是封装了一个工具类,来完成校验工作. 完整代码如下: import java.io.File; import java.io.IOException; im ...

  5. 通过xsd校验xml

    不依赖第三方工具 目录 核心代码 说明 使用 使用JDK默认的 errorHandler 使用自定义的 errorHandler 参考文档 核心代码 import java.io.ByteArrayI ...

  6. 通过xsd校验xml文件

    <script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.sele ...

  7. java xsd_『XSD校验XML』使用java通过XSD校验XML文件

    本文简单介绍使用java语言,通过XSD文件来校验XML文件结构. XML和XSD介绍 MySQL数据迁移和项目魔法计算器都用到了XML文件,这样可以解耦出配置属性,使项目更加灵活,不用动不动就去改动 ...

  8. java实现xml的xsd验证_Java通过XML Schema校验XML

    首页 > 编程语言> 文章详细 Java通过XML Schema校验XML 2020-03-28 10:51:10阅读:77来源:互联网 Java通过XML Schema校验XML XML ...

  9. Java实现xml文件的xsd校验(schema校验)

    JDK中的javax.xml包中有能进行schema校验的类库,但只能返回true或false,无法给出确切的错误信息. Dom4j中给出了几种schema校验的思路,本文实现其中一种. Dom4j在 ...

最新文章

  1. 触类旁通,经典面试题最长公共子序列应该这么答
  2. 《此生未完成》痛句摘录(2)
  3. VS中Debug和Release版本的区别
  4. 成员函数指针与高性能的C++委托(下篇)
  5. 03-13 微信小程序自动化测试
  6. [Ext JS] Sencha Cmd命令参考之二
  7. 2022年低压电工考试及低压电工模拟考试题库
  8. MATLAB图像加密解密系统
  9. 如何在群晖系统中安装cpolar(群晖6.X版)
  10. 山特服务器硬盘480g,【02311VHS N480SSDW2SPA 480GB SATA SSD 华为服务器固态硬盘】价格_厂家 - 中国供应商...
  11. 驱动大师服务器获取信息失败,360驱动大师、鲁大师,连测硬件信息都不准,我拿什么信你们...
  12. Tinify API批处理压缩PNG和JPG(Java版本)
  13. 如何判断自己的计算机网络故障,电脑网卡坏了怎么修复 如何判断网卡是否坏了...
  14. 收藏!程序猿治愈系表白图来了!
  15. js php活动倒计时,JS活动倒计时代码
  16. 实验指南:BGP路由汇聚(下)
  17. 华为以太网链路聚合Eth-Trunk实验
  18. 马兰戈尼晶圆干燥系统
  19. Java——Web开发之MVC设计模式的学生信息管理系统(二)
  20. 吉林大学计算机专业扩招吗,我国有所“退步严重”的985大学,为了大盲目扩招,已被考生嫌弃...

热门文章

  1. IFIX所有版本的操作系统支持
  2. 阿里云PolarDB-X荣获“2022 OSCAR 尖峰开源项目及开源社区”奖
  3. 如何了解客户的购买价值观 (销售中的心理学)
  4. 心理学学习(三) 感觉阈限
  5. 《菲利普·迪克的电子梦》——阐述人类深处的困惑与迷茫
  6. win10如何关闭快速启动
  7. 数字孪生技术最新八大应用实践方向
  8. npm install:Comand failed:E\pythopython.exe ................................
  9. 基于java 工单管理_java毕业设计_springboot框架的工单管理
  10. ISTJ型人格的性格缺陷和心理问题分析