xsd验证xml的有效性出现类型无效的问题

问题描述

这是我的xsd:<?xmlversion="1.0"encoding="utf-8"?><xsd:schemaattributeFormDefault="unqualified"elementFormDefault="qualified"version="1.0"xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:elementname="MailStsDataSet"><xsd:complexType><xsd:sequence><xsd:elementmaxOccurs="unbounded"name="Mail_Cus_Sts"><xsd:complexType><xsd:sequence><xsd:elementname="ACT_TIME"type="xsd:dateTime"/><xsd:elementname="ACT_STATION"type="xsd:string"/><xsd:elementname="ACT"type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element></xsd:sequence></xsd:complexType></xsd:element></xsd:schema>这是我的xml:<?xmlversion="1.0"encoding="utf-8"?><MailStsDataSet><Mail_Cus_Sts><ACT_TIME>2014-07-2012:36:00</ACT_TIME><ACT_STATION>扬州速物邗江中路揽投部</ACT_STATION><ACT>收寄</ACT></Mail_Cus_Sts><Mail_Cus_Sts><ACT_TIME>2014-07-2017:42:55</ACT_TIME><ACT_STATION>扬州速物邗江中路揽投部</ACT_STATION><ACT>离开处理中心,发往扬州站点</ACT></Mail_Cus_Sts><Mail_Cus_Sts><ACT_TIME>2014-07-2106:45:35</ACT_TIME><ACT_STATION>扬州站点</ACT_STATION><ACT>离开处理中心,发往扬州速物广陵揽投部</ACT></Mail_Cus_Sts><Mail_Cus_Sts><ACT_TIME>2014-07-2108:24:00</ACT_TIME><ACT_STATION>扬州速物广陵揽投部</ACT_STATION><ACT>安排投递</ACT></Mail_Cus_Sts><Mail_Cus_Sts><ACT_TIME>2014-07-2108:25:54</ACT_TIME><ACT_STATION>扬州速物广陵揽投部</ACT_STATION><ACT>到达处理中心,来自扬州站点</ACT></Mail_Cus_Sts><Mail_Cus_Sts><ACT_TIME>2014-07-2110:44:00</ACT_TIME><ACT_STATION>扬州速物广陵揽投部</ACT_STATION><ACT>投递并签收</ACT></Mail_Cus_Sts></MailStsDataSet>这是我的验证代码:publicstaticvoidmain(String[]args){StringschemaLanguage=XMLConstants.W3C_XML_SCHEMA_NS_URI;SchemaFactoryschemaFactory=SchemaFactory.newInstance(schemaLanguage);Schemaschema=null;try{schema=schemaFactory.newSchema(newFile("D:\workspace\bh-connector\bh-connector-es\xsd\ems.xsd"));}catch(SAXExceptione){e.printStackTrace();}//unmarshaller.setSchema(schema);Validatorvalidator=schema.newValidator();InputSourceinputSource=null;try{inputSource=newInputSource(newFileInputStream(newFile("D:\workspace\bh-connector\bh-connector-es\xsd\ems.xml")));}catch(FileNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}Sourcesource=newSAXSource(inputSource);try{validator.validate(source);}catch(SAXExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}System.out.println("success");}这是的错误代码:org.xml.sax.SAXParseException:cvc-datatype-valid.1.2.1:'2014-07-2012:36:00'isnotavalidvaluefor'date'.atcom.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)atcom.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)atcom.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)atcom.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:417)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3181)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidType(XMLSchemaValidator.java:3096)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processElementContent(XMLSchemaValidator.java:3006)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleEndElement(XMLSchemaValidator.java:2149)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(XMLSchemaValidator.java:817)atcom.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.endElement(ValidatorHandlerImpl.java:563)atorg.apache.xerces.parsers.AbstractSAXParser.endElement(UnknownSource)atorg.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(UnknownSource)atorg.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(UnknownSource)atorg.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(UnknownSource)atorg.apache.xerces.parsers.XML11Configuration.parse(UnknownSource)atorg.apache.xerces.parsers.XML11Configuration.parse(UnknownSource)atorg.apache.xerces.parsers.XMLParser.parse(UnknownSource)atorg.apache.xerces.parsers.AbstractSAXParser.parse(UnknownSource)atcom.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.validate(ValidatorHandlerImpl.java:697)atcom.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:97)atjavax.xml.validation.Validator.validate(Validator.java:127)atcn.baozun.bh.connector.sf.manager.TestLogisticsRouteQuery.main(TestLogisticsRouteQuery.java:167)success求大神赐教

解决方案

解决方案二:
org.xml.sax.SAXParseException:cvc-datatype-valid.1.2.1:'2014-07-2012:36:00'isnotavalidvaluefor'dateTime'.atcom.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)atcom.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)atcom.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)atcom.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:417)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3181)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidType(XMLSchemaValidator.java:3096)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processElementContent(XMLSchemaValidator.java:3006)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleEndElement(XMLSchemaValidator.java:2149)atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(XMLSchemaValidator.java:817)atcom.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.endElement(ValidatorHandlerImpl.java:563)atorg.apache.xerces.parsers.AbstractSAXParser.endElement(UnknownSource)atorg.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(UnknownSource)atorg.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(UnknownSource)atorg.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(UnknownSource)atorg.apache.xerces.parsers.XML11Configuration.parse(UnknownSource)atorg.apache.xerces.parsers.XML11Configuration.parse(UnknownSource)atorg.apache.xerces.parsers.XMLParser.parse(UnknownSource)atorg.apache.xerces.parsers.AbstractSAXParser.parse(UnknownSource)atcom.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.validate(ValidatorHandlerImpl.java:697)atcom.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:97)atjavax.xml.validation.Validator.validate(Validator.java:127)atcn.baozun.bh.connector.sf.manager.TestLogisticsRouteQuery.main(TestLogisticsRouteQuery.java:167)success

