mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-07-13 09:01:53 +03:00
Large commit of changes done while travelling to XML'99
- cleanups on memory use and parsers - start of Link interfaces HTML and XLink - rebuild the doc - released as 1.8.0 Daniel
This commit is contained in:
133
debugXML.c
133
debugXML.c
@ -280,3 +280,136 @@ void xmlDebugDumpDocument(FILE *output, xmlDocPtr doc) {
|
||||
if (doc->root != NULL)
|
||||
xmlDebugDumpNodeList(output, doc->root, 1);
|
||||
}
|
||||
|
||||
void xmlDebugDumpEntities(FILE *output, xmlDocPtr doc) {
|
||||
int i;
|
||||
xmlEntityPtr cur;
|
||||
|
||||
if (output == NULL) output = stdout;
|
||||
if (doc == NULL) {
|
||||
fprintf(output, "DOCUMENT == NULL !\n");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (doc->type) {
|
||||
case XML_ELEMENT_NODE:
|
||||
fprintf(output, "Error, ELEMENT found here ");
|
||||
break;
|
||||
case XML_ATTRIBUTE_NODE:
|
||||
fprintf(output, "Error, ATTRIBUTE found here\n");
|
||||
break;
|
||||
case XML_TEXT_NODE:
|
||||
fprintf(output, "Error, TEXT\n");
|
||||
break;
|
||||
case XML_CDATA_SECTION_NODE:
|
||||
fprintf(output, "Error, CDATA_SECTION\n");
|
||||
break;
|
||||
case XML_ENTITY_REF_NODE:
|
||||
fprintf(output, "Error, ENTITY_REF\n");
|
||||
break;
|
||||
case XML_ENTITY_NODE:
|
||||
fprintf(output, "Error, ENTITY\n");
|
||||
break;
|
||||
case XML_PI_NODE:
|
||||
fprintf(output, "Error, PI\n");
|
||||
break;
|
||||
case XML_COMMENT_NODE:
|
||||
fprintf(output, "Error, COMMENT\n");
|
||||
break;
|
||||
case XML_DOCUMENT_NODE:
|
||||
fprintf(output, "DOCUMENT\n");
|
||||
break;
|
||||
case XML_HTML_DOCUMENT_NODE:
|
||||
fprintf(output, "HTML DOCUMENT\n");
|
||||
break;
|
||||
case XML_DOCUMENT_TYPE_NODE:
|
||||
fprintf(output, "Error, DOCUMENT_TYPE\n");
|
||||
break;
|
||||
case XML_DOCUMENT_FRAG_NODE:
|
||||
fprintf(output, "Error, DOCUMENT_FRAG\n");
|
||||
break;
|
||||
case XML_NOTATION_NODE:
|
||||
fprintf(output, "Error, NOTATION\n");
|
||||
break;
|
||||
default:
|
||||
fprintf(output, "NODE_%d\n", doc->type);
|
||||
}
|
||||
if ((doc->intSubset != NULL) && (doc->intSubset->entities != NULL)) {
|
||||
xmlEntitiesTablePtr table = (xmlEntitiesTablePtr)
|
||||
doc->intSubset->entities;
|
||||
fprintf(output, "Entities in internal subset\n");
|
||||
for (i = 0;i < table->nb_entities;i++) {
|
||||
cur = &table->table[i];
|
||||
fprintf(output, "%d : %s : ", i, cur->name);
|
||||
switch (cur->type) {
|
||||
case XML_INTERNAL_GENERAL_ENTITY:
|
||||
fprintf(output, "INTERNAL GENERAL");
|
||||
break;
|
||||
case XML_EXTERNAL_GENERAL_PARSED_ENTITY:
|
||||
fprintf(output, "EXTERNAL PARSED");
|
||||
break;
|
||||
case XML_EXTERNAL_GENERAL_UNPARSED_ENTITY:
|
||||
fprintf(output, "EXTERNAL UNPARSED");
|
||||
break;
|
||||
case XML_INTERNAL_PARAMETER_ENTITY:
|
||||
fprintf(output, "INTERNAL PARAMETER");
|
||||
break;
|
||||
case XML_EXTERNAL_PARAMETER_ENTITY:
|
||||
fprintf(output, "EXTERNAL PARAMETER");
|
||||
break;
|
||||
default:
|
||||
fprintf(output, "UNKNOWN TYPE %d",
|
||||
cur->type);
|
||||
}
|
||||
if (cur->ExternalID != NULL)
|
||||
fprintf(output, "ID \"%s\"", cur->ExternalID);
|
||||
if (cur->SystemID != NULL)
|
||||
fprintf(output, "SYSTEM \"%s\"", cur->SystemID);
|
||||
if (cur->orig != NULL)
|
||||
fprintf(output, "\n orig \"%s\"", cur->orig);
|
||||
if (cur->content != NULL)
|
||||
fprintf(output, "\n content \"%s\"", cur->content);
|
||||
fprintf(output, "\n");
|
||||
}
|
||||
} else
|
||||
fprintf(output, "No entities in internal subset\n");
|
||||
if ((doc->extSubset != NULL) && (doc->extSubset->entities != NULL)) {
|
||||
xmlEntitiesTablePtr table = (xmlEntitiesTablePtr)
|
||||
doc->extSubset->entities;
|
||||
fprintf(output, "Entities in external subset\n");
|
||||
for (i = 0;i < table->nb_entities;i++) {
|
||||
cur = &table->table[i];
|
||||
fprintf(output, "%d : %s : ", i, cur->name);
|
||||
switch (cur->type) {
|
||||
case XML_INTERNAL_GENERAL_ENTITY:
|
||||
fprintf(output, "INTERNAL GENERAL");
|
||||
break;
|
||||
case XML_EXTERNAL_GENERAL_PARSED_ENTITY:
|
||||
fprintf(output, "EXTERNAL PARSED");
|
||||
break;
|
||||
case XML_EXTERNAL_GENERAL_UNPARSED_ENTITY:
|
||||
fprintf(output, "EXTERNAL UNPARSED");
|
||||
break;
|
||||
case XML_INTERNAL_PARAMETER_ENTITY:
|
||||
fprintf(output, "INTERNAL PARAMETER");
|
||||
break;
|
||||
case XML_EXTERNAL_PARAMETER_ENTITY:
|
||||
fprintf(output, "EXTERNAL PARAMETER");
|
||||
break;
|
||||
default:
|
||||
fprintf(output, "UNKNOWN TYPE %d",
|
||||
cur->type);
|
||||
}
|
||||
if (cur->ExternalID != NULL)
|
||||
fprintf(output, "ID \"%s\"", cur->ExternalID);
|
||||
if (cur->SystemID != NULL)
|
||||
fprintf(output, "SYSTEM \"%s\"", cur->SystemID);
|
||||
if (cur->orig != NULL)
|
||||
fprintf(output, "\n orig \"%s\"", cur->orig);
|
||||
if (cur->content != NULL)
|
||||
fprintf(output, "\n content \"%s\"", cur->content);
|
||||
fprintf(output, "\n");
|
||||
}
|
||||
} else
|
||||
fprintf(output, "No entities in external subset\n");
|
||||
}
|
||||
|
Reference in New Issue
Block a user