1. Понять технологию диаграммы XML
1.1. XML, связанные с концепциями
(1) DTD: XML -синтаксические правила, которые являются механизмом проверки файлов XML. Вы можете сравнить документы XML с файлами DTD, чтобы увидеть, соответствует ли документ со спецификациями, и правильно ли используются элементы и этикетки.
(2) XML является основой SOA.
1.2. XML -обработка технология
(1) Чтобы использовать XML, нам необходимо получить доступ к данным через процессор XML или XMLAPI. В настоящее время JAXP предоставляет два метода обработки XML: DOM и SAX.
① DOM: DOM обращается к данным и структурам в документах XML программно, на основе структуры дерева документов XML в памяти. Недостатком является то, что требуется много накладных расходов, чтобы загрузить весь документ XML в память.
②SAX: На основе управляемого событиями один сегмент используется для анализа одного сегмента, который решает проблему DOM, занимающего большую память, но его недостаток заключается в том, что он не может получить доступ к документам случайным образом.
(2) Чтобы решить проблемы DOM и SAX, появился StreamApiForXML на основе потока (Stax для короткого). Он был добавлен в JAXP1.4 JDK6, а Stax также управляется событиями.
(3) Dom, Sax и Stax All Process XML из структуры документа, но многие приложения сосредоточены только на самих данных документа, поэтому технология привязки данных XML возникла.
Привязка данных: относится к процессу извлечения данных из носителя хранения (XML -документов и баз данных) и представления этих данных с помощью программ, то есть привязывание данных с структурой памяти, которую виртуальная машина может понять и работать.
XML -привязка структуры: Кастор, Jaxb, Jibx, Quick, Zeus и т. Д.
2. Инструмент обработки XML: Xstream
2.1. XStream Обзор
(1) XStream-это простая и простая в использовании структуру с открытым исходным кодом для сериализации объектов Java в XML или десериализацию XML в объекты Java. Ключевые особенности Xstream:
(2) Композиция архитектуры Xstream:
Преобразователи: когда Xstream сталкивается с объектом, который необходимо преобразовать, он делегируется соответствующей реализацией преобразователя.
IO (вход/вывод): XStream абстрагируется из основных данных XML через иерархическую псевдоним и иерархическому читателю и используется для сериализации и операций десериализации соответственно.
Контекст: когда XStream сериализуют объекты десериализации, создаются два класса MarshallingContext и UnmarshallingContext, а башня обрабатывает данные и делегирует их в соответствующий преобразователь.
Фасад (унифицированный вход): интегрируйте вышеупомянутые 3 балла вместе и откройте их пользователям с унифицированным интерфейсом.
2.2. Быстрый старт
(1) Создать Xstream и укажите анализатор XML
Xstreamxstream = newxstream (newdomdriver ());
Если вы не указаете сияющий, XStream по умолчанию будет использовать анализатор XPP (XMLPullParser), который является высокоскоростным анализатором.
(2) Примеры следующие:
2.3. Используйте псевдоним xstream
(1) В приведенном выше примере полное имя класса объекта Java соответствует элементу корневого файла XML, а имя атрибута соответствует элементу узла файла XML. Однако в реальных ситуациях как объект Java, так и объект XML могли уже определить имена, поэтому необходимо отображение псевдонима.
Xstream имеет 3 конфигурации псевдоним:
Имя категории: используйте псевдоним (StringName, Classtype).
Псевдоним класса: используйте Aliasfield (Stringalias, ClassDefinedin, StringfieldName).
Участники класса используются в качестве псевдонима атрибутов: Использовать AliaSattribute (ClassDefinedIn, StringAttributeName, Stringalias) и наименование их в одиночку не имеет значения, и они также должны применяться к определенному классу через useatTribute (ClassDefinedIn, StringFieldName).
(2) изменить пример в 2,2 через псевдоним:
2.4. Xstream Converter
В процессе разработки иногда вам нужно преобразовать некоторые пользовательские типы. Просто реализуйте интерфейс преобразователя и вызовите метод RegisterConverter () XStream, чтобы зарегистрировать преобразователь.
2.5. Xstream Annotation
(1) Общие аннотации для Xstream следующие:
(2) Использовать
Xstreamxstream = newxstream (newdomdriver ());
Есть 2 способа загрузки объектов:
①method 1:
xstream.processannotations (aaa.class);
xstream.processannotations (bbb.class);
② Метод 2:
xstream.AutoDeTectannotations (true); // Автоматическая загрузка аннотированных бобов, а также кэширует аннотированный объект.
2.6 Текущие объекты
(1) XStream предоставляет альтернативные реализации для объекта ItinputStream и ObjectOutputStream, позволяя сериализации XML или операций по десериализации в форме потоков объектов. Предыдущий-XML, чтение с помощью анализатора XML на основе DOM, здесь мы, очевидно, должны использовать метод потока для анализа.
Примеры следующие:
(2) Разница между использованием PrettyWriter и Compactwriter заключается в том, что PrettyWriter отформатирует сгенерированный XML, в то время как CompactWriter будет сжимать сгенерированный XML.
2.7 Настойчивость API
(1) XStream предоставляет простой способ сохранить объекты в коллекции в файлы, такие как: xmlarraylist, XMLSet, XMLMAP и т. Д.
(2) Прежде чем создать коллекцию, вам также необходимо указать стратегию настойчивости, настойчивую.
2.8 Справиться с json
(1) XML имеет непоколебимую позицию в веб -сервисе, но в большинстве веб -приложений легкий JSON все еще используется в качестве формата обмена данными.
(2) XStream предоставляет jettisonMampedXmldriver и jsonHierarchicalStreamDriver для завершения преобразования объектов Java и JSON.
Примеры следующие:
(3) Разница между jettisonmatdxmldriver и jsonhierarchicalstreamdriver:
①jettisonMappedXmldriver генерирует сжатый json, в то время как jsonHierarchicalStreamDriver генерирует форматированный JSON.
② Если вы хотите преобразовать JSON в объект, вы можете использовать только jettisonMamdxmldriver.
3. Другие распространенные проекты с открытым исходным кодом O/XMAPP
Сравнение JAXB, XMLBeans, CSTOR, JIBX:
4. Интеграция с Springoxm
4.1. Обзор Springoxm
(1) Springoxm сделал единую абстракцию и инкапсуляцию основной структуры O/Xmating. Marshaller и Unmarshaller являются двумя основными интерфейсами Springoxm. Marshaller используется для преобразования объектов в XML, а Unmarshaller используется для преобразования XML в объекты.
(2) Обертки компонентов O/xmating следующие:
4.2. Настройка весной
(1) экземпляр конфигурации XstreamMarShaller:
5. Резюме
(1) Связывание данных XML с приложениями Java может быть обобщено в 2 способах:
Создайте код языка Java (например, JAXB, XMLBeans, Castor) на основе документов XML.
Используйте какую -то форму метода привязки отображения, то есть установите, как классы Java связаны с XML (например, Xstream, Castor, Jibx).
(2) Сравнение 2 способов:
Используя стабильную структуру документа, определенную схемой или DTD, и структура подходит для потребностей приложения, метод генерации кода может быть лучшим выбором.
Если вы используете существующий класс Java, или если вы хотите использовать структуру класса, которая отражает использование данных приложения, а не структуру XML, метод отображения является лучшим выбором.
Суммировать
Выше приведено все о пружине, используя OXM для анализа картирования объекта XML. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!