it-swarm.com.de

Beheben des Eclipse-Validierungsfehlers "Keine Grammatikeinschränkungen für das Dokument festgestellt"?

Eclipse 3.5.2 löst eine Warnmeldung für ein XML-Schema aus: 

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

Die Datei 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>

Ich möchte die Warnung nicht deaktivieren. Wie kann ich Eclipse dazu bringen, das XML-Dokument korrekt zu überprüfen?

56
cmcginty

Ich bin mir nicht sicher, ob Sie das jemals zufriedenstellend gelöst haben, aber ich bin heute bei der Arbeit mit einigen Spring-Konfigurationsdateien in Eclipse 3.6 auf dieses Posting gestoßen. Ich konnte den Fehler nicht in der Problemansicht in Eclipse verschwinden lassen, bis ich das Problem mit der rechten Maustaste anklickte und es löschte

Ich dachte, es würde wiederkommen, wenn ich erneut validiert würde und es tatsächlich ein Problem gab und bisher nicht. Die Sache ist, ich hatte eine fast identische Spring-Konfigurationsdatei, in der der Fehler nicht angezeigt wurde.

Es scheint, dass das Zeug manchmal in Eclipse stecken bleibt. Nicht sicher warum, aber zwischen diesem und Dateien, die nicht mehr mit den Editoren synchronisiert sind und eine Aktualisierung erzwingen müssen, denke ich, muss ich dies akzeptieren.

40
Jason Kratz

Wenn Sie dies an eine beleidigende Datei stellen, funktioniert das für mich:

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

Dies ist eine weitere Möglichkeit, Warnungen für XML-Dokumente zu deaktivieren, die absichtlich ohne DTP oder XSD sind:

  1. Gehen Sie zu Menüeinstellungen,
  2. im Navigationsmenü, d. h. im linken Bereich des Dialogfelds, wählen Sie: XML> XML-Dateien> Validierung 
  3. wählen Sie im Konfigurationsbereich, dh im rechten Rahmen des Dialogfelds, Folgendes aus: Dateien überprüfen> Keine Grammatik angegeben> Ignorieren (Dies ist ein Auswahlfeld. Die Standardeinstellung ist Warnung).
31
knb

Ich bin kein Experte, sondern ein Lernender. Ich habe aus Versehen einen einfachen und dummen Weg gefunden, um das Problem zu lösen. Was Sie gerade tun müssen, ist: 

Drücken Sie ctrl + shift + F (eine Verknüpfung zum Formatieren der Datei in Eclipse).

Wenn das Problem dadurch nicht gelöst wird, drücken Sie die Taste TAB am Beginn dieser bestimmten Zeile
?xml version="1.0" encoding="UTF-8"? und nicht anderswo (Ich weiß nicht warum, aber das funktioniert. Wenn hier jemand weiß, warum ich sehr glücklich sein werde)

Dann ctrl + shift + F drücken und speichern. 

Die Warnung wird weg sein, zumindest für mich, du kannst es selbst versuchen ...

6
madhavi

Wenn diese Warnung angezeigt wird, bedeutet dies, dass die Funktion XML Validate (die sich vom XML-Instanzeditor unterscheidet!) Nicht wusste, welche DTD oder XSD angewendet werden soll. Dies bedeutet natürlich auch, dass nicht wirklich geprüft wurde, ob die XML-Instanz einem Schema entspricht.

Dies ist daher eine hilfreiche Warnung. Sie sollte nicht deaktiviert werden (wenn Sie die Menüfunktion Validieren verwenden und davon ausgehen, dass sie etwas unternimmt).

Sie können die Einstellungen verwenden, um Ihr Schema bekannt zu machen:

  • Öffnen Sie Voreinstellungen/XML-Katalog/Vom Benutzer festgelegte Einträge
  • Klicken Sie auf Hinzufügen ...
  • Geben Sie die zu verwendende XSD-Datei in "Location" ein.
  • Wählen Sie den Schlüsseltyp "Schema location" (falls Sie eine xsi: schemaLocation haben)
  • Geben Sie die URL (zweiter Teil des Speicherorts), die mit dem Inhalt der Datei übereinstimmt, als "Schlüssel" ein.
  • Drücke OK
  • Gehen Sie zur Problemansicht und löschen Sie die Validierungswarnung
  • Klicken Sie mit der rechten Maustaste auf die XML-Datei und wählen Sie erneut "Validate"

Einige öffentliche Idenditfiers und Schema-Speicherorte sind bereits in den "Plugin-angegebenen Einträgen" enthalten (insbesondere wenn Sie WSTP installiert haben). Für diese Namespaces wird keine Warnung angezeigt (da die vom System bereitgestellte Kopie zur Überprüfung verwendet wird).

5
eckes

in Eclipse, um zu vermeiden, dass "keine Grammatikeinschränkungen (dtd- oder xml-Schema) für das Dokument erkannt werden." Ich füge dem xml-Katalog unter 

Msgstr "Fenster\Voreinstellungen\xml\xml Katalog\Vom Benutzer angegebene Einträge". 

Klicken Sie rechts auf "Hinzufügen".


Beispiel:

<?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>

Aus dieser XML-Datei habe ich eine Xsd-Datei unter /home/my_user/xsd/my_xsd.xsd erstellt und gespeichert

Als Speicherort: /home/my_user/xsd/my_xsd.xsd

