Repository navigation
Starting using exjaxb
Совместное применение шаблонов Builder и Decorator позволило решить проблему с пространствами имен XSD. Теперь сериализация и десериализация для любых парсеров происходит практически в одну строчку.
// создаем парсер
ExJAXBParser<Adhocroot> parser = new SchemaTestParser();
ExJAXB<Adhocroot> service = new ExJAXB<Adhocroot>(parser);
// десериализация
Adhocroot result = service.unmarshall(srcXml, srcXsd, target, isValidationEnabled, isSavingTempEnabled);
// сериализация
Marshaller marshaller = service.getMarshallBuilder().createMarshaller(result.getClass());
service.marshall(marshaller, result, parser.getRootTagName(), parser.getSchemaInstancePrefix(), doc);
Парсер должен реализовывать интерфейс ExJAXBParser.
JAXB-RI 2.2.4.1 Лицензия библиотеки: CDDL v1.1 и GPL v2.
Библиотека представляет собой автоматический сериализатор/десериализатор, который планируется использовать при обработке различных xml-документов, которые в будущем могут появится.
Наличие в ней средств, позволяющих на основании XSD-спецификации выполнять автоматическую сериализацию/десериализацию, радикально уменьшает затраты времени на разработку XML-анализаторов.
-
Возможность использования дополнительных свойств сериализатора, описанных здесь http://jaxb.java.net/nonav/2.2.4-1/docs/vendorProperties.html . Такие свойства позовлят программно управлять процессом автоматической сериализации, связывая xml-документы с пространствами имен, объявленных в XSD. В целом, при наличии нескольких версий спецификаций (напр., 0.83 и 0.84) возникнет проблема анализа xml. При использовании данной библиотеки наличие разных версий можно будет разделять с помощью пространства имен. Существующая реализация в Java6 http://download.oracle.com/javase/6/docs/api/javax/xml/bind/Marshaller.html#supportedProps не поддерживает этого. -
На основе этой библиотеки я развил функционал, позволяющий выполнять обобщенную сериализацию/десериализацию “в одну строчку” (использовал Generics, GoF patterns Decorator, Builder). Получение java-модели из xml теперь сведется к указанию местоположения схемы и заданию параметров маршализации (если это необходимо). -
Программный контроль над аннотациями с помощью открытия доступа к XmlAccessorFactory. Это позовлит программно управлять автоматической моделью при сериализации/десериализации. -
Программный доступ на уровне XSD: новые возможности управления сериализацией. http://jaxb.java.net/nonav/2.2.4-1/docs/vendorCustomizations.html В целом, позволяет более гибко формировать модель по спецификации XSD.
Полный перечень известных достоинств библиотеки размещен по адресу http://jaxb.java.net/nonav/2.2.4-1/docs/vendor.html