Lines Matching defs:pattern
12 * - multiple rules applying in a single pattern/node
34 #include <libxml/pattern.h>
103 xmlSchematronRulePtr patnext;/* the next rule in the pattern list */
107 xmlPatternPtr pattern; /* the compiled pattern associated */
114 * A Schematrons pattern
119 xmlSchematronPatternPtr next;/* the next pattern in the list */
121 xmlChar *name; /* the name of the pattern */
394 xmlPatternPtr pattern;
401 * Try first to compile the pattern
403 pattern = xmlPatterncompile(context, ctxt->dict, XML_PATTERN_XPATH,
405 if (pattern == NULL) {
420 ret->pattern = pattern;
461 if (rules->pattern)
462 xmlFreePattern(rules->pattern);
474 * @node: the node hosting the pattern
475 * @id: the id or name of the pattern
477 * Add a pattern to a schematron
492 xmlSchematronPErrMemory(ctxt, "allocating schema pattern", node);
848 xmlSchematronPatternPtr pattern,
876 ruleptr = xmlSchematronAddRule(ctxt, ctxt->schema, pattern,
952 * @pat: the pattern node
954 * parse a pattern element
960 xmlSchematronPatternPtr pattern;
970 pattern = xmlSchematronAddPattern(ctxt, ctxt->schema, pat, id);
971 if (pattern == NULL) {
980 xmlSchematronParseRule(ctxt, pattern, cur);
1192 if (IS_SCHEMATRON(cur, "pattern")) {
1198 "Expecting a pattern element instead of %s", cur->name, NULL);
1206 "The schematron document '%s' has no pattern",
1369 xmlSchematronTestPtr test, xmlNodePtr cur, xmlSchematronPatternPtr pattern, int success) {
1425 (pattern == NULL)?NULL:((const char *) pattern->name),
1443 * @pattern: the current pattern
1445 * called from the validation engine when starting to check a pattern
1449 xmlSchematronPatternPtr pattern) {
1450 if ((ctxt == NULL) || (pattern == NULL))
1452 if ((ctxt->flags & XML_SCHEMATRON_OUT_QUIET) || (ctxt->flags & XML_SCHEMATRON_OUT_ERROR)) /* Error gives pattern name as part of error */
1459 if (pattern->name == NULL)
1461 snprintf(msg, 999, "Pattern: %s\n", (const char *) pattern->name);
1601 xmlSchematronTestPtr test, xmlDocPtr instance, xmlNodePtr cur, xmlSchematronPatternPtr pattern)
1648 xmlSchematronReportSuccess(ctxt, test, cur, pattern, !failed);
1667 xmlSchematronPatternPtr pattern;
1691 if (xmlPatternMatch(rule->pattern, cur) == 1) {
1694 xmlSchematronRunTest(ctxt, test, instance, cur, (xmlSchematronPatternPtr)rule->pattern);
1707 pattern = ctxt->schema->patterns;
1709 while (pattern != NULL) {
1710 xmlSchematronReportPattern(ctxt, pattern);
1713 * TODO convert the pattern rule to a direct XPath and
1714 * compute directly instead of using the pattern matching
1720 rule = pattern->rules;
1722 if (xmlPatternMatch(rule->pattern, cur) == 1) {
1725 xmlSchematronRunTest(ctxt, test, instance, cur, pattern);
1734 pattern = pattern->next;