NSXMLParser: Error al intentar resolver y analizar entidad externa

Actualmente estoy tratando de analizar un XML, que incluye otro XML, utilizando references analíticas externas analíticas. Sin embargo, NSXMLParser genera un error en lugar de analizar el XML incluido.

El xml se ve algo así:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE parentElement[ <!ENTITY extern SYSTEM "myGreatURI"> ]> <parentElement attribute1="1" attribute2="2" ...> <childElement> &extern; <parentElement ..> <childElement> 

He habilitado el analizador para analizar references externas:

 self.parser.shouldResolveExternalEntities = TRUE; 

A medida que se analiza la definición de mi entidad externa, se llama al método according delegate:

 - (void)parser:(NSXMLParser *)parser foundExternalEntityDeclarationWithName:(NSString *)entityName publicID:(NSString *)publicID systemID:(NSString *)systemID 

Pasa los valores correctos : entityName = "extern" y systemID = "myGreatURI"

Pero como la reference se analiza en el xml, se produce NSXMLParser Error 1549 .


Solo después de que se haya producido este error, se llama al método de delegado esperado:

 - (NSData *)parser:(NSXMLParser *)parser resolveExternalEntityName:(NSString *)entityName systemID:(NSString *)systemID 

¡Pero ahora el ID del sistema es nulo ! Además, NSXMLParser no utiliza mis datos devueltos como se esperaba. En lugar de analizarlo, el XML completo se detecta como una cadena, que se me ha entregado mediante el método:

 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 

Como puede ver, tengo varios problemas diferentes. Desafortunadamente Google y la Documentación de Apple me dejaron sin idea.