xmlSAXUserParseFile returned error 27
SAX.setDocumentLocator()
SAX.startDocument()
SAX.internalSubset(test, , )
SAX.elementDecl(test, 3, ...)
SAX.entityDecl(xx, 4, (null), (null), %zz;)
SAX.getParameterEntity(xx)
SAX.entityDecl(zz, 4, (null), (null), <!ENTITY tricky "error-prone" >)
SAX.getParameterEntity(zz)
SAX.getParameterEntity(xx)
SAX.getParameterEntity(zz)
SAX.entityDecl(tricky, 1, (null), (null), error-prone)
SAX.getEntity(tricky)
SAX.externalSubset(test, , )
SAX.startElement(test)
SAX.characters(This sample shows a , 20)
SAX.getEntity(tricky)
SAX.characters(error-prone, 11)
SAX.reference(tricky)
SAX.characters( method., 8)
SAX.endElement(test)
SAX.endDocument()
