Как сгенерировать Java-класс, соответствующий данному описанию?

 
 
 
Сообщения:275
Здравствуйте! Подскажите, пожалуйста, как сгенерировать Java-класс, соответствующий данному описанию?(3 пункт задания ниже)
Тут http://spec-zone.ru/RU/Java/Tutorials/jaxb/intro/examples.html я нашёл утилиту -xmlschema,... но похоже это не то, а в учебнике Хорстманна, Корнелла в теме XML я затерялся.
Подскажите хотя бы где искать.

Задание такое:

Java.SE.07. Java and XML

1. Создать файл XML и соответствующую ему схему XSD.
2. При разработке XSD использовать простые и комплексные типы, перечисления, шаблоны и предельные значения.
3. Сгенерировать Java-класс, соответствующий данному описанию.
4. Создать Java-приложение для разбора XML-документа и инициализации коллекции объектов информацией из XML-файла. Для разбора использовать SAX, DOM и StAX парсеры. Для сортировки объектов использовать интерфейс Comparator.
5. Произвести проверку XML-документа с привлечением XSD.
 
 
Сообщения:275
просто слышал, что это можно сделать из командной строки, можно конечно самому... наверное так и прийдётся.
 
 
Сообщения:275
Нашёл как, но тут же проблема: "xjc не является внутренней или внешней командой",
нашёл как с помощью Эклипса, но там опять свои моменты...
P.S.: а руками как-то не очень хочется, потому что чувствую, что наделаю ошибок((
 
 
Сообщения:476
не спец по xml, но чтобы посоветовал или сам делал
1, 2. прочитать про схему http://www.w3schools.com/schema/default.asp
3. Примеров в сети много, можете посмотреть, например http://www.mkyong.com/java/jaxb-hello-world-example/
4. Я бы использовал только stax, так он более менее понятный, чем dom и sax, как раз в книге Корнелла и Хорстманна про него есть достаточно информации.

пс. в шапке в теме про хмл есть ссылка на генератор xsd
 
 
Сообщения:276
Ну на самом деле есть JAXB, JIBX для маршализации и демаршализации. С parsing XML еще все проще.
Попробуйте JAXB для первого пункта что ли, т.к является стандартом в мире Java. Вот вам и tutorial - Не забудьте отблагодарить Lars Vogel

Java/Android Developer.
My Twitter Agile Samurai
Изменен:11 май 2013 13:50
 
 
Сообщения:275
Спасибо, но мне помогла простая переустановка - оказывается у меня стояло только jre, я его удалил и установил jdk и всё нормально работает)
 
 
Сообщения:476
Yakunin_Yura:
xjc
ну нифига себе прикалюха:)
xjc example.xsd ---> сразу генерит классы, просто впечатлило )) получается xml кинул в генератор xsd, потом через xjc в java классы и не надо париться с либами всякими ))
 
 
Сообщения:17
house2008:
сразу генерит классы, просто впечатлило ))

а зачем эти классы нужны? и собственно не понятно что они содержат и что умеют :)
попробовал классы тоже получил, а теперь думаю зачем это надо :)

правильно ли я понимаю, что классы связаны как-то с маршалингом\демаршалингом и сущностями?
кто-нибудь переводил доку по xjc?

---добавлено позже
для чего классы нужны разобрался... позволяют наполнять данными объекты и потом эти "объекты выгружать в XML" (кажется маршалинг называется)

А вот новый вопрос возник. В схеме есть определение типа для даты. Хотелось бы на этапе маршалинга получать exception если дата не соответствует паттерну... может у xjc есть какой-то параметр хитрый для включения подобной проверки в класс?

	<xs:simpleType name="DateType">
		<xs:restriction base="xs:date">
			<xs:pattern value="\d{4}-\d{2}-\d{2}"/>
		</xs:restriction>
	</xs:simpleType>
Изменен:20 дек 2016 06:01
 
 
Сообщения:139
Yakunin_Yura:
Для разбора использовать SAX, DOM и StAX парсеры.

а тут у Холмса случилось исключение в обработчике исключения, возникшего при обработке исключения

Изменен:06 дек 2016 18:15
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет