Обычно xml становится длинным и сложным, когда вы используете ВСЕ функциональные возможности, в минимальном случае вы сможете создать простой xml-файл из таблицы sqllite, просто написав
<?xml version="1.0"?>
<tablename>
<row>
<columnname1>content</columnname1>
<columnname2>content</columnname2>
</row>
<row>
</row>
</tablename>
Выполнение этого в цикле итерации для каждой строки не должно требовать выделения памяти, которое будет зависеть от размера таблицы. Вам не нужна внешняя библиотека для этого.
Что касается размера, xml не известен своей краткостью, но есть много повторений, поэтому он будет сильно сжиматься.
NSXMLParser - это SAB-подобный парсер EventBase, это означает, что у него также не должно быть проблем с размером файла xml. Он никогда не должен создавать представление всего XML-файла. У меня нет опыта работы с xswi, поэтому я не могу говорить за это.
Что касается сообщения об ошибке (вы можете найти это в исходном коде xswi), подумайте о том, как target-c обрабатывает память и когда автоматически освобождается память на самом деле освобождается. А затем посмотрите, как вы используете xswi