2012-06-06 4 views
4

У меня есть несколько вопросов о JAXB:Оценка JAXB

  1. Какие варианты существуют для разбора? Могу ли я легко реализовать/подключить собственный парсер?

  2. Что относительно действительности? Предположим, у меня есть расслабленный парсер, который несколько расслаблен относительно схемы. Могу ли я создать (недействительную) объектную структуру?

  3. Дает JAXB специальные средства для осуществления, например. проверка достоверности объектов? Я хотел бы проанализировать структуру «недействительных» объектов, исправлять некоторые алгоритмы, а затем проверять (на Java).

  4. JAXB Предоставляет другие способы делать вещи на объектах (например, шаблон посетителя).

  5. Как насчет объема памяти? Является ли представление объекта (без учета синтаксического анализа) возможным для XML файлов размером 10-100 МБ?

Хорошие учебные пособия, охватывающие такие вопросы, оцениваются, Google раскрывает только грубые обзоры.

ответ

3

Ниже приведены мои ответы на ваши вопросы:

Какие варианты существуют для разбора? Могу ли я реализовать/плагин мой собственный парсер легко?

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 в кусках.

+0

Спасибо, Блейз это очень полезно. Можете ли вы порекомендовать хорошую книгу по привязке данных для XML, также касающуюся проблем проектирования (например, изменяемой/неизменяемой модели, связанной с несовершенными данными) – Bastl

+1

@Bastl - У меня нет рекомендаций по книге, но у меня есть довольно активная привязка XML и JSON блог, который может оказаться полезным: http://blog.bdoughan.com –