:JSP定制标记:我写具有以下TLD我的JSP定制标记缺少DTD/XML模式
<?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的赫利俄斯抱怨说“没有语法限制(DTD或XML模式)的检测文件。”
我知道如何禁用警告,但我想知道如何通过提供DTD或模式信息来解决问题。
通过上面这段XML的方式,我有:
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee web-jsptaglibrary_2_1.xsd"
,但它似乎并没有帮助。彼得的建议
UPDATE我就在我的窗口>首选项> 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
于是,我就在下面添加到我的TLD :
<?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">
现在我以下错误:在该行发现
多个批注:
- 必须为元素类型“taglib”声明属性“xsi:schemaLocation”。
- 必须为元素类型“taglib”声明属性“版本”。
值为“http://java.sun.com/xml/ns/javaee”的属性“xmlns”必须具有值“http://java.sun.com/JSP/ TagLibraryDescriptor”。
schema_reference.4:无法读取模式文档 '网络jsptaglibrary_2_1.xsd',因为
1)找不到文档; 2)文件不能被读取; 3)文档的根元素不是。
元素类型“taglib”的内容必须匹配“(tlib版本,jsp版本,短名称,uri?,显示名称?,小图标?,大图标?,描述?验证?,监听器*,标签+)”。
- 必须为元素类型“taglib”声明属性“xmlns:xsi”。
我的第一个问题是,你使用Eclipse的Java EE开发人员? – 2011-05-26 06:16:51
是的,我下载了Java EE的包。 – stivlo 2011-05-26 07:32:39