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-сущность? &uuml; - это 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.