Шаблон / структура проектирования для отображения и поиска в XML

У меня есть довольно большой xml-файл (около 10 тыс. Строк), который представляет собой список элементов (представьте себе каталог книг, каждую книгу с метаданными (например, идентификатор, имя, автора и т. д.) И дочерние объекты (например, главы, примечания и т. д.). Я хочу отобразить это в веб-приложении (буду использовать Spring Boot или Grails) и планирую иметь следующие функции:

  • Отображение содержимого XML на веб-странице с отличным форматированием.

  • Разрешить пользователям выполнять поиск в данных, а затем отображать только релевантные записи (например, книги / главы, содержащие искомый текст и т. д.), Выделяя соответствующие термины.

  • Разрешить пользователям добавлять в закладки избранные книги, главы и другие элементы, представленные в XML, для последующего использования.

  • «Обогатите» текст, сканируя содержимое XML и добавляя перекрестные ссылки / ссылки на определения и т. д. Из третьего источника.

Я оцениваю несколько вариантов первых двух пунктов:

  • Преобразуйте XML в коллекцию объектов Java, сохраните коллекцию в памяти, а затем выполните операции поиска в Java из памяти. Отображение с использованием шаблонов gsp или листьев тимьяна.

  • Преобразуйте XML в коллекцию объектов Java, сохраните коллекцию в базе данных, затем выполните операцию поиска в базе данных. Отображение с использованием шаблонов gsp или листьев тимьяна.

  • Не разупорядочивайте, принимайте XML с помощью библиотеки и выполняйте поиск с помощью XPath. Отображение с использованием измененного файла XML и XSLT.

Есть ли стандартный шаблон проектирования для этого в стеке spring / java?

Следует отметить, что этот XML-файл довольно статичен (может обновляться раз в месяц).

Любое руководство будет оценено!

Ваш вопрос слишком общий для этого сайта, а также для участников уже закрыл его однажды за то, что он слишком ориентирован на мнение. В общем, не репостить один и тот же закрытый вопрос. Отредактируйте существующий закрытый вопрос, чтобы он принял приемлемую форму, а затем проголосуйте за его повторное открытие. Чтобы определить приемлемую форму, прочтите Как спросить. В вашем конкретном случае ваш вопрос, по сути, слишком широк, и вряд ли его можно будет исправить.

kjhughes 04.04.2021 20:46
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
17
0

Другие вопросы по теме