xsd校验xml工具
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工具相关推荐
- java使用xsd校验xml样例
知识点: XSD文件是指XML结构定义 ( XML Schemas Definition )文件,是DTD的替代品.可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合 ...
- java xsd校验xml文件
1.需要maven依赖,版本的话根据自己需求来定 <dependency><groupId>dom4j</groupId><artifactId>dom ...
- JBPM流程部署校验之java利用XSD校验XML
JBPM流程定义校验之java利用XSD校验XML 上篇我们学习了在.net中怎样利用XSD来验证xml,今天我们来看一下在java中怎样实现利用xsd来校验xml! /** * */ pack ...
- java xsd校验_Java使用xsd校验xml
最近项目需要使用xsd对xml进行预校验,于是封装了一个工具类,来完成校验工作. 完整代码如下: import java.io.File; import java.io.IOException; im ...
- 通过xsd校验xml
不依赖第三方工具 目录 核心代码 说明 使用 使用JDK默认的 errorHandler 使用自定义的 errorHandler 参考文档 核心代码 import java.io.ByteArrayI ...
- 通过xsd校验xml文件
<script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.sele ...
- java xsd_『XSD校验XML』使用java通过XSD校验XML文件
本文简单介绍使用java语言,通过XSD文件来校验XML文件结构. XML和XSD介绍 MySQL数据迁移和项目魔法计算器都用到了XML文件,这样可以解耦出配置属性,使项目更加灵活,不用动不动就去改动 ...
- java实现xml的xsd验证_Java通过XML Schema校验XML
首页 > 编程语言> 文章详细 Java通过XML Schema校验XML 2020-03-28 10:51:10阅读:77来源:互联网 Java通过XML Schema校验XML XML ...
- Java实现xml文件的xsd校验(schema校验)
JDK中的javax.xml包中有能进行schema校验的类库,但只能返回true或false,无法给出确切的错误信息. Dom4j中给出了几种schema校验的思路,本文实现其中一种. Dom4j在 ...
最新文章
- 触类旁通,经典面试题最长公共子序列应该这么答
- 《此生未完成》痛句摘录(2)
- VS中Debug和Release版本的区别
- 成员函数指针与高性能的C++委托(下篇)
- 03-13 微信小程序自动化测试
- [Ext JS] Sencha Cmd命令参考之二
- 2022年低压电工考试及低压电工模拟考试题库
- MATLAB图像加密解密系统
- 如何在群晖系统中安装cpolar(群晖6.X版)
- 山特服务器硬盘480g,【02311VHS N480SSDW2SPA 480GB SATA SSD 华为服务器固态硬盘】价格_厂家 - 中国供应商...
- 驱动大师服务器获取信息失败,360驱动大师、鲁大师,连测硬件信息都不准,我拿什么信你们...
- Tinify API批处理压缩PNG和JPG(Java版本)
- 如何判断自己的计算机网络故障,电脑网卡坏了怎么修复 如何判断网卡是否坏了...
- 收藏!程序猿治愈系表白图来了!
- js php活动倒计时,JS活动倒计时代码
- 实验指南:BGP路由汇聚(下)
- 华为以太网链路聚合Eth-Trunk实验
- 马兰戈尼晶圆干燥系统
- Java——Web开发之MVC设计模式的学生信息管理系统(二)
- 吉林大学计算机专业扩招吗,我国有所“退步严重”的985大学,为了大盲目扩招,已被考生嫌弃...
热门文章
- IFIX所有版本的操作系统支持
- 阿里云PolarDB-X荣获“2022 OSCAR 尖峰开源项目及开源社区”奖
- 如何了解客户的购买价值观 (销售中的心理学)
- 心理学学习(三) 感觉阈限
- 《菲利普·迪克的电子梦》——阐述人类深处的困惑与迷茫
- win10如何关闭快速启动
- 数字孪生技术最新八大应用实践方向
- npm install:Comand failed:E\pythopython.exe ................................
- 基于java 工单管理_java毕业设计_springboot框架的工单管理
- ISTJ型人格的性格缺陷和心理问题分析