> Can you post the entire
> call stack, because it may just be an unusual situation that we've not
> tested, and there can really be no source node or current node.
The stack trace is attached. I inserted the assert statement that we
discussed previously. The failure is occurring during the second of two
identical transformations where my entity resolving is returning NULL for a
xsl:included stylesheet. Output looks like this:
resolveEntity(u'', u'http://dtd')
resolveEntity(None, u'http://xsl2')
Warning: Fatal Error at (unknown file , line 0 , column {null} ): An
exception occurred! Type:NetAccessorException, Message:The host/address
'xsl2' could not be resolved ["Python String" (5, 38)]
resolveEntity(u'', u'http://dtd')
resolveEntity(None, u'http://xsl2')
Assertion failed: m_currentNodeStack.size() > 0, file
D:\Dev\Me\Pyana\xml-xalan\c\src\xalanc\XPath\XPathExecutionContextDefault.cp
p, line 186
The resolveEntity lines are showing what the arguments being passed to my
entity resolver are. Here are the files being used:
xsl = r'''
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text"/>
<xsl:include href="%(protocol)sxsl2"/>
<xsl:template match="/">
<xsl:apply-templates
select="document('%(protocol)sxml2')//message"/>
</xsl:template>
</xsl:stylesheet>
'''
xml = '''<!DOCTYPE message SYSTEM "%(protocol)sdtd">
\n<message>hello world</message>'''
Cheers,
Brian
_assert(void * 0x00efde04, void * 0x00efddb4, unsigned int 186) line 267
xalanc_1_7::XPathExecutionContextDefault::getCurrentNode() line 186 + 38 bytes
xalanc_1_7::StylesheetExecutionContextDefault::getCurrentNode() line 1715 + 17 bytes
xalanc_1_7::StylesheetExecutionContextDefault::warn(const xalanc_1_7::XalanDOMString &
{...}, const xalanc_1_7::XalanNode * 0x00000000, const xercesc_2_4::Locator *
0x00000000) line 2298 + 13 bytes
xalanc_1_7::XercesParserLiaison::fatalError(const xercesc_2_4::SAXParseException &
{...}) line 558 + 27 bytes
xercesc_2_4::SAXParser::error(const unsigned int 292, const unsigned short * const
0x12208798 unsigned short const * const xercesc_2_4::XMLUni::fgXMLErrDomain,
xercesc_2_4::XMLErrorReporter::ErrTypes ErrType_Fatal, const unsigned short * const
0x0012ab2c, const unsigned short * const 0x12208840 unsigned short const * const
xercesc_2_4::XMLUni::fgZeroLenString, ...) line 1356
xercesc_2_4::XMLScanner::emitError(xercesc_2_4::XMLErrs::Codes XMLException_Fatal,
const unsigned short * const 0x12208b60 unsigned short const * const
xercesc_2_4::XMLUni::fgNetAccessorException_Name, const unsigned short * const
0x007b6840, const unsigned short * const 0x00000000, const unsigned short * const
0x00000000) line 870
xercesc_2_4::IGXMLScanner::scanDocument(const xercesc_2_4::InputSource & {...}) line
309
xercesc_2_4::SAXParser::parse(const xercesc_2_4::InputSource & {...}) line 707
xalanc_1_7::XercesParserLiaison::parseXMLStream(const xercesc_2_4::InputSource &
{...}, xercesc_2_4::DocumentHandler & {...}, const xalanc_1_7::XalanDOMString & {...})
line 220 + 28 bytes
xalanc_1_7::XalanSourceTreeParserLiaison::parseXMLStream(const
xercesc_2_4::InputSource & {...}, xercesc_2_4::DocumentHandler & {...}, const
xalanc_1_7::XalanDOMString & {...}) line 562 + 29 bytes
xalanc_1_7::XSLTEngineImpl::parseXML(const xercesc_2_4::InputSource & {...},
xercesc_2_4::DocumentHandler * 0x0012cfa8, xalanc_1_7::XalanDocument * 0x00000000)
line 662 + 61 bytes
xalanc_1_7::XSLTEngineImpl::parseXML(const xalanc_1_7::XalanDOMString & {...},
xercesc_2_4::DocumentHandler * 0x0012cfa8, xalanc_1_7::XalanDocument * 0x00000000)
line 639 + 20 bytes
xalanc_1_7::StylesheetConstructionContextDefault::parseXML(const
xalanc_1_7::XalanDOMString & {...}, xercesc_2_4::DocumentHandler * 0x0012cfa8,
xalanc_1_7::XalanDocument * 0x00000000) line 636
xalanc_1_7::StylesheetHandler::processInclude(const unsigned short * 0x007abfc0, const
xercesc_2_4::AttributeList & {...}, const xercesc_2_4::Locator * 0x007bca38) line 1293
+ 38 bytes
xalanc_1_7::StylesheetHandler::processTopLevelElement(const unsigned short *
0x007abfc0, const xercesc_2_4::AttributeList & {...}, int 13, const
xercesc_2_4::Locator * 0x007bca38, unsigned char & 0, unsigned char & 0) line 789
xalanc_1_7::StylesheetHandler::startElement(const unsigned short * const 0x007abfc0,
xercesc_2_4::AttributeList & {...}) line 325
xercesc_2_4::SAXParser::startElement(const xercesc_2_4::XMLElementDecl & {...}, const
unsigned int 1, const unsigned short * const 0x00000000, const
xercesc_2_4::RefVectorOf<xercesc_2_4::XMLAttr> & {...}, const unsigned int 1, const
unsigned char 1, const unsigned char 0) line 1141
xercesc_2_4::IGXMLScanner::scanStartTag(unsigned char & 1) line 2097
xercesc_2_4::IGXMLScanner::scanContent(const unsigned char 0) line 934
xercesc_2_4::IGXMLScanner::scanDocument(const xercesc_2_4::InputSource & {...}) line
247 + 10 bytes
xercesc_2_4::SAXParser::parse(const xercesc_2_4::InputSource & {...}) line 707
xalanc_1_7::XercesParserLiaison::parseXMLStream(const xercesc_2_4::InputSource &
{...}, xercesc_2_4::DocumentHandler & {...}, const xalanc_1_7::XalanDOMString & {...})
line 220 + 28 bytes
xalanc_1_7::XalanSourceTreeParserLiaison::parseXMLStream(const
xercesc_2_4::InputSource & {...}, xercesc_2_4::DocumentHandler & {...}, const
xalanc_1_7::XalanDOMString & {...}) line 562 + 29 bytes
xalanc_1_7::XSLTEngineImpl::processStylesheet(const xalanc_1_7::XSLTInputSource &
{...}, xalanc_1_7::StylesheetConstructionContext & {...}) line 519 + 82 bytes
xalanc_1_7::XSLTEngineImpl::process(const xalanc_1_7::XSLTInputSource & {...}, const
xalanc_1_7::XSLTInputSource & {...}, xalanc_1_7::XSLTResultTarget & {...},
xalanc_1_7::StylesheetConstructionContext & {...},
xalanc_1_7::StylesheetExecutionContext & {...}) line 284 + 27 bytes