gpt4 book ai didi

java - 在 Java 中根据 Xml 模式数据类型验证字符串

转载 作者:数据小太阳 更新时间:2023-10-29 02:41:21 26 4
gpt4 key购买 nike

是否有一种标准方法可以根据任何标准 xml 模式数据类型验证字符串(请参阅 XML Schema Part 2: Datatypes Second Edition 或更具体地说 Built-in-datatypes)?

我不想验证一个完整的 XSD,我只想验证一些针对 XML 数据类型的用户输入(例如针对 http://www.w3.org/2001/XMLSchema#datehttp://www.w3.org/2001/XMLSchema#boolean )。有没有办法使用标准 API 来做到这一点?如果不是,是否有其他可能性而不是从头开始编写?

包 javax.xml.validation 中的类似乎旨在验证完整的模式而不是特定的数据类型。

我正在尝试做的事情的例子:

String content = "abc";
String datatype = "http://www.w3.org/2001/XMLSchema#long";
boolean isValid = Validator.isValid(content, datatype); //return false

最佳答案

不是标准 API,但 Xerces 有一个 XML Scheam API这可能很有趣。在 Xerces 中,您还可以找到使您能够执行此操作的数据类型 validator :

import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
import org.apache.xerces.impl.dv.xs.YearDV;

public class Main {

public static void main(String[] args) {
try {
new YearDV().getActualValue("Notayear", null);
System.out.println("OK");
} catch (InvalidDatatypeValueException e) {
System.out.println(e.getMessage());
}
}

会打印

cvc-datatype-valid.1.2.1: 'Notayear' is not a valid value for 'gYear'.

从那里拿走它。有很多代码需要阅读!

关于java - 在 Java 中根据 Xml 模式数据类型验证字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15765180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com