微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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插件.

原文地址:https://www.jb51.cc/java/127273.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