Как разрешить внутренне объявленную ссылку на сущность XML с помощью NSXMLParser
У меня есть файл XML, который использует внутренне объявленные объекты. Например:
<?xml version="1.0" encoding="UTF-8"?>
...
<!ENTITY my_symbol "my symbol value">
...
<my_element>
<my_next_element>foo&my_symbol;bar</my_next_element>
</my_element>
...
Используя класс NSXMLParser, как я могу решитьmy_symbol
ссылка на сущность?
Из экспериментов,parser:foundInternalEntityDeclarationWithName:value:
метод делегата будет вызван дляmy_symbol
декларация объекта со значением"my symbol value"
, Затем, когдаmy_next_element
элемент достигнут,NSXMLParser
позвонюparser:didStartElement:namespaceURI:qualifiedName:attributes:
метод делегата.
Доparser:didEndElement:namespaceURI:qualifiedName:
называется для</my_next_element>
,parser:foundCharacters:
Метод делегата будет вызван дважды со строками:
"foo"
"bar"
my_symbol
ссылка на сущность игнорируется. Что требуется для разрешения ссылки на сущность?
РЕДАКТИРОВАТЬ:
УдалениеENTITY
декларацияmy_symbol
от DTD приведет кNSXMLParserUndeclaredEntityError
, Это говорит о том, что когда присутствует объявление сущности, а затем ссылка на<my_next_element>
замечается. По какой-то причине он просто не разрешается в строку, которую он представляет.
Кроме того, если&
используется внутри элемента, парсер правильно разрешит его"&"
и это передается как строка, когдаparser:foundCharacters:
Метод делегата вызывается.