J'ai ce dtd: http://fast-code.sourceforge.net/template.dtd Mais quand j'inclus dans un xml j'obtiens l'avertissement: Aucune contrainte de grammaire (schéma DTD ou XML) détectée pour le document. Le xml est:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE templates PUBLIC "//UNKNOWN/" "http://fast-code.sourceforge.net/template.dtd">
<templates>
<template type="INSTANCE_OF_CLASS">
<description>Used to Create instance of class</description>
<variation>asasa</variation>
<variation-field>asasa</variation-field>
<class-pattern>asasa</class-pattern>
<getter-setter>setter</getter-setter>
<allowed-file-extensions>java</allowed-file-extensions>
<number-required-classes>1</number-required-classes>
<allow-multiple-variation>false</allow-multiple-variation>
<template-body>
<![CDATA[
// Creating new instance of ${class_name}
final ${class_name} ${instance} = new ${class_name}();
#foreach ($field in ${fields})
${instance}.${field.setter}(${field.value});
#end
]]>
</template-body>
</template>
</templates>
EDIT : j'ai changé le xml, je reçois cette erreur maintenant:
Le contenu du type d'élément "modèle" doit correspondre "(description, variation?, Champ de variation?, Autoriser-plusieurs variations?, Modèle de classe?, Getter-setter?, Extensions-de-fichier autorisées?, Nombre-requis- classes?, template-body) ".
xml
eclipse
validation
dtd
fastcodejava
la source
la source
Réponses:
Dans mon cas, j'ai résolu cet avertissement ennuyeux en ajoutant simplement
<!DOCTYPE xml>
le<?xml ... >
tag après .la source
Cela a fonctionné pour moi dans Eclipse 3.7.1: Allez dans la fenêtre Préférences, puis XML -> Fichiers XML -> Validation. Ensuite, dans la section Validation des fichiers du panneau des préférences à droite, choisissez Ignorer dans la liste déroulante pour la préférence "Aucune grammaire spécifiée". Vous devrez peut-être fermer le fichier, puis le rouvrir pour faire disparaître l'avertissement.
(Je sais que cette question est ancienne mais c'était la première que j'ai trouvée lors de la recherche sur l'avertissement, donc je poste la réponse ici pour d'autres chercheurs.)
la source
Répondre:
Commentaires sur chaque élément de votre DTD ci-dessous. Référez-vous aux spécifications officielles pour plus d'informations.
Explication simple:
Une DTD extrêmement basique ressemblera à la deuxième ligne ici:
Explication détaillée:
Les DTD servent à établir des formats de données convenus et à valider la réception de ces données. Ils définissent la structure d'un document XML, notamment:
Par exemple
Signification des lignes ci-dessus ...
Ligne 1) Élément racine défini comme "nameOfYourRootElement"
Ligne 2) Début des définitions des éléments
Ligne 3) Éléments racine définis comme "nameOfYourRootElement1" et "nameOfYourRootElement2"
Ligne 4) Élément enfant, défini comme données tapez
#PCDATA
Ligne 5) Élément enfant, qui est défini comme type de données
#PCDATA
Ligne 6) Développez les instances de
jusqu'à 
lorsque le document est analysé par l'analyseur XMLLigne 7) Développez les instances de
&author;
jusqu'àYour Author Name
lorsque le document est analysé par l'analyseur XMLLigne 8) Fin des définitions
la source
La vraie solution:
ajouter
<!DOCTYPE something>
au début de chaque XML problématique,après la balise xml
<?xml version="1.0" encoding="utf-8"?>
vous pouvez écrire n'importe quoi pour doctype, mais en gros c'est censé être manifeste, activité, etc. d'après ce que je comprends
la source
Avez-vous essayé d'ajouter un schéma au catalogue xml?
dans eclipse pour éviter "aucune contrainte de grammaire (schéma dtd ou xml) détectée pour le document". j'utilise pour ajouter un fichier de schéma xsd au catalogue xml sous
"Fenêtre \ préférences \ xml \ catalogue xml \ Entrées spécifiées par l'utilisateur".
Cliquez sur le bouton "Ajouter" à droite.
Exemple:
À partir de ce xml, j'ai généré et enregistré un xsd sous: /home/my_user/xsd/my_xsd.xsd
Comme emplacement: /home/my_user/xsd/my_xsd.xsd
Comme type de clé: nom d'espace de noms
Comme clé: http://mycompany.com/hr/schemas
Fermez et rouvrez le fichier xml et faites quelques changements pour violer le schéma, vous devriez être averti
la source
Ajouter une balise DOCTYPE ...
Dans ce cas:
Ajouter après:
Alors:
la source
Une nouvelle façon propre pourrait être d'écrire votre xml comme ceci:
Les travaux ci-dessus dans Eclipse Juno +
la source
Pour moi, c'était un problème avec l' encodage des caractères et le mode de fichier Unix exécutant eclipse sur Windows:
Je viens de marquer le code complet, de le couper et de le coller (en bref: CtrlA-CtrlX-CtrlV ) et tout allait bien - plus d'avertissement "Aucune contrainte de grammaire ..."
la source
Essayez de comprendre la suggestion donnée dans les messages d'avertissement, cela aide parfois.
J'ai également eu les mêmes problèmes, après avoir fait des recherches, j'ai trouvé la solution et corrigé en ajoutant la ligne ci-dessous au début
qui a conduit à un autre problème dans mon cas. Ce que j'ai résolu en lisant les suggestions, qui se sont à nouveau transformées en un autre problème, qui a été résolu en comprenant la cause d'origine, que le premier lien a été rompu (introuvable). Voici les images étape par étape qui expliquent ce qui a été fait pour résoudre complètement le problème.
la source
Je ne peux pas vraiment dire pourquoi vous obtenez l'avertissement "Pas de contraintes de grammaire ...", mais je peux le provoquer dans Eclipse en supprimant complètement la déclaration DOCTYPE. Lorsque je remets la déclaration et valide à nouveau, je reçois ce message d'erreur:
Et c'est exact, je crois (l'élément "nombre-classes-requises" n'est pas autorisé).
la source
je sais que c'est vieux mais je suis passé par le même problème et j'ai trouvé la solution dans la documentation du printemps, la configuration xml suivante a été résolue le problème pour moi.
avant de mettre la ligne ci-dessus comme suggéré dans ce sujet de forum, j'ai le même message d'avertissement, et en plaçant ceci ...
et cela me donne le message d'avertissement suivant ...
essayez donc d'utiliser les lignes suggérées de ma configuration xml.
la source
Cela peut être dû à la désactivation de la validation dans Eclipse.
la source
Résolution de ce problème dans Eclipse 3.5.2. Deux dispositions totalement identiques dont l'une avait l'avertissement. Fermé tous les onglets et lors de la réouverture, l'avertissement avait disparu.
la source
l'erreur doit avoir disparu.
la source
J'ai utilisé un chemin relatif dans le xsi: noNamespaceSchemaLocation pour fournir le fichier xsd local (car je ne pouvais pas utiliser un espace de noms dans l'instance xml).
La validation fonctionne et l'avertissement est corrigé (non ignoré).
https://www.w3schools.com/xml/schema_example.asp
la source
Moi aussi, j'ai eu le même problème dans Eclipse en utilisant le fichier web.xml
cela m'a montré "aucune contrainte grammaticale référencée dans le document"
mais il peut être résolu en ajoutant une balise
après la balise xml ie
<?xml version = "1.0" encoding = "UTF-8"?>
la source
Voici la solution de travail pour ce problème:
Étape 1: Faites un clic droit sur le projet et accédez aux propriétés
Étape 2: Allez dans «bibliothèques» et supprimez la «bibliothèque système JRE» du projet
Étape 3: cliquez sur «Ajouter une bibliothèque» -> «Bibliothèque système JRE» -> sélectionnez «JRE par défaut de l'espace de travail»
Étape 3: Accédez à «Commander et exporter» et marquez la «bibliothèque système JRE» nouvellement ajoutée.
Étape 4: Actualisez et nettoyez le projet
Eureka! Ça marche :)
la source
J'ai trouvé que la solution était quelque chose de très très simple que je pense que vous devriez essayer avant de bricoler les préférences. Dans mon cas, j'ai eu ce problème dans un fichier de chaînes qui avait comme balise de base "ressources" ... tout ce que j'ai fait était de supprimer la balise en haut et en bas, nettoyer le projet, enregistrer le fichier et réinsérer la balise. Le problème a depuis disparu et ne m'a jamais averti. Cela peut sembler trop simple pour être vrai, mais bon, parfois, ce sont les choses les plus simples qui résolvent les problèmes. À votre santé
la source
J'ai supprimé l'avertissement dans la vue des problèmes. Il n'est pas revenu jusqu'à maintenant.
la source