Архитектура системы
Я новичок в Java, и у меня есть уникальное требование. Я получаю данные XML от клиента, и я уже определил схему со мной. Теперь проблема в том, что на стороне клиента xml имеет гораздо больше элементов, чем моя схема. Как с этим бороться? Кроме того, есть некоторые элементы, которые имеют архитектуру, отличную от той, что определена в схеме, я хочу преобразовать ее в форму схемы. Это звучит неправильно, поскольку схема обычно используется для проверки? Может кто-нибудь дать мне обзор того, как бороться с проблемой на небольшом примере?
1 ответ
Целью схемы XML является описание структуры набора документов XML. Если ваш клиент отправляет XML, который не соответствует вашей схеме, то одна из трех вещей должна быть верной:
Клиент неверен. Если это так, вы должны отклонить их запрос, так как он недействителен.
Ваша схема неверна. В этом случае вам следует исправить свою схему так, чтобы она точно описывала то, что разрешено в запросах.
Ваша схема полностью описывает что-то еще. В этом случае вы должны написать другую схему, которая описывает разрешенные запросы. Затем вы можете захотеть преобразовать документы, соответствующие этой схеме, в документы, соответствующие вашей новой схеме - XSLT - отличный инструмент для выполнения именно этого. Я заметил, что вы также пометили JAXB - еще один способ выполнить преобразование - создать представления JAXB для обеих схем и выполнить преобразование самостоятельно в коде.
Это полезно? Прежде всего, я бы сказал, что вам нужно выяснить, какую роль играет ваша XML-схема в вашей системе, и это задача проектирования, которую вы должны выполнить, прежде чем начинать писать какой-либо код.