我正在生成一些需要符合给我的 xsd 文件的 xml 文件。我应该如何验证它们是否符合要求?
原文由 Jeff 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在生成一些需要符合给我的 xsd 文件的 xml 文件。我应该如何验证它们是否符合要求?
原文由 Jeff 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下是使用 Xerces2 执行此操作的方法。 这里 有一个教程(需要注册)。
原始归属:公然从 这里 复制:
import org.apache.xerces.parsers.DOMParser;
import java.io.File;
import org.w3c.dom.Document;
public class SchemaTest {
public static void main (String args[]) {
File docFile = new File("memory.xml");
try {
DOMParser parser = new DOMParser();
parser.setFeature("http://xml.org/sax/features/validation", true);
parser.setProperty(
"http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",
"memory.xsd");
ErrorChecker errors = new ErrorChecker();
parser.setErrorHandler(errors);
parser.parse("memory.xml");
} catch (Exception e) {
System.out.print("Problem parsing the file.");
}
}
}
原文由 SCdF 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
Java 运行时库支持验证。上次我检查这是幕后的 Apache Xerces 解析器。您可能应该使用 javax.xml.validation.Validator 。
架构工厂常量是定义 XSD 的字符串
http://www.w3.org/2001/XMLSchema
。上面的代码针对 URLhttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
验证了 WAR 部署描述符,但您可以同样轻松地针对本地文件进行验证。您不应该使用 DOMParser 来验证文档(除非您的目标是创建文档对象模型)。这将在解析文档时开始创建 DOM 对象 - 如果您不打算使用它们,那将是一种浪费。