java - 用于验证内置 XSD 类型的正则表达式或库?

标签 java xml regex xsd

XML Schema 规范定义了许多内置数据类型 http://www.w3.org/TR/xmlschema-2/#built-in-datatypes是否有 Java 库可以回答有关天气的问题,值是特定的数据类型。沿线的东西。

if(XSDValidator.isXSDDate("2012-06-12") == false) { 
    // return error 
}

更新: 这个用例不在 XML 的上下文中,而是在我有一个字符串的情况下,我想要符合其中一种 XSD 类型,并且我想要一种标准方法来检查它是否符合。例如,字符串可以是我从传入的 JSON 请求、URL 或任何其他地方提取的值……等等。

最佳答案

以下是 JDK/JRE 中您可能会使用的一些可用类:

javax.xml.datatype.XMLGregorianCalendar

对于日期/时间类型,您可以使用 javax.xml.datatype.XMLGregorianCalendar,自 Java SE 5 以来,它作为 JDK/JRE 的一部分包含在内。

DatatypeFactory df = DatatypeFactory.newInstance();
XMLGregorianCalendar xgc = df.newXMLGregorianCalendar("2012-06-18");
return DatatypeConstants.DATE.equals(xgc.getXMLSchemaType());

javax.xml.bind.DatatypeConveter

还有 javax.xml.bind.DatatypeConveter 会针对错误值抛出 IllegalArgumentException:

DatatypeConverter.parseDate("2012-06-18");

关于java - 用于验证内置 XSD 类型的正则表达式或库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12462072/

相关文章:

java - 通过比较 ZonedDateTime 类型的内部字段,使用 lambda 对 beans 进行排序

java - 新行和浏览器/操作系统兼容性

java - 查找可能的 ServerSocket 列表

xml - Powershell和Lotus Notes-将While循环的输出从文本更改为XML输出

android - 存储一些大文本时哪个更好 : strings in XML resource file or a java Strings in a class

PHP SoapServer - 节点中的属性

php - 另一个棘手的 preg_match

java - Android 使用 Volley 从 HTTP 请求中获取响应

C# 正则表达式用于查找文本中的特定模式

带有 "Joker"字符的 Java 正则表达式