1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-07-29 11:41:22 +03:00

more cleanup in make tests more work in the transition to the new error

* Makefile.am: more cleanup in make tests
* error.c valid.c parser.c include/libxml/xmlerror.h: more work
  in the transition to the new error reporting strategy.
* python/tests/reader2.py  result/VC/* result/valid/*:
  few changes in the strings generated by the validation output
Daniel
This commit is contained in:
Daniel Veillard
2003-10-03 22:21:51 +00:00
parent 2b8c4a151b
commit bb5ababa28
26 changed files with 677 additions and 504 deletions

310
parser.c
View File

@ -128,6 +128,7 @@ xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt,
* *
************************************************************************/
/**
* xmlErrMemory:
* @ctxt: an XML parser context
@ -144,13 +145,14 @@ xmlErrMemory(xmlParserCtxtPtr ctxt, const char *extra)
ctxt->disableSAX = 1;
}
if (extra)
xmlRaiseError(ctxt, XML_FROM_PARSER, XML_ERR_NO_MEMORY,
XML_ERR_FATAL, NULL, 0, extra, NULL, NULL, 0, 0,
"Memory allocation failed : %s\n", extra);
__xmlRaiseError(NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, extra,
NULL, NULL, 0, 0,
"Memory allocation failed : %s\n", extra);
else
xmlRaiseError(ctxt, XML_FROM_PARSER, XML_ERR_NO_MEMORY,
XML_ERR_FATAL, NULL, 0, NULL, NULL, NULL, 0, 0,
"Memory allocation failed\n");
__xmlRaiseError(NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, NULL,
NULL, NULL, 0, 0, "Memory allocation failed\n");
}
/**
@ -167,14 +169,16 @@ xmlErrAttributeDup(xmlParserCtxtPtr ctxt, const xmlChar * prefix,
{
ctxt->errNo = XML_ERR_ATTRIBUTE_REDEFINED;
if (prefix == NULL)
xmlRaiseError(ctxt, XML_FROM_PARSER, ctxt->errNo, XML_ERR_FATAL,
NULL, 0, (const char *) localname, NULL, NULL, 0, 0,
"Attribute %s redefined\n", localname);
__xmlRaiseError(NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
ctxt->errNo, XML_ERR_FATAL, NULL, 0,
(const char *) localname, NULL, NULL, 0, 0,
"Attribute %s redefined\n", localname);
else
xmlRaiseError(ctxt, XML_FROM_PARSER, ctxt->errNo, XML_ERR_FATAL,
NULL, 0, (const char *) prefix,
(const char *) localname, NULL, 0, 0,
"Attribute %s:%s redefined\n", prefix, localname);
__xmlRaiseError(NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
ctxt->errNo, XML_ERR_FATAL, NULL, 0,
(const char *) prefix, (const char *) localname,
NULL, 0, 0, "Attribute %s:%s redefined\n", prefix,
localname);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0)
ctxt->disableSAX = 1;
@ -189,190 +193,193 @@ xmlErrAttributeDup(xmlParserCtxtPtr ctxt, const xmlChar * prefix,
* Handle a fatal parser error, i.e. violating Well-Formedness constraints
*/
static void
xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char * info)
xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info)
{
const char *errmsg;
switch (error) {
case XML_ERR_INVALID_HEX_CHARREF:
errmsg = "CharRef: invalid hexadecimal value\n";
break;
errmsg = "CharRef: invalid hexadecimal value\n";
break;
case XML_ERR_INVALID_DEC_CHARREF:
errmsg = "CharRef: invalid decimal value\n";
break;
errmsg = "CharRef: invalid decimal value\n";
break;
case XML_ERR_INVALID_CHARREF:
errmsg = "CharRef: invalid value\n";
break;
errmsg = "CharRef: invalid value\n";
break;
case XML_ERR_INTERNAL_ERROR:
errmsg = "internal error";
break;
errmsg = "internal error";
break;
case XML_ERR_PEREF_AT_EOF:
errmsg = "PEReference at end of document\n";
break;
errmsg = "PEReference at end of document\n";
break;
case XML_ERR_PEREF_IN_PROLOG:
errmsg = "PEReference in prolog\n";
break;
errmsg = "PEReference in prolog\n";
break;
case XML_ERR_PEREF_IN_EPILOG:
errmsg = "PEReference in epilog\n";
break;
errmsg = "PEReference in epilog\n";
break;
case XML_ERR_PEREF_NO_NAME:
errmsg = "PEReference: no name\n";
break;
errmsg = "PEReference: no name\n";
break;
case XML_ERR_PEREF_SEMICOL_MISSING:
errmsg = "PEReference: expecting ';'\n";
break;
errmsg = "PEReference: expecting ';'\n";
break;
case XML_ERR_ENTITY_LOOP:
errmsg = "Detected an entity reference loop\n";
break;
errmsg = "Detected an entity reference loop\n";
break;
case XML_ERR_ENTITY_NOT_STARTED:
errmsg = "EntityValue: \" or ' expected\n";
break;
errmsg = "EntityValue: \" or ' expected\n";
break;
case XML_ERR_ENTITY_PE_INTERNAL:
errmsg = "PEReferences forbidden in internal subset\n";
break;
errmsg = "PEReferences forbidden in internal subset\n";
break;
case XML_ERR_ENTITY_NOT_FINISHED:
errmsg = "EntityValue: \" or ' expected\n";
break;
errmsg = "EntityValue: \" or ' expected\n";
break;
case XML_ERR_ATTRIBUTE_NOT_STARTED:
errmsg = "AttValue: \" or ' expected\n";
break;
errmsg = "AttValue: \" or ' expected\n";
break;
case XML_ERR_LT_IN_ATTRIBUTE:
errmsg = "Unescaped '<' not allowed in attributes values\n";
break;
errmsg = "Unescaped '<' not allowed in attributes values\n";
break;
case XML_ERR_LITERAL_NOT_STARTED:
errmsg = "SystemLiteral \" or ' expected\n";
break;
errmsg = "SystemLiteral \" or ' expected\n";
break;
case XML_ERR_LITERAL_NOT_FINISHED:
errmsg = "Unfinished System or Public ID \" or ' expected\n";
break;
errmsg = "Unfinished System or Public ID \" or ' expected\n";
break;
case XML_ERR_MISPLACED_CDATA_END:
errmsg = "Sequence ']]>' not allowed in content\n";
break;
errmsg = "Sequence ']]>' not allowed in content\n";
break;
case XML_ERR_URI_REQUIRED:
errmsg = "SYSTEM or PUBLIC, the URI is missing\n";
break;
errmsg = "SYSTEM or PUBLIC, the URI is missing\n";
break;
case XML_ERR_PUBID_REQUIRED:
errmsg = "PUBLIC, the Public Identifier is missing\n";
break;
errmsg = "PUBLIC, the Public Identifier is missing\n";
break;
case XML_ERR_HYPHEN_IN_COMMENT:
errmsg = "Comment must not contain '--' (double-hyphen)\n";
break;
errmsg = "Comment must not contain '--' (double-hyphen)\n";
break;
case XML_ERR_PI_NOT_STARTED:
errmsg = "xmlParsePI : no target name\n";
break;
errmsg = "xmlParsePI : no target name\n";
break;
case XML_ERR_RESERVED_XML_NAME:
errmsg = "Invalid PI name\n";
break;
errmsg = "Invalid PI name\n";
break;
case XML_ERR_NOTATION_NOT_STARTED:
errmsg = "NOTATION: Name expected here\n";
break;
errmsg = "NOTATION: Name expected here\n";
break;
case XML_ERR_NOTATION_NOT_FINISHED:
errmsg = "'>' required to close NOTATION declaration\n";
break;
errmsg = "'>' required to close NOTATION declaration\n";
break;
case XML_ERR_VALUE_REQUIRED:
errmsg = "Entity value required\n";
break;
errmsg = "Entity value required\n";
break;
case XML_ERR_URI_FRAGMENT:
errmsg = "Fragment not allowed";
break;
errmsg = "Fragment not allowed";
break;
case XML_ERR_ATTLIST_NOT_STARTED:
errmsg = "'(' required to start ATTLIST enumeration\n";
break;
errmsg = "'(' required to start ATTLIST enumeration\n";
break;
case XML_ERR_NMTOKEN_REQUIRED:
errmsg = "NmToken expected in ATTLIST enumeration\n";
break;
errmsg = "NmToken expected in ATTLIST enumeration\n";
break;
case XML_ERR_ATTLIST_NOT_FINISHED:
errmsg = "')' required to finish ATTLIST enumeration\n";
break;
errmsg = "')' required to finish ATTLIST enumeration\n";
break;
case XML_ERR_MIXED_NOT_STARTED:
errmsg = "MixedContentDecl : '|' or ')*' expected\n";
break;
errmsg = "MixedContentDecl : '|' or ')*' expected\n";
break;
case XML_ERR_PCDATA_REQUIRED:
errmsg = "MixedContentDecl : '#PCDATA' expected\n";
break;
errmsg = "MixedContentDecl : '#PCDATA' expected\n";
break;
case XML_ERR_ELEMCONTENT_NOT_STARTED:
errmsg = "ContentDecl : Name or '(' expected\n";
break;
errmsg = "ContentDecl : Name or '(' expected\n";
break;
case XML_ERR_ELEMCONTENT_NOT_FINISHED:
errmsg = "ContentDecl : ',' '|' or ')' expected\n";
break;
errmsg = "ContentDecl : ',' '|' or ')' expected\n";
break;
case XML_ERR_PEREF_IN_INT_SUBSET:
errmsg = "PEReference: forbidden within markup decl in internal subset\n";
break;
errmsg =
"PEReference: forbidden within markup decl in internal subset\n";
break;
case XML_ERR_GT_REQUIRED:
errmsg = "expected '>'\n";
break;
errmsg = "expected '>'\n";
break;
case XML_ERR_CONDSEC_INVALID:
errmsg = "XML conditional section '[' expected\n";
break;
errmsg = "XML conditional section '[' expected\n";
break;
case XML_ERR_EXT_SUBSET_NOT_FINISHED:
errmsg = "Content error in the external subset\n";
break;
case XML_ERR_CONDSEC_INVALID_KEYWORD:
errmsg = "conditional section INCLUDE or IGNORE keyword expected\n";
break;
errmsg = "Content error in the external subset\n";
break;
case XML_ERR_CONDSEC_INVALID_KEYWORD:
errmsg =
"conditional section INCLUDE or IGNORE keyword expected\n";
break;
case XML_ERR_CONDSEC_NOT_FINISHED:
errmsg = "XML conditional section not closed\n";
break;
errmsg = "XML conditional section not closed\n";
break;
case XML_ERR_XMLDECL_NOT_STARTED:
errmsg = "Text declaration '<?xml' required\n";
break;
errmsg = "Text declaration '<?xml' required\n";
break;
case XML_ERR_XMLDECL_NOT_FINISHED:
errmsg = "parsing XML declaration: '?>' expected\n";
break;
errmsg = "parsing XML declaration: '?>' expected\n";
break;
case XML_ERR_EXT_ENTITY_STANDALONE:
errmsg = "external parsed entities cannot be standalone\n";
break;
errmsg = "external parsed entities cannot be standalone\n";
break;
case XML_ERR_ENTITYREF_SEMICOL_MISSING:
errmsg = "EntityRef: expecting ';'\n";
break;
errmsg = "EntityRef: expecting ';'\n";
break;
case XML_ERR_DOCTYPE_NOT_FINISHED:
errmsg = "DOCTYPE improperly terminated\n";
break;
errmsg = "DOCTYPE improperly terminated\n";
break;
case XML_ERR_LTSLASH_REQUIRED:
errmsg = "EndTag: '</' not found\n";
break;
errmsg = "EndTag: '</' not found\n";
break;
case XML_ERR_EQUAL_REQUIRED:
errmsg = "expected '='\n";
break;
errmsg = "expected '='\n";
break;
case XML_ERR_STRING_NOT_CLOSED:
errmsg = "String not closed expecting \" or '\n";
break;
errmsg = "String not closed expecting \" or '\n";
break;
case XML_ERR_STRING_NOT_STARTED:
errmsg = "String not started expecting ' or \"\n";
break;
errmsg = "String not started expecting ' or \"\n";
break;
case XML_ERR_ENCODING_NAME:
errmsg = "Invalid XML encoding name\n";
break;
errmsg = "Invalid XML encoding name\n";
break;
case XML_ERR_STANDALONE_VALUE:
errmsg = "standalone accepts only 'yes' or 'no'\n";
break;
errmsg = "standalone accepts only 'yes' or 'no'\n";
break;
case XML_ERR_DOCUMENT_EMPTY:
errmsg = "Document is empty\n";
break;
errmsg = "Document is empty\n";
break;
case XML_ERR_DOCUMENT_END:
errmsg = "Extra content at the end of the document\n";
break;
errmsg = "Extra content at the end of the document\n";
break;
case XML_ERR_NOT_WELL_BALANCED:
errmsg = "chunk is not well balanced\n";
break;
errmsg = "chunk is not well balanced\n";
break;
case XML_ERR_EXTRA_CONTENT:
errmsg = "extra content at the end of well balanced chunk\n";
break;
errmsg = "extra content at the end of well balanced chunk\n";
break;
case XML_ERR_VERSION_MISSING:
errmsg = "Malformed declaration expecting version\n";
break;
errmsg = "Malformed declaration expecting version\n";
break;
#if 0
case :
errmsg = "\n";
break;
case:
errmsg = "\n";
break;
#endif
default:
errmsg = "Unregistered error message\n";
default:
errmsg = "Unregistered error message\n";
}
ctxt->errNo = error;
xmlRaiseError(ctxt, XML_FROM_PARSER, error, XML_ERR_FATAL,
NULL, 0, info, NULL, NULL, 0, 0, errmsg, info);
__xmlRaiseError(NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, errmsg,
info);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0)
ctxt->disableSAX = 1;
@ -387,11 +394,12 @@ xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char * info)
* Handle a fatal parser error, i.e. violating Well-Formedness constraints
*/
static void
xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *msg)
xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg)
{
ctxt->errNo = error;
xmlRaiseError(ctxt, XML_FROM_PARSER, error, XML_ERR_FATAL,
NULL, 0, NULL, NULL, NULL, 0, 0, msg);
__xmlRaiseError(NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
XML_ERR_FATAL, NULL, 0, NULL, NULL, NULL, 0, 0, msg);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0)
ctxt->disableSAX = 1;
@ -408,11 +416,12 @@ xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *msg)
*/
static void
xmlFatalErrMsgInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, int val)
const char *msg, int val)
{
ctxt->errNo = error;
xmlRaiseError(ctxt, XML_FROM_PARSER, error, XML_ERR_FATAL,
NULL, 0, NULL, NULL, NULL, val, 0, msg, val);
__xmlRaiseError(NULL, NULL,
ctxt, NULL, XML_FROM_PARSER, error, XML_ERR_FATAL,
NULL, 0, NULL, NULL, NULL, val, 0, msg, val);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0)
ctxt->disableSAX = 1;
@ -429,11 +438,13 @@ xmlFatalErrMsgInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
*/
static void
xmlFatalErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar *val)
const char *msg, const xmlChar * val)
{
ctxt->errNo = error;
xmlRaiseError(ctxt, XML_FROM_PARSER, error, XML_ERR_FATAL,
NULL, 0, (const char *) val, NULL, NULL, 0, 0, msg, val);
__xmlRaiseError(NULL, NULL, ctxt, NULL,
XML_FROM_PARSER, error, XML_ERR_FATAL,
NULL, 0, (const char *) val, NULL, NULL, 0, 0, msg,
val);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0)
ctxt->disableSAX = 1;
@ -452,13 +463,14 @@ xmlFatalErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
static void
xmlNsErr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg,
const xmlChar *info1, const xmlChar *info2, const xmlChar *info3)
const xmlChar * info1, const xmlChar * info2,
const xmlChar * info3)
{
ctxt->errNo = error;
xmlRaiseError(ctxt, XML_FROM_NAMESPACE, error, XML_ERR_ERROR,
NULL, 0, (const char *) info1, (const char *) info2,
(const char *) info3, 0, 0,
msg, info1, info2, info3);
__xmlRaiseError(NULL, NULL, ctxt, NULL, XML_FROM_NAMESPACE, error,
XML_ERR_ERROR, NULL, 0, (const char *) info1,
(const char *) info2, (const char *) info3, 0, 0, msg,
info1, info2, info3);
ctxt->nsWellFormed = 0;
}
@ -2375,7 +2387,7 @@ xmlStrPrintf(xmlChar *buf, int len, const xmlChar *msg, ...) {
}
va_start(args, msg);
ret = vsnprintf(BAD_CAST buf, len, BAD_CAST msg, args);
ret = vsnprintf((char *) buf, len, (const char *) msg, args);
va_end(args);
return(ret);