Hi!
It seems that libxslt allows for an xsl:template to be created without name or
match attribute. This isn’t allowed by the standard and sometimes my
colleagues forget and then wonder why things don’t work :-).
A simple check in xsltAddTemplate would suffice, for example,
diff --git a/libxslt/pattern.c b/libxslt/pattern.c
index 32de1b48..597b6b44 100644
--- a/libxslt/pattern.c
+++ b/libxslt/pattern.c
@@ -2131,8 +2131,15 @@ xsltAddTemplate(xsltStylesheetPtr style, xsltTemplatePtr
cur,
xmlHashAddEntry2(style->namedTemplates, cur->name, cur->nameURI, cur);
}
- if (cur->match == NULL)
+ if (cur->match == NULL) {
+ if (cur->name == NULL) {
+ xsltTransformError(NULL, style, cur->elem,
+ "xsl:template: need to specify match or name attribute\n");
+ style->errors++;
+ return(-1);
+ }
return(0);
+ }
priority = cur->priority;
pat = xsltCompilePatternInternal(cur->match, style->doc, cur->elem,
but I couldn’t quite figure out the structure of the tests directory, so I
didn’t write a test for this. Any help in this area would be appreciated.
Nikolai
_______________________________________________
xslt mailing list, project page http://xmlsoft.org/XSLT/
[email protected]
https://mail.gnome.org/mailman/listinfo/xslt