通过xsd校验xml文件
< birthdate >
< month > January </ month >
< day > 21 </ day >
< year > 1983 </ year >
< name > aaa </ name >
</ birthdate >
对应的XSD文件为:
< xs:schema xmlns:xs ="http://www.w3.org/2001/XMLSchema" >
< xs:element name ="birthdate" >
< xs:complexType >
< xs:sequence >
< xs:element name ="month" type ="xs:string" />
< xs:element name ="day" type ="xs:int" />
< xs:element name ="year" type ="xs:int" />
< xs:any minOccurs ="0" />
</ xs:sequence >
</ xs:complexType >
</ xs:element >
</ xs:schema >
我写的java程序为:
public static void main(String[] args)
throws SAXException, IOException, ParserConfigurationException ...{
SchemaFactory factory
= SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
File schemaLocation = new File("D:/tmp/test.xsd");
File xmlFile = new File("D:/tmp/test.xml");
Schema schema = factory.newSchema(schemaLocation);
Validator validator = schema.newValidator();
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
DOMSource source = new DOMSource(doc);
DOMResult result = new DOMResult();
try ...{
validator.validate(source, result);
Document augmented = (Document) result.getNode();
}
catch (SAXException ex) ...{
System.out.println(ex.getMessage());
}
}
}
在执行的时候,总是提示:cvc-complex-type.2.4.c:严格输入了匹配通配符,但还是找不到元素“name”的声明。
但是我在XSD中,已经声明了一个 <xs:any minOccurs="0"/>的任意类型,支持扩展,但是确总是不正确.
< xs:schema xmlns:xs ="http://www.w3.org/2001/XMLSchema" >
< xs:include schemaLocation ="D:/tmp/name.xsd" />
< xs:element name ="birthdate" >
< xs:complexType >
< xs:sequence >
< xs:element name ="month" type ="xs:string" />
< xs:element name ="day" type ="xs:int" />
< xs:element name ="year" type ="xs:int" />
< xs:any minOccurs ="0" />
</ xs:sequence >
</ xs:complexType >
</ xs:element >
</ xs:schema >
< xs:schema xmlns:xs ="http://www.w3.org/2001/XMLSchema" >
< xs:element name ="name" type ="xs:string" />
</ xs:schema >
通过xsd校验xml文件相关推荐
- java xsd校验xml文件
1.需要maven依赖,版本的话根据自己需求来定 <dependency><groupId>dom4j</groupId><artifactId>dom ...
- java xsd_『XSD校验XML』使用java通过XSD校验XML文件
本文简单介绍使用java语言,通过XSD文件来校验XML文件结构. XML和XSD介绍 MySQL数据迁移和项目魔法计算器都用到了XML文件,这样可以解耦出配置属性,使项目更加灵活,不用动不动就去改动 ...
- JBPM流程部署校验之java利用XSD校验XML
JBPM流程定义校验之java利用XSD校验XML 上篇我们学习了在.net中怎样利用XSD来验证xml,今天我们来看一下在java中怎样实现利用xsd来校验xml! /** * */ pack ...
- xsd校验xml工具
xml校验工具 xml校验工具,用于校验xml报文是否符合xsd规范 在线网站也可以校验 https://www.xmlvalidation.com/ 源码及工具下载地址 https://downlo ...
- java使用xsd校验xml样例
知识点: XSD文件是指XML结构定义 ( XML Schemas Definition )文件,是DTD的替代品.可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合 ...
- 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 ...
- XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML
XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...
- java xsd 解析 xml文件_xsd解析xml
下面讲述根据xml生成对应序列化反序列化类的过程,xml需要首先转化为xsd,然后再生成为实体类.其中,XSD是XML Schema Definition的缩写. 1.拥有一个xml文件 2.打开vs ...
最新文章
- hive export import
- python面试-Python面试中常见的3个问题
- overfitting
- RS-232交叉串口线的做法与测试.doc
- 强烈推荐:程序员必备的两个超级工具,一个是百宝箱,一个是百宝库
- linux进程---exec族函数(execl, execlp, execv, execvp, )解释和配合fork的使用
- 在Linux下快速搭建LAMP开发平台.doc
- mysql索引的类型和查看、添加、修改、删除索引的方法介绍
- Python面试题之下面代码会输出什么
- 老公想入手一块10万左右的手表有哪些推荐?
- 通知模式实现两个textField传值及模态视图——iOS开发
- 按平均成绩排行c语言文件操作,学生成绩管理系统(c语言结构体以及文件操作)实验报告精选.doc...
- 机器人把大龙拉出来_英雄联盟之我的电竞梦
- Visual Studio 2017各版本安装包离线下载、安装全解析
- ## 2019-8-30 光滑粒子流体力学开源软件(Dual)sphysics使用中遇到的一些问题1
- 新中大怎么修改服务器,新中大软件服务器地址修改
- txt 文本文件替换快捷键
- wamp mysql_wamp中如何打开mysql
- 【离散数学】编程练习:求偏序集中的极大元与极小元
- 页面中的黑白滤镜css3,filter属性