Ich habe dieses dtd: http://fast-code.sourceforge.net/template.dtd Aber wenn ich es in eine XML einbinde, erhalte ich die Warnung: Für das Dokument wurden keine Grammatikbeschränkungen (DTD- oder XML-Schema) festgestellt. Die XML ist:
<?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 : Ich habe die XML geändert, ich erhalte jetzt diesen Fehler:
Der Inhalt des Elementtyps "Vorlage" muss übereinstimmen "(Beschreibung, Variation ?, Variationsfeld ?, Zulassen-Mehrfachvariation ?, Klassenmuster ?, Getter-Setter ?, Zulässige-Dateierweiterungen ?, Anzahl erforderlich. Klassen ?, Template-Body) ".
xml
eclipse
validation
dtd
fastcodejava
quelle
quelle
Antworten:
In meinem Fall habe ich diese nervige Warnung durch einfaches Hinzufügen des
<!DOCTYPE xml>
Nach-<?xml ... >
Tags gelöst .quelle
Dies funktionierte bei mir in Eclipse 3.7.1: Gehen Sie zum Fenster "Einstellungen" und dann zu XML -> XML-Dateien -> Validierung. Wählen Sie dann im Abschnitt "Dateien validieren" des Einstellungsfensters auf der rechten Seite im Dropdown-Feld "Ignorieren" die Option "Keine Grammatik angegeben". Möglicherweise müssen Sie die Datei schließen und dann erneut öffnen, damit die Warnung verschwindet.
(Ich weiß, dass diese Frage alt ist, aber es war die erste, die ich bei der Suche in der Warnung gefunden habe. Deshalb poste ich die Antwort hier für andere Suchende.)
quelle
Antworten:
Kommentare zu jedem Teil Ihrer DTD unten. Weitere Informationen finden Sie in der offiziellen Spezifikation .
Einfache Erklärung:
Eine extrem einfache DTD sieht hier wie die zweite Zeile aus:
Ausführliche Erklärung:
DTDs dienen dazu, vereinbarte Datenformate festzulegen und den Empfang solcher Daten zu validieren. Sie definieren die Struktur eines XML-Dokuments, einschließlich:
Z.B
Bedeutung der obigen Zeilen ...
Zeile 1) Stammelement definiert als "nameOfYourRootElement"
Zeile 2) Beginn der Elementdefinitionen
Zeile 3) Stammelementkinder, definiert als "nameOfYourRootElement1" und "nameOfYourRootElement2"
Zeile 4) Untergeordnetes Element, das als Daten definiert ist Typ
#PCDATA
Zeile 5) Untergeordnetes Element, das als Datentyp definiert ist
#PCDATA
Zeile 6) Erweitern Sie Instanzen von
bis, 
wenn das Dokument vom XML-Parser analysiert wird.Zeile 7) Erweitern Sie Instanzen von
&author;
bis,Your Author Name
wenn das Dokument vom XML-Parser analysiert wird.Zeile 8) Ende der Definitionen
quelle
Die wahre Lösung:
<!DOCTYPE something>
am Anfang jedes problematischen XML hinzufügen ,nach dem xml tag
<?xml version="1.0" encoding="utf-8"?>
Sie können alles für doctype schreiben, aber im Grunde soll es Manifest, Aktivität usw. sein, soweit ich weiß
quelle
Haben Sie versucht, dem XML-Katalog ein Schema hinzuzufügen?
in Eclipse, um zu vermeiden, dass "keine Grammatikbeschränkungen (dtd- oder xml-Schema) für das Dokument erkannt wurden". Ich benutze, um eine XML-Schemadatei zum XML-Katalog unter hinzuzufügen
"Fenster \ Einstellungen \ xml \ xml Katalog \ Benutzerdefinierte Einträge".
Klicken Sie rechts auf die Schaltfläche "Hinzufügen".
Beispiel:
Aus dieser XML habe ich eine xsd generiert und gespeichert unter: /home/my_user/xsd/my_xsd.xsd
Als Speicherort: /home/my_user/xsd/my_xsd.xsd
Als Schlüsseltyp: Namespace-Name
Als Schlüssel: http://mycompany.com/hr/schemas
Schließen Sie die XML-Datei, öffnen Sie sie erneut und nehmen Sie einige Änderungen vor, um das Schema zu verletzen. Sie sollten benachrichtigt werden
quelle
DOCTYPE-Tag hinzufügen ...
In diesem Fall:
Füge danach hinzu:
So:
quelle
Eine neue saubere Möglichkeit könnte darin bestehen, Ihre XML-Datei wie folgt zu schreiben:
Das obige funktioniert in Eclipse Juno +
quelle
Für mich war es ein Problem mit der Zeichenkodierung und dem Unix-Dateimodus , auf dem Eclipse unter Windows ausgeführt wird:
Markierte einfach den vollständigen Code, schnitt ihn aus und fügte ihn zurück (kurz: CtrlA-CtrlX-CtrlV ) und alles war in Ordnung - keine Warnungen mehr "Keine Grammatikbeschränkungen ..."
quelle
Versuchen Sie, den Vorschlag in den Warnmeldungen zu verstehen. Es hilft manchmal.
Ich hatte auch die gleichen Probleme, nachdem ich einige Nachforschungen angestellt hatte, fand ich die Lösung und behebte sie, indem ich am Anfang die folgende Zeile hinzufügte
was in meinem Fall zu einem anderen Problem führte. Was ich durch Lesen der Vorschläge gelöst habe, was wiederum zu einem anderen Problem wurde, das gelöst wurde, indem man die ursprüngliche Ursache verstand, dass der erste Link unterbrochen wurde (nicht gefunden). Im Folgenden finden Sie schrittweise Bilder, in denen erläutert wird, wie das Problem vollständig behoben wurde.
quelle
Ich kann nicht wirklich sagen, warum Sie die Warnung "Keine Grammatikbeschränkungen ..." erhalten, aber ich kann sie in Eclipse provozieren, indem ich die DOCTYPE-Deklaration vollständig entferne. Wenn ich die Deklaration zurücklege und erneut validiere, wird folgende Fehlermeldung angezeigt:
Und das ist richtig, glaube ich (das Element "Anzahl der erforderlichen Klassen" ist nicht erlaubt).
quelle
Ich weiß, dass dies alt ist, aber ich bin durch das gleiche Problem gegangen und habe die Lösung in der Frühjahrsdokumentation gefunden. Die folgende XML-Konfiguration hat das Problem für mich gelöst.
Bevor ich die obige Zeile wie in diesem Forenthema vorgeschlagen einfüge, habe ich dieselbe Warnmeldung und platziere diese ...
und es gibt mir die folgende Warnmeldung ...
Versuchen Sie einfach, die vorgeschlagenen Zeilen meiner XML-Konfiguration zu verwenden.
quelle
Dies kann daran liegen, dass die Validierung in Eclipse deaktiviert ist.
quelle
Dieses Problem wurde in Eclipse 3.5.2 behoben. Zwei völlig identische Layouts, von denen eines die Warnung hatte. Alle Registerkarten geschlossen und beim erneuten Öffnen war die Warnung verschwunden.
quelle
Fehler muss weg sein.
quelle
Ich habe einen relativen Pfad in xsi: noNamespaceSchemaLocation verwendet , um die lokale xsd-Datei bereitzustellen (da ich keinen Namespace in der Instanz-XML verwenden konnte).
Die Validierung funktioniert und die Warnung wurde behoben (nicht ignoriert).
https://www.w3schools.com/xml/schema_example.asp
quelle
Ich hatte auch das gleiche Problem in Eclipse mit der Datei web.xml
, das mir zeigte, dass "keine Grammatikbeschränkungen im Dokument angegeben sind".
Sie kann jedoch durch Hinzufügen eines Tags
nach dem XML-Tag behoben werden
<?xml version = "1.0" encoding = "UTF-8"?>
quelle
Hier ist die funktionierende Lösung für dieses Problem:
Schritt 1: Klicken Sie mit der rechten Maustaste auf das Projekt und gehen Sie zu Eigenschaften
Schritt 2: Gehen Sie zu 'Bibliotheken' und entfernen Sie die 'JRE-Systembibliothek' des Projekts.
Schritt 3: Klicken Sie auf "Bibliothek hinzufügen" -> "JRE-Systembibliothek" -> wählen Sie "Arbeitsbereich-Standard-JRE".
Schritt 3: Gehen Sie zu 'Bestellen und Exportieren' und markieren Sie die neu hinzugefügte 'JRE-Systembibliothek'.
Schritt 4: Aktualisieren und bereinigen Sie das Projekt
Eureka! Es funktioniert :)
quelle
Was ich als Lösung empfand, war etwas sehr sehr Einfaches, das Sie meiner Meinung nach ausprobieren sollten, bevor Sie an den Einstellungen basteln. In meinem Fall hatte ich dieses Problem in einer Zeichenfolgendatei, die als Basis-Tag "Ressourcen" hatte. Ich habe lediglich das Tag von oben und unten gelöscht, das Projekt bereinigt, die Datei gespeichert und das Tag erneut eingefügt. Das Problem ist seitdem verschwunden und hat mich nie gewarnt. Es mag zu einfach klingen, um wahr zu sein, aber hey, manchmal sind es die einfachsten Dinge, die die Probleme lösen. Prost
quelle
Ich habe die Warnung in der Problemansicht gelöscht. Es ist bis jetzt nicht zurückgekommen.
quelle