diff --git a/ChangeLog b/ChangeLog index 1ce22afc..1d67e6aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Sep 8 11:04:27 CEST 2004 Kasimier Buchcik + + * xmlschemas.c include/libxml/xmlschemas.h: Added the function + xmlSchemaValidateOneElement to the XML Schema validation API, + as proposed by Jeffrey Fink - see bug # 152073. + Tue Sep 7 11:10:36 CEST 2004 Daniel Veillard * configure.in doc/Makefile.am xstc/Makefile.am: some cleanup diff --git a/include/libxml/xmlschemas.h b/include/libxml/xmlschemas.h index baf5dbfa..933244c3 100644 --- a/include/libxml/xmlschemas.h +++ b/include/libxml/xmlschemas.h @@ -125,6 +125,9 @@ XMLPUBFUN void XMLCALL XMLPUBFUN int XMLCALL xmlSchemaValidateDoc (xmlSchemaValidCtxtPtr ctxt, xmlDocPtr instance); +XMLPUBFUN int XMLCALL + xmlSchemaValidateOneElement (xmlSchemaValidCtxtPtr ctxt, + xmlNodePtr elem); XMLPUBFUN int XMLCALL xmlSchemaValidateStream (xmlSchemaValidCtxtPtr ctxt, xmlParserInputBufferPtr input, diff --git a/xmlschemas.c b/xmlschemas.c index ce4b5589..12cc8c13 100644 --- a/xmlschemas.c +++ b/xmlschemas.c @@ -14275,6 +14275,28 @@ xmlSchemaValidateElement(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem) return (ctxt->err); } +/** + * xmlSchemaValidateOneElement: + * @ctxt: a schema validation context + * @elem: an element node + * + * Validate a branch of a tree, starting with the given @elem. + * + * Returns 0 if the element and its subtree is valid, a positive error + * code number otherwise and -1 in case of an internal or API error. + */ +int +xmlSchemaValidateOneElement(xmlSchemaValidCtxtPtr ctxt, xmlNodePtr elem) +{ + if ((ctxt == NULL) || (elem == NULL)) + return (-1); + + ctxt->doc = elem->doc; + ctxt->err = 0; + ctxt->nberrors = 0; + return (xmlSchemaValidateElement(ctxt, elem)); +} + /** * xmlSchemaValidateDocument: * @ctxt: a schema validation context