Als Schlüsseltyp: Namensraumname

Als Schlüssel: http://mycompany.com/hr/schemas


Schließen Sie die XML-Datei und öffnen Sie sie erneut. Nehmen Sie einige Änderungen vor, um das Schema zu verletzen. Sie sollten benachrichtigt werden.

3
user1374968

Fügen Sie dies ganz am Anfang Ihrer XML-Datei hinzu: 

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

Ändern Sie RelativeLayout in Ihr definiertes Stammlayout Suchen Sie dann die XML-Datei links im Layoutordner, klicken Sie mit der rechten Maustaste, und wählen Sie Validate aus.

2
resw67

Ich hatte einige Erfolge, indem ich zurück zu V1.4 von application.xsd gehe. Wenn jemand erklären kann, warum die JavaEE-Version nicht funktioniert, würde ich es begrüßen.

<?xml version="1.0" encoding="UTF-8"?>
<application
  xmlns="http://Java.Sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee
                      http://Java.Sun.com/xml/ns/j2ee/application_1_4.xsd"
  version="1.4">
2
cmcginty

Hier ist die funktionierende Lösung für dieses Problem:

Schritt 1: Klicken Sie mit der rechten Maustaste auf Projekt und gehen Sie zu den Eigenschaften

Schritt 2: Gehen Sie zu "Bibliotheken" und entfernen Sie die "JRE-Systembibliothek" des Projekts.

Schritt 3: Klicken Sie auf "Bibliothek hinzufügen" -> "JRE System Library" -> wählen Sie "Workspace default JRE" aus.

Schritt 3: Gehen Sie zu 'Bestellen und Exportieren' und markieren Sie die neu hinzugefügte 'JRE-Systembibliothek'.

Schritt 4: Aktualisieren und reinigen Sie das Projekt

Eureka! Es funktioniert :)

1
user2372633

Hier ist was für mich gearbeitet hat. Ich habe Schemas ohne Versionsnummern verwendet (z. B. spring-beans.xsd und nicht spring-beans-4.1.xsd) und sie wurden wahrscheinlich upstream aktualisiert. Ich nehme an, das Problem war, dass Eclipse einen alten Cache der alten Versionen hatte.

Fix:
1. Gehe zu Window -> Preference -> Network Connection -> Cache
2. Entfernen Sie alle zwischengespeicherten Schemas.
3. Löschen Sie alle no grammar constraints-Probleme in der Problemansicht.
4. Validieren Sie das Projekt erneut.

1
Mobius

für mich klappte es wie ein Zauber, wenn ich es schneide (Strg + Strg - X) und es wieder rettete (Strg-s)! Die Warnung "Keine Grammatikeinschränkungen (DTD oder XML-Schema) für das Dokument erkannt" wurde endgültig gelöscht !! 

0
Sheeba Nancy

Ich hatte gerade gestern dieses Problem (mit Eclipse V.kepler). Ich bin völlig neu in Java und Eclipse und versuche mir selbst beizubringen, wie man eine Android-App herstellt. Während ich an den Lektionen arbeitete, die bei Developers.Android.com angeboten wurden, hatte ich dies in meine main_activity_actions.xml-Datei eingegeben:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >

<!--  Search should appear as an action button -->
<item Android:id="@+id/action_search"
      Android:icon="@drawable/ic_action_search"
      Android:title="@string/action_search"
      Android:showAsAction="ifRoom"/>

</menu>

Dies gab mir den gleichen Fehler wie OP. Ich habe versucht, dem Vorschlag des Hinzufügens zu folgen

<!DOCTYPE project> 

knapp unter der ersten Zeile und es wurde das Problem gelöst.

0
d3sperad0

Für mich funktionierte es, wenn Sie mit der rechten Maustaste auf die XML-Datei in der Baumstruktur klicken (normalerweise auf der linken Seite in Eclipse) und auf die Bestätigung klicken. Seitdem kam die Warnung nie zurück.

0
WayneEra

Ich fand, dass es für mich am besten war, das schemaLocation-Attribut vollständig zu entfernen, dann mit der rechten Maustaste in die Gliederungsansicht zu klicken, Namespaces zu bearbeiten und dann den Schema-Speicherort-Hinweis in das resultierende Dialogfeld einzufügen.

0
Developer Z

Lösung für Eclipse:

füge <!DOCTYPE something> am Anfang jedes problematischen XML hinzu, 

nach dem XML-Tag <?xml version="1.0" encoding="utf-8"?>

sie können alles für doctype schreiben, aber im Grunde soll es Manifestation, Aktivität usw. sein, was ich verstehe

0
Amir.F

Es kann an Ihren Proxy-Einstellungen liegen. Siehe diese und diese . Sie können versuchen, Javadoc per URL an eine Bibliothek anzuhängen, ohne diese zu verwenden. Wenn es in Ihrem Browser in Ordnung ist, aber nicht in Ihrem Editor, dann liegt ein Verbindungsproblem vor. Ich löste das gleiche Problem, indem ich den Administrator nach den Proxy-Einstellungen fragte. Obwohl alle anderen Anwendungen funktionierten, war Eclipse nicht der Fall. Daher musste ich die Konfiguration manuell eingeben. Es wäre toll, wenn die Entwickler einen Button "Verbindung prüfen" hinzufügen ...

0
pkopac