gpt4 book ai didi

java - 使用 saxparser 验证本地位置的模式文件

转载 作者:行者123 更新时间:2023-12-01 15:39:37 28 4
gpt4 key购买 nike

我正在查看http://docs.oracle.com/javaee/1.4/tutorial/doc/JAXPSAX9.html

您可以通过两种方式将 xml 文件与架构关联起来:在应用程序中或在 xml 文档中。在您调用的应用程序中

saxParser.setProperty(JAXP_SCHEMA_SOURCE,
new File(schemaSource));

在 xml 中添加此

<documentRoot
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation='YourSchemaDefinition.xsd'
>

问题在于 .xsd 文件的两个位置都是 URL 字符串。我的 .xsd 文件是本地副本。有没有办法指定位置?也许作为输入流?

最佳答案

您可以直接在 SAX 解析器工厂上设置架构。

 SAXParserFactory factory = SAXParserFactory.newInstance();
SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema sc = schemafactory.newSchema(new File("path to xsd file"));
factory.setSchema(sc);

SAXParser parser = factory.newSAXParser();
parser.parse(file, handler);

xml 文件中的 xsd 位置也可以相对于 xml 文件,因此如果您的 xsd 与 xml 文件一起存在于本地,那么您当前的 xml 文件应该可以工作。

关于java - 使用 saxparser 验证本地位置的模式文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8281227/

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