gpt4 book ai didi

java - 在java中验证xml w.r.t XSD

转载 作者:行者123 更新时间:2023-12-01 14:43:12 25 4
gpt4 key购买 nike

我正在尝试验证使用 xsd 格式的架构生成的 xml 文件。问题是我是否需要传递架构的 url 或架构在我的系统上的位置?同样,我们是否需要传递xml文件的内容或其位置?

下面是我正在使用的代码片段 -

public void validateDTFAgainstXSD()
{
String inputxml = "C:/Users/file.xml";
String schemaLocation = "https://github.abcd/schema.xsd";
try
{
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
File schemaFile = new File(schemaLocation);
Schema schema = factory.newSchema(schemaFile);
javax.xml.validation.Validator validator = schema.newValidator();

Source source = new StreamSource(new StringReader(inputxml));
validator.validate(source);
System.out.println("File validated");
}
catch(Exception ex)
{
System.out.println("File not validated");
}
}

最佳答案

newSchema() 重载采用 File 对象或 Source 对象。您正在传递一个文件,这很好。

Validator.validate() 方法需要一个 Source。如果您有文件名,则可以使用 new StreamSource(new File(filename)) 构造一个 Source。您这样做的方式是错误的:它假定您在 StringReader 中包装的字符串包含要验证的 XML,而不是包含 XML 的文件的名称。

关于java - 在java中验证xml w.r.t XSD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15731395/

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