HTML5 Pass-Through元素导致Eclipse警告'未知标记'

时间:2015-12-01 08:49:39

标签: eclipse html5 jsf main 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>

Eclipse抱怨

  

未知标签(主要)。

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

1 个答案:

答案 0 :(得分:5)

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

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

无关具体问题,XML序言并不属于那里。摆脱它。此外,我也想知道&#34;标题&#34;,&#34; nav&#34;,&#34; main&#34;的必要性。和&#34;页脚&#34;是整个JSF组件。我真的没有看到任何有用的真实世界用具。你最有可能只是保持纯HTML。这样可以免除不必要的开销。

另见: