Java 5旧项目在Eclipse Neon.2中遇xsl:stylesheet声明缺失错误如何解决?
解决Eclipse中XSL文件“cvc-elt.1 cannot find the declaration of element xsl:stylesheet”错误
这个错误我维护旧Java项目时也碰到过,核心原因是Eclipse的XML验证器无法定位到XSLT 1.0对应的Schema定义,所以才会抛出找不到xsl:stylesheet元素声明的提示。下面给你几个实用的解决办法:
方法1:手动为XSL文件添加Schema位置声明
直接修改你的XSL文件,在根元素里添加XML Schema Instance命名空间,并指定XSLT 1.0的Schema地址。修改后的代码如下:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/1999/XSL/Transform http://www.w3.org/2007/schema-for-xslt10.xsd" version="1.0"> <xsl:output method="xml" encoding="UTF-8" /> <!-- 你的其他XSL代码 --> </xsl:stylesheet>
这样Eclipse就能通过指定的地址找到XSLT 1.0的Schema,自动完成验证,错误提示就会消失。
方法2:调整Eclipse的XML验证规则(无需修改代码)
如果不想改动旧项目的代码,可以针对这个XSL文件放宽验证规则:
- 右键项目中的目标XSL文件,选择Properties → Validation
- 勾选Override project settings,找到XML Validator下的Schema Validation
- 将其级别从Error改为Warning或者Ignore,点击Apply and Close
- 最后刷新项目,错误提示就会被屏蔽
方法3:配置Eclipse的XML Catalog
如果你的Eclipse没有预加载XSLT的Schema,可以手动在XML Catalog中注册:
- 打开Window → Preferences → XML → XML Catalog
- 点击Add按钮,在Location栏输入
http://www.w3.org/2007/schema-for-xslt10.xsd - Key type选择Namespace name,Key输入
http://www.w3.org/1999/XSL/Transform - 点击OK保存配置,刷新项目后Eclipse就能从Catalog中找到对应的Schema定义了
这些方法都不会影响你Java 5项目的实际运行,只是解决Eclipse的静态验证错误,适合维护老旧项目的场景。
内容的提问来源于stack exchange,提问作者Nevenoe
相关产品推荐
相关产品推荐

