xsd校验xml字符串时,xsd文件中配置的date,dateTime类型字段多线程高并发时报错

tower888 2016-04-23 03:13:39
java使用xsd校验xml字符串时,xsd文件中配置的date,dateTime类型字段多线程高并发时报错:
cvc-type.3.1.3: The value '1990-10-01' of element 'birthday' is not valid.
The value '2050-12-31T00:00:00' of element 'closedate' is not valid.
请问这个怎么解决啊?

xsd文件中的配置:
<xsd:element name="birthday" type="xsd:date" minOccurs="0"/>
<xsd:element name="closedate" type="xsd:dateTime" minOccurs ="0"/>


校验代码:
public boolean validate(String schema, String xml) {
InputStream is = null;
try {
log.info(xml);
SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);
// 指定约束方式为XML schema
builder.setFeature("http://apache.org/xml/features/validation/schema", true);
// 导入schema文件
builder.setProperty(
"http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",
schema);
is = getSource(xml);
builder.build(is);

} catch (Exception e) {
log.error("验证失败:", e);
String info = "fail:" + e.getMessage();
ds.addErrMsg("[20]数据校验不通过:" + info);
return false;
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
log.error("", e);
}
}
}
return true;
}
...全文
233 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