时间: 2024-12-21 21:31:46

xsd验证xml的有效性出现类型无效的问题的相关文章

使用架构(XSD)验证XML文件

假使说XML是一个数据库,那么XSD就是这个数据库的结构.由此可见,XSD是如此重要,如果没有它,我们如何声明以及验证我们需要的XML数据文件的格式和合法性呢?那是不可能完成的任务,如果你将XML数据文件当作普通的文本文件去验证的话. 我用下面一个例子来解释如何定义XSD以及如何使用它来验证 1. 首先来看一下我们的数据文件 <?xml version="1.0" encoding="utf-8" ?> <Order> <OrderID

xsd schema xml-xsd schema 验证 xml 同名元素 不同样式问题?

问题描述 xsd schema 验证 xml 同名元素 不同样式问题? xsd 验证 xml时,假如一个节点有不同的样式,并且想严格 控制 如:xs:schemaxs:complexType ....... 这里面的元素个数是不一样的,所以想让是可 选择的,但是name是一样的. /xs:b /xs:element/xs:complexType 请问怎么解决?

解决web-app_2_4.xsd验证web.xml时报j2ee_web_services_client_1_1.xsd找不到的问题

解决web-app_2_4.xsd验证web.xml时报j2ee_web_services_client_1_1.xsd找不到的问题 web.xml 代码 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www

怎样使用XSL和正则表达式来验证数据的有效性(一)

数据|正则 系列之十七:如何使用XSL和正则表达式来验证数据的有效性XSL现在正在逐渐的成为XML中的类似与SQL在数据库设计中的地位.虽然Microsoft's XSL仅仅是实现了其中的某一些部分的功能但是你已经能够实现非常复杂的查询了虽然现在的XSL仅仅还只是一种基于纯粹文本和字符串方式的查询语言在下面介绍的例子中,将大量使用到文本内的字符串方式的搜索,你会发现在XML中对数据的处理很大一部分都是要使用到文本内的查询的.这在XSL的编写中是一件非常普及的功能.正是因为这样,你应该了解一些正则

XML入门教程:验证XML是合法的XML

xml|教程|入门教程 拥有正确语法的XML是构成良好的XML. 通过某种DTD进行了验证的XML是合法的XML. 构成良好的XML文档 一个"构成良好"的XML文档拥有正确的语法. 一个"W构成良好"的XML文档会遵守前几章介绍过的XML语法规则: XML文档必须有根元素 XML文档必须有关闭标签 XML标签对大小写敏感 XML元素必须被正确的嵌套 XML属性必须加引号 <?xml version="1.0" encoding="

php验证时间的有效性

php验证日期的有效性有内置函数,即checkdate函数,下面分享一下checkdate函数的定义和用法. checkdate 定义和用法 checkdate() 函数验证一个格里高里日期.如果指定的值合法,则该函数返回 true,否则返回 false. 日期在下列情况下为合法: month 介于且包括 1 - 12 Day 的值在给定的 month 所应该具有的天数范围之内,闰年已经考虑进去了.   year 介于且包括 1 到 32767 checkdate 语法 checkdate(mo

jQuery简单验证上传文件大小及类型的方法_jquery

本文实例讲述了jQuery简单验证上传文件大小及类型的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="jquery1.8/jquery-1.8.0.js" type="

js验证身份证号有效性并提示对应信息_javascript技巧

直接上代码,逐行对代码进行研究,一定会有所收获. function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号"){ $("#span_username").show(); $("#span_username").html("身份证号不能为空"); return false; } //校验长度,类型 else if(isCardNo(allowanc

CS0118: “System.Xml.Schema.ValidationEventHandler”是“类型”,但此处被当做“变量”来使用

问题描述 我把System.Data.SqlServerCe.dll放在项目中的BIN文件夹下时但不能引用System.Data.SqlServerCe,还有其它的方法吗?--------------------第二个问题--------------------------编译器错误信息:CS0118:"System.Xml.Schema.ValidationEventHandler"是"类型",但此处被当做"变量"来使用源错误:行35:File