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.startElementNs(test, NULL, NULL, 0, 0, 0)
SAX.characters(This sample shows a , 20)
SAX.getEntity(tricky)
SAX.characters(error-prone, 11)
SAX.reference(tricky)
SAX.characters( method., 8)
SAX.endElementNs(test, NULL, NULL)
SAX.endDocument()
