0

我正在使用读取我的 XML 的 JDOM 解析器,它包括使用 xsd 模式的验证。

通常,为了将 xsd 的路径设置为解析器的语法,根据文档是-

        SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);
        builder.setFeature("http://apache.org/xml/features/validation/schema", true);
        builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", <schema_path>);

它可以通过将schema_path设置为以 http: 开头的 url 或绝对路径(即 c:/myFolder/schema.xsd)
我的问题 - 我如何使用位于我的 web 应用程序和路径的 xsd它会在 Web 根目录下的某个地方吗?是否可以提供 JDOM 构建器的相对路径?

能够回答这个问题的人也可能有助于解决我在使用 xsd 时遇到的另一个问题:
在这个线程中

4

1 回答 1

0

您不能提供相对路径作为字符串参数。

要获取 WEB-INF 文件夹的真实路径,请尝试

getServletContext().getRealPath("/WEB-INF")

要获得 WEB-INF/my.xsd 的真实路径,请使用

getServletContext().getRealPath("/WEB-INF/my.xsd")

getRealPath方法将返回服务器文件系统上的绝对文件路径。

如果您将架构添加为 jar 资源,请阅读.

于 2010-12-29T01:10:49.280 回答