Ниже приведены мои ответы на ваши вопросы:
Какие варианты существуют для разбора? Могу ли я реализовать/плагин мой собственный парсер легко?
JAXB (JSR-222) реализации могут распаковать из множества различных типов входных: InputStream
, InputSource',
Узел ,
XMLStreamReader ,
XMLEventReader ,
Файл ,
Source`. Если ваше XML-представление соответствует любому из них, тогда вы все настроены.
Что относительно действительности? Предположим, у меня есть расслабленный парсер, который немного расслаблен относительно схемы. Могу ли я создать (недействительную) объектную структуру ?
В реализациях JAXB требуется, чтобы XML был хорошо сформирован, но не требует, чтобы он был действительным в отношении схемы XML. Он предназначен для обработки широкого спектра документов. Если вы хотите обеспечить «достоверность», вы можете установить XML-схему (см. JAXB and Marshal/Unmarshal Schema Validation).
Предоставляет ли JAXB специальные средства для осуществления, например. проверка достоверности объектов? Я хотел бы проанализировать структуру «недействительных» объектов, иметь алгоритм , исправить его, а затем проверить (на Java).
API-интерфейсы javax.xml.validation
Вы можете использовать для проверки на объектной модели.Для полного примера см:
ли JAXB предоставить другие средства, чтобы сделать модные вещи на объекты (например, шаблон посетителя).
Модели JAXB являются POJO, поэтому вы можете проектировать их по своему усмотрению. Вы можете быть заинтересованы в следующих классах:
Что о памяти след? Является ли представление объекта (без учета разбора) возможным для файлов XML размером 10-100 МБ?
Да JAXB может использоваться для обработки документов такого размера. Если вас беспокоит размер, вы можете использовать XMLStreamReader
для синтаксического анализа XML-файла, а затем отключить объекты из XMLStreamReader
в кусках.
Спасибо, Блейз это очень полезно. Можете ли вы порекомендовать хорошую книгу по привязке данных для XML, также касающуюся проблем проектирования (например, изменяемой/неизменяемой модели, связанной с несовершенными данными) – Bastl
@Bastl - У меня нет рекомендаций по книге, но у меня есть довольно активная привязка XML и JSON блог, который может оказаться полезным: http://blog.bdoughan.com –