Comments 7
А Вы точно уверены что для реализации консольной (!) программы валидации XML по XSD нужно ВСЕ это..
Консольная программа валидаци это от силы строк 30..40 в одном java файле, собираемом javac.
Нафига тут SpringBoot бины…
Spring часто раскручивают на хабре. Отчасти из-за распространённости. Но и рекламная составляющая, безусловно, присутствует. Контора, которая им владеет, эксплуатирует известность по модели money for support, где support выглядит весьма разнообразно.
Вот, например, на чём наваривал автор этой либы:
Собственно по фразам вроде «most influential books ever published» ясно, что деятель не стесняется в выборе инструментов продвижения, как и его контора.
Вот, например, на чём наваривал автор этой либы:
Rod's best-selling Expert One-on-One J2EE Design and Development (2002) was one of the most influential books ever published on J2EE
Собственно по фразам вроде «most influential books ever published» ясно, что деятель не стесняется в выборе инструментов продвижения, как и его контора.
Неужели сейчас кто-то конфигурирует Spring через xml-конфигурацию? Понимаю, что это не хардкод через Java-конфигурацию, и если нужна не базовая Boot конфигурация через properties/yaml, то в любом случае, сделать в коде с помощью вынесенных параметров несложно. А если Cloud (Config, Vault)?
А в общем, имплементация очень слабенькая, смысла ее тут постить не вижу вообще.
Наличие логов типа 'printer.boldln' непонятной библиотеки… как минимум, Java-сообщество уже привыкло к Lombok и можно было просто писать log.info()… хотя для демонстрации логгирование не нужно вообще.
Конструкция
давно морально устарела.
Spring, но при этом простой класс с main(String[] args)? Серьезно? Шашечки или ехать?
А если не Eclipse, а IDEA? А если блокнот и javac?
В последних версиях Java разве так с файлами работают? Есть же класс пакет java.nio.file, где куча удобных инструментов без всяких этих ридеров и стримов…
Наличие логов типа 'printer.boldln' непонятной библиотеки… как минимум, Java-сообщество уже привыкло к Lombok и можно было просто писать log.info()… хотя для демонстрации логгирование не нужно вообще.
Конструкция
try {
... FileInputStream()
...
} finally {
close()
}
давно морально устарела.
Spring, но при этом простой класс с main(String[] args)? Серьезно? Шашечки или ехать?
А если не Eclipse, а IDEA? А если блокнот и javac?
В последних версиях Java разве так с файлами работают? Есть же класс пакет java.nio.file, где куча удобных инструментов без всяких этих ридеров и стримов…
Для этого с помощью JAXB создадим файлы AddressType.java, ClientType.java, CombinedType.java В IDE Eclipse: правый клик по XSD -> Generate -> JAXB Classes…
Кодогенерацию можно автоматизировать с помощью например CXF XJC Maven Plugin
извините за некропостинг, но где в этом коде происходит валидация? Например, укажите у какого-нибудь элемента в схеме minOccurs="1", уберите соответствующее поле в xml-ке, подайте её в unmarshaller и вы увидите, что ничего он не валидирует и просто присваивает null полю, которое согласно схеме было обязательным.
Насколько я понимаю, чтобы unmarsahaller произвёл валидацию, ему нужно принудительно подсунуть схему через setSchema().
Sign up to leave a comment.
Валидация XML с помощью XSD, JAXB и Spring Framework