The lesson of the day is
"never forget an epsilon transition or DocBook will raise it"
- valid.c: forgot an epsilon transition in for ()+
- test/VCM/v21.xml : added a specific test case
Daniel
diff --git a/valid.c b/valid.c
index b8077b4..4e9bcfb 100644
--- a/valid.c
+++ b/valid.c
@@ -3590,7 +3590,8 @@
if ((consumed) && (CONT != NULL) &&
(CONT->parent != NULL) &&
((CONT->ocur == XML_ELEMENT_CONTENT_MULT) ||
- (CONT->ocur == XML_ELEMENT_CONTENT_OPT))) {
+ (CONT->ocur == XML_ELEMENT_CONTENT_OPT) ||
+ ((CONT->ocur == XML_ELEMENT_CONTENT_PLUS) && (OCCURENCE)))) {
DEBUG_VALID_MSG("saving parent branch");
vstateVPush(ctxt, CONT, NODE, DEPTH, OCCURS, ROLLBACK_PARENT);
}