Архитектура системы

Я новичок в Java, и у меня есть уникальное требование. Я получаю данные XML от клиента, и я уже определил схему со мной. Теперь проблема в том, что на стороне клиента xml имеет гораздо больше элементов, чем моя схема. Как с этим бороться? Кроме того, есть некоторые элементы, которые имеют архитектуру, отличную от той, что определена в схеме, я хочу преобразовать ее в форму схемы. Это звучит неправильно, поскольку схема обычно используется для проверки? Может кто-нибудь дать мне обзор того, как бороться с проблемой на небольшом примере?

1 ответ

Решение

Целью схемы XML является описание структуры набора документов XML. Если ваш клиент отправляет XML, который не соответствует вашей схеме, то одна из трех вещей должна быть верной:

  • Клиент неверен. Если это так, вы должны отклонить их запрос, так как он недействителен.

  • Ваша схема неверна. В этом случае вам следует исправить свою схему так, чтобы она точно описывала то, что разрешено в запросах.

  • Ваша схема полностью описывает что-то еще. В этом случае вы должны написать другую схему, которая описывает разрешенные запросы. Затем вы можете захотеть преобразовать документы, соответствующие этой схеме, в документы, соответствующие вашей новой схеме - XSLT - отличный инструмент для выполнения именно этого. Я заметил, что вы также пометили JAXB - еще один способ выполнить преобразование - создать представления JAXB для обеих схем и выполнить преобразование самостоятельно в коде.

Это полезно? Прежде всего, я бы сказал, что вам нужно выяснить, какую роль играет ваша XML-схема в вашей системе, и это задача проектирования, которую вы должны выполнить, прежде чем начинать писать какой-либо код.

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