校验xml的合法性

原创 2015年11月19日 10:54:17


方法一:通过DTD文件

方法二:通过XSD文件

最后选用了方法二,原因如下:

· XML Schema 可针对未来的需求进行扩展

· XML Schema 更完善,功能更强大

· XML Schema 基于 XML 编写

· XML Schema 支持数据类型

· XML Schema 支持命名空间

 

太官方的理由。我用xsd的原因是:正在做的是web service 的项目,需要接受客户端传入的xml数据,可能会出现一下情况:

1.Xml格式错误

2.结点数据类型错误

3.数据不完整,结点数据为空

DTD不能很好的解决这些问题,所以用了XSD。用了一下午的时间熟悉基本的写法,第二天直接按xml的要求编写xsd文件。过程中遇到了一个问题:

xsd中提供的时间日期类型(dateTime)是这样的:YYYY-MM-DDThh:mm:ss

而我需要的是这样的:YYYY-MM-DD hh:mm:ss,也就是把T换成空格。百度了很多资料也不知道怎么解决,最后用的正则解决,暂时可用,不知道后面会不会出问题。

代码如下:

<!-- 自定义时间日期类型 yyyy-MM-dd HH:mm:ss -->
	<xs:simpleType name="myDateTime">	
		<xs:restriction base="xs:string">
			<xs:pattern value="((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d|((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))"></xs:pattern>
		</xs:restriction>
	</xs:simpleType>


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

XML基础知识——使用schema校验XML文件合法性(四)

一、源代码如下 (1)、第一种方式 /** * 使用Schema验证XML的合法性 * * @param xmlDocument 要验证的XML文件 * @param xsdF...

XML中包含非法字符的处理方法

如果一个xml文件的两个标签之前有" 1、将" &lt; &gt; > 大于号  &amp; & 和  &apos; ' 单引号  &quot; " 双引号 以上5个是在xml...

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

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

验证框架的配置及validation.xml常用的验证规则

原文:http://www.blogjava.net/focusJ/archive/2010/11/15/367272.html validation.xml 的命名规则和放置路径: 文件...

validator-rules.xml详解

今天学习了struts中的验证框架验证,Validator框架采用两基于xml的配置文件来配置验证规则,这两个文件为validator-rules.xml和validator.xml,在struts应...

“菜鸟”程序员和“大神”程序员差距在哪里

“菜鸟”和“大神” 刚刚走出就业的程序员,技术是刚刚起步的基点。那下面我们就聊一聊有关技术的东西。首先请您先想想这几个问题。现在社会上有很多程序员,CSDN就是我们程序员的家,那您是否可想过程序员为...

javascript前端XML格式正确性验证方法

一、原理: 鉴于最近要做一个前端xml的数据验证,查找了一些资料,并且自我做了一些总结,写了一个简单的xml字符串验证函数,其实现的过程主要是通过用xml解析器去解析xml字符串,如果解析错误,会报...

XML解释及验证机制

XML基础及DTD与scheme校验机制
  • zane3
  • zane3
  • 2017-03-18 13:15
  • 569
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)