Ich habe mein benutzerdefiniertes JSP-Tag mit der folgenden TLD geschrieben:
<?xml version="1.0" encoding="UTF-8"?>
<taglib
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee web-jsptaglibrary_2_1.xsd"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.1">
<tlibversion>1.0</tlibversion>
<jspversion>2.1</jspversion>
...
Jetzt meldet Eclipse Helios, dass "keine Grammatikeinschränkungen (DTD oder XML-Schema) für das Dokument erkannt wurden".
Ich weiß, wie ich die Warnung deaktivieren kann, aber ich habe mich gefragt, wie ich das Problem durch die Bereitstellung von DTD- oder Schemainformationen lösen kann.
Übrigens habe ich in dem obigen Stück XML:
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee web-jsptaglibrary_2_1.xsd"
aber es scheint nicht zu helfen.
UPDATE Auf Peters Vorschlag hin habe ich unter Fenster > Einstellungen > XML > XML-Katalog nachgeschaut und folgendes gefunden, das passen könnte:
Entry element: Public
Location: dtdsAndSchemas/web-jsptaglibrary_1_2.dtd in jar file
usr/local/eclipse/plugins/org.eclipse.jst.standard.schemas_1.1.0.v201003031644.jar
URI: jar:file:/usr/local/eclipse/plugins/org
.eclipse.jst.standard.schemas_1.1.0.v201003031644.jar!/dtdsAndSchemas
/web-jsptaglibrary_1_2.dtd
Key type: Public ID
Key: -//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN
Also habe ich versucht, meiner tld folgendes hinzuzufügen:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd">
Jetzt habe ich die folgenden Fehler:
Mehrere Anmerkungen zu dieser Zeile gefunden:
-
Das Attribut "xsi:schemaLocation" muss für den Elementtyp "taglib" deklariert werden.
-
Das Attribut "version" muss für den Elementtyp "taglib" deklariert werden.
-
Das Attribut "xmlns" mit dem Wert "http://java.sun.com/xml/ns/javaee" muss einen Wert von "http://java.sun.com/JSP/ TagLibraryDescriptor" haben.
-
schema_reference.4: Das Schema-Dokument 'web-jsptaglibrary_2_1.xsd' konnte nicht gelesen werden, weil
1) konnte das Dokument nicht finden; 2) Das Dokument konnte nicht gelesen werden; 3) das Root-Element des Dokuments ist nicht .
-
Der Inhalt des Elementtyps "taglib" muss "(tlib-version,jsp-version,short-name,uri?,display-name?,small-icon?,large-icon?,description?,validator?,listener*,tag+)" entsprechen.
-
Das Attribut "xmlns:xsi" muss für den Elementtyp "taglib" deklariert werden.