34 votes

Faux Eclipse avertissement pour web.xml: "Pas de contraintes de la grammaire (DTD ou schéma XML) a été détectée pour le document."

Du haut de mon web.xml le fichier 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 j'ai toujours l'avertissement à partir d'Eclipse (Ganymède) qu'aucun schéma XML est détecté, et le schéma de violations ne sont pas averti. Autres fichiers XML dans mon projet (Framework Spring fichiers de configuration par exemple) n'ont pas l'avertissement et de ne donner les bons avertissements sur le schéma de violations.

Comment puis-je obtenir la vérification du schéma de travail et nous espérons que l'avertissement à s'en aller? Le serveur fonctionne correctement. Il semble simplement être une IDE problème.

46voto

monzonj Points 1791

Je déteste que l'avertissement de trop. Spécialement parce qu'il apparaît dans des fichiers XML que vous n'avez pas écrit, mais qui apparaissent dans votre projet pour quelque raison que ce soit (si vous utilisez MAVEN, c'est l'enfer).

Avec Eclipse 3.5+, vous pouvez facilement supprimer cette règle de validation. Allez dans les Préférences-->XML-->FICHIERS XML --> Validation et Sélectionnez "ignorer".

Vous pouvez également avoir à faire un Projet -> Clean pour la validation des mises en garde de s'en aller.

alt text

26voto

toolkit Points 27248

Essayez peut-être de:

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

10voto

Tiris Points 95

Vider le cache pour stocker les fichiers de validation.

Fenêtre > Préférences > Général > Connexions Réseau > Cache puis supprimez tous. Maintenant, allez à valider le fichier et voir si cela efface les choses.

Cette happed pour moi et l'effacement du cache de la validation a été la seule façon d'obtenir qu'elle fonctionne de nouveau correctement. Les conseils pour la compensation sale cache a été trouvé ici.

2voto

eckes Points 1191

Si vous avez le même (missleading) message d'erreur parce que votre Éditeur XML n'était pas à trouver 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 l'espace de noms http://java.sun.com/xml/ns/j2ee. Vous pouvez maintenant rediriger l'emplacement du fichier avec l'espace de travail de catalogue dans Eclipse:

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

Utilisation

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

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

0voto

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 à partir de l'URI fourni (peut juste travailler). Malheureusement, il semble que, après Oracle révisé java.sun.com ce mécanisme vient de fois dans Eclipse (apparemment le serveur redirige vers la page d'accueil plutôt que de simplement dire "n'existe pas, désolé").

Lorsque vous modifiez les valeurs correctes pour Java EE 5, l'entrée dans le cache sera trouvé et l'Éclipse sera heureux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X