J'ai ce dtd: http://fast-code.sourceforge.net/template.dtd Mais quand j'inclus dans un fichier xml, je reçois 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 code XML, je reçois cette erreur maintenant:
Le contenu du type d'élément "modèle" doit correspondre "(description, variante?, Champ de variante?, Autoriser plusieurs variantes?, Modèle de classe?, Getter-setter?, Extensions de fichiers autorisées?, Nombre-requis- classes?, template-body) ".
Dans mon cas, j'ai résolu cet avertissement ennuyeux 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 Préférences, puis XML -> Fichiers XML -> Validation. Ensuite, dans la section Validation des fichiers du panneau de préférences de droite, choisissez Ignorer dans le menu déroulant de la préférence "Aucune grammaire spécifiée". Vous devrez peut-être fermer le fichier, puis le rouvrir pour que l'avertissement disparaisse.
(Je sais que cette question est ancienne, mais que c’est la première que j’ai trouvée lors de la recherche de l’avertissement, je publie ici la réponse pour les autres chercheurs.)
Réponse:
Des commentaires sur chaque morceau de votre DTD ci-dessous. Reportez-vous à spécifications officielles 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 DTD servent à établir les 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.
<!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) Elément racine défini comme "nameOfYourRootElement"
Ligne 2) Début de la définition des éléments
Ligne 3) Enfants d'élément racine définis comme "nameOfYourRootElement1" et "nameOfYourRootElement2"
Ligne 4) Élément enfant, défini comme type de données #PCDATA
Ligne 5) Élément enfant, défini comme type de données #PCDATA
Ligne 6) Développez les instances de
en  
lorsque le document est analysé par un analyseur XML.
Ligne 7) Développez les instances de &author;
en Your Author Name
lorsque le document est analysé par un analyseur XML.
Ligne 8) Fin des définitions
La vraie solution:
ajoutez <!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 au fond c'est supposé être manifeste, activité, etc. d'après ce que j'ai compris
Avez-vous essayé d'ajouter un schéma au catalogue XML?
dans Eclipse pour éviter les "pas de contraintes de grammaire (schéma dtd ou xml) détectées 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:
<?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 enregistré un xsd sous: /home/my_user/xsd/my_xsd.xsd
En tant qu'emplacement: /home/my_user/xsd/my_xsd.xsd
Comme type de clé: Nom de l'espace de noms
Comme clé: http://mycompany.com/hr/schemas
Fermez et rouvrez le fichier XML et faites quelques modifications pour violer le schéma, vous devriez être averti
Ajouter un tag DOCTYPE ...
Dans ce cas:
<!DOCTYPE xml>
Ajouter après:
<?xml version="1.0" encoding="UTF-8"?>
Alors:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
Une nouvelle méthode peut consister à écrire votre fichier XML comme suit:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rootElement>
<rootElement>
....
</rootElement>
Ce qui précède fonctionne dans Eclipse Juno +
Pour moi, c'était un problème avec encodage de caractères et nix filemode sous Eclipse sous Windows:
Il suffit de marquer le code complet, de le couper et de le coller (en bref: CtrlA-CtrlX-CtrlV) et tout allait bien - plus aucun avertissement "Aucune contrainte de grammaire ..."
Je ne peux pas vraiment dire pourquoi vous obtenez l'avertissement "Aucune contrainte 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 le message d'erreur suivant:
Le contenu du type d'élément "modèle" doit correspondre "(description +, variation?, Champ de variation?, Autoriser plusieurs variantes?, Modèle de classe?, Getter-setter?, Extensions de fichiers autorisées?, Template-body +) .
Et c'est exact, je crois (l'élément "number-required-classes" n'est pas autorisé).
je sais que c’est vieux, mais j’ai surmonté le même problème et trouvé la solution dans la documentation de 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 de mettre la ligne ci-dessus comme indiqué dans ce sujet de forum, j'ai le même message d'avertissement, et en plaçant ceci ...
<?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)".
essayez donc d’utiliser les lignes suggérées de ma configuration XML.
Cela peut être dû à la désactivation de la validation dans Eclipse.
l'erreur doit être partie.
J'ai utilisé un chemin relatif dans xsi: noNamespaceSchemaLocation pour fournir le fichier xsd local (car je ne pouvais pas utiliser un espace de nom 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é (pas ignoré).
Moi aussi j'ai eu le même problème dans Eclipse en utilisant le fichier web.xml
m'a montré ceci "pas de contraintes de grammaire référencées dans le document"
mais il peut être résolu en ajoutant une balise
après la balise XML, à savoir <?xml version = "1.0" encoding = "UTF-8"?>
Résolu ce problème dans Eclipse 3.5.2. Deux schémas complètement identiques dont l'un avait l'avertissement. Fermez tous les onglets et à la réouverture, l'avertissement avait disparu.
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: Accédez à "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 "bibliothèque système JRE" nouvellement ajoutée
Étape 4: actualiser et nettoyer le projet
Eureka! Ça marche :)
Ce que j’ai trouvé être la solution, c’est quelque chose de très très simple que je pense que vous devriez essayer avant de modifier vos préférences. Dans mon cas, je rencontrais ce problème dans un fichier de chaînes qui avait pour balise de base "ressources" ... je ne faisais que 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é
J'ai supprimé l'avertissement dans la vue des problèmes. Il n'est pas revenu jusqu'à maintenant.