60 votes

Comment corriger l'erreur de validation d'Eclipse "Aucune contrainte grammaticale détectée pour le document" ?

Eclipse 3.5.2 envoie un message d'avertissement concernant le schéma XML :

No grammar constraints (DTD or XML schema) detected for the document.

Le fichier application.xml :

<?xml version="1.0" encoding="UTF-8"?>
<application
  xmlns="http://java.sun.com/xml/ns/javaee"
  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/application_5.xsd"
  version="5">

</application>

Je ne veux pas désactiver l'avertissement. Comment puis-je faire en sorte qu'Eclipse valide correctement le document XML ?

0 votes

Hm, je n'arrive toujours pas à reproduire l'avertissement sur la version de Galileo (3.5) que j'ai installée. Désolé :(

0 votes

En utilisant la version Helios, j'ai collé votre xml dans un nouveau fichier NewFile.xml et j'ai vu ce message d'avertissement ; j'ai ensuite renommé le fichier (nom arbitraire) et l'avertissement a disparu. Bizarre, mais assez facile à essayer...

1 votes

Se pourrait-il que vous ayez besoin d'un proxy pour vous connecter à Internet ?

63voto

Plenus Franckly Points 291

Mettre ceci en haut de tout fichier incriminé fonctionne pour moi :

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE project>

3 votes

Pour moi, cela arrête tout simplement la validation, et supprime donc le message d'erreur.

2 votes

J'ai essayé ceci (sur Eclipse Luna). Cela a conduit à un nouvel avertissement : _"SchemaLocation : schemaLocation valeur = ' xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd ' doit avoir un nombre pair d'URI."_ . Voir Réponse d'acdcjunior y La question de MahmoudS pour ça.

46voto

Jason Kratz Points 166

Je ne sais pas si vous avez résolu ce problème de manière satisfaisante, mais je suis tombé sur ce message aujourd'hui alors que je travaillais avec des fichiers de configuration de Spring dans Eclipse 3.6. Je n'arrivais pas à faire disparaître l'erreur dans la vue Problèmes d'Eclipse, quoi qu'il arrive, jusqu'à ce que je a fait un clic droit sur le problème et l'a supprimé .

Je me suis dit qu'il reviendrait si je revalidais et qu'il y avait effectivement un problème, mais ce n'est pas le cas. Le problème est que j'avais un fichier de configuration Spring presque identique qui n'affichait pas l'erreur.

Il semblerait que parfois les choses restent bloquées dans Eclipse. Je ne sais pas trop pourquoi, mais entre ça et les fichiers qui ne sont pas synchronisés avec les éditeurs et qui doivent être rafraîchis de force, je suppose que je dois l'accepter.

0 votes

Cette proposition recueille les votes, je la considère donc comme correcte.

1 votes

D'accord, je n'ai pas pu résoudre le problème avec les méthodes indiquées ci-dessous. Finalement, j'ai décidé de le laisser hors de ma vue en le supprimant, car finalement, il n'a pas affecté le projet. Merci @Jason

2 votes

Cela a fonctionné pour moi. Cependant, il y avait encore un signe d'avertissement gênant dans le fichier de code du manifeste du projet. Ajout de <!DOCTYPE xml> a également résolu ce problème !

35voto

knb Points 2521

Il s'agit d'un autre moyen de désactiver les avertissements pour les documents XML qui intentionnellement ne disposent pas d'une PAO ou d'un XSD :

  1. Allez dans le menu Préférences,
  2. dans le menu de navigation, c'est-à-dire le cadre gauche de la boîte de dialogue, choisissez : XML > Fichiers XML > Validation
  3. dans la zone de configuration, c'est-à-dire le cadre droit de la boîte de dialogue, choisissez : Validation des fichiers > Aucune grammaire spécifiée > Ignorer (Il s'agit d'une boîte de sélection) ; le paramètre par défaut est l'avertissement.)

0 votes

Il est également confirmé que cela fonctionne sur Eclipse Luna. J'ai opté pour cette méthode.

7voto

madhavi Points 41

Je ne suis pas un expert mais un apprenant. J'ai accidentellement trouvé un moyen facile et stupide de résoudre le problème. Ce que vous devez faire c'est :

Appuyez sur ctrl + shift + F (c'est un raccourci pour formater le fichier dans Eclipse)

Si cela ne résout pas le problème, appuyez sur la touche TAB à la démarrage de cette ligne particulière
?xml version="1.0" encoding="UTF-8"? y pas ailleurs (Je ne sais pas pourquoi, mais cela fonctionne. Si quelqu'un ici sait pourquoi, je serai très heureux de le savoir)

Ensuite, appuyez sur ctrl + shift + F et sauvegarder.

L'avertissement disparaîtra, du moins pour moi, vous pouvez essayer par vous-même...

3voto

user1374968 Points 81

En éclipse pour éviter le " aucune contrainte de grammaire (dtd ou schéma xml) détectée pour le document. " j'ai l'habitude d'ajouter un fichier de schéma xsd au catalogue xml sous le nom de

"Fenêtre : préférences : xml : catalogue xml : entrées spécifiées par l'utilisateur".

Cliquez sur le bouton "Ajouter" à droite.


Exemple :

<?xml version="1.0" encoding="UTF-8"?>
<HolidayRequest xmlns="http://mycompany.com/hr/schemas">
    <Holiday>
        <StartDate>2006-07-03</StartDate>
        <EndDate>2006-07-07</EndDate>
    </Holiday>
    <Employee>
        <Number>42</Number>
        <FirstName>Arjen</FirstName>
        <LastName>Poutsma</LastName>
    </Employee>
</HolidayRequest>

A partir de ce xml, j'ai généré et enregistré un xsd sous : /home/mon_utilisateur/xsd/mon_xsd.xsd

En tant qu'emplacement : /home/mon_utilisateur/xsd/mon_xsd.xsd

Comme type de clé : Nom de l'espace de nommage

En tant que clé : http://mycompany.com/hr/schemas


Fermez et rouvrez le fichier xml et effectuez quelques modifications pour violer le schéma, vous devriez être notifié.

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