summaryrefslogtreecommitdiffstats
path: root/tclxml/docObj.c
diff options
context:
space:
mode:
Diffstat (limited to 'tclxml/docObj.c')
-rw-r--r--tclxml/docObj.c1832
1 files changed, 0 insertions, 1832 deletions
diff --git a/tclxml/docObj.c b/tclxml/docObj.c
deleted file mode 100644
index b91ab1f..0000000
--- a/tclxml/docObj.c
+++ /dev/null
@@ -1,1832 +0,0 @@
-/* docObj.c --
- *
- * This module manages libxml2 xmlDocPtr Tcl objects.
- *
- * Copyright (c) 2005 by Explain.
- * http://www.explain.com.au/
- * Copyright (c) 2003-2004 Zveno Pty Ltd
- * http://www.zveno.com/
- *
- * See the file "LICENSE" for information on usage and
- * redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * $Id: docObj.c,v 1.1.1.1 2009/01/16 22:11:49 joye Exp $
- */
-
-#include <tclxml-libxml2/tclxml-libxml2.h>
-#include <libxml/xmlerror.h>
-#include <string.h>
-
-#define TCL_DOES_STUBS \
- (TCL_MAJOR_VERSION > 8 || TCL_MAJOR_VERSION == 8 && (TCL_MINOR_VERSION > 1 || \
- (TCL_MINOR_VERSION == 1 && TCL_RELEASE_LEVEL == TCL_FINAL_RELEASE)))
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLEXPORT
-
-/*
- * Basic list for tracking Tcl_Obj's for a document.
- */
-
-typedef struct ObjList {
- Tcl_Obj *objPtr;
- struct ObjList *next;
-} ObjList;
-
-/*
- * Prototypes for procedures defined later in this file:
- */
-
-static void DestroyTclDoc _ANSI_ARGS_((TclXML_libxml2_Document *tDocPtr));
-
-Tcl_FreeInternalRepProc TclXMLlibxml2_DocFree;
-Tcl_DupInternalRepProc TclXMLlibxml2_DocDup;
-Tcl_UpdateStringProc TclXMLlibxml2_DocUpdate;
-Tcl_SetFromAnyProc TclXMLlibxml2_DocSetFromAny;
-
-Tcl_ObjType TclXMLlibxml2_DocObjType = {
- "libxml2-doc",
- TclXMLlibxml2_DocFree,
- TclXMLlibxml2_DocDup,
- TclXMLlibxml2_DocUpdate,
- TclXMLlibxml2_DocSetFromAny
-};
-
-typedef struct ThreadSpecificData {
- int initialized;
-
- /*
- * Hash table for mapping string rep to doc structure.
- */
-
- Tcl_HashTable *documents;
- int docCntr;
-
- /*
- * Hash table for tracking doc objects.
- */
-
- Tcl_HashTable *docByPtr;
-
- /*
- * Structured error handling
- */
-
- TclXML_ErrorInfo *errorInfoPtr;
-
-} ThreadSpecificData;
-static Tcl_ThreadDataKey dataKey;
-
-/*
- * libxml2 is mostly thread-safe, but just-in-case use a mutex to control access.
- */
-
-TCL_DECLARE_MUTEX(libxml2)
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXML_libxml2_InitDocObj --
- *
- * Initialise this module.
- *
- * Results:
- * Returns success code
- *
- * Side effects:
- * Memory may be allocated
- *
- *----------------------------------------------------------------------------
- */
-
-int
-TclXML_libxml2_InitDocObj(interp)
- Tcl_Interp *interp;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
-
- tsdPtr->initialized = 1;
- tsdPtr->documents = (Tcl_HashTable *) Tcl_Alloc(sizeof(Tcl_HashTable));
- Tcl_InitHashTable(tsdPtr->documents, TCL_STRING_KEYS);
- tsdPtr->docByPtr = (Tcl_HashTable *) Tcl_Alloc(sizeof(Tcl_HashTable));
- Tcl_InitHashTable(tsdPtr->docByPtr, TCL_ONE_WORD_KEYS);
-
- tsdPtr->docCntr = 0;
-
- /*
- * Setup an error handler that stores structured error info
- */
-
- tsdPtr->errorInfoPtr = (TclXML_ErrorInfo *) Tcl_Alloc(sizeof(TclXML_ErrorInfo));
- tsdPtr->errorInfoPtr->interp = interp;
- tsdPtr->errorInfoPtr->listPtr = NULL;
- tsdPtr->errorInfoPtr->nodeHandlerProc = NULL;
- xmlSetStructuredErrorFunc((void *) tsdPtr->errorInfoPtr, TclXML_libxml2_ErrorHandler);
-
- return TCL_OK;
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXML_libxml2_NewDocObj --
- *
- * Creates a new xmlDocPtr and wraps it in a Tcl_Obj.
- *
- * Results:
- * Returns a *TclObj
- *
- * Side effects:
- * Objects allocated.
- *
- *----------------------------------------------------------------------------
- */
-
-Tcl_Obj *
-TclXML_libxml2_NewDocObj(interp)
- Tcl_Interp *interp;
-{
- xmlDocPtr new;
-
- Tcl_MutexLock(&libxml2);
- new = xmlNewDoc((const xmlChar *) "1.0");
- Tcl_MutexUnlock(&libxml2);
- if (!new) {
- Tcl_SetResult(interp, "unable to create document", NULL);
- return NULL;
- }
-
- return TclXML_libxml2_CreateObjFromDoc(new);
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXML_libxml2_CreateObjFromDoc --
- *
- * Create a Tcl_Obj to wrap a xmlDocPtr.
- *
- * Results:
- * Returns Tcl_Obj*.
- *
- * Side effects:
- * Allocates object.
- *
- *----------------------------------------------------------------------------
- */
-
-Tcl_Obj *
-TclXML_libxml2_CreateObjFromDoc (docPtr)
- xmlDocPtr docPtr;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
- TclXML_libxml2_Document *tDocPtr;
- Tcl_HashEntry *entryPtr;
- Tcl_Obj *objPtr;
- ObjList *listPtr;
-
- /*
- * This xmlDocPtr may already have been wrapped by a Tcl object.
- * If so, return an already existing wrapper.
- * If not, create a new wrapper.
- */
-
- entryPtr = Tcl_FindHashEntry(tsdPtr->docByPtr, (ClientData) docPtr);
- if (entryPtr) {
- tDocPtr = (TclXML_libxml2_Document *) Tcl_GetHashValue(entryPtr);
-
- if (tDocPtr->objs) {
- /* The first object is sufficient */
- listPtr = (ObjList *) tDocPtr->objs;
- objPtr = listPtr->objPtr;
- } else {
- /* Create a new Tcl_Obj to refer to existing structure */
- objPtr = Tcl_NewObj();
-
- listPtr = (ObjList *) Tcl_Alloc(sizeof(ObjList));
- listPtr->objPtr = objPtr;
- listPtr->next = NULL;
- tDocPtr->objs = (void *) listPtr;
-
- objPtr->length = strlen(tDocPtr->token);
- objPtr->bytes = Tcl_Alloc(objPtr->length + 1);
- strcpy(objPtr->bytes, tDocPtr->token);
- objPtr->internalRep.twoPtrValue.ptr1 = (void *) tDocPtr;
- objPtr->internalRep.twoPtrValue.ptr2 = NULL;
- objPtr->typePtr = &TclXMLlibxml2_DocObjType;
- }
-
- } else {
- int new;
-
- objPtr = Tcl_NewObj();
-
- tDocPtr = (TclXML_libxml2_Document *) Tcl_Alloc(sizeof(TclXML_libxml2_Document));
- tDocPtr->docPtr = docPtr;
- tDocPtr->token = Tcl_Alloc(20);
- sprintf(tDocPtr->token, "doc%d", tsdPtr->docCntr++);
- tDocPtr->keep = TCLXML_LIBXML2_DOCUMENT_IMPLICIT;
- tDocPtr->dom = NULL;
- tDocPtr->domfree = NULL;
- tDocPtr->apphook = NULL;
- tDocPtr->appfree = NULL;
-
- listPtr = (ObjList *) Tcl_Alloc(sizeof(ObjList));
- listPtr->objPtr = objPtr;
- listPtr->next = NULL;
- tDocPtr->objs = (void *) listPtr;
-
- entryPtr = Tcl_CreateHashEntry(tsdPtr->documents, tDocPtr->token, &new);
- Tcl_SetHashValue(entryPtr, (ClientData) tDocPtr);
- entryPtr = Tcl_CreateHashEntry(tsdPtr->docByPtr, (ClientData) docPtr, &new);
- Tcl_SetHashValue(entryPtr, (ClientData) tDocPtr);
-
- objPtr->length = strlen(tDocPtr->token);
- objPtr->bytes = Tcl_Alloc(objPtr->length + 1);
- strcpy(objPtr->bytes, tDocPtr->token);
- objPtr->internalRep.twoPtrValue.ptr1 = (void *) tDocPtr;
- objPtr->internalRep.twoPtrValue.ptr2 = NULL;
- objPtr->typePtr = &TclXMLlibxml2_DocObjType;
- }
-
- /* Bug fix #1032660. David Welton. */
- Tcl_IncrRefCount(objPtr);
-
- return objPtr;
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXML_libxml2_GetDocFromObj --
- *
- * Retrieve the xmlDocPtr from a Tcl object.
- *
- * Results:
- * Returns success code.
- *
- * Side effects:
- * May set internal rep of object.
- *
- *----------------------------------------------------------------------------
- */
-
-int
-TclXML_libxml2_GetDocFromObj (interp, objPtr, docPtr)
- Tcl_Interp *interp;
- Tcl_Obj *objPtr;
- xmlDocPtr *docPtr;
-{
- TclXML_libxml2_Document *tDocPtr;
-
- if (TclXML_libxml2_GetTclDocFromObj(interp, objPtr, &tDocPtr) != TCL_OK) {
- return TCL_ERROR;
- }
-
- *docPtr = tDocPtr->docPtr;
-
- return TCL_OK;
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXML_libxml2_GetTclDocFromNode --
- *
- * Retrieve a pointer to the TclXML Doc structure from a xmlNodePtr.
- *
- * Results:
- * Returns success code.
- *
- * Side effects:
- * Sets pointer
- *
- *----------------------------------------------------------------------------
- */
-
-int
-TclXML_libxml2_GetTclDocFromNode (interp, nodePtr, tDocPtrPtr)
- Tcl_Interp *interp;
- xmlNodePtr nodePtr;
- TclXML_libxml2_Document **tDocPtrPtr;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
- Tcl_HashEntry *entryPtr;
-
- entryPtr = Tcl_FindHashEntry(tsdPtr->docByPtr, (ClientData) nodePtr->doc);
- if (!entryPtr) {
- *tDocPtrPtr = NULL;
- Tcl_SetResult(interp, "document not known", NULL);
- return TCL_ERROR;
- }
-
- *tDocPtrPtr = (TclXML_libxml2_Document *) Tcl_GetHashValue(entryPtr);
-
- return TCL_OK;
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXML_libxml2_GetTclDocFromObj --
- *
- * Retrieve the TclXML_libxml2_Document from a Tcl object.
- *
- * Results:
- * Returns success code.
- *
- * Side effects:
- * May set internal rep of object.
- *
- *----------------------------------------------------------------------------
- */
-
-int
-TclXML_libxml2_GetTclDocFromObj (interp, objPtr, tDocPtr)
- Tcl_Interp *interp;
- Tcl_Obj *objPtr;
- TclXML_libxml2_Document **tDocPtr;
-{
- if (objPtr->typePtr == &TclXMLlibxml2_DocObjType) {
- *tDocPtr = (TclXML_libxml2_Document *) objPtr->internalRep.twoPtrValue.ptr1;
- } else if (TclXMLlibxml2_DocSetFromAny(interp, objPtr) == TCL_OK) {
- *tDocPtr = (TclXML_libxml2_Document *) objPtr->internalRep.twoPtrValue.ptr1;
- } else {
- return TCL_ERROR;
- }
-
- return TCL_OK;
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXML_libxml2_DestroyDocument --
- *
- * Manage destruction of a document.
- * The trick here is to make sure that all Tcl_Obj's
- * that reference this document have their internal rep
- * invalidated.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Memory deallocated, object internal reps changed.
- *
- *----------------------------------------------------------------------------
- */
-
-void
-TclXML_libxml2_DestroyDocument (tDocPtr)
- TclXML_libxml2_Document *tDocPtr;
-{
- ObjList *listPtr = (ObjList *) tDocPtr->objs;
- ObjList *next;
-
- /*
- * Invalidate the internal representation of all Tcl_Obj's
- * that refer to this document.
- */
- while (listPtr) {
- next = listPtr->next;
- TclXMLlibxml2_DocFree(listPtr->objPtr);
- listPtr = next;
- }
-
- if (tDocPtr->keep == TCLXML_LIBXML2_DOCUMENT_KEEP) {
- DestroyTclDoc(tDocPtr);
- }
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXML_libxml2_DocKeep --
- *
- * Changes how the document's destruction is handled.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Changes document configuration.
- *
- *----------------------------------------------------------------------------
- */
-
-void
-TclXML_libxml2_DocKeep(objPtr, keep)
- Tcl_Obj *objPtr;
- TclXML_libxml2_DocumentHandling keep;
-{
- TclXML_libxml2_Document *tDocPtr;
-
- if (TclXML_libxml2_GetTclDocFromObj(NULL, objPtr, &tDocPtr) != TCL_OK) {
- return;
- }
-
- tDocPtr->keep = keep;
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXMLlibxml2_DocSetFromAny --
- *
- * Finds the xmlDocPtr wrapper for a Tcl object.
- *
- * Results:
- * Returns success code.
- *
- * Side effects:
- * Changes the Tcl_Obj's internal rep.
- *
- *----------------------------------------------------------------------------
- */
-
-int
-TclXMLlibxml2_DocSetFromAny(interp, objPtr)
- Tcl_Interp *interp;
- Tcl_Obj *objPtr;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
- Tcl_HashEntry *entryPtr;
- TclXML_libxml2_Document *tDocPtr;
- ObjList *listPtr;
-
- entryPtr = Tcl_FindHashEntry(tsdPtr->documents, Tcl_GetStringFromObj(objPtr, NULL));
-
- if (entryPtr) {
-
- if (objPtr->typePtr != NULL && objPtr->typePtr->freeIntRepProc != NULL) {
- objPtr->typePtr->freeIntRepProc(objPtr);
- }
-
- objPtr->internalRep.twoPtrValue.ptr1 = Tcl_GetHashValue(entryPtr);
- objPtr->typePtr = &TclXMLlibxml2_DocObjType;
-
- tDocPtr = (TclXML_libxml2_Document *) objPtr->internalRep.twoPtrValue.ptr1;
-
- /*
- * Add this object to the Tcl_Obj list.
- * NB. There should be no duplicates.
- */
- listPtr = (ObjList *) tDocPtr->objs;
- if (listPtr == NULL) {
- listPtr = (ObjList *) Tcl_Alloc(sizeof(ObjList));
- listPtr->objPtr = objPtr;
- listPtr->next = NULL;
- tDocPtr->objs = listPtr;
- } else {
- ObjList *newPtr;
-
- newPtr = (ObjList *) Tcl_Alloc(sizeof(ObjList));
- newPtr->objPtr = objPtr;
- newPtr->next = listPtr;
- tDocPtr->objs = (void *) newPtr;
- }
- /* SANITY CHECK NEEDED: no duplicates in the list */
-
- } else {
-
- if (interp) {
- Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, "token \"", Tcl_GetStringFromObj(objPtr, NULL), "\" is not a libxml2 document", NULL);
- }
-
- return TCL_ERROR;
- }
-
- return TCL_OK;
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXMLlibxml2_DocUpdate --
- *
- * Finds the token for a xmlDocPtr wrapper.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Changes the Tcl_Obj's string rep.
- *
- *----------------------------------------------------------------------------
- */
-
-void
-TclXMLlibxml2_DocUpdate(objPtr)
- Tcl_Obj *objPtr;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
- Tcl_HashEntry *entryPtr;
-
- entryPtr = Tcl_FindHashEntry(tsdPtr->docByPtr, objPtr->internalRep.twoPtrValue.ptr1);
- Tcl_InvalidateStringRep(objPtr);
- if (entryPtr != NULL) {
- TclXML_libxml2_Document *tDocPtr = (TclXML_libxml2_Document *) Tcl_GetHashValue(entryPtr);
- objPtr->length = strlen(tDocPtr->token);
- objPtr->bytes = Tcl_Alloc(objPtr->length + 1);
- strcpy(objPtr->bytes, tDocPtr->token);
- }
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXMLlibxml2_DocDup --
- *
- * Duplicates the Tcl wrapper.
- * NB. This does *not* copy the document itself - it simply creates
- * another reference to the same document.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Changes the target Tcl_Obj.
- *
- *----------------------------------------------------------------------------
- */
-
-void
-TclXMLlibxml2_DocDup(srcPtr, dstPtr)
- Tcl_Obj *srcPtr;
- Tcl_Obj *dstPtr;
-{
- TclXML_libxml2_Document *tDocPtr;
- ObjList *listPtr;
-
- if (dstPtr->typePtr != NULL && dstPtr->typePtr->freeIntRepProc != NULL) {
- dstPtr->typePtr->freeIntRepProc(dstPtr);
- }
-
- tDocPtr = (TclXML_libxml2_Document *) srcPtr->internalRep.twoPtrValue.ptr1;
- listPtr = (ObjList *) Tcl_Alloc(sizeof(ObjList));
- listPtr->objPtr = dstPtr;
- listPtr->next = ((ObjList *) tDocPtr->objs)->next;
- tDocPtr->objs = listPtr;
-
- Tcl_InvalidateStringRep(dstPtr);
-
- dstPtr->internalRep.twoPtrValue.ptr1 = srcPtr->internalRep.twoPtrValue.ptr1;
- dstPtr->internalRep.twoPtrValue.ptr2 = NULL;
- dstPtr->typePtr = srcPtr->typePtr;
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXMLlibxml2_DocFree --
- *
- * Removes a Tcl wrapper to a libxml2 document.
- *
- * Results:
- * None.
- *
- * Side effects:
- * May free the document.
- *
- *----------------------------------------------------------------------------
- */
-
-void
-TclXMLlibxml2_DocFree(objPtr)
- Tcl_Obj *objPtr;
-{
- TclXML_libxml2_Document *tDocPtr = (TclXML_libxml2_Document *) objPtr->internalRep.twoPtrValue.ptr1;
- ObjList *listPtr = tDocPtr->objs;
- ObjList *prevPtr = NULL;
-
- while (listPtr) {
- if (listPtr->objPtr == objPtr) {
- break;
- }
- prevPtr = listPtr;
- listPtr = listPtr->next;
- }
-
- if (listPtr == NULL) {
- /* internal error */
- } else if (prevPtr == NULL) {
- tDocPtr->objs = listPtr->next;
- } else {
- prevPtr->next = listPtr->next;
- }
- Tcl_Free((char *) listPtr);
-
- if (tDocPtr->objs == NULL && tDocPtr->keep == TCLXML_LIBXML2_DOCUMENT_IMPLICIT) {
- DestroyTclDoc(tDocPtr);
- }
-
- objPtr->internalRep.twoPtrValue.ptr1 = NULL;
- objPtr->internalRep.twoPtrValue.ptr2 = NULL;
- objPtr->typePtr = NULL;
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * DestroyTclDoc --
- *
- * Destroy the Tcl wrapper for a document.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Free memory.
- *
- *----------------------------------------------------------------------------
- */
-
-void
-DestroyTclDoc(tDocPtr)
- TclXML_libxml2_Document *tDocPtr;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
- Tcl_HashEntry *entryPtr;
-
- if (tDocPtr->domfree) {
- (tDocPtr->domfree)(tDocPtr->dom);
- }
- if (tDocPtr->appfree) {
- (tDocPtr->appfree)(tDocPtr->dom);
- }
-
- entryPtr = Tcl_FindHashEntry(tsdPtr->documents, tDocPtr->token);
- if (entryPtr) {
- Tcl_DeleteHashEntry(entryPtr);
- } else {
- /* Internal error */
- }
-
- entryPtr = Tcl_FindHashEntry(tsdPtr->docByPtr, (ClientData) tDocPtr->docPtr);
- if (entryPtr) {
- Tcl_DeleteHashEntry(entryPtr);
- } else {
- /* Internal error */
- }
-
- Tcl_MutexLock(&libxml2);
- xmlFreeDoc(tDocPtr->docPtr);
- Tcl_MutexUnlock(&libxml2);
-
- Tcl_Free(tDocPtr->token);
- Tcl_Free((char *) tDocPtr);
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * TclXML_libxml2_ErrorHandler --
- *
- * Handler for structured error reports
- *
- * Results:
- * None.
- *
- * Side effects:
- * Creates a Tcl_Obj to store the error information.
- *
- *----------------------------------------------------------------------------
- */
-
-static Tcl_Obj *
-ErrorDomainToString(domain)
- int domain;
-{
- switch ((xmlErrorDomain) domain) {
- case XML_FROM_NONE:
- return Tcl_NewStringObj("none", -1);
- case XML_FROM_PARSER:
- return Tcl_NewStringObj("parser", -1);
- case XML_FROM_TREE:
- return Tcl_NewStringObj("tree", -1);
- case XML_FROM_NAMESPACE:
- return Tcl_NewStringObj("namespace", -1);
- case XML_FROM_DTD:
- return Tcl_NewStringObj("dtd-validation", -1);
- case XML_FROM_HTML:
- return Tcl_NewStringObj("html-parser", -1);
- case XML_FROM_MEMORY:
- return Tcl_NewStringObj("memory", -1);
- case XML_FROM_OUTPUT:
- return Tcl_NewStringObj("output", -1);
- case XML_FROM_IO:
- return Tcl_NewStringObj("io", -1);
- case XML_FROM_FTP:
- return Tcl_NewStringObj("ftp", -1);
- case XML_FROM_HTTP:
- return Tcl_NewStringObj("http", -1);
- case XML_FROM_XINCLUDE:
- return Tcl_NewStringObj("XInclude", -1);
- case XML_FROM_XPOINTER:
- return Tcl_NewStringObj("XPointer", -1);
- case XML_FROM_REGEXP:
- return Tcl_NewStringObj("regexp", -1);
- case XML_FROM_DATATYPE:
- return Tcl_NewStringObj("schemas-datatype", -1);
- case XML_FROM_SCHEMASP:
- return Tcl_NewStringObj("schemas-parser", -1);
- case XML_FROM_SCHEMASV:
- return Tcl_NewStringObj("schemas-validation", -1);
- case XML_FROM_RELAXNGP:
- return Tcl_NewStringObj("relaxng-parser", -1);
- case XML_FROM_RELAXNGV:
- return Tcl_NewStringObj("relaxng-validation", -1);
- case XML_FROM_CATALOG:
- return Tcl_NewStringObj("catalog", -1);
- case XML_FROM_C14N:
- return Tcl_NewStringObj("canonicalization", -1);
- case XML_FROM_XSLT:
- return Tcl_NewStringObj("xslt", -1);
- default:
- return Tcl_NewObj();
- }
-}
-
-static Tcl_Obj *
-ErrorLevelToString(level)
- xmlErrorLevel level;
-{
- switch (level) {
- case XML_ERR_WARNING:
- return Tcl_NewStringObj("warning", -1);
- case XML_ERR_ERROR:
- return Tcl_NewStringObj("error", -1);
- case XML_ERR_FATAL:
- return Tcl_NewStringObj("fatal", -1);
- case XML_ERR_NONE:
- default:
- return Tcl_NewStringObj("none", -1);
- }
-}
-
-static Tcl_Obj *
-ErrorCodeToString(code)
- int code;
-{
- switch ((xmlParserErrors) code) {
- case XML_ERR_OK:
- return Tcl_NewObj();
- case XML_ERR_INTERNAL_ERROR:
- return Tcl_NewStringObj("internal-error", -1);
- case XML_ERR_NO_MEMORY:
- return Tcl_NewStringObj("no-memory", -1);
- case XML_ERR_DOCUMENT_START:
- return Tcl_NewStringObj("document-start", -1);
- case XML_ERR_DOCUMENT_EMPTY:
- return Tcl_NewStringObj("document-empty", -1);
- case XML_ERR_DOCUMENT_END:
- return Tcl_NewStringObj("document-end", -1);
- case XML_ERR_INVALID_HEX_CHARREF:
- return Tcl_NewStringObj("invalid-hex-character-reference", -1);
- case XML_ERR_INVALID_DEC_CHARREF:
- return Tcl_NewStringObj("invalid-decimal-character-reference", -1);
- case XML_ERR_INVALID_CHARREF:
- return Tcl_NewStringObj("invalid-character-reference", -1);
- case XML_ERR_INVALID_CHAR:
- return Tcl_NewStringObj("invalid-character", -1);
- case XML_ERR_CHARREF_AT_EOF:
- return Tcl_NewStringObj("character-reference-at-eof", -1);
- case XML_ERR_CHARREF_IN_PROLOG:
- return Tcl_NewStringObj("character-reference-in-prolog", -1);
- case XML_ERR_CHARREF_IN_EPILOG:
- return Tcl_NewStringObj("character-reference-in-epilog", -1);
- case XML_ERR_CHARREF_IN_DTD:
- return Tcl_NewStringObj("character-reference-in-dtd", -1);
- case XML_ERR_ENTITYREF_AT_EOF:
- return Tcl_NewStringObj("entity-reference-at-eof", -1);
- case XML_ERR_ENTITYREF_IN_PROLOG:
- return Tcl_NewStringObj("entity-reference-in-prolog", -1);
- case XML_ERR_ENTITYREF_IN_EPILOG:
- return Tcl_NewStringObj("entity-reference-in-epilog", -1);
- case XML_ERR_ENTITYREF_IN_DTD:
- return Tcl_NewStringObj("entity-reference-in-dtd", -1);
- case XML_ERR_PEREF_AT_EOF:
- return Tcl_NewStringObj("parameter-entity-reference-at-eof", -1);
- case XML_ERR_PEREF_IN_PROLOG:
- return Tcl_NewStringObj("parameter-entity-reference-in-prolog", -1);
- case XML_ERR_PEREF_IN_EPILOG:
- return Tcl_NewStringObj("parameter-entity-reference-in-epilog", -1);
- case XML_ERR_PEREF_IN_INT_SUBSET:
- return Tcl_NewStringObj("parameter-entity-reference-in-internal-subset", -1);
- case XML_ERR_ENTITYREF_NO_NAME:
- return Tcl_NewStringObj("entity-reference-no-name", -1);
- case XML_ERR_ENTITYREF_SEMICOL_MISSING:
- return Tcl_NewStringObj("entity-reference-semicolon-missing", -1);
- case XML_ERR_PEREF_NO_NAME:
- return Tcl_NewStringObj("parameter-entity-reference-no-name", -1);
- case XML_ERR_PEREF_SEMICOL_MISSING:
- return Tcl_NewStringObj("parameter-entity-reference-semicolon-missing", -1);
- case XML_ERR_UNDECLARED_ENTITY:
- return Tcl_NewStringObj("undeclared-entity", -1);
- case XML_WAR_UNDECLARED_ENTITY:
- return Tcl_NewStringObj("undeclared-entity", -1);
- case XML_ERR_UNPARSED_ENTITY:
- return Tcl_NewStringObj("unparsed-entity", -1);
- case XML_ERR_ENTITY_IS_EXTERNAL:
- return Tcl_NewStringObj("entity-is-external", -1);
- case XML_ERR_ENTITY_IS_PARAMETER:
- return Tcl_NewStringObj("entity-is-parameter", -1);
- case XML_ERR_UNKNOWN_ENCODING:
- return Tcl_NewStringObj("unknown-encoding", -1);
- case XML_ERR_UNSUPPORTED_ENCODING:
- return Tcl_NewStringObj("unsupported-encoding", -1);
- case XML_ERR_STRING_NOT_STARTED:
- return Tcl_NewStringObj("string-not-started", -1);
- case XML_ERR_STRING_NOT_CLOSED:
- return Tcl_NewStringObj("string-not-closed", -1);
- case XML_ERR_NS_DECL_ERROR:
- return Tcl_NewStringObj("namespace-declaration-error", -1);
- case XML_ERR_ENTITY_NOT_STARTED:
- return Tcl_NewStringObj("entity-not-started", -1);
- case XML_ERR_ENTITY_NOT_FINISHED:
- return Tcl_NewStringObj("entity-not-finished", -1);
- case XML_ERR_LT_IN_ATTRIBUTE:
- return Tcl_NewStringObj("less-than-character-in-attribute", -1);
- case XML_ERR_ATTRIBUTE_NOT_STARTED:
- return Tcl_NewStringObj("attribute-not-started", -1);
- case XML_ERR_ATTRIBUTE_NOT_FINISHED:
- return Tcl_NewStringObj("attribute-not-finished", -1);
- case XML_ERR_ATTRIBUTE_WITHOUT_VALUE:
- return Tcl_NewStringObj("attribute-without-value", -1);
- case XML_ERR_ATTRIBUTE_REDEFINED:
- return Tcl_NewStringObj("attribute-redefined", -1);
- case XML_ERR_LITERAL_NOT_STARTED:
- return Tcl_NewStringObj("literal-not-started", -1);
- case XML_ERR_LITERAL_NOT_FINISHED:
- return Tcl_NewStringObj("literal-not-finished", -1);
- case XML_ERR_COMMENT_NOT_FINISHED:
- return Tcl_NewStringObj("comment-not-finished", -1);
- case XML_ERR_PI_NOT_STARTED:
- return Tcl_NewStringObj("processing-instruction-not-started", -1);
- case XML_ERR_PI_NOT_FINISHED:
- return Tcl_NewStringObj("processing-instruction-not-finished", -1);
- case XML_ERR_NOTATION_NOT_STARTED:
- return Tcl_NewStringObj("notation-not-started", -1);
- case XML_ERR_NOTATION_NOT_FINISHED:
- return Tcl_NewStringObj("notation-not-finished", -1);
- case XML_ERR_ATTLIST_NOT_STARTED:
- return Tcl_NewStringObj("attribute-list-not-started", -1);
- case XML_ERR_ATTLIST_NOT_FINISHED:
- return Tcl_NewStringObj("attribute-list-not-finished", -1);
- case XML_ERR_MIXED_NOT_STARTED:
- return Tcl_NewStringObj("mixed-content-not-started", -1);
- case XML_ERR_MIXED_NOT_FINISHED:
- return Tcl_NewStringObj("mixed-content-not-finished", -1);
- case XML_ERR_ELEMCONTENT_NOT_STARTED:
- return Tcl_NewStringObj("element-content-not-started", -1);
- case XML_ERR_ELEMCONTENT_NOT_FINISHED:
- return Tcl_NewStringObj("element-content-not-finished", -1);
- case XML_ERR_XMLDECL_NOT_STARTED:
- return Tcl_NewStringObj("xml-declaration-not-started", -1);
- case XML_ERR_XMLDECL_NOT_FINISHED:
- return Tcl_NewStringObj("xml-declaration-not-finished", -1);
- case XML_ERR_CONDSEC_NOT_STARTED:
- return Tcl_NewStringObj("conditional-section-not-started", -1);
- case XML_ERR_CONDSEC_NOT_FINISHED:
- return Tcl_NewStringObj("conditional-section-not-finished", -1);
- case XML_ERR_EXT_SUBSET_NOT_FINISHED:
- return Tcl_NewStringObj("external-dtd-subset-not-finished", -1);
- case XML_ERR_DOCTYPE_NOT_FINISHED:
- return Tcl_NewStringObj("document-type-declaration-not-finished", -1);
- case XML_ERR_MISPLACED_CDATA_END:
- return Tcl_NewStringObj("misplaced-cdata-section-end", -1);
- case XML_ERR_CDATA_NOT_FINISHED:
- return Tcl_NewStringObj("cdata-section-not-finished", -1);
- case XML_ERR_RESERVED_XML_NAME:
- return Tcl_NewStringObj("reserved-xml-name", -1);
- case XML_ERR_SPACE_REQUIRED:
- return Tcl_NewStringObj("space-required", -1);
- case XML_ERR_SEPARATOR_REQUIRED:
- return Tcl_NewStringObj("separator-required", -1);
- case XML_ERR_NMTOKEN_REQUIRED:
- return Tcl_NewStringObj("NMTOKEN-required", -1);
- case XML_ERR_NAME_REQUIRED:
- return Tcl_NewStringObj("NAME-required", -1);
- case XML_ERR_PCDATA_REQUIRED:
- return Tcl_NewStringObj("PCDATA-required", -1);
- case XML_ERR_URI_REQUIRED:
- return Tcl_NewStringObj("URI-required", -1);
- case XML_ERR_PUBID_REQUIRED:
- return Tcl_NewStringObj("public-identifier-required", -1);
- case XML_ERR_LT_REQUIRED:
- return Tcl_NewStringObj("less-than-character-required", -1);
- case XML_ERR_GT_REQUIRED:
- return Tcl_NewStringObj("greater-than-character-required", -1);
- case XML_ERR_LTSLASH_REQUIRED:
- return Tcl_NewStringObj("less-than-and-slash-characters-required", -1);
- case XML_ERR_EQUAL_REQUIRED:
- return Tcl_NewStringObj("equal-character-required", -1);
- case XML_ERR_TAG_NAME_MISMATCH:
- return Tcl_NewStringObj("tag-name-mismatch", -1);
- case XML_ERR_TAG_NOT_FINISHED:
- return Tcl_NewStringObj("tag-not-finished", -1);
- case XML_ERR_STANDALONE_VALUE:
- return Tcl_NewStringObj("standalone-value", -1);
- case XML_ERR_ENCODING_NAME:
- return Tcl_NewStringObj("encoding-name", -1);
- case XML_ERR_HYPHEN_IN_COMMENT:
- return Tcl_NewStringObj("hyphen-in-comment", -1);
- case XML_ERR_INVALID_ENCODING:
- return Tcl_NewStringObj("invalid-encoding", -1);
- case XML_ERR_EXT_ENTITY_STANDALONE:
- return Tcl_NewStringObj("external-entity-standalone", -1);
- case XML_ERR_CONDSEC_INVALID:
- return Tcl_NewStringObj("conditional-section-invalid", -1);
- case XML_ERR_VALUE_REQUIRED:
- return Tcl_NewStringObj("value-required", -1);
- case XML_ERR_NOT_WELL_BALANCED:
- return Tcl_NewStringObj("not-well-balanced", -1);
- case XML_ERR_EXTRA_CONTENT:
- return Tcl_NewStringObj("extra-content", -1);
- case XML_ERR_ENTITY_CHAR_ERROR:
- return Tcl_NewStringObj("entity-character-error", -1);
- case XML_ERR_ENTITY_PE_INTERNAL:
- return Tcl_NewStringObj("parameter-entity-internal-error", -1);
- case XML_ERR_ENTITY_LOOP:
- return Tcl_NewStringObj("entity-loop", -1);
- case XML_ERR_ENTITY_BOUNDARY:
- return Tcl_NewStringObj("entity-boundary", -1);
- case XML_ERR_INVALID_URI:
- return Tcl_NewStringObj("invalid-URI", -1);
- case XML_ERR_URI_FRAGMENT:
- return Tcl_NewStringObj("URI-fragment", -1);
- case XML_WAR_CATALOG_PI:
- return Tcl_NewStringObj("catalog-processing-instruction", -1);
- case XML_ERR_NO_DTD:
- return Tcl_NewStringObj("no-document-type-definition", -1);
- case XML_ERR_CONDSEC_INVALID_KEYWORD:
- return Tcl_NewStringObj("conditional-section-invalid-keyword", -1);
- case XML_ERR_VERSION_MISSING:
- return Tcl_NewStringObj("version-missing", -1);
- case XML_WAR_UNKNOWN_VERSION:
- return Tcl_NewStringObj("unknown-version", -1);
- case XML_WAR_LANG_VALUE:
- return Tcl_NewStringObj("lang-value", -1);
- case XML_WAR_NS_URI:
- return Tcl_NewStringObj("namespace-uri", -1);
- case XML_WAR_NS_URI_RELATIVE:
- return Tcl_NewStringObj("namespace-uri-relative", -1);
- case XML_NS_ERR_XML_NAMESPACE:
- return Tcl_NewStringObj("xml-namespace", -1);
- case XML_NS_ERR_UNDEFINED_NAMESPACE:
- return Tcl_NewStringObj("undefined-namespace", -1);
- case XML_NS_ERR_QNAME:
- return Tcl_NewStringObj("qualified-name", -1);
- case XML_NS_ERR_ATTRIBUTE_REDEFINED:
- return Tcl_NewStringObj("attribute-redefined", -1);
- case XML_DTD_ATTRIBUTE_DEFAULT:
- return Tcl_NewStringObj("attribute-default", -1);
- case XML_DTD_ATTRIBUTE_REDEFINED:
- return Tcl_NewStringObj("attribute-redefined", -1);
- case XML_DTD_ATTRIBUTE_VALUE:
- return Tcl_NewStringObj("attribute-value", -1);
- case XML_DTD_CONTENT_ERROR:
- return Tcl_NewStringObj("content-error", -1);
- case XML_DTD_CONTENT_MODEL:
- return Tcl_NewStringObj("content-model", -1);
- case XML_DTD_CONTENT_NOT_DETERMINIST:
- return Tcl_NewStringObj("content-model-not-deterministic", -1);
- case XML_DTD_DIFFERENT_PREFIX:
- return Tcl_NewStringObj("different-prefix", -1);
- case XML_DTD_ELEM_DEFAULT_NAMESPACE:
- return Tcl_NewStringObj("element-default-namespace", -1);
- case XML_DTD_ELEM_NAMESPACE:
- return Tcl_NewStringObj("element-namespace", -1);
- case XML_DTD_ELEM_REDEFINED:
- return Tcl_NewStringObj("element-type-redefined", -1);
- case XML_DTD_EMPTY_NOTATION:
- return Tcl_NewStringObj("empty-notation", -1);
- case XML_DTD_ENTITY_TYPE:
- return Tcl_NewStringObj("entity-type", -1);
- case XML_DTD_ID_FIXED:
- return Tcl_NewStringObj("ID-fixed", -1);
- case XML_DTD_ID_REDEFINED:
- return Tcl_NewStringObj("ID-redefined", -1);
- case XML_DTD_ID_SUBSET:
- return Tcl_NewStringObj("ID-subset", -1);
- case XML_DTD_INVALID_CHILD:
- return Tcl_NewStringObj("invalid-child", -1);
- case XML_DTD_INVALID_DEFAULT:
- return Tcl_NewStringObj("invalid-default", -1);
- case XML_DTD_LOAD_ERROR:
- return Tcl_NewStringObj("load-error", -1);
- case XML_DTD_MISSING_ATTRIBUTE:
- return Tcl_NewStringObj("missing-attribute", -1);
- case XML_DTD_MIXED_CORRUPT:
- return Tcl_NewStringObj("mixed-content-corrupt", -1);
- case XML_DTD_MULTIPLE_ID:
- return Tcl_NewStringObj("multiple-ID", -1);
- case XML_DTD_NO_DOC:
- return Tcl_NewStringObj("no-document", -1);
- case XML_DTD_NO_DTD:
- return Tcl_NewStringObj("no-document-type-definition", -1);
- case XML_DTD_NO_ELEM_NAME:
- return Tcl_NewStringObj("no-element-name", -1);
- case XML_DTD_NO_PREFIX:
- return Tcl_NewStringObj("no-prefix", -1);
- case XML_DTD_NO_ROOT:
- return Tcl_NewStringObj("no-root", -1);
- case XML_DTD_NOTATION_REDEFINED:
- return Tcl_NewStringObj("notation-redefined", -1);
- case XML_DTD_NOTATION_VALUE:
- return Tcl_NewStringObj("notation-value", -1);
- case XML_DTD_NOT_EMPTY:
- return Tcl_NewStringObj("not-empty", -1);
- case XML_DTD_NOT_PCDATA:
- return Tcl_NewStringObj("not-PCDATA", -1);
- case XML_DTD_NOT_STANDALONE:
- return Tcl_NewStringObj("not-standalone", -1);
- case XML_DTD_ROOT_NAME:
- return Tcl_NewStringObj("root-name", -1);
- case XML_DTD_STANDALONE_WHITE_SPACE:
- return Tcl_NewStringObj("standalone-white-space", -1);
- case XML_DTD_UNKNOWN_ATTRIBUTE:
- return Tcl_NewStringObj("unknown-attribute", -1);
- case XML_DTD_UNKNOWN_ELEM:
- return Tcl_NewStringObj("unknown-element-type", -1);
- case XML_DTD_UNKNOWN_ENTITY:
- return Tcl_NewStringObj("unknown-entity", -1);
- case XML_DTD_UNKNOWN_ID:
- return Tcl_NewStringObj("unknown-ID", -1);
- case XML_DTD_UNKNOWN_NOTATION:
- return Tcl_NewStringObj("unknown-notation", -1);
- case XML_HTML_STRUCURE_ERROR:
- return Tcl_NewStringObj("structure-error", -1);
- case XML_HTML_UNKNOWN_TAG:
- return Tcl_NewStringObj("unknown-tag", -1);
- case XML_RNGP_ANYNAME_ATTR_ANCESTOR:
- return Tcl_NewStringObj("anyname-attribute-ancestor", -1);
- case XML_RNGP_ATTR_CONFLICT:
- return Tcl_NewStringObj("attribute-conflict", -1);
- case XML_RNGP_ATTRIBUTE_CHILDREN:
- return Tcl_NewStringObj("attribute-children", -1);
- case XML_RNGP_ATTRIBUTE_CONTENT:
- return Tcl_NewStringObj("attribute-content", -1);
- case XML_RNGP_ATTRIBUTE_EMPTY:
- return Tcl_NewStringObj("attribute-empty", -1);
- case XML_RNGP_ATTRIBUTE_NOOP:
- return Tcl_NewStringObj("attribute-noop", -1);
- case XML_RNGP_CHOICE_CONTENT:
- return Tcl_NewStringObj("choice-content", -1);
- case XML_RNGP_CREATE_FAILURE:
- return Tcl_NewStringObj("create-failure", -1);
- case XML_RNGP_DATA_CONTENT:
- return Tcl_NewStringObj("data-content", -1);
- case XML_RNGP_DEF_CHOICE_AND_INTERLEAVE:
- return Tcl_NewStringObj("def-choice-and-interleave", -1);
- case XML_RNGP_DEFINE_CREATE_FAILED:
- return Tcl_NewStringObj("define-create-failed", -1);
- case XML_RNGP_DEFINE_EMPTY:
- return Tcl_NewStringObj("define-empty", -1);
- case XML_RNGP_DEFINE_MISSING:
- return Tcl_NewStringObj("define-missing", -1);
- case XML_RNGP_DEFINE_NAME_MISSING:
- return Tcl_NewStringObj("define-name-missing", -1);
- case XML_RNGP_ELEM_CONTENT_EMPTY:
- return Tcl_NewStringObj("elem-content-empty", -1);
- case XML_RNGP_ELEM_CONTENT_ERROR:
- return Tcl_NewStringObj("elem-content-error", -1);
- case XML_RNGP_ELEMENT_EMPTY:
- return Tcl_NewStringObj("element-empty", -1);
- case XML_RNGP_ELEMENT_CONTENT:
- return Tcl_NewStringObj("element-content", -1);
- case XML_RNGP_ELEMENT_NAME:
- return Tcl_NewStringObj("element-name", -1);
- case XML_RNGP_ELEMENT_NO_CONTENT:
- return Tcl_NewStringObj("element-no-content", -1);
- case XML_RNGP_ELEM_TEXT_CONFLICT:
- return Tcl_NewStringObj("element-text-conflict", -1);
- case XML_RNGP_EMPTY:
- return Tcl_NewStringObj("empty", -1);
- case XML_RNGP_EMPTY_CONSTRUCT:
- return Tcl_NewStringObj("empty-construct", -1);
- case XML_RNGP_EMPTY_CONTENT:
- return Tcl_NewStringObj("empty-content", -1);
- case XML_RNGP_EMPTY_NOT_EMPTY:
- return Tcl_NewStringObj("empty-not-empty", -1);
- case XML_RNGP_ERROR_TYPE_LIB:
- return Tcl_NewStringObj("error-type-library", -1);
- case XML_RNGP_EXCEPT_EMPTY:
- return Tcl_NewStringObj("except-empty", -1);
- case XML_RNGP_EXCEPT_MISSING:
- return Tcl_NewStringObj("except-missing", -1);
- case XML_RNGP_EXCEPT_MULTIPLE:
- return Tcl_NewStringObj("except-multiple", -1);
- case XML_RNGP_EXCEPT_NO_CONTENT:
- return Tcl_NewStringObj("except-no-content", -1);
- case XML_RNGP_EXTERNALREF_EMTPY:
- return Tcl_NewStringObj("external-reference-empty", -1);
- case XML_RNGP_EXTERNAL_REF_FAILURE:
- return Tcl_NewStringObj("external-reference-failure", -1);
- case XML_RNGP_EXTERNALREF_RECURSE:
- return Tcl_NewStringObj("external-reference-recursive", -1);
- case XML_RNGP_FORBIDDEN_ATTRIBUTE:
- return Tcl_NewStringObj("forbidden-attribute", -1);
- case XML_RNGP_FOREIGN_ELEMENT:
- return Tcl_NewStringObj("foreign-element", -1);
- case XML_RNGP_GRAMMAR_CONTENT:
- return Tcl_NewStringObj("grammar-content", -1);
- case XML_RNGP_GRAMMAR_EMPTY:
- return Tcl_NewStringObj("grammar-empty", -1);
- case XML_RNGP_GRAMMAR_MISSING:
- return Tcl_NewStringObj("grammar-missing", -1);
- case XML_RNGP_GRAMMAR_NO_START:
- return Tcl_NewStringObj("grammar-no-start", -1);
- case XML_RNGP_GROUP_ATTR_CONFLICT:
- return Tcl_NewStringObj("group-attribute-conflict-", -1);
- case XML_RNGP_HREF_ERROR:
- return Tcl_NewStringObj("href-error", -1);
- case XML_RNGP_INCLUDE_EMPTY:
- return Tcl_NewStringObj("include-empty", -1);
- case XML_RNGP_INCLUDE_FAILURE:
- return Tcl_NewStringObj("include-failure", -1);
- case XML_RNGP_INCLUDE_RECURSE:
- return Tcl_NewStringObj("include-recurse", -1);
- case XML_RNGP_INTERLEAVE_ADD:
- return Tcl_NewStringObj("interleave-add", -1);
- case XML_RNGP_INTERLEAVE_CREATE_FAILED:
- return Tcl_NewStringObj("interleave-create-failed", -1);
- case XML_RNGP_INTERLEAVE_EMPTY:
- return Tcl_NewStringObj("interleave-empty", -1);
- case XML_RNGP_INTERLEAVE_NO_CONTENT:
- return Tcl_NewStringObj("interleave-no-content", -1);
- case XML_RNGP_INVALID_DEFINE_NAME:
- return Tcl_NewStringObj("invalid-define-name", -1);
- case XML_RNGP_INVALID_URI:
- return Tcl_NewStringObj("invalid-URI", -1);
- case XML_RNGP_INVALID_VALUE:
- return Tcl_NewStringObj("invalid-value", -1);
- case XML_RNGP_MISSING_HREF:
- return Tcl_NewStringObj("missing-href", -1);
- case XML_RNGP_NAME_MISSING:
- return Tcl_NewStringObj("NAME-missing", -1);
- case XML_RNGP_NEED_COMBINE:
- return Tcl_NewStringObj("need-combine", -1);
- case XML_RNGP_NOTALLOWED_NOT_EMPTY:
- return Tcl_NewStringObj("notallowed-not-empty", -1);
- case XML_RNGP_NSNAME_ATTR_ANCESTOR:
- return Tcl_NewStringObj("nsname-attr-ancestor", -1);
- case XML_RNGP_NSNAME_NO_NS:
- return Tcl_NewStringObj("nsname-no-namespace", -1);
- case XML_RNGP_PARAM_FORBIDDEN:
- return Tcl_NewStringObj("param-forbidden", -1);
- case XML_RNGP_PARAM_NAME_MISSING:
- return Tcl_NewStringObj("param-name-missing", -1);
- case XML_RNGP_PARENTREF_CREATE_FAILED:
- return Tcl_NewStringObj("parentref-create-failed", -1);
- case XML_RNGP_PARENTREF_NAME_INVALID:
- return Tcl_NewStringObj("parentref-name-invalid", -1);
- case XML_RNGP_PARENTREF_NO_NAME:
- return Tcl_NewStringObj("parentref-no-name", -1);
- case XML_RNGP_PARENTREF_NO_PARENT:
- return Tcl_NewStringObj("parentref-no-parent", -1);
- case XML_RNGP_PARENTREF_NOT_EMPTY:
- return Tcl_NewStringObj("parentref-not-empty", -1);
- case XML_RNGP_PARSE_ERROR:
- return Tcl_NewStringObj("parse-error", -1);
- case XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME:
- return Tcl_NewStringObj("pat-anyname-except-anyname", -1);
- case XML_RNGP_PAT_ATTR_ATTR:
- return Tcl_NewStringObj("par-attr-attr", -1);
- case XML_RNGP_PAT_ATTR_ELEM:
- return Tcl_NewStringObj("pat-attr-elem", -1);
- case XML_RNGP_PAT_DATA_EXCEPT_ATTR:
- return Tcl_NewStringObj("pat-data-except-attr", -1);
- case XML_RNGP_PAT_DATA_EXCEPT_ELEM:
- return Tcl_NewStringObj("pat-data-except-elem", -1);
- case XML_RNGP_PAT_DATA_EXCEPT_EMPTY:
- return Tcl_NewStringObj("pat-data-except-empty", -1);
- case XML_RNGP_PAT_DATA_EXCEPT_GROUP:
- return Tcl_NewStringObj("pat-data-except-group", -1);
- case XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE:
- return Tcl_NewStringObj("pat-data-except-interleave", -1);
- case XML_RNGP_PAT_DATA_EXCEPT_LIST:
- return Tcl_NewStringObj("pat-data-except-list", -1);
- case XML_RNGP_PAT_DATA_EXCEPT_ONEMORE:
- return Tcl_NewStringObj("pat-data-except-onemore", -1);
- case XML_RNGP_PAT_DATA_EXCEPT_REF:
- return Tcl_NewStringObj("pat-data-except-ref", -1);
- case XML_RNGP_PAT_DATA_EXCEPT_TEXT:
- return Tcl_NewStringObj("pat-data-except-text", -1);
- case XML_RNGP_PAT_LIST_ATTR:
- return Tcl_NewStringObj("pat-list-attr", -1);
- case XML_RNGP_PAT_LIST_ELEM:
- return Tcl_NewStringObj("pat-list-elem", -1);
- case XML_RNGP_PAT_LIST_INTERLEAVE:
- return Tcl_NewStringObj("pat-list-interleave", -1);
- case XML_RNGP_PAT_LIST_LIST:
- return Tcl_NewStringObj("pat-list-list", -1);
- case XML_RNGP_PAT_LIST_REF:
- return Tcl_NewStringObj("pat-list-ref", -1);
- case XML_RNGP_PAT_LIST_TEXT:
- return Tcl_NewStringObj("pat-list-text", -1);
- case XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME:
- return Tcl_NewStringObj("pat-nsname-except-anyname", -1);
- case XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME:
- return Tcl_NewStringObj("pat-nsname-except-nsname", -1);
- case XML_RNGP_PAT_ONEMORE_GROUP_ATTR:
- return Tcl_NewStringObj("pat-onemore-group-attr", -1);
- case XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR:
- return Tcl_NewStringObj("pat-onemore-interleave-attr", -1);
- case XML_RNGP_PAT_START_ATTR:
- return Tcl_NewStringObj("pat-start-attr", -1);
- case XML_RNGP_PAT_START_DATA:
- return Tcl_NewStringObj("pat-start-data", -1);
- case XML_RNGP_PAT_START_EMPTY:
- return Tcl_NewStringObj("pat-start-empty", -1);
- case XML_RNGP_PAT_START_GROUP:
- return Tcl_NewStringObj("pat-start-group", -1);
- case XML_RNGP_PAT_START_INTERLEAVE:
- return Tcl_NewStringObj("pat-start-interleave", -1);
- case XML_RNGP_PAT_START_LIST:
- return Tcl_NewStringObj("pat-start-list", -1);
- case XML_RNGP_PAT_START_ONEMORE:
- return Tcl_NewStringObj("pat-start-onemore", -1);
- case XML_RNGP_PAT_START_TEXT:
- return Tcl_NewStringObj("pat-start-text", -1);
- case XML_RNGP_PAT_START_VALUE:
- return Tcl_NewStringObj("pat-start-value", -1);
- case XML_RNGP_PREFIX_UNDEFINED:
- return Tcl_NewStringObj("prefix-undefined", -1);
- case XML_RNGP_REF_CREATE_FAILED:
- return Tcl_NewStringObj("ref-create-failed", -1);
- case XML_RNGP_REF_CYCLE:
- return Tcl_NewStringObj("ref-cycle", -1);
- case XML_RNGP_REF_NAME_INVALID:
- return Tcl_NewStringObj("ref-name-invalid", -1);
- case XML_RNGP_REF_NO_DEF:
- return Tcl_NewStringObj("ref-no-def", -1);
- case XML_RNGP_REF_NO_NAME:
- return Tcl_NewStringObj("ref-no-name", -1);
- case XML_RNGP_REF_NOT_EMPTY:
- return Tcl_NewStringObj("ref-not-empty", -1);
- case XML_RNGP_START_CHOICE_AND_INTERLEAVE:
- return Tcl_NewStringObj("start-choice-and-interleave", -1);
- case XML_RNGP_START_CONTENT:
- return Tcl_NewStringObj("start-content", -1);
- case XML_RNGP_START_EMPTY:
- return Tcl_NewStringObj("start-empty", -1);
- case XML_RNGP_START_MISSING:
- return Tcl_NewStringObj("start-missing", -1);
- case XML_RNGP_TEXT_EXPECTED:
- return Tcl_NewStringObj("text-expected", -1);
- case XML_RNGP_TEXT_HAS_CHILD:
- return Tcl_NewStringObj("text-has-child", -1);
- case XML_RNGP_TYPE_MISSING:
- return Tcl_NewStringObj("type-missing", -1);
- case XML_RNGP_TYPE_NOT_FOUND:
- return Tcl_NewStringObj("type-not-found", -1);
- case XML_RNGP_UNKNOWN_ATTRIBUTE:
- return Tcl_NewStringObj("unknown-attribute", -1);
- case XML_RNGP_UNKNOWN_COMBINE:
- return Tcl_NewStringObj("unknown-combine", -1);
- case XML_RNGP_UNKNOWN_CONSTRUCT:
- return Tcl_NewStringObj("unknown-construct", -1);
- case XML_RNGP_UNKNOWN_TYPE_LIB:
- return Tcl_NewStringObj("unknown-type-lib", -1);
- case XML_RNGP_URI_FRAGMENT:
- return Tcl_NewStringObj("URI-fragment", -1);
- case XML_RNGP_URI_NOT_ABSOLUTE:
- return Tcl_NewStringObj("URI-not-absolute", -1);
- case XML_RNGP_VALUE_EMPTY:
- return Tcl_NewStringObj("value-empty", -1);
- case XML_RNGP_VALUE_NO_CONTENT:
- return Tcl_NewStringObj("value-no-content", -1);
- case XML_RNGP_XMLNS_NAME:
- return Tcl_NewStringObj("xmlns-name", -1);
- case XML_RNGP_XML_NS:
- return Tcl_NewStringObj("xml-ns", -1);
- case XML_XPATH_EXPRESSION_OK:
- return Tcl_NewStringObj("expression-ok", -1);
- case XML_XPATH_NUMBER_ERROR:
- return Tcl_NewStringObj("number-error", -1);
- case XML_XPATH_UNFINISHED_LITERAL_ERROR:
- return Tcl_NewStringObj("unfinished-literal", -1);
- case XML_XPATH_START_LITERAL_ERROR:
- return Tcl_NewStringObj("start-literal", -1);
- case XML_XPATH_VARIABLE_REF_ERROR:
- return Tcl_NewStringObj("variable-reference", -1);
- case XML_XPATH_UNDEF_VARIABLE_ERROR:
- return Tcl_NewStringObj("undefined-variable", -1);
- case XML_XPATH_INVALID_PREDICATE_ERROR:
- return Tcl_NewStringObj("invalid-predicate", -1);
- case XML_XPATH_EXPR_ERROR:
- return Tcl_NewStringObj("expression-error", -1);
- case XML_XPATH_UNCLOSED_ERROR:
- return Tcl_NewStringObj("unclosed", -1);
- case XML_XPATH_UNKNOWN_FUNC_ERROR:
- return Tcl_NewStringObj("unknown-function", -1);
- case XML_XPATH_INVALID_OPERAND:
- return Tcl_NewStringObj("invalid-operand", -1);
- case XML_XPATH_INVALID_TYPE:
- return Tcl_NewStringObj("invalid-type", -1);
- case XML_XPATH_INVALID_ARITY:
- return Tcl_NewStringObj("invalid-arity", -1);
- case XML_XPATH_INVALID_CTXT_SIZE:
- return Tcl_NewStringObj("invalid-context-size", -1);
- case XML_XPATH_INVALID_CTXT_POSITION:
- return Tcl_NewStringObj("invalid-context-position", -1);
- case XML_XPATH_MEMORY_ERROR:
- return Tcl_NewStringObj("memory-error", -1);
- case XML_XPTR_SYNTAX_ERROR:
- return Tcl_NewStringObj("syntax-error", -1);
- case XML_XPTR_RESOURCE_ERROR:
- return Tcl_NewStringObj("resource-error", -1);
- case XML_XPTR_SUB_RESOURCE_ERROR:
- return Tcl_NewStringObj("sub-resource-error", -1);
- case XML_XPATH_UNDEF_PREFIX_ERROR:
- return Tcl_NewStringObj("undefined-prefix", -1);
- case XML_XPATH_ENCODING_ERROR:
- return Tcl_NewStringObj("encoding-error", -1);
- case XML_XPATH_INVALID_CHAR_ERROR:
- return Tcl_NewStringObj("invalid-character", -1);
- case XML_TREE_INVALID_HEX:
- return Tcl_NewStringObj("invalid-hex", -1);
- case XML_TREE_INVALID_DEC:
- return Tcl_NewStringObj("invalid-decimal", -1);
- case XML_TREE_UNTERMINATED_ENTITY:
- return Tcl_NewStringObj("unterminated-entity", -1);
- case XML_SAVE_NOT_UTF8:
- return Tcl_NewStringObj("not-utf8", -1);
- case XML_SAVE_CHAR_INVALID:
- return Tcl_NewStringObj("invalid-character", -1);
- case XML_SAVE_NO_DOCTYPE:
- return Tcl_NewStringObj("no-document-type-declaration", -1);
- case XML_SAVE_UNKNOWN_ENCODING:
- return Tcl_NewStringObj("unknown-encoding", -1);
- case XML_REGEXP_COMPILE_ERROR:
- return Tcl_NewStringObj("compile-error", -1);
- case XML_IO_UNKNOWN:
- return Tcl_NewStringObj("unknown", -1);
- case XML_IO_EACCES:
- return Tcl_NewStringObj("eacces", -1);
- case XML_IO_EAGAIN:
- return Tcl_NewStringObj("eagain", -1);
- case XML_IO_EBADF:
- return Tcl_NewStringObj("ebadf", -1);
- case XML_IO_EBADMSG:
- return Tcl_NewStringObj("ebadmsg", -1);
- case XML_IO_EBUSY:
- return Tcl_NewStringObj("ebusy", -1);
- case XML_IO_ECANCELED:
- return Tcl_NewStringObj("ecanceled", -1);
- case XML_IO_ECHILD:
- return Tcl_NewStringObj("echild", -1);
- case XML_IO_EDEADLK:
- return Tcl_NewStringObj("edeadlk", -1);
- case XML_IO_EDOM:
- return Tcl_NewStringObj("edom", -1);
- case XML_IO_EEXIST:
- return Tcl_NewStringObj("eexist", -1);
- case XML_IO_EINPROGRESS:
- return Tcl_NewStringObj("einprogress", -1);
- case XML_IO_EINTR:
- return Tcl_NewStringObj("eintr", -1);
- case XML_IO_EINVAL:
- return Tcl_NewStringObj("einval", -1);
- case XML_IO_EIO:
- return Tcl_NewStringObj("eio", -1);
- case XML_IO_EISDIR:
- return Tcl_NewStringObj("eisdir", -1);
- case XML_IO_EMFILE:
- return Tcl_NewStringObj("emfile", -1);
- case XML_IO_EMLINK:
- return Tcl_NewStringObj("emlink", -1);
- case XML_IO_EMSGSIZE:
- return Tcl_NewStringObj("emsgsize", -1);
- case XML_IO_ENAMETOOLONG:
- return Tcl_NewStringObj("enametoolong", -1);
- case XML_IO_ENFILE:
- return Tcl_NewStringObj("enfile", -1);
- case XML_IO_ENODEV:
- return Tcl_NewStringObj("enodev", -1);
- case XML_IO_ENOENT:
- return Tcl_NewStringObj("enoent", -1);
- case XML_IO_ENOEXEC:
- return Tcl_NewStringObj("enoexec", -1);
- case XML_IO_ENOLCK:
- return Tcl_NewStringObj("enolck", -1);
- case XML_IO_ENOMEM:
- return Tcl_NewStringObj("enomem", -1);
- case XML_IO_ENOSPC:
- return Tcl_NewStringObj("enospc", -1);
- case XML_IO_ENOSYS:
- return Tcl_NewStringObj("enosys", -1);
- case XML_IO_ENOTDIR:
- return Tcl_NewStringObj("enotdir", -1);
- case XML_IO_ENOTEMPTY:
- return Tcl_NewStringObj("enotempty", -1);
- case XML_IO_ENOTSUP:
- return Tcl_NewStringObj("enotsup", -1);
- case XML_IO_ENOTTY:
- return Tcl_NewStringObj("enotty", -1);
- case XML_IO_ENXIO:
- return Tcl_NewStringObj("enxio", -1);
- case XML_IO_EPERM:
- return Tcl_NewStringObj("eperm", -1);
- case XML_IO_EPIPE:
- return Tcl_NewStringObj("epipe", -1);
- case XML_IO_ERANGE:
- return Tcl_NewStringObj("erange", -1);
- case XML_IO_EROFS:
- return Tcl_NewStringObj("erofs", -1);
- case XML_IO_ESPIPE:
- return Tcl_NewStringObj("espipe", -1);
- case XML_IO_ESRCH:
- return Tcl_NewStringObj("esrch", -1);
- case XML_IO_ETIMEDOUT:
- return Tcl_NewStringObj("etimedout", -1);
- case XML_IO_EXDEV:
- return Tcl_NewStringObj("exdev", -1);
- case XML_IO_NETWORK_ATTEMPT:
- return Tcl_NewStringObj("network-attempt", -1);
- case XML_IO_ENCODER:
- return Tcl_NewStringObj("encoder", -1);
- case XML_IO_FLUSH:
- return Tcl_NewStringObj("flush", -1);
- case XML_IO_WRITE:
- return Tcl_NewStringObj("write", -1);
- case XML_IO_NO_INPUT:
- return Tcl_NewStringObj("no-input", -1);
- case XML_IO_BUFFER_FULL:
- return Tcl_NewStringObj("buffer-full", -1);
- case XML_IO_LOAD_ERROR:
- return Tcl_NewStringObj("load-error", -1);
- case XML_IO_ENOTSOCK:
- return Tcl_NewStringObj("enotsock", -1);
- case XML_IO_EISCONN:
- return Tcl_NewStringObj("eisconn", -1);
- case XML_IO_ECONNREFUSED:
- return Tcl_NewStringObj("econnrefused", -1);
- case XML_IO_ENETUNREACH:
- return Tcl_NewStringObj("enetunreach", -1);
- case XML_IO_EADDRINUSE:
- return Tcl_NewStringObj("eaddrinuse", -1);
- case XML_IO_EALREADY:
- return Tcl_NewStringObj("ealready", -1);
- case XML_IO_EAFNOSUPPORT:
- return Tcl_NewStringObj("eafnosupport", -1);
- case XML_XINCLUDE_RECURSION:
- return Tcl_NewStringObj("recursion", -1);
- case XML_XINCLUDE_PARSE_VALUE:
- return Tcl_NewStringObj("parse-value", -1);
- case XML_XINCLUDE_ENTITY_DEF_MISMATCH:
- return Tcl_NewStringObj("entity-def-mismatch", -1);
- case XML_XINCLUDE_NO_HREF:
- return Tcl_NewStringObj("no-href", -1);
- case XML_XINCLUDE_NO_FALLBACK:
- return Tcl_NewStringObj("no-fallback", -1);
- case XML_XINCLUDE_HREF_URI:
- return Tcl_NewStringObj("href-URI", -1);
- case XML_XINCLUDE_TEXT_FRAGMENT:
- return Tcl_NewStringObj("text-fragment", -1);
- case XML_XINCLUDE_TEXT_DOCUMENT:
- return Tcl_NewStringObj("text-document", -1);
- case XML_XINCLUDE_INVALID_CHAR:
- return Tcl_NewStringObj("invalid-character", -1);
- case XML_XINCLUDE_BUILD_FAILED:
- return Tcl_NewStringObj("build-failed", -1);
- case XML_XINCLUDE_UNKNOWN_ENCODING:
- return Tcl_NewStringObj("unknown-encoding", -1);
- case XML_XINCLUDE_MULTIPLE_ROOT:
- return Tcl_NewStringObj("multiple-root", -1);
- case XML_XINCLUDE_XPTR_FAILED:
- return Tcl_NewStringObj("XPointer-failed", -1);
- case XML_XINCLUDE_XPTR_RESULT:
- return Tcl_NewStringObj("XPointer-result", -1);
- case XML_XINCLUDE_INCLUDE_IN_INCLUDE:
- return Tcl_NewStringObj("include-in-include", -1);
- case XML_XINCLUDE_FALLBACKS_IN_INCLUDE:
- return Tcl_NewStringObj("fallbacks-in-include", -1);
- case XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE:
- return Tcl_NewStringObj("fallback-not-in-include", -1);
- case XML_CATALOG_MISSING_ATTR:
- return Tcl_NewStringObj("missing-attribute", -1);
- case XML_CATALOG_ENTRY_BROKEN:
- return Tcl_NewStringObj("entry-broken", -1);
- case XML_CATALOG_PREFER_VALUE:
- return Tcl_NewStringObj("prefer-value", -1);
- case XML_CATALOG_NOT_CATALOG:
- return Tcl_NewStringObj("not-catalog", -1);
- case XML_CATALOG_RECURSION:
- return Tcl_NewStringObj("recursion", -1);
- case XML_SCHEMAP_PREFIX_UNDEFINED:
- return Tcl_NewStringObj("prefix-undefined", -1);
- case XML_SCHEMAP_ATTRFORMDEFAULT_VALUE:
- return Tcl_NewStringObj("attribute-form-default-value", -1);
- case XML_SCHEMAP_ATTRGRP_NONAME_NOREF:
- return Tcl_NewStringObj("attribute-group-noname-noref", -1);
- case XML_SCHEMAP_ATTR_NONAME_NOREF:
- return Tcl_NewStringObj("attribute-noname-noref", -1);
- case XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF:
- return Tcl_NewStringObj("complexType-noname-noref", -1);
- case XML_SCHEMAP_ELEMFORMDEFAULT_VALUE:
- return Tcl_NewStringObj("element-form-default-value", -1);
- case XML_SCHEMAP_ELEM_NONAME_NOREF:
- return Tcl_NewStringObj("element-noname-noref", -1);
- case XML_SCHEMAP_EXTENSION_NO_BASE:
- return Tcl_NewStringObj("extension-no-base", -1);
- case XML_SCHEMAP_FACET_NO_VALUE:
- return Tcl_NewStringObj("facet-no-value", -1);
- case XML_SCHEMAP_FAILED_BUILD_IMPORT:
- return Tcl_NewStringObj("failed-build-import", -1);
- case XML_SCHEMAP_GROUP_NONAME_NOREF:
- return Tcl_NewStringObj("group-noname-noref", -1);
- case XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI:
- return Tcl_NewStringObj("import-namespace-not-URI", -1);
- case XML_SCHEMAP_IMPORT_REDEFINE_NSNAME:
- return Tcl_NewStringObj("import-redefine-nsname", -1);
- case XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI:
- return Tcl_NewStringObj("import-schema-not-URI", -1);
- case XML_SCHEMAP_INVALID_BOOLEAN:
- return Tcl_NewStringObj("invalid-boolean", -1);
- case XML_SCHEMAP_INVALID_ENUM:
- return Tcl_NewStringObj("invalid-enumeration", -1);
- case XML_SCHEMAP_INVALID_FACET:
- return Tcl_NewStringObj("invalid-facet", -1);
- case XML_SCHEMAP_INVALID_FACET_VALUE:
- return Tcl_NewStringObj("invalid-facet-value", -1);
- case XML_SCHEMAP_INVALID_MAXOCCURS:
- return Tcl_NewStringObj("invalid-maxOccurs", -1);
- case XML_SCHEMAP_INVALID_MINOCCURS:
- return Tcl_NewStringObj("invalid-minOccurs", -1);
- case XML_SCHEMAP_INVALID_REF_AND_SUBTYPE:
- return Tcl_NewStringObj("invalid-ref-and-subtype", -1);
- case XML_SCHEMAP_INVALID_WHITE_SPACE:
- return Tcl_NewStringObj("invalid-white-space", -1);
- case XML_SCHEMAP_NOATTR_NOREF:
- return Tcl_NewStringObj("noattr-noref", -1);
- case XML_SCHEMAP_NOTATION_NO_NAME:
- return Tcl_NewStringObj("notation-no-name", -1);
- case XML_SCHEMAP_NOTYPE_NOREF:
- return Tcl_NewStringObj("notype-noref", -1);
- case XML_SCHEMAP_REF_AND_SUBTYPE:
- return Tcl_NewStringObj("ref-and-subtype", -1);
- case XML_SCHEMAP_RESTRICTION_NONAME_NOREF:
- return Tcl_NewStringObj("restriction-noname-noref", -1);
- case XML_SCHEMAP_SIMPLETYPE_NONAME:
- return Tcl_NewStringObj("simpleType-noname", -1);
- case XML_SCHEMAP_TYPE_AND_SUBTYPE:
- return Tcl_NewStringObj("type-and-subtype", -1);
- case XML_SCHEMAP_UNKNOWN_ALL_CHILD:
- return Tcl_NewStringObj("unknown-all-child", -1);
- case XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD:
- return Tcl_NewStringObj("unknown-anyattribute-child", -1);
- case XML_SCHEMAP_UNKNOWN_ATTR_CHILD:
- return Tcl_NewStringObj("unknown-attribute-child", -1);
- case XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD:
- return Tcl_NewStringObj("unknown-attributeGroup-child", -1);
- case XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP:
- return Tcl_NewStringObj("unknown-attributeGroup", -1);
- case XML_SCHEMAP_UNKNOWN_BASE_TYPE:
- return Tcl_NewStringObj("unknown-base-type", -1);
- case XML_SCHEMAP_UNKNOWN_CHOICE_CHILD:
- return Tcl_NewStringObj("unknown-choice-child", -1);
- case XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD:
- return Tcl_NewStringObj("unknown-complexContent-child", -1);
- case XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD:
- return Tcl_NewStringObj("unknown-complexType-child", -1);
- case XML_SCHEMAP_UNKNOWN_ELEM_CHILD:
- return Tcl_NewStringObj("unknown-element-child", -1);
- case XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD:
- return Tcl_NewStringObj("unknown-extension-child", -1);
- case XML_SCHEMAP_UNKNOWN_FACET_CHILD:
- return Tcl_NewStringObj("unknown-facet-child", -1);
- case XML_SCHEMAP_UNKNOWN_FACET_TYPE:
- return Tcl_NewStringObj("unknown-facet-type", -1);
- case XML_SCHEMAP_UNKNOWN_GROUP_CHILD:
- return Tcl_NewStringObj("unknown-group-child", -1);
- case XML_SCHEMAP_UNKNOWN_IMPORT_CHILD:
- return Tcl_NewStringObj("unknown-import-child", -1);
- case XML_SCHEMAP_UNKNOWN_LIST_CHILD:
- return Tcl_NewStringObj("unknown-list-child", -1);
- case XML_SCHEMAP_UNKNOWN_NOTATION_CHILD:
- return Tcl_NewStringObj("unknown-notation-child", -1);
- case XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD:
- return Tcl_NewStringObj("unknown-processContent-child", -1);
- case XML_SCHEMAP_UNKNOWN_REF:
- return Tcl_NewStringObj("unknown-ref", -1);
- case XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD:
- return Tcl_NewStringObj("unknown-restriction-child", -1);
- case XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD:
- return Tcl_NewStringObj("unknown-schemas-child", -1);
- case XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD:
- return Tcl_NewStringObj("unknown-sequence-child", -1);
- case XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD:
- return Tcl_NewStringObj("unknown-simpleType-child", -1);
- case XML_SCHEMAP_UNKNOWN_TYPE:
- return Tcl_NewStringObj("unknown-type", -1);
- case XML_SCHEMAP_UNKNOWN_UNION_CHILD:
- return Tcl_NewStringObj("unknown-union-child", -1);
- case XML_SCHEMAP_ELEM_DEFAULT_FIXED:
- return Tcl_NewStringObj("element-default-fixed", -1);
- case XML_SCHEMAP_REGEXP_INVALID:
- return Tcl_NewStringObj("regexp-invalid", -1);
- case XML_SCHEMAP_FAILED_LOAD:
- return Tcl_NewStringObj("failed-load", -1);
- case XML_SCHEMAP_NOTHING_TO_PARSE:
- return Tcl_NewStringObj("nothing-to-parse", -1);
- case XML_SCHEMAP_NOROOT:
- return Tcl_NewStringObj("no-root", -1);
- case XML_SCHEMAP_REDEFINED_GROUP:
- return Tcl_NewStringObj("redefined-group", -1);
- case XML_SCHEMAP_REDEFINED_TYPE:
- return Tcl_NewStringObj("redefined-type", -1);
- case XML_SCHEMAP_REDEFINED_ELEMENT:
- return Tcl_NewStringObj("redefined-element", -1);
- case XML_SCHEMAP_REDEFINED_ATTRGROUP:
- return Tcl_NewStringObj("redefined-attributeGroup", -1);
- case XML_SCHEMAP_REDEFINED_ATTR:
- return Tcl_NewStringObj("redefined-attribute", -1);
- case XML_SCHEMAP_REDEFINED_NOTATION:
- return Tcl_NewStringObj("redefined-notation", -1);
- case XML_SCHEMAP_FAILED_PARSE:
- return Tcl_NewStringObj("failed-parse", -1);
- case XML_SCHEMAV_NOROOT:
- return Tcl_NewStringObj("no-root", -1);
- case XML_SCHEMAV_UNDECLAREDELEM:
- return Tcl_NewStringObj("undeclared-element", -1);
- case XML_SCHEMAV_NOTTOPLEVEL:
- return Tcl_NewStringObj("not-toplevel", -1);
- case XML_SCHEMAV_MISSING:
- return Tcl_NewStringObj("missing", -1);
- case XML_SCHEMAV_WRONGELEM:
- return Tcl_NewStringObj("wrong-element", -1);
- case XML_SCHEMAV_NOTYPE:
- return Tcl_NewStringObj("no-type", -1);
- case XML_SCHEMAV_NOROLLBACK:
- return Tcl_NewStringObj("no-rollback", -1);
- case XML_SCHEMAV_ISABSTRACT:
- return Tcl_NewStringObj("is-abstract", -1);
- case XML_SCHEMAV_NOTEMPTY:
- return Tcl_NewStringObj("not-empty", -1);
- case XML_SCHEMAV_ELEMCONT:
- return Tcl_NewStringObj("element-content", -1);
- case XML_SCHEMAV_HAVEDEFAULT:
- return Tcl_NewStringObj("have-default", -1);
- case XML_SCHEMAV_NOTNILLABLE:
- return Tcl_NewStringObj("not-nillable", -1);
- case XML_SCHEMAV_EXTRACONTENT:
- return Tcl_NewStringObj("extra-content", -1);
- case XML_SCHEMAV_INVALIDATTR:
- return Tcl_NewStringObj("invalid-attribute", -1);
- case XML_SCHEMAV_INVALIDELEM:
- return Tcl_NewStringObj("invalid-element", -1);
- case XML_SCHEMAV_NOTDETERMINIST:
- return Tcl_NewStringObj("not-deterministic", -1);
- case XML_SCHEMAV_CONSTRUCT:
- return Tcl_NewStringObj("construct", -1);
- case XML_SCHEMAV_INTERNAL:
- return Tcl_NewStringObj("internal", -1);
- case XML_SCHEMAV_NOTSIMPLE:
- return Tcl_NewStringObj("not-simple", -1);
- case XML_SCHEMAV_ATTRUNKNOWN:
- return Tcl_NewStringObj("attribute-unknown", -1);
- case XML_SCHEMAV_ATTRINVALID:
- return Tcl_NewStringObj("attribute-invalid", -1);
- case XML_SCHEMAV_VALUE:
- return Tcl_NewStringObj("value", -1);
- case XML_SCHEMAV_FACET:
- return Tcl_NewStringObj("facet", -1);
- case XML_XPTR_UNKNOWN_SCHEME:
- return Tcl_NewStringObj("unknown-scheme", -1);
- case XML_XPTR_CHILDSEQ_START:
- return Tcl_NewStringObj("child-sequence-start", -1);
- case XML_XPTR_EVAL_FAILED:
- return Tcl_NewStringObj("eval-failed", -1);
- case XML_XPTR_EXTRA_OBJECTS:
- return Tcl_NewStringObj("extra-objects", -1);
- case XML_C14N_CREATE_CTXT:
- return Tcl_NewStringObj("create-context", -1);
- case XML_C14N_REQUIRES_UTF8:
- return Tcl_NewStringObj("requires-utf-8", -1);
- case XML_C14N_CREATE_STACK:
- return Tcl_NewStringObj("create-stack", -1);
- case XML_C14N_INVALID_NODE:
- return Tcl_NewStringObj("invalid-node", -1);
- case XML_FTP_PASV_ANSWER:
- return Tcl_NewStringObj("pasv-answer", -1);
- case XML_FTP_EPSV_ANSWER:
- return Tcl_NewStringObj("epsv-answer", -1);
- case XML_FTP_ACCNT:
- return Tcl_NewStringObj("account", -1);
- case XML_HTTP_URL_SYNTAX:
- return Tcl_NewStringObj("URL-syntax", -1);
- case XML_HTTP_USE_IP:
- return Tcl_NewStringObj("use-IP", -1);
- case XML_HTTP_UNKNOWN_HOST:
- return Tcl_NewStringObj("unknown-host", -1);
- default:
- return Tcl_NewIntObj(code);
- }
-}
-
-void
-TclXML_libxml2_ErrorHandler (ctx, error)
- void *ctx; /* ignore - depends on context */
- xmlErrorPtr error;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
- Tcl_Obj *objPtr;
-
- if (tsdPtr->errorInfoPtr->listPtr == NULL) {
- tsdPtr->errorInfoPtr->listPtr = Tcl_NewObj();
- Tcl_IncrRefCount(tsdPtr->errorInfoPtr->listPtr);
- }
-
- objPtr = Tcl_NewListObj(0, NULL);
-
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- ErrorDomainToString(error->domain));
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- ErrorLevelToString(error->level));
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- ErrorCodeToString(error->code));
-
- if (error->node == NULL) {
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr, Tcl_NewObj());
- } else if (((xmlDocPtr) error->node)->type == XML_DOCUMENT_NODE) {
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- TclXML_libxml2_CreateObjFromDoc((xmlDocPtr) error->node));
- } else if (tsdPtr->errorInfoPtr->nodeHandlerProc != NULL) {
- Tcl_Obj *nodeObjPtr;
-
- nodeObjPtr = (tsdPtr->errorInfoPtr->nodeHandlerProc)(tsdPtr->errorInfoPtr->interp, (ClientData) error->node);
- if (nodeObjPtr != NULL) {
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr, nodeObjPtr);
- } else {
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr, Tcl_NewObj());
- }
- } else {
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr, Tcl_NewObj());
- }
-
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- Tcl_NewIntObj(error->line));
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- Tcl_NewStringObj(error->message, -1));
-
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- Tcl_NewIntObj(error->int1));
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- Tcl_NewIntObj(error->int2));
- if (error->str1) {
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- Tcl_NewStringObj(error->str1, -1));
- }
- if (error->str2) {
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- Tcl_NewStringObj(error->str2, -1));
- }
- if (error->str3) {
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, objPtr,
- Tcl_NewStringObj(error->str3, -1));
- }
-
- Tcl_ListObjAppendElement(tsdPtr->errorInfoPtr->interp, tsdPtr->errorInfoPtr->listPtr, objPtr);
-}
-
-void
-TclXML_libxml2_ResetError(interp)
- Tcl_Interp *interp;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
-
- if (tsdPtr->errorInfoPtr->listPtr != NULL) {
- Tcl_DecrRefCount(tsdPtr->errorInfoPtr->listPtr);
- tsdPtr->errorInfoPtr->listPtr = NULL;
- }
-}
-
-Tcl_Obj *
-TclXML_libxml2_GetErrorObj(interp)
- Tcl_Interp *interp;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
-
- return tsdPtr->errorInfoPtr->listPtr;
-}
-
-void
-TclXML_libxml2_SetErrorNodeFunc(interp, proc)
- Tcl_Interp *interp;
- TclXML_ErrorNodeHandlerProc *proc;
-{
- ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
-
- if (!tsdPtr->initialized) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj("internal error: docObj data not initialized", -1));
- Tcl_BackgroundError(interp);
- return;
- }
-
- tsdPtr->errorInfoPtr->nodeHandlerProc = proc;
-}
-