java – JSP自定义标记:缺少DTD / XML Schema

我用以下TLD编写了我的JSP自定义标记
<?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"

但它似乎没有帮助.

更新Peter的建议我去了我的窗口>偏好> 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”声明属性“version”.
>值为“http://java.sun.com/xml/ns/javaee”的属性“xmlns”的值必须为“http://java.sun.com/JSP/ TagLibraryDescriptor”.
> schema_reference.4:无法读取架构文档’web-jsptaglibrary_2_1.xsd’,因为

1)找不到文件;
2)文件无法阅读;
3)文档的根元素不是.
>元素类型“taglib”的内容必须匹配“(tlib-version,jsp-version,short-name,uri?,display-name ?,small-icon ?,large-icon ?,description?,validator ?,listener *,标签 )”.
>必须为元素类型“taglib”声明属性“xmlns:xsi”.

解决方法

如果Eclipse没有自动从库中获取XSD,您可以随时手动添加它:
窗口>偏好> XML> XML目录

在我的情况下,它已经存在于插件部分.它可能带有一个Eclipse Java EE插件.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...