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

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

我们正在使用Primefaces 6.0,我们希望包含这些标签的验证.问题是在Primefaces jar文件中我只能找到facelet-taglib文件(对于文件META-INF / primefaces-p.taglib.xml中的Primefaces 6.0),我不知道如何针对facelet验证xhtml文件-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:documentation’之外的架构元素中不允许使用非空白字符.看到’http://primefaces.org/ui‘.

我想也许我正在使用错误的XMLConstants变量,但我不确定使用哪一个,或者这是否可行.

另外一点,我知道现有的XML Maven插件,但是我无法使用它来处理faceface-facelib.如果有人知道如何使用taglib,请告诉我们!

任何帮助将不胜感激!

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

点赞