Нет, вам нужно три объекта. Вы можете думать о «Книгах» как о базе данных CoreData, которую вы используете. База данных CoreData затем включает в себя ряд сущностей, называемых book.
Я думаю, что модель данных у вас немного странная, но я думаю, что это имеет смысл для вашего приложения. Чтобы сопоставить его с CoreData, я бы:
Добавить сущности Книга, Страница, Текст
Добавьте bookId, pageId, textId к ним соответственно.
Затем добавьте отношение от Страница до Книга и от Текст до Страница .
К тому времени вы сможете распечатать целую книгу, запрашивая все страницы с
Книга = книга, которая вас интересует
и затем упорядочите все эти страницы по их идентификатору страницы
и по порядку попросите все тексты, которые имеют
Страница = текущая страница
затем упорядочите эти тексты по textId .
Возможно, проблема в том, что Text может иметь несколько значений, как видно из вашего XML выше. Вы можете использовать это, добавив другую сущность с именем Value, но я бы, вероятно, решил ее, добавив атрибуты "value" и "type" непосредственно к сущности Text . (Затем вы можете использовать «значение» в качестве ключа второй сортировки при печати страницы.