知识点:
XSD文件是指XML结构定义 ( XML Schemas Definition )文件,是DTD的替代品。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求
XML Schema的优点:
  1) XML Schema基于XML,没有专门的语法
  2) XML可以象其他XML文件一样解析和处理
  3) XML Schema支持一系列的数据类型(int、float、Boolean、date等)
  4) XML Schema提供可扩充的数据模型。
  5) XML Schema支持综合命名空间
  6) XML Schema支持属性组。

可以使用Altova XMLSpy软件打开查看消息体的定义情况,使用:DTD/模式---产生样品XML文件夹,生成样例消息体

例子:

校验工具类方法:

ValidateXML.java

package com.xml.util;

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;

/**
 * 校验xml工具类
 */
public class ValidateXML {

private ValidateXML() {

}

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;
    }
}

测试类:

TestMain.java

package com.xml.test;

import java.io.IOException;

import org.xml.sax.SAXException;

import com.xml.util.ValidateXML;

public class TestMain {

/**
     * @param args
     * @throws Exception
     * @throws SAXException
     */
    public static void main(String[] args) {

String xsdPath = "D:\\test\\TRequest.xsd";
 String xmlPath = "D:\\test\\Request.xml";

try {
     if (ValidateXML.validateXml(xsdPath, xmlPath)) {
  System.out.println("校验通过");
     }
 } catch (SAXException e) {
     System.out.println("校验失败");
     e.printStackTrace();
 } catch (IOException e) {
     System.out.println("校验失败");
     e.printStackTrace();
 }

}

}

java使用xsd校验xml样例的更多相关文章

  1. Java - 使用 XSD 校验 XML

    package com.huey.dream.utils; import java.io.IOException; import java.io.InputStream; import javax.x ...

  2. Java&Xml教程(九)Java中通过XSD校验XML合法性

    Java XML校验API能够通过XSD(XML Schema Definition)校验XML文件内容的合法性.在下面的案例中使用javax.xml.validation.Validator 类通过 ...

  3. Java&Xml教程(九)Java中通过XSD校验XML合法性

    Java XML校验API可以通过XSD(XML Schema Definition)校验XML文件内容的合法性. 在以下的案例中使用javax.xml.validation.Validator 类通 ...

  4. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) -- 样例(6)

    managed-schema 样例: <?xml version="1.0" encoding="UTF-8" ?> <!-- License ...

  5. C# XSD校验XML文件的代码

    /// <summary> /// XSD文件校验XML /// </summary> /// <returns></returns> public A ...

  6. java 状态模式 解说演示样例代码

    package org.rui.pattern; import junit.framework.*; /** * 为了使同一个方法调用能够产生不同的行为,State 模式在代理(surrogate)的 ...

  7. java 8 date time 简单样例

    参考 Java 8 Time Api 使用指南-珍藏限量版 Java 8 中处理日期和时间示例 部分样例 import java.time.temporal.TemporalAdjusters; im ...

  8. maven的pom.xml样例

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  9. pom.xml 样例

    <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven ...

随机推荐

  1. C#面向对象的三大特性

    下面是面向对象的本人解析的图片可以让你们更好的理解一下!!! 一,封装: 我们可以把世界上任何一个东西都看作为一个对象,那么我们这里以人为例,一个人就肯定是一个对象了.那么封装是什么呢?封装就是这个人 ...

  2. CBC和CTR解密模式——C++实现

    利用已经封装好的AES加密算法,实现CBC模式加密和CTR模式加密. (1)CBC解密 如图,CBC模式的解密,步骤主要有三个,首先是拿密文段逐一放到AES解密盒子里面得到一个结果temp(事先要把密 ...

  3. VG.net矢量图和矢量动画开发平台拓扑图软件免费下载

    VG.net拓扑图软件是一个基于.net平台的矢量图开发工具,可广泛应用于包括:电力.军工.煤炭.化工.科研.能源等各种监控软件.工作流设计器.电力.化工.煤炭.工控组态软件.仿真.地理信息系统.工作 ...

  4. php 无法连接mysql

    sql_connect,sqli_connect, 或new sqli() 无法建立mysql连接 1. php.ini 中 ; extension=php_mysql.dll 和 ; extensi ...

  5. vs2012 vs2010 opencv2.4.7配置

    http://blog.csdn.net/xiaohanstu/article/details/45309149?utm_source=tuicool <pre name=.7配置 .配置 () ...

  6. Word 2013发布博客配置步骤

    .打开Word 2013,点击"共享"››"博客":   .在打开的窗口中点击"管理帐户":   .然后点击"新建": ...

  7. crontabs Permission denied

    问题 jack@somemachine /data/jack $ crontab -e crontabs/jack: Permission denied 解决办法 sudo chown root:cr ...

  8. Ant——ant的使用

    ---------------------------------------------------------------------------------------------------- ...

  9. linux ssh服务器

    默认配置文件在: /etc/ssh/下 有两个需要配置的文件: ssh_config    ssh_client配置文件 sshd_config  ssh服务器的配置文件 两个文件的详细介绍和配置方法 ...

  10. vb6 调用 64位应用程序

    Option Explicit Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLi ...