Для java версии транслятора языка программирования Денеб разработан десериализатор XML файлов. Десериализатор читает xml файлы, DOM структуры или потоки (InputStream) содержащие xml данные и заполняет объекты. В том числе создавая вложенные объекты и векторы (списки вложенных объектов). Десериализация происходит на основе XPath выражений заданных в виде специальной аннотации целевых классов.
Аннотация @Xpath имеет параметры path, value, itemClass, namespaces.
- path
- XPath выражение. Для вложенных объектов может содержать путь относительно листов соответствующих объекту предыдущего уровня.
- value
- Булево значение - метка обозначающая что данное поле объекта должно быть заполнено значением XPath выражения. В противном случае поле считается вложенным объектом и его заполнение происходит на основе Xpath аннотаций полей объекта этого типа.
- itemClass
- Класс элементов вектора (списка вложенных объектов).
- namespaces
- Список строк представляющий собой перечисление использованных в XPath выражении префиксов и соответствующих им пространств имен. Сначала располагается префикс, а после него пространство имен.
Протестирована работа десериализатора на основе стандартного набора XML классов JAXP и с использованием Saxon9HE в версии Java 1.7. В случае использования Saxon и разбора XML файлов с определением пространств имен обязательно необходимо использовать параметр аннотации namespaces и использовании в качестве ссылки на корень документа двойного слеша "//".
Десериализатор находится в репозитории проекта на GitHub репозиторий. В папке serialization.
Добавить комментарий