XML: пример, функции и возможности, плюсы и минусы формата
XML - код, принятый в качестве рекомендации Консорциума World Wide Web (W3C), аналогичен языку HTML. Он является менее сложным и удобным в применении, принадлежит к подмножеству языка разметки стандарта SGML, используемого для создания структуры документа. Основным строительным блоком XML является элемент, определяемый начальными и конечными тегами. Все данные в документе XML содержатся во внешнем элементе, известном как корневой. Имена описывают его содержимое. А структура описывает отношения между элементами в примере XML. Он поддерживает вложенные или внутренние элементы с иерархической структурой.
История
XML появился как способ преодолеть недостатки двух своих предшественников - SGML и HTML. В конце 1980-х до появления Интернета издатели цифровых СМИ реализовали различные преимущества SGML для динамического отображения информации. Язык был чрезвычайно мощным и расширяемым инструментом для семантической разметки и особенно полезен для каталогизации и индексации данных. SGML и сегодня можно использовать для создания бесконечного количества языков разметки.
Однако SGML остается довольно сложным и дорогим, особенно для повседневного использования в интернете. Добавление возможности SGML к текстовому процессору удваивает или даже утраивает его цену. Наконец, коммерческие браузеры ясно дали понять, что они не намерены когда-либо поддерживать SGML.
Одним из самых популярных приложений SGML стало развитие языка разметки гипертекста HTML, созданного Тимом Бернерсом Ли в конце 1980-х. С момента своего развития HTML стал жертвой собственной популярности, так как он был быстро принят и расширен многими способами, выходящими за рамки его первоначального видения.
Он остается популярным и сегодня, хотя считается неподходящим в качестве формата хранения данных общего назначения в отличие от других языков. Пример: XML устраняет пробел, будучи удобочитаемым как для человека, так и для компьютера, и в то же время достаточно гибким для поддержки обмена данными, независимого от платформы и архитектуры. В 1998 году W3C одобрил версию 1.0 XML, таким образом, официально был создан новый язык.
Структура элементов
Существует два способа определить структуру XML-документа (определение типа данных (DTD) и схемы XML). Документы DTD были введены SGML. Они соответствуют расширенной форме Backus Naur (EBNF).
Документы схемы XML пишутся с использованием синтаксиса кода. Как DTD, так и XML-схема позволяет задавать правила ограничения. Они применяются к содержимому документов экземпляра этого же кода. Они принимают форму правил для проверки структуры XML.
Все XML-документы имеют один корневой элемент, который содержит подэлементы, их подэлементы и т. д. Это приводит к иерархической древовидной структуре в них.
Благодаря разработке через SGML определения типов документов больше подходят для приложений, ориентированных на документы, таких как HTML. В HTML используется DTD. Хотя он может определять структуру документа, но не может определять правила, которые должны применяться к данным. То есть все данные, содержащиеся в XML-документе, в DTD обрабатываются как строка. Это подходит для языков разметки. Но не подходит, когда приложению необходимо контролировать содержащиеся в нем данные.
Документ XML считается «правильно сформированным», то есть может быть прочитан и понят синтаксическим анализатором, если его формат соответствует спецификации XML и он правильно размечен. А элементы должным образом вложены. Код также поддерживает возможность определения атрибутов для элементов и описания характеристик в начальном теге. Документы могут быть очень простыми для XML, пример текста "Привет, мир!":
<?xml version="1.0" encoding="UTF-8"?>
<text>
<para>hello world</para>
</text>
Руководство по безопасности брандмауэра
Функции безопасности и возможности брандмауэра XML делают его ценным и существенным дополнением к стратегии веб-службы любой организации. По сравнению с другими брандмауэр XML способен проводить глубокую проверку, а также имеет множество других функций, которые делают его главным конкурентом для защиты данных и предотвращения уязвимостей и угроз.
Производители постоянно добавляют новые функции, чтобы держать злоумышленников в напряжении и страхе, предотвращая их вредоносные действия. К сожалению, некоторые брандмауэры на рынке сегодня все еще находятся за пределами допустимости, когда речь заходит о защите сообщений и веб-сервисов. Брандмауэры XML защищают более мощно, чем традиционные. Пример XML файла, который демонстрирует работу сетевого экрана.
Традиционные брандмауэры хорошо работают с обычным трафиком, но экранирование потоков данных требует изменения технологии, чтобы обеспечить защиту. Это делает брандмауэр XML одним из важных элементов обеспечения безопасности веб-сервисов.
Предприятия, разрабатывающие веб-приложения и веб-службы на основе этого кода, все чаще обращаются к языку разметки утверждений безопасности (SAML) для передачи идентификационных данных и информации об авторизации, поэтому им необходимо защищать себя от атак протоколов XML и SAML на уровне самого приложения. Брандмауэр XML может быть адекватным средством безопасности при защите многоуровневых систем.
Управление в SOA
Многие установки SOA сталкиваются с проблемами производительности, поскольку им не хватает надлежащего управления данными. Несмотря на всю шумиху и модные слова, которые в настоящее время окружают SOA и стремятся интегрировать сервис-ориентированную архитектуру в свою ИТ-инфраструктуру, разработчики все еще не учитывают проблемы, связанные с интеграцией данных и управлением в их проектах.
Пример sitemap XML и нюансы использования демонстрирует возможности языка.
Суть заключается в том, чтобы распознать ценность данных организации, где бы они ни находились (под зонтиком SOA или за его пределами) и найти методы, позволяющие им собирать и передавать информацию между производителями и потребителями с минимальной сложностью. Пример XML-файла SOA для сохранности информации представлен ниже.
Формируя метаданные с использованием XML, а затем, создавая приложения XSLT для передачи их в компоненты SOA и из них, разработчики получают многочисленные преимущества:
- Они создают средства для захвата ключевых элементов данных, взаимодействий и семантики. Они облегчают перемещение их между компонентами SOA или между собой. Также документируют основные понятия и предположения относительно данных, которые они используют и необходимых метаданных.
- Четкие абстрактные представления потоков информации, которые передаются между компонентами и между собой (а также характер и масштаб этих потоков) дают возможность перенаправлять их по мере появления новых бизнес-потребностей и по мере того как новые производители и потребители объединяются в общей картине.
- Протоколы XML и обмена сообщениями, такие как SOAP, действительно упрощают абстрагирование данных и их перемещение. Но они также повышают важность того, где находятся данные, как они получают или сохраняют надлежащий контекст и как связать определенный синтаксис, семантику и проверку точности с реальной информацией, которую они представляют.
Процесс парсера
Одной из целей формата XML было улучшение форматов необработанных данных, таких как простой текст, путем включения подробных описаний значения содержимого. Теперь, чтобы иметь возможность читать XML-файлы, используют синтаксический анализатор. Он (в основном) предоставляет содержимое документа через так называемый API-интерфейс прикладного программирования. Другими словами, клиентское приложение получает доступ к содержимому XML-документа через интерфейс вместо того, чтобы интерпретировать код самостоятельно. Это можно продемонстрировать на примере parser JAVA XML.
Синтаксический анализатор кода анализирует правильно сформированный документ, встроенный в строковое поле и передает проанализированные данные в выходное поле записи.
При настройке анализатора XML пользователь указывает два поля. Первое содержит документ, второе - назначения для проанализированных результатов. Можно определить элемент разделителя. Это делается для того чтобы разделить документ на несколько значений. Если он не определен, XML Parser передает весь документ в целевое поле в виде карты.
При определении этого элемента можно использовать его или упрощенное выражение XPath. Используют элемент, когда он находится непосредственно под корневым узлом и упрощенное выражение XPath (для более глубокого доступа к данным в документе XML).
Если документ XML имеет более одного значения, можно вернуть первое значение в виде списка или сгенерировать запись для каждого значения. При ее создании процессор включает все остальные входящие поля в сгенерированную запись. При необходимости анализа нескольких из них, процессор из-за множества значений включает в себя другие входящие поля для каждой сгенерированной записи.
Можно настроить процессор так, чтобы XPath включался в каждый анализируемый элемент и XML в атрибутах полей. Это также помещает каждое пространство имен в атрибут заголовка записи xmlns. Еще можно настроить процессор на включение атрибутов и объявлений пространства имен в запись (как атрибут поля). По умолчанию он уже включает атрибуты XML и объявления пространства имен в виде полей.
При настройке анализатора XML указывают поле для анализа и поле вывода для использования. На панели «Свойства» на вкладке «Общие» настраивают свойства, представленные в таблице ниже.
Назначение | Описание |
Название | Сценический псевдоним, подобно тому, как в примере чтения XML 1с 8 3 |
Описание | Необязательное описание |
Обязательные поля | Поля, которые должны включать данные для записи, переданной на сцену Можно включить поля, которые использует сцена Записи, которые не включают все обязательные поля, обрабатываются на основе обработки ошибок, настроенной для конвейера |
Предпосылки | Условия, которые должны оцениваться как ИСТИНА, чтобы позволить записи войти в стадию обработки. Нажимают кнопку «Добавить», чтобы создать дополнительные предварительные условия. Записи, которые не соответствуют всем предварительным условиям, обрабатываются на основе обработки ошибок, настроенной для этапа. |
Ошибка записи | Обработка записи ошибок для этапа:
|
Создание масштабируемого DOM
В отличие от DOM, SAX основан на событиях, поэтому он не создает представления дерева входных документов в памяти. SAX обрабатывает элемент входного документа по элементам и может сообщать о событиях и важных данных в методы обратного вызова в приложении.
В Java XDK существует три способа создания DOM:
- Разбор документа с помощью DOMParser. Это был традиционный подход XDK.
- Создание масштабируемого DOM, используя фабричный метод XMLDOMImplementation.
- Использование конструктора XMLDocument. Это не распространенное решение в XDK.
Документ анализируется как последовательность линейных событий.
В целом, SAX API предоставляет следующие преимущества:
- Метод полезен для операций поиска и других программ, которым не нужно манипулировать деревом XML.
- Он не потребляет значительных ресурсов памяти.
- Работает быстрее, чем DOM при получении XML-документов из базы данных.
- JAXP API позволяет подключить реализацию парсера SAX или DOM.
- API-интерфейсы SAX и DOM, предоставляемые в Oracle XDK, являются примерами специфических реализаций, поддерживаемых JAXP.
В общем, преимущество JAXP заключается в том, что пользователь может использовать его для написания совместимых приложений. Если приложение использует функции, доступные через JAXP, оно может очень легко переключить реализацию.
Основным недостатком JAXP является то, что он работает медленнее, чем API-интерфейсы конкретного производителя.
Пример создания сообщений
При создании XML-документов полезно одновременно создавать открывающий и закрывающий элементы. После создания тегов пользователь должен заполнить контент. Одна из фатальных ошибок для XML – забывчивость при закрытии закрывающий теги во время создания элементов.
Для начала нужно объявить версию XML. После объявления версии определяют корневой элемент для документа. В качестве корневого элемента используют сообщение, пример JAVA XML:
<? xml version = "1.0" encoding = "iso-8859-1"?> <message> </ message>
Способ описания отношений в XML - это терминология родителя и наследника. В этом примере родительским или «корневым» элементом является тот, который имеет дочерний элемент. Приведем простой пример чтения XML, когда они связаны в коде. Выполняют отступ кода, чтобы показать, что элемент является дочерним по отношению к другому:
<?xml version="1.0" encoding="iso-8859-1"?> <message>
<email> </email>
</message>
Теперь, когда есть декларация XML, корневой и дочерний элементы, определяют информацию, которую нужно раскрыть в электронном письме. Предположим, нужно сохранить информацию об отправителе, получателях, теме и содержании текста. Поскольку информация об отправителе и получателях обычно находится в заголовке документа, рассматривают их, как дочерние элементы родительского элемента. Таким образом, в этом случае, пример данных XML будет выглядеть так:
<?xml version="1.0" encoding="iso-8859-1"?> <message>
<email>
<header>
<sender>info@ххххххх.edu</sender> <recipient>info@хххххххх.edu</recipient>
</header> <subject>Re: XML Lesson </subject> <text>My XML project. </text>
</email>
</message>
Написание документа message
Некоторая информация в письме, которую требуется знать, включает отправителя, получателя и текст письма. Кроме того, нужно знать дату, когда письмо было отправлено и какое приветствие было использовано для начала сообщения. Это будет выглядеть в XML (c примером кода) следующим образом:
<?xml version="1.0" encoding="iso-8859-1"?><message>
<letter>
<letterhead>
<sender>MyName</sender> <recipient>YourName</recipient> <date>2013</date>
</letterhead> <text>
<salutation>Hello</salutation>
How are you?
</text>
</letter>
</message>
Добавляют атрибуты если нужно отслеживать, были ли на эти сообщения ответы или нет. Вместо того чтобы создавать дополнительный элемент с именем, присваивают атрибут элементу и указывают, был ли этот документ ответом на предыдущее сообщение. JAVA XML пример:
<email reply="yes">
или же
<letter reply="no">
При создании документов XML всегда полезно потратить немного времени на принятие решения о том, какую информацию нужно сохранить, а также о том, какие отношения будут иметь элементы.
Приложения для разработчиков
По своей сути XML позволяет разработчику программного обеспечения создавать словарь и использовать его для описания данных. Например, при обмене данными между компьютерами число 42 не имеет смысла. А если пользователь укажет это же значение в градусах, то оно обретет смысл, поскольку температура процессора выражается в градусах Цельсия. Только когда отправитель и получатель имеют согласованное понимание значения информации, они могут использовать ее по назначению.
Перед разработкой XML между системами требовалось получить определенное количество априорных соглашений о данных и их значении. С развитием XML можно обмениваться данными между системами без какого-либо предварительного согласия, при условии, что обе системы понимают один и тот же словарь, то есть "говорят" на одном языке. Со времени разработки кода появилось несколько таких приложений.
Веб-публикация - XML позволяет создавать интерактивные страницы, помогает заказчику настраивать эти страницы и делает создание приложений электронной коммерции с более интуитивным форматом XML, пример представлен ниже.
Веб-поиск и автоматизация веб-задач - код определяет тип информации, содержащейся в документе, упрощая получение полезных результатов при поиске в Интернете.
Общие приложения - XML предоставляет стандартный метод доступа к информации, облегчая для устройств всех видов использование, хранение, передачу и отображение данных.
Приложения электронного бизнеса - реализация XML делает электронный обмен данными (EDI) более доступным для обмена информацией, транзакций между предприятиями и транзакций между клиентами. Пример XML запроса обработчика событий, открытие соединения и отправка запросов выглядит следующим образом.
Приложения метаданных - код облегчает выражение метаданных в переносимом, многократно используемом формате.
Распространенные вычисления - XML предоставляет переносимые и структурированные типы информации для отображения на распространяющихся (беспроводных) вычислительных устройствах, таких как персональные цифровые помощники (PDA), сотовые телефоны и другие.
Преимущества и недостатки языка
Для систем реляционных баз данных невозможно обрабатывать данные независимо от их контекста. Поэтому требования электронного бизнеса не выполняются. Традиционные базы данных не могут обрабатывать аудио, видео или сложные данные.
Преимущества языка:
- Открытый и расширяемый. Структура XML является адаптируемой и может быть изменена, чтобы соответствовать отраслевому словарю. Пользователи могут добавлять элементы при необходимости.
- Интернационализация. Многоязычные документы и стандарты Unicode поддерживаются XML, что важно для приложений электронного бизнеса.
- Технологии, ориентированные на будущее. W3C поддерживает XML, который поддерживается основными поставщиками программного обеспечения. Он также используется во все большем количестве отраслей.
- С самоописанием. У бизнес-приложений существуют и другие задачи, помимо простого представления контента, поэтому используется XML, потому что он обеспечивает полное удобство использования данных и правильное их представление. Таким образом, для XML более предпочтительны традиционные системы БД.
- Интеграция традиционных БД и форматов. XML-документы поддерживают все типы данных: классический (текст, числа), мультимедиа (звуки), активные форматы (Java-апплеты, активные х-компоненты).
- Изменения в представлении. Таблицы стилей XML можно использовать для изменения документов или веб-сайтов без изменения фактических данных.
- Один сервер. Данные из разных баз данных и нескольких серверов могут быть частью XML-документа. То есть вся WWW конвертируется в одну БД.
Таким образом, пример документа XML самым наглядным образом демонстрирует, что этот язык оказался чрезвычайно успешным в области разметки, обмена данными и метаданными, обеспечения их взаимодействия, прозрачной транспортировки и хранения. Учитывая текущий уровень интереса к корпоративным системам следующего поколения, использование XML будет расти, поскольку оно является основной технологией для веб-сервисов, разработки порталов и сервис-ориентированных архитектур.