libxml на iOS категорически отказывается анализировать этот, казалось бы, правильный XML-файл (часть спецификации SVG!):
http://www.w3.org/TR/SVG11/images/coords/PreserveAspectRatio.svg
Он жалуется:
Error Domain=1 Code=27 "Entity 'Smile' not defined
UserInfo=0x7655730
{
lineNumber=26,
NSLocalizedDescription=Entity 'Smile' not defined,
bonusInfo1=Smile,
columnNumber=25
}
...и возвращает ошибку уровня ПРЕДУПРЕЖДЕНИЕ для каждого объекта. Кажется, нет никакого способа заставить его делать то, что подразумевает документация (по умолчанию анализировать объекты). Здесь есть загадочное псевдо-объяснение (http://www.xmlsoft.org/entities.html), в котором говорится, что это очень сложно, и никто не должен делать это сам... но libxml, похоже, тоже этого не делает :( .
Вот структура установки, чтобы подтвердить, что я не предоставляю никаких переопределений для синтаксического анализа объектов:
static xmlSAXHandler SAXHandler = {
NULL, /* internalSubset */
NULL, /* isStandalone */
NULL, /* hasInternalSubset */
NULL, /* hasExternalSubset */
NULL, /* resolveEntity */
NULL, /* getEntity */
NULL, /* entityDecl */
NULL, /* notationDecl */
NULL, /* attributeDecl */
NULL, /* elementDecl */
NULL, /* unparsedEntityDecl */
NULL, /* setDocumentLocator */
NULL, /* startDocument */
NULL, /* endDocument */
NULL, /* startElement*/
NULL, /* endElement */
NULL, /* reference */
charactersFoundSAX, /* characters */
NULL, /* ignorableWhitespace */
NULL, /* processingInstruction */
NULL, /* comment */
NULL, /* warning */
errorEncounteredSAX, /* error */
NULL, /* fatalError //: unused error() get all the errors */
NULL, /* getParameterEntity */
cDataFoundSAX, /* cdataBlock */
NULL, /* externalSubset */
XML_SAX2_MAGIC,
NULL,
startElementSAX, /* startElementNs */
endElementSAX, /* endElementNs */
structuredError, /* serror */
};