У меня есть довольно большой xml-файл (около 10 тыс. Строк), который представляет собой список элементов (представьте себе каталог книг, каждую книгу с метаданными (например, идентификатор, имя, автора и т. д.) И дочерние объекты (например, главы, примечания и т. д.). Я хочу отобразить это в веб-приложении (буду использовать Spring Boot или Grails) и планирую иметь следующие функции:
Отображение содержимого XML на веб-странице с отличным форматированием.
Разрешить пользователям выполнять поиск в данных, а затем отображать только релевантные записи (например, книги / главы, содержащие искомый текст и т. д.), Выделяя соответствующие термины.
Разрешить пользователям добавлять в закладки избранные книги, главы и другие элементы, представленные в XML, для последующего использования.
«Обогатите» текст, сканируя содержимое XML и добавляя перекрестные ссылки / ссылки на определения и т. д. Из третьего источника.
Я оцениваю несколько вариантов первых двух пунктов:
Преобразуйте XML в коллекцию объектов Java, сохраните коллекцию в памяти, а затем выполните операции поиска в Java из памяти. Отображение с использованием шаблонов gsp или листьев тимьяна.
Преобразуйте XML в коллекцию объектов Java, сохраните коллекцию в базе данных, затем выполните операцию поиска в базе данных. Отображение с использованием шаблонов gsp или листьев тимьяна.
Не разупорядочивайте, принимайте XML с помощью библиотеки и выполняйте поиск с помощью XPath. Отображение с использованием измененного файла XML и XSLT.
Есть ли стандартный шаблон проектирования для этого в стеке spring / java?
Следует отметить, что этот XML-файл довольно статичен (может обновляться раз в месяц).
Любое руководство будет оценено!
Ваш вопрос слишком общий для этого сайта, а также для участников уже закрыл его однажды за то, что он слишком ориентирован на мнение. В общем, не репостить один и тот же закрытый вопрос. Отредактируйте существующий закрытый вопрос, чтобы он принял приемлемую форму, а затем проголосуйте за его повторное открытие. Чтобы определить приемлемую форму, прочтите Как спросить. В вашем конкретном случае ваш вопрос, по сути, слишком широк, и вряд ли его можно будет исправить.