Web-app_2_5.xsd показывает ошибки при проверке web.xml в eclipse
Я понятия не имею, что я мог сделать, потому что мое время, потраченное на программирование, растянулось, и я уже забыл, что я мог сделать. Но теперь, когда я загружаю Eclipse, он говорит:
The errors below were detected when validating the file "web-app_2_5.xsd" via the file "web.xml". In most cases these errors can be detected by validating "web-app_2_5.xsd" directly. However it is possible that errors will only occur when web-app_2_5.xsd is validated in the context of web.xml.
s4s-elt-character: Non-whitespace characters are not allowed in schema elements other than 'xs:appinfo' and 'xs:documentation'. Saw 'JDK 6 XML-related APIs'.
The entity name must immediately follow the '&' in the entity reference.
Мои первые несколько строк в web.xml выглядят так.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
Я читал, что это может быть ошибка с сервером, на котором извлекается файл, или с кешированием. Я отключил и очистил кеш, и насколько я могу сказать, сервер тот же, что и все остальные, если они не переключились на uraca oracle.com, и я еще не нашел его.
Любые мысли будут высоко оценены.
Ответы
Ответ 1
См. http://www.reddit.com/r/programming/comments/f9sxu. Проблема снова в Oracle.
Я не могу развернуть на SGES 2.1.1 с подключением к Интернету. Когда я отключил его, развертывание было медленным, но успешным. Кажется, валидатор пытается обновить кэшированные схемы и загрузить их из URL-адресов схемы.
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
GET /xml/ns/javaee/web-app_2_5.xsd ...
HTTP/1.1 301 Moved Permanently to Location:
http://download.oracle.com/javase/6/docs/technotes/guides/xml/index.html
Но такой схемы нет!
Я постараюсь найти какое-то хорошее решение, но лучше всего, возможно, набить кого-то в Oracle...
EDIT: в это время исправлено (27.1.2010, 20:00 CET), Oracle возвращает схему - вы можете проверить ее с помощью wget. Браузеры перенаправляются в документы. Ницца: -)
Ответ 2
Эндрю, я боюсь, что ваше пространство имен неверно. Я думаю, что версия 2.5 должна находиться под javaee namespace (JDK, Java 1.5 и 1.6), а не j2ee (J2SDK, Java 1.4).
Итак, замените
http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd
с
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
Ответ 3
Пожалуйста, взгляните на ваш web.xml
Существуют ли какие-либо "&" -знаки, за которыми не следует известная XML-сущность? ü
- это HTML-объекты, а не XML-Entites.
Ответ 4
или написать собственный распознаватель сущности, который будет искать эти объекты локально
в случае, например, спящего режима, достаточно правильно указать расположение схемы:
выдержка из спящего режима DTDEntityResolver
private static final String USER_NAMESPACE = "classpath://";
...
public InputSource resolveEntity(String publicId, String systemId) {
...
else if ( systemId.startsWith( USER_NAMESPACE ) ) {
...
в случае eclipse вы можете указать локальный xsd в: Предпочтения → XML → Каталог XML.