如何针对facelet-taglib验证xhtml中的标签

时间:2016-09-09 18:59:05

标签: validation jsf-2 primefaces taglib

我想要做的是编写一个maven插件来验证xhtml文件,这样如果任何标签都有不属于的属性,拼写错误或者是否存在任何其他类型的验证错误,构建将失败。

我们正在使用Primefaces 6.0,我们希望包含这些标签的验证。问题是在Primefaces jar文件中我只能找到facelet-taglib文件(对于文件夹META-INF / primefaces-p.taglib.xml中的Primefaces 6.0),我不知道如何验证xhtml文件facelet-taglib文件。

我知道如何编写Java代码以使用模式文件进行验证,但我还没有找到任何在我的xhtml文件中针对facelet-taglib验证标记的Java示例,特别是Primefaces taglib xml taglib文件。

我已尝试加载taglib文件,如下所示......

SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
InputStream stream = ..[file primefaces-p.taglib.xml]..;
Schema schema = schemaFactory.newSchema(new StreamSource(stream));  

但我得到以下错误:

org.xml.sax.SAXParseException; lineNumber:7; columnNumber:39; s4s-elt-character:除了' xs:appinfo'之外的架构元素中不允许使用非空白字符。和' xs:文档'。看到' http://primefaces.org/ui'。

我想我可能使用了错误的XMLConstants变量,但我不确定使用哪一个,或者这是否可行。

另一个注意事项,我知道现有的XML Maven插件,但是我无法使用primefaces facelet-taglib。如果有人知道如何使用taglib,请告诉我们!

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

Taglibs不是架构,所以它不起作用。但是,下降IDE将使用taglib为您进行类似的验证,但方式不同