Я написал свой пользовательский тег JSP со следующим TLD:
<?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>
...
Теперь Eclipse Helios жалуется, что «для документа не обнаружено никаких грамматических ограничений (DTD или XML-схема)».
Я знаю, как отключить предупреждение, вместо этого мне было интересно, как решить проблему, предоставив информацию DTD или схемы.
Кстати, в приведенном выше фрагменте XML у меня есть:
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee web-jsptaglibrary_2_1.xsd"
но, похоже, это не помогает.
ОБНОВЛЕНИЕ по предложению Питера я пошел, чтобы проверить в моем Окне> Настройки> XML> Каталог XML, и обнаружил следующее, что может подойти:
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
Поэтому я попытался добавить в свой текст следующее:
<?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">
Теперь у меня есть следующие ошибки:
В этой строке найдено несколько аннотаций:
- Атрибут "xsi: schemaLocation" должен быть объявлен для типа элемента "taglib".
- Атрибут "version" должен быть объявлен для типа элемента "taglib".
Атрибут "xmlns" со значением "http://java.sun.com/xml/ns/javaee" должен иметь значение" http://java.sun.com/JSP/ TagLibraryDescriptor ".
schema_reference.4: не удалось прочитать документ схемы 'web-jsptaglibrary_2_1.xsd', так как
1) не удалось найти документ;
2) документ не может быть прочитан;
3) корневым элементом документа не является.
Содержимое элемента типа "taglib" должно совпадать "(tlib-версия, jsp-версия, короткое имя, uri?, Отображаемое имя?, Small-icon?, Large-icon?, Description? , валидатор?, слушатель *, бирка +)».
- Атрибут "xmlns: xsi" должен быть объявлен для типа элемента "taglib".