@@ -27,9 +27,9 @@ #include #ifndef TDOM_NO_SCHEMA -#include +#include #include #ifdef _MSC_VER #include @@ -503,9 +503,9 @@ } /* Fall through. */ case SCHEMA_CTYPE_CHOICE: case SCHEMA_CTYPE_INTERLEAVE: - fprintf (stderr, "\t%d children\n", pattern->nc); + fprintf (stderr, "\t%d childs\n", pattern->nc); break; case SCHEMA_CTYPE_ANY: if (pattern->namespace) { fprintf (stderr, "\tNamespace: '%s'\n", @@ -907,17 +907,10 @@ sdata->contentSize = CONTENT_ARRAY_SIZE_INIT; } } if (quant == SCHEMA_CQUANT_NM) { - int i, newChilds, thisquant; - if (m == -1) { - m = n + 1; - newChilds = m; - thisquant = SCHEMA_CQUANT_REP; - } else { - newChilds = (n >= m) ? n : m; - thisquant = SCHEMA_CQUANT_OPT; - } + int i; + int newChilds = (n >= m) ? n : m; while (sdata->cp->nc + newChilds >= sdata->contentSize) { sdata->cp->content = REALLOC (sdata->cp->content, 2 * sdata->contentSize @@ -933,9 +926,9 @@ sdata->cp->quants[sdata->cp->nc+i] = SCHEMA_CQUANT_ONE; } for (i = n; i < m; i++) { sdata->cp->content[sdata->cp->nc+i] = pattern; - sdata->cp->quants[sdata->cp->nc+i] = thisquant; + sdata->cp->quants[sdata->cp->nc+i] = SCHEMA_CQUANT_OPT; } sdata->cp->nc = sdata->cp->nc + newChilds; } else { if (sdata->cp->nc == sdata->contentSize) { @@ -2237,9 +2230,9 @@ 0 means rewind with validation error. 1 means element content may end here. - 2 means recovering requested further error reporting about missing children + 2 means recovering requested further error reporting about missing childs in the current element. To be able to answer a [info expected] on the occasion of the next error, we update the stack in this case and let tDOM_probeElementEnd restart checkElementEnd again with this stack state. @@ -5435,33 +5428,23 @@ SetResult ("Invalid quant specifier"); return SCHEMA_CQUANT_ERROR; } Tcl_ListObjIndex (interp, quantObj, 1, &thisObj); - if (Tcl_GetIntFromObj (interp, thisObj, m) == TCL_OK) { - if (*n > *m) { - SetResult ("Invalid quant specifier"); - return SCHEMA_CQUANT_ERROR; - } - if (*n == 0 && *m == 1) { - return SCHEMA_CQUANT_OPT; - } - if (*n == 1 && *m == 1) { - return SCHEMA_CQUANT_ONE; - } - return SCHEMA_CQUANT_NM; - } else { - quantStr = Tcl_GetStringFromObj (thisObj, &len); - if (len == 1 && quantStr[0] == '*') { - if (*n == 0) { - return SCHEMA_CQUANT_REP; - } - *m = -1; - return SCHEMA_CQUANT_NM; - } else { - SetResult ("Invalid quant specifier"); - return SCHEMA_CQUANT_ERROR; - } + if (Tcl_GetIntFromObj (interp, thisObj, m) != TCL_OK) { + SetResult ("Invalid quant specifier"); + return SCHEMA_CQUANT_ERROR; } + if (*n > *m) { + SetResult ("Invalid quant specifier"); + return SCHEMA_CQUANT_ERROR; + } + if (*n == 0 && *m == 1) { + return SCHEMA_CQUANT_OPT; + } + if (*n == 1 && *m == 1) { + return SCHEMA_CQUANT_ONE; + } + return SCHEMA_CQUANT_NM; } /* Implements the schema definition command "any" */ static int @@ -8521,9 +8504,9 @@ CHECK_TI checkNrArgs (2,2,"Expected: "); h = Tcl_FindHashEntry (&sdata->textDef, Tcl_GetString (objv[1])); if (!h) { - SetResult3 ("Unknown text type \"", Tcl_GetString (objv[1]), "\""); + SetResult3 ("Unknown text type \"", Tcl_GetString (objv[2]), "\""); return TCL_ERROR; } ADD_CONSTRAINT (sdata, sc) sc->constraint = typeImpl;