Как использовать схему xsd с путем в моем веб-приложении - PullRequest
0 голосов
/ 20 сентября 2010

Я использую синтаксический анализатор JDOM, который читает мой XML, и он включает проверку с использованием схемы xsd.

как правило, для того, чтобы установить путь синтаксиса синтаксиса для синтаксического анализатора xsd в соответствии с документацией is-

        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 либо URL-адрес, начинающийся с http: либо абсолютный путь (например, c: /myFolder/schema.xsd)
Мой вопрос - какя могу использовать xsd, который находится внутри моего веб-приложения, и путь к нему будет где-то ниже корневого веб-каталога?Можно ли указать относительный путь к сборщику JDOM?

Люди, способные ответить на этот вопрос, могут также помочь в решении другой проблемы, с которой я столкнулся при использовании xsd:
в этой теме здесь

1 Ответ

0 голосов
/ 29 декабря 2010

Вы не можете указать относительный путь в качестве аргумента String.

Чтобы получить реальный путь к папке WEB-INF, попробуйте

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

Чтобы получить реальный путь к WEB-INF / my.xsd, используйте метод

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

getRealPath, который вернет абсолютный путь к файлу в файловой системе сервера.

Если вы добавили свою схему в качестве jar-ресурсов, прочитайте this .

...