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.error: PEReference: %xx; not found
SAX.characters(This sample shows a , 20)
SAX.getEntity(tricky)
SAX.error: Entity 'tricky' not defined
SAX.characters( method., 8)
SAX.endDocument()
xmlSAXUserParseFile returned error 27
