Avertissement D'éclipse bidon pour web.xml: "Pas de contraintes de la grammaire (DTD ou schéma XML) a été détectée pour le document."

le haut de mon fichier web.xml ressemble à ceci:

<?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">

mais je reçois toujours L'avertissement D'Eclipse (Ganymède) qu'aucun Schéma XML n'est détecté, et les violations de schéma ne sont pas mises en garde. D'autres fichiers XML dans mon projet ( Spring Framework fichiers de configuration par exemple) n'ont pas l'avertissement et donnent des avertissements corrects sur les violations du schéma.

Comment faire pour que la vérification du schéma fonctionne et espérons que l'avertissement à s'en aller? Le serveur tourne correctement. Il semble simplement être une IDE problème.

34
demandé sur Peter Mortensen 2008-11-27 00:04:12

7 réponses

peut-être essayer:

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

au lieu de:

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

aussi, le <!DOCTYPE ...> est manquant:

<?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>
26
répondu toolkit 2015-03-20 22:31:48

je déteste cet avertissement aussi. Spécialement parce qu'il apparaît dans les fichiers XML que vous n'avez pas écrit mais apparaissent dans votre projet pour une raison quelconque (si vous utilisez MAVEN c'est l'enfer).

avec Eclipse 3.5+ vous pouvez facilement supprimer cette règle de validation. Allez à préférences -- > XML-- > fichiers XML -- > Validation et sélectionnez "Ignorer".

vous pourriez aussi avoir à faire un Project -> Clean pour que les avertissements de validation s'en aillent.

alt text

46
répondu monzonj 2017-02-08 14:21:37

effacer le cache pour les fichiers de validation stockés.

Fenêtre > Préférences > Général > Connexions Réseau > Cache puis supprimez tous. Maintenant, va valider le fichier et vois si ça clarifie les choses.

cela m'est arrivé et vider le cache pour la validation était le seul moyen de le faire fonctionner correctement à nouveau. Le conseil pour nettoyer la cache sale a été trouvé ici .

9
répondu Tiris 2011-09-17 03:53:39

si vous avez le même message d'erreur ("missleading") parce que votre éditeur XML ne trouvait pas le fichier XSD, vous pouvez ajouter une entrée de catalogue.

vous choisissez L'URL spécifiée pour le schéma, pour une déclaration comme

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

L'URL du fichier de schéma (http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd) est spécifié pour le namespace http://java.sun.com/xml/ns/j2ee . Vous pouvez maintenant rediriger l'emplacement du fichier avec Le Catalogue de l'espace de travail dans Eclipse:

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

Utiliser

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

et ensuite vous pouvez utiliser le sélecteur de fichiers pour choisir en fait un fichier XSD sur le système de fichiers ou l'espace de travail.

2
répondu eckes 2012-06-02 01:21:53

Le problème est double:

  1. Eclipse est livré avec un cache de beaucoup de bien connu XSD. L'espace de nom et/ou emplacement que vous fournissez ne correspond à aucune de ces.
  2. donc Eclipse essaie d'aller chercher le XSD sur internet sur L'URI fourni (peut juste fonctionner). Malheureusement, il semble qu'après Oracle révisé java.sun.com ce mécanisme n'est qu'une fois dans Eclipse (apparemment le serveur redirige vers la page d'accueil au lieu de tout simplement en disant "n'existe pas, désolé").

lorsque vous modifiez les valeurs correctes pour Java EE 5, L'entrée dans le cache sera trouvée et Eclipse sera heureuse.

0
répondu Thorbjørn Ravn Andersen 2013-01-29 12:59:11

, vous pouvez aussi voir ma réponse pour une question similaire sur .

en gros, il suffit d'écrire votre xml pour se conformer à la règle requise

0
répondu Damilola 2017-05-23 11:54:04

ajoutez ce <!DOCTYPE ...> à votre fichier xml. Veuillez le mettre sous <?xml ...> :

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

??? = votre élément racine, maintenant si votre nom de sous-élément utilise un mot html réservé vous pourriez attraper des erreurs, tout ce que vous avez à faire est de les changer en un mot non réservé.

par exemple:

Si votre sous-élément actuel est <img> , changez-le en <pic> ...

-5
répondu PHP-Rocks 2009-10-23 02:08:19