Aucune contrainte grammaticale (DTD ou schéma XML) n'a été détectée pour le document.
j'ai cette dtd: http://fast-code.sourceforge.net/template.dtd Mais quand j'inclus dans un xml je reçois l'avertissement : Aucune contrainte grammaticale (DTD ou schéma XML) n'a été décelé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 "template" doit correspondre "(description de la variation?la variation de champ?,permettre- de multiples-de la variation?,de la classe de modèle?,méthode getter / setter?,a permis de fichier extensions?le nombre requis- les classes?le modèle du corps)".
18 réponses
dans mon cas, j'ai résolu ce fâcheux avertissement en ajoutant simplement le <!DOCTYPE xml>
après la balise <?xml ... >
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
cela a fonctionné pour moi dans Eclipse 3.7.1: allez dans la fenêtre des Préférences, puis XML -> fichiers XML -> Validation. Ensuite, dans la section Validation des fichiers du panneau préférences sur la droite, choisissez Ignorer dans la boîte déroulante pour la préférence "aucune grammaire spécifiée". Vous devrez peut-être fermer le dossier et 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é en cherchant sur l'avertissement, donc je poste la réponse ici pour d'autres chercheurs.)
réponse:
commente chaque morceau de votre DTD ci-dessous. Se référer à spécification officielle pour plus d'informations.
<!
DOCTYPE ----------------------------------------- correct
templates --------------------------------------- correct Name matches root element.
PUBLIC ------------------------------------------ correct Accessing external subset via URL.
"//UNKNOWN/" ------------------------------------ invalid? Seems useless, wrong, out-of-place.
Safely replaceable by DTD URL in next line.
"http://fast-code.sourceforge.net/template.dtd" - invalid URL is currently broken.
>
Explication Simple:
une DTD extrêmement basique ressemblera à la deuxième ligne ici:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE nameOfYourRootElement>
<nameOfYourRootElement>
</nameOfYourRootElement>
Explication Détaillée:
Les DTDservent à établir des formats de données convenus et à valider la réception de telles données. Ils définissent la structure D'un document XML, y compris:
- une liste d'éléments juridiques
- caractères spéciaux
- chaînes de caractères
- et beaucoup plus
Par exemple:
<!DOCTYPE nameOfYourRootElement
[
<!ELEMENT nameOfYourRootElement (nameOfChildElement1,nameOfChildElement2)>
<!ELEMENT nameOfChildElement1 (#PCDATA)>
<!ELEMENT nameOfChildElement2 (#PCDATA)>
<!ENTITY nbsp " ">
<!ENTITY author "Your Author Name">
]>
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ément racine enfants définis comme "nom de votre rootelement1 "et" nom de votre rootelement2 "
Ligne 4) élément enfant, défini comme le type de données #PCDATA
Ligne 5) élément enfant, qui est défini comme le type de données #PCDATA
Ligne 6) étendre les instances de
à  
lorsque le document est analysé par XML parser
Ligne 7) étendre les instances de &author;
à Your Author Name
lorsque le document est analysé par L'analyseur XML
Ligne 8) fin des définitions
La Vraie Solution:
ajouter <!DOCTYPE something>
au début de chaque problème XML,
après la balise xml <?xml version="1.0" encoding="utf-8"?>
vous pouvez écrire n'importe quoi pour doctype, mais fondamentalement, il est censé être manifeste, activité, etc. d'après ce que j'ai compris
Avez-vous essayé d'ajouter un schéma xml catalogue?
dans eclipse pour éviter les " Aucune contrainte grammaticale (DTD ou schéma xml) détectée pour le document."j'utilise pour ajouter un fichier de schéma xsd au catalogue xml sous
de la Fenêtre "\ préférences \ xml \ xml catalog \ spécifié par l'Utilisateur entrées".
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>
à partir de ce xml, j'ai généré et sauvegardé un xsd sous: /home/my_user/xsd/my_xsd.xsd
, Comme l'Emplacement suivant: /home/my_user/xsd/my_xsd.xsd
comme type de clé: Namespace name
comme clé: http://mycompany.com/hr/schemas
fermer et rouvrir le fichier xml et faire quelques changements pour violer le schéma, vous devriez être avisé
une nouvelle façon propre pourrait être d'écrire votre xml comme ceci:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rootElement>
<rootElement>
....
</rootElement>
Les travaux ci-dessus dans Eclipse Juno+
ajouter étiquette DOCTYPE ...
dans ce cas:
<!DOCTYPE xml>
ajouter après:
<?xml version="1.0" encoding="UTF-8"?>
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
pour moi, C'était un problème avec codage de caractères et unix filemode exécution eclipse sur Windows:
vient de marquer le code complet, découpé et collé en arrière (en bref: CtrlA-CtrlX-CtrlV ) et tout était bien - plus " aucune contrainte grammaticale..."mises en garde
Je ne peux pas vraiment dire pourquoi vous obtenez le" pas de contraintes grammaticales..."attention, mais je peux le provoquer dans Eclipse en supprimant complètement la déclaration DOCTYPE. Quand je remets la déclaration et la valide à nouveau, je reçois ce message d'erreur:
modèle du contenu du type d'élément"" doit correspondre à "(description+,de la variation?la variation de champ?,laissez-multiples-de la variation?,de la classe de modèle?,méthode getter / setter?,a permis de fichier extensions?le modèle du corps+).
et c'est exact, je crois (l'élément" nombre-classes requises " n'est pas permis).
je sais que c'est ancien, mais je suis en train de passer sur le même problème et j'ai trouvé la solution dans la documentation du printemps, la configuration xml suivante a été résolue pour moi.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/tx
<!-- THIS IS THE LINE THAT SOLVE MY PROBLEM -->
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
avant que je mette la ligne ci-dessus comme suggéré dans ce thème de forum , j'ai le même message d'avertissement, et le placer...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
et il me donne le message d'avertissement suivant...
The content of element type "template" must match "
(description,variation?,variation-field?,allow- multiple-variation?,class-
pattern?,getter-setter?,allowed-file-extensions?,number-required-
classes?,template-body)".
alors essayez de utilisez les lignes suggérées de ma configuration xml.
a résolu ce problème dans Eclipse 3.5.2. Deux totalement identique dispositions dont l'une avait l'avertissement. Fermé tous les onglets et lors de la réouverture de l'avertissement avait disparu.
- copiez votre code entier dans Bloc-notes.
- sauvegardez temporairement le fichier avec n'importe quel nom [tout en sauvegardant le fichier utilisez "encoding" = UTF-8 (ou plus élevé mais UTF)].
- fermez le fichier.
- ouvrez-le à nouveau.
- Copiez-le collez-le sur votre code.
l'erreur doit avoir disparu.
Voici la solution de travail pour ce problème:
Étape 1: cliquez Droit sur le projet et allez dans les propriétés
Étape 2: Allez à "bibliothèques" et supprimez la "bibliothèque système JRE" du projet
Étape 3: Cliquez sur "Ajouter une bibliothèque" --> "JRE System Library" -- > sélectionnez "Workspace default JRE "
Étape 3: Allez à "commander et exporter" et marquez la nouvelle "bibliothèque système JRE "
Étape 4: rafraîchir et nettoyer le projet
Eureka! Ça fonctionne :)
ce que j'ai trouvé être la solution était quelque chose de très très simple que je pense que vous devriez essayer avant de bricoler avec les préférences. Dans mon cas, j'ai eu ce problème dans un fichier strings qui avait comme étiquette de base "resources" ...tout ce que j'ai fait, c'est supprimer la balise du haut et du bas, nettoyer le projet, sauvegarder le fichier et réinsérer la balise. Le problème a disparu depuis et ne m'a jamais donné d'Avertissements. Ça peut sembler simple d'être vrai, mais parfois, c'est la chose la plus simple à résoudre. problème. Cheers
j'ai utilisé un chemin relatif dans le xsi:noNamespaceSchemaLocation pour fournir le fichier XSD local (parce que je ne pouvais pas utiliser d'espace de noms dans l'instance xml).
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../project/schema.xsd">
</root>
La Validation fonctionne et l'avertissement est corrigé (Non ignoré).
j'ai supprimé l'avertissement dans la vue de problèmes. Il n'est pas revenu jusqu'à maintenant.
moi aussi j'ai eu le même problème dans eclipse en utilisant web.fichier xml il m'a montré ce "pas de grammaire contraintes référencées dans le document"
mais il peut être résolu en ajoutant l'étiquette après la balise xml c'est à dire ""