Что такое XSD ? с чем его едят?

340
26 ноября 2016, 19:26

Ментор подсказал разбить мой проект на три модуля. Первый это DAO, второй - API(XSD), третий - WEB(service,controller). Первые два - все ясно. Но что такое XSD, и зачем он нужен, и как его использовать я не знаю? А ментор очень поверхностно рассказал, ничего толком не объяснив.

Answer 1

Скорее всего имелось ввиду разработать API обмена информацией посредством передачи XML структуры.

Т.е. по факту, чтобы взаимодействовать с Вашим сервисом(по идее это - back-end) - то надо посредством POST/GET и пр. запросов посылать вам XML(к примеру).

Ну и "отвечать" вас сервис должен посредством того же формата, к примеру.

Таким модулем может быть набор классов(с аннотациями), которые приходят вам в виде текста, преобразовываются на контроллере в объект. Ну и обратно от объекта в текст вида XML.

Answer 2

У вас XSD упоминается в контексте API. Вероятно, ваш ментор имел в виду, что сервис должен в виде XSD предоставлять информацию о формате сообщений, которыми можно с ним обмениваться.

Например, имеется XML вида:

<data>
    <field1>abc</field1>
    <field2>1<field2>
</data>

Можно предположить, что элемент field1 имеет тип string (строка). Но какого типа field2? Строка или число? Если число, то целое или вещественное, знаковое или беззнаковое? Из самого сообщения это нельзя определить. Вся эта и другая информация содержится в XSD.

Конечно, правильно это называется Xml Schema. А xsd - это расширение файлов этого формата.

Более того, существует множество других схем, описывающих форматы передачи данных и способы взаимодействия между сервисом и клиентом. В частности, WSDL, WADL, SOAP и другие. В них описываются не только типы данных, но и методы, которые может выполнять сервис и прочее. Часто их называют просто схемами, а отсюда и некоторая путаница с XSD.

По этим схемам может автоматически генерироваться набор классов (DTO/POJO) на используемом языке программирования, будь то Java или любой другой. А также код самого клиента, сразу содержащий методы для обращения к сервису. Это очень удобно, но, к сожалению, имеется слишком много стандартов таких схем и разные производители ПО поддерживают разные из них.

READ ALSO
Переключение значения аргумента addMouseListener и addMouseMotionListener по кнопке

Переключение значения аргумента addMouseListener и addMouseMotionListener по кнопке

На форме есть 2 взаимовыключающих togglebtn (нажимая одну я активирую режим "карандаш", нажимая вторую я активирую режим "линия")Для рисования произвольных...

221
Activity пересоздается после смены Activity

Activity пересоздается после смены Activity

У меня есть 3 Activity1 - MainActivity, 2 - InfoActivity, 3 - ChangelogActivity

205
Не вызывается onActivityResult

Не вызывается onActivityResult

Для получения разрешения androidpermission

223
Альтернатива подключения к базе данных Mysq

Альтернатива подключения к базе данных Mysq

Всем привет!Дело в слудующем

234