java eclipse xsd warnings

java - Advertencia de Bogus Eclipse para web.xml: "No se detectaron restricciones gramaticales(DTD o esquema XML) para el documento".



xsd warnings (7)

Agregue este <!DOCTYPE ...> a su archivo xml. Por favor ponlo debajo de <?xml ...> :

<!DOCTYPE ??? PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

??? = Su elemento raíz, ahora si el nombre de su subelemento utiliza una palabra reservada html, es posible que esté detectando algunos errores, todo lo que tiene que hacer es cambiarlos a una palabra no reservada.

Por ejemplo:
Si su subelemento actual es <img> , cámbielo a <pic> ...

La parte superior de mi archivo web.xml ve así:

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.5">

Pero sigo recibiendo la advertencia de Eclipse (Ganimedes) de que no se ha detectado ningún esquema XML, y no se advierten las violaciones del esquema. Otros archivos XML en mi proyecto (por ejemplo, los archivos de configuración de Spring Framework ) no tienen la advertencia y dan las advertencias correctas sobre las violaciones del esquema.

¿Cómo hago para que el esquema funcione correctamente y espero que la advertencia desaparezca? El servidor se ejecuta correctamente. Simplemente parece ser un problema IDE.


Borre la memoria caché para los archivos de validación almacenados.

Ventana> Preferencias> General> Conexiones de red> Caché y luego eliminar todo. Ahora vaya a validar el archivo y vea si eso aclara las cosas.

Esto me sucedió y limpiar el caché para la validación fue la única forma de que vuelva a funcionar correctamente. El consejo para borrar el caché sucio se encontró aquí .


Si tiene el mismo mensaje de error (erróneo) porque su Editor XML no encontró el archivo XSD, puede agregar una entrada de catálogo.

Usted elige la URL especificada para el esquema, para una declaración como

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"

La URL del archivo de esquema (http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd) se especifica para el espacio de nombres http://java.sun.com/xml/ns/j2ee . Ahora puede redirigir la ubicación del archivo con el catálogo de espacio de trabajo en Eclipse:

Preferences -> XML -> XML Catalog -> Add..

Utilizar

Key Type = Schema Location Key = http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd

Y luego puede usar el selector de archivos para elegir realmente un archivo XSD en el sistema de archivos o en el espacio de trabajo.


El problema es doble:

  1. Eclipse se envía con un escondite de muchos XSD conocidos. El espacio de nombre y / o la ubicación que proporciona no coincide con ninguno de estos.
  2. Entonces, Eclipse intenta buscar el XSD en Internet en el URI provisto (puede funcionar). Desafortunadamente, parece que después de que Oracle revisó java.sun.com, este mecanismo agota el tiempo de espera en Eclipse (aparentemente el servidor redirige a la página principal en lugar de simplemente decir "no existe, lo siento").

Cuando revise los valores correctos para Java EE 5, se encontrará la entrada en la memoria caché y Eclipse estará contento.


Tal vez intente:

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd

En lugar de:

http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd

Además, falta el <!DOCTYPE ...> :

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <!-- ... --> </web-app>


Odio esa advertencia también. Especialmente porque aparece en los archivos XML que no has escrito pero aparece en tu proyecto por cualquier razón (si usas MAVEN es un infierno).

Con Eclipse 3.5+ puede eliminar fácilmente esta regla de validación. Vaya a Preferencias -> XML -> ARCHIVOS XML -> Validación y seleccione "ignorar".

También puede tener que hacer un Proyecto -> Limpiar para que las advertencias de validación desaparezcan.


también puedes ver mi respuesta para una pregunta similar en .

Básicamente, simplemente escriba su xml para cumplir con la regla requerida