xml 转换 xsd 参考
http://51876.iteye.com/blog/1972405
下面是根据转换后的xsd 使用java代码验证xml的合法性
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
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 XmlValidator {
public final static String SCHEMA_LANGUAGE = "http://www.w3.org/2001/XMLSchema";
/**
* @param xmlStr
* @param xsdStr
* @return XmlValidateResult 通过Schema验证指定的xml字符串是否符合结构
*/
public static ReturnBean validateByXsd(String xmlStr, String xsdStr) {
// 查找支持指定模式语言的 SchemaFactory 的实现并返回它
SchemaFactory factory = SchemaFactory
.newInstance(XmlValidator.SCHEMA_LANGUAGE);
// 包装待验证的xml字符串为Reader
Reader xmlReader = new BufferedReader(new StringReader(xmlStr));
// 保障Schema xsd字符串为Reader
Reader xsdReader = new BufferedReader(new StringReader(xsdStr));
// 创建返回值类,默认为失败
ReturnBean vs = new ReturnBean();
try {
// 构造Schema Source
Source xsdSource = new StreamSource(xsdReader);
// 解析作为模式的指定源并以模式形式返回它
Schema schema = factory.newSchema(xsdSource);
// 根据Schema检查xml文档的处理器,创建此 Schema 的新 Validator
Validator validator = schema.newValidator();
// 构造待验证xml Source
Source xmlSource = new StreamSource(xmlReader);
// 执行验证
validator.validate(xmlSource);
// 设置验证通过
vs.setResult(ReturnUtil.ReturnTrue);
return vs;
} catch (SAXException ex) {
// 设置验证失败
vs.setResult(ReturnUtil.ReturnFalse);
// 设置验证失败信息
vs.setDescription(ex.getMessage());
return vs;
} catch (IOException e) {
// 设置验证失败
vs.setResult(ReturnUtil.ReturnFalse);
// 设置验证失败信息
vs.setDescription(e.getMessage());
return vs;
}
}
/**
* @param args0
* @throws IOException
*/
public static void main(String[] args0) throws IOException {
File xml = new File("F:/mail.xml");
File xsd = new File("F:/mail.xsd");
BufferedReader xmlBuff = new BufferedReader(new FileReader(xml));
BufferedReader xsdBuff = new BufferedReader(new FileReader(xsd));
StringBuffer xmlStr = new StringBuffer();
String line = null;
while ((line = xmlBuff.readLine()) != null) {
xmlStr.append(line);
xmlStr.append("\n");
}
xmlBuff.close();
StringBuffer xsdStr = new StringBuffer();
line = null;
while ((line = xsdBuff.readLine()) != null) {
xsdStr.append(line);
}
xsdBuff.close();
ReturnBean vs = XmlValidator.validateByXsd(xmlStr.toString(),
xsdStr.toString());
if (ReturnUtil.ReturnTrue.equals(vs.getResult())) {
System.out.println("验证成功!");
} else {
System.out.println("验证失败!");
System.out.println("失败原因:" + vs.getDescription());
// System.out.println("验证xml:\n" + xmlStr.toString());
}
}
}
相关推荐
它是XML文档验证的重要工具,确保XML文档遵循预定义的规则。 5. **emf-sdo-xsd-SDK-2.3.2**: 这个插件集成了EMF对SDO的支持,并提供了XSD的处理能力。它使得开发者可以利用EMF的模型驱动开发能力,处理基于SDO的...
XML用于结构化数据的存储和传输,而XSD则为XML文档提供了语义验证的规则。本教程将详细介绍如何在Java环境中生成XML和XSD文件。 XML是一种标记语言,它允许我们在文档中定义元素、属性和结构。这些元素和属性描述了...
XML验证器(XSD验证XML)是指一种工具或程序,它能够检查XML文档是否符合预先定义的XSD模式。这个附带Delphi7源码的XML验证器,是为了解决在Delphi开发环境中对XML数据进行验证的需求。Delphi是一种流行的面向对象的...
本篇文章将深入探讨如何使用Java中的SAXParser和SAXParserFactory类来验证XML文件是否符合指定的XSD规范。 首先,`SAXParserFactory.newInstance()` 是Java API中用于创建SAXParser实例的方法,它是`javax.xml....
将XML文件转换为XSD文件,主要是为了更好地管理和验证XML文档的结构,确保数据的一致性和准确性,同时也便于生成对应的Java类,以进行程序开发。 在Java开发中,经常需要处理XML数据。有了XSD文件,开发者可以使用...
2. **验证XML文档**:通过编译的XSD模型,可以验证XML文档是否符合定义的模式,确保数据的有效性。 3. **类型转换**:XML Schema定义了丰富的数据类型,库提供了将XML数据转换为Java对象,以及反之的功能。 4. **...
标题中的“纯Java(swing)写的xsd验证xml”是指使用Java编程语言,结合Swing图形用户界面库,开发的一个工具,用于验证XML文档是否符合指定的XSD(XML Schema Definition)规范。XML Schema是W3C推荐的一种XML文档...
XSD在EMF中扮演着重要的角色,因为它允许EMF解析和验证XML数据,确保符合预定义的模式。 【压缩包子文件的文件名称列表】: 1. content.jar - 这通常包含的是插件或应用的主要内容,可能包括EMF和XSD处理的类和其他...
这些XML配置文件依赖于特定的XSD(XML Schema Definition)文件来提供语法验证和代码编辑器的自动提示功能。在给定的压缩包中,包含了`spring-beans-3.0.xsd`、`spring-context-3.0.xsd`、`spring-aop-3.0.xsd`和`...
附件是我写的一个demo程序,该程序的功能是根据一个定义好的XSD文件去检查指定的XML文件是否满足XSD的约束。 这里的约束比标准的约束要弱一些,比如:这里的约束不限制元素出现的顺序,只关心有没有这个元素。 我...
通过“Java操作XML编程实例解析.doc”文档,你将能够看到如何在实际项目中应用上述技术,包括创建、读取、修改和验证XML文档,以及如何利用XML进行数据交换。每个示例都将帮助你巩固理论知识,并提升实际编程技能。...
它提供了验证XML文档是否符合特定规范的机制,确保数据的一致性和完整性。 3. **XSD到Java映射**:Castor 1.4版本提供了一种机制,可以将XSD文件解析并生成对应的Java类。这大大简化了处理XML数据的过程,因为...
XSD架构验证器 (XSD)模式验证器,使用执行实际验证。 先决条件 在后台,该实用程序使用Java进行实际验证。 它假定javac和java在路径上。 如果存在JAVA_HOME环境变量,它将使用它来定位已安装的JDK。 在某些...
在Java开发中,JAXB提供了一种方便的方式,允许开发者通过XML Schema (XSD) 文件来生成对应的Java类,从而简化XML处理的工作流程。 1. **XML Schema (XSD) 文件**: - XML Schema是一种W3C标准,用于定义XML文档的...
二、XML文档结构 1. 文档类型声明(DOCTYPE):可选部分,用于指定XML文档遵循的DTD(Document Type Definition)或XSD(XML Schema Definition)。 2. XML声明:必需部分,如`<?xml version="1.0" encoding="UTF-8...
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> </web-app> ``` 这里的`xmlns`和`xsi`属性定义了XML Schema的实例位置和版本,确保了`web.xml`的结构符合Sun Microsystems...
- DTD(Document Type Definition)或XSD(XML Schema Definition):用于定义XML文档的结构和约束。 2. JSP(JavaServer Pages): - JSP基础:JSP是Java的一种动态网页技术,可以将HTML、CSS、JavaScript与Java...
`Validator` 对象则可以用来验证XML文档是否符合该Schema。`XmlSchema-1.4.6.jar` 库可能包含了更高级的功能,如更高效的数据类型映射、错误处理以及对复杂XML Schema的支持。 开发Web服务客户端时,理解XML Schema...
`spring-aop-3.0.xsd` 是 Spring AOP 的 XML 配置文件,定义了与 AOP 相关的元素和属性。例如,你可以在这里定义切入点(pointcut)、通知(advises)以及代理配置。将此文件添加到 Eclipse 的 XML 目录(catalog)...