I am processing a document which contains nested inclusions using xi:include. How can I tell the source file from which a given node was included into the document? I'd like this in order to be able to accurately report on error locations. What I have right now is: static char * nodeLocation(xmlNode *node) { xmlDoc *doc = node->doc; return newstr("%s:%d (element %s)", doc->URL, node->line, node->name); } Which allows me to build a nice backtrace like this: Unhandled Exception 49(XML_PROCESSING_ERROR): raised at test/check_params.c:519 --> Exception 49: No processor defined for skit:let at ./templates/postgres/extract.xml:5 (element let) at ./templates/postgres/extract.xml:3 (element inclusion) at ./templates/postgres/extract.xml:8 (element runsql) at ./templates/postgres/extract.xml:4 (element cluster) at ./templates/postgres/extract.xml:3 (element inclusion) at ./templates/postgres/extract.xml:22 (element dump) at ./templates/postgres/extract.xml:21 (element runsql) The line numbers are accurate within each document but the URL (from doc->URL) gives me only the URL of the root document and not the included ones. Any suggestions/help would be appreciated. Thanks __ Marc
Attachment:
signature.asc
Description: This is a digitally signed message part