Ментор подсказал разбить мой проект на три модуля. Первый это DAO, второй - API(XSD), третий - WEB(service,controller). Первые два - все ясно. Но что такое XSD, и зачем он нужен, и как его использовать я не знаю? А ментор очень поверхностно рассказал, ничего толком не объяснив.
Скорее всего имелось ввиду разработать API обмена информацией посредством передачи XML структуры.
Т.е. по факту, чтобы взаимодействовать с Вашим сервисом(по идее это - back-end) - то надо посредством POST/GET и пр. запросов посылать вам XML(к примеру).
Ну и "отвечать" вас сервис должен посредством того же формата, к примеру.
Таким модулем может быть набор классов(с аннотациями), которые приходят вам в виде текста, преобразовываются на контроллере в объект. Ну и обратно от объекта в текст вида XML.
У вас 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 или любой другой. А также код самого клиента, сразу содержащий методы для обращения к сервису. Это очень удобно, но, к сожалению, имеется слишком много стандартов таких схем и разные производители ПО поддерживают разные из них.
На форме есть 2 взаимовыключающих togglebtn (нажимая одну я активирую режим "карандаш", нажимая вторую я активирую режим "линия")Для рисования произвольных...
У меня есть 3 Activity1 - MainActivity, 2 - InfoActivity, 3 - ChangelogActivity