HTML5 Pass-Through元素导致Eclipse警告'Unknown tag'

Jen*_*gsa 2 eclipse jsf html5 program-entry-point passthrough-elements

我的JSF template.xhtml文件看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:jsf="http://xmlns.jcp.org/jsf">

<h:head>
    ...
</h:head> 
<h:body>
    <header jsf:id="head">
        ...
    </header>
    <nav jsf:id="nav">
        ...
    </nav>
    <main jsf:id="main">
        ...
    </main>
    <footer jsf:id="foot">
        ...
    </footer>
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

Eclipse抱怨说

未知标签(主要).

我想知道我的文件是否以某种方式格式错误,或者Eclipse无法正确验证这一点.

Bal*_*usC 5

这不是JSF问题.删除passthrough元素触发器时,您仍会遇到完全相同的问题jsf:id.在XHTML文件中的任何地方不使用JSF标记/属性时,您甚至会遇到完全相同的问题.

<main>HTML5中的标签相对较新(仅在2013年8月的HTML5 CR中添加).目前在您的XHTML文档中的其他HTML5标签已经存在更长时间(远在2008年).Eclipse根本无法识别<main>为在默认XML命名空间中注册的标记http://www.w3.org/1999/xhtml.Eclipse拥有已注册标记的内部列表.如果升级到最新的Eclipse(SR)版本无法解决问题,那么最好的办法就是向Eclipse人员报告这个问题.同时,只需在HTML5验证中选择快速修复选项"忽略'main'元素".


具体问题无关,XML prolog不属于那里.摆脱它.此外,我还想知道"header","nav","main"和"footer"是整个JSF组件的必要性.我真的没有看到任何有用的真实世界电器.你最有可能保持纯HTML.这可以节省您不必要的开销.

也可以看看: