Язык xml описание технологии


Содержание

Синтаксис и основные понятия языка XML, создание валидных документов

Понятие о языке XML

XML — это расширяемый язык разметки (Extensible Markup Language), разработанный специально для размещения информации в World Wide Web, наряду с HTML, который давно стал стандартным языком создания Web-страниц. В отличие от HTML, вместо использования ограниченного набора определённых элементов вы имеете возможность создавать ваши собственные элементы и присваивать им любые имена по вашему выбору. Примечание: подразумевается, что читатель данной статьи хотя бы очень поверхностно знаком с языком HTML.

XML решает ряд проблем, которые не решает HTML, например:

  • Представление документов любого (не только текстового) типа, например, музыки, математических уравнений и т.д.
  • Сортировка, фильтрация и поиск информации.
  • Представление информации в структурированном (иерархическом) виде.

В зависимости от уровня соответствия стандартам документ может быть «верно сформированным» («well-formed»), либо «валидным» («valid»). Вот несколько основных правил создания верно сформированного документа:

  • Каждый элемент XML должен содержать начальный и конечный тэг (либо пустой тэг типа , который может нести информацию посредством своих атрибутов).
  • Любой вложенный элемент должен быть полностью определён внутри элемента, в состав которого он входит.
  • Документ должен иметь только один элемент верхнего уровня.
  • Имена элементов чувствительны к регистру.

Есть три основных способа сообщить браузеру, как отображать каждый из созданных вами XML-элементов:

  • Каскадная таблица стилей (Cascading Style Sheet — CSS) или расширяемая таблица в формате языка стилевых таблиц (Extensible Stylesheet Language — XSL).
  • Связывание данных. Этот метод требует создания HTML-страницы, связывания с ней XML-документа и установления взаимодействий HTML-элементов с элементами XML. В дальнейшем HTML-элементы автоматически отображают информацию из связанных с ними XML-элементов.
  • Написание сценария. Этот метод требует создания HTML-страницы, связывания с ней XML-документа и получение доступа к XML-элементам с помощью кода сценария JavaScript или VBScript.

Индивидуальный пользователь, компания или комитет по стандартам может определить необходимый набор элементов XML и структуру документа, которые будут применяться для особого класса документов. Подобный набор элементов и описание структуры документа называют XML-приложением или XML-словарём.

XML-приложение обычно определяется созданием описателя типа документа (DTD), который является допустимым компонентом XML-документа. DTD устанавливает и определяет имена элементов, которые могут быть использованы в документе, порядок, в котором элементы могут появляться, и доступные к применению атрибуты элементов. DTD обычно включается в XML-документ и ограничивает круг элементов и структур, которые будут использоваться. Примечание: приложение XML Schema позволяет разрабатывать подробные схемы для ваших XML-документов с использованием стандартного синтаксиса XML и является альтернативой DTD.

Простейший XML-документ

Простейший XML-документ состоит из двух частей: пролога и корневого элемента. Пролог содержит объявление XML, указывающее на то, что это XML-документ, и содержит номер версии XML. Пролог может также содержать необязательные компоненты:

  • Объявление типа документа.
  • Одну или несколько инструкций по обработке.

XML-документ может содержать комментарии, начинающиеся с символов » «. Комментарий может содержать любой текст, за исключением символов «—«. Тексты комментариев доступны для написанного внутри HTML-страницы кода сценария.

XML-документ можно набрать в любом текстовом редакторе, сохранив документ как текстовый файл с расширением .xml. В дальнейшем такой документ будет открываться двойным щелчком в Internet Explorer. Вот пример простейшего XML-документа:

Язык xml описание технологии

Скидка 25% на все тарифы хостинга по промокоду STDCITF

Язык XML — практическое введение

Зa неполный год своего официального существования язык XML привлек к себе уже достаточно много внимания со стороны разработчиков и пользователей Интернет. Сегодня количество приверженцев этой новой технологии возрастает также стремительно, как и число сообщений об очередных взятых ею преградах на пути к всеобщему признанию. Несмотря на то, что XML очень молод (международная организация W3C утвердила спецификацию «Extensible Markup Language(XML) 1.0» чуть меньше года назад — в начале февраля 1998 г) и отдельные компоненты этого языка находятся еще в стадии доработки, уже сегодня появляются новые языки, созданные на основе XML, возникают многочисленные Web-сервера, использующие эту технологию для организации хранящейся на них информации. Мир Интернет вокруг нас в очередной раз преображается, и мы можем стать участниками этого процесса уже сегодня

Целью данной статьи является попытка на конкретных примерах показать некоторые из возможностей XML, ответить на ряд часто возникающих при знакомстве с новым языком вопросов. Что же такое XML? В чем заключаются его преимущества перед привычным уже нам языком HTML? Можно ли использовать XML на своих Web-страничках уже сегодня? А если можно, то как?

В конце статьи приведены ссылки на другие ресурсы Интернет, с помощью которых Вы сможете также получить более полную информацию по конкретным интересующим Вас вопросам, связанным с применением XML и незатронутых нами в этой статье. Полные спецификации XML и связанных с ним языков доступны на официальной странице W3C — www.w3.org

Для чего нужен новый язык разметки?

Когда осенью 1991 года Интернет впервые услышал позывные новой технологии, название которой легко уместилось в три буквы, почти никто не мог представить себе, что завоевания ее окажутся настолько глобальными. Сегодня для многих неискушенных пользователей слово Интернет прочно ассоциируется с WWW и с уст специалистов не сходит тема будущего информационных систем и влияния на это будущее всемирной сетевой паутины.

Популярность World Wide Web и неотъемлемой ее части, HTML, безусловно, стала причиной повышенного внимания к системам гипертекстовой разметки документов. Хотя понятие гипертекста было введено В.Бушем еще в 1945 году и, начиная с 60-х годов стали появляться первые приложения, использующие гипертекстовые данные, всплеск активности вокруг этой технологии начался лишь тогда, когда возникла реальная необходимость в механизме объединения множества информационных ресурсов, обеспечения возможности создания, просмотра нелинейного текста. И примером реализации этого механизма послужила паутина WWW.

Язык разметки документов — это набор специальных инструкций, называемых тэгами, предназначенных для формирования в документах какой-либо структуры и определения отношений между различными элементами этой структуры. Тэги языка, или, как их иногда называют, управляющие дескрипторы, в таких документах каким-то образом кодируются, выделяются относительно основного содержимого документа и служат в качестве инструкций для программы, производящей показ содержимого документа на стороне клиента. В самых первых системах для обозначения этих команд использовались символы “ ”, внутри которых помещались названия инструкций и их параметры. Сейчас такой способ обозначения тэгов является стандартным.

Использование гипертекстовой разбивки текстового документа в современных информационных системах во многом связано с тем, что гипертекст позволяет создавать механизм нелинейного просмотра информации. В таких системах данные представляются не в виде непрерывного потока текстовой информации, а набором взаимосвязанных компонентов, переход по которым осуществляется при помощи гиперссылок.

Самый популярный на сегодняшний день язык гипертекстовой разметки – HTML, был создан специально для организации информации, распределенной в сети Интернет, и является одной из ключевых составляющих технологии WWW. С использованием гипертекстовой модели документа способ представления разнообразных информационных ресурсов в сети стал более упорядочен, а пользователи получили удобный механизм поиска и просмотра нужной информации.

HTML [8]является упрощенной версией стандартного общего языка разметки — SGML (Standart Generalised Markup Language[10]), который был утвержден ISO в качестве стандарта еще в 80-х годах. Этот язык предназначен для создания других языков разметки, он определяет допустимый набор тэгов, их атрибуты и внутреннюю структуру документа. Контроль за правильностью использования дескрипторов осуществляется при помощи специального набора правил, называемых DTD- описаниями(более подробно о DTD мы поговорим чуть позже), которые используются программой клиента при разборе документа. Для каждого класса документов определяется свой набор правил, описывающих грамматику соответствующего языка разметки. С помощью SGML можно описывать структурированные данные, организовывать информацию, содержащуюся в документах, представлять эту информацию в некотором стандартизованном формате. Но в виду некоторой своей сложности, SGML использовался, в основном, для описания синтаксиса других языков(наиболее известным из которых является HTML), и немногие приложения работали с SGML- документами напрямую.

Гораздо более простой и удобный, чем SGML, язык HTML позволяет определять оформление элементов документа и имеет некий ограниченный набор инструкций — тэгов, при помощи которых осуществляется процесс разметки. Инструкции HTML, в первую очередь, предназначены для управления процессом вывода содержимого документа на экране программы-клиента и определяют этим самым способ представления документа, но не его структуру. В качестве элемента гипертекстовой базы данных, описываемой HTML, используется текстовый файл, который может легко передаваться по сети с использованием протокола HTTP. Эта особенность, а также то, что HTML является открытым стандартом и огромное количество пользователей имеет возможность применять возможности этого языка для оформления своих документов, безусловно, повлияли на рост популярности HTML и сделали его сегодня главным механизмом представления информации в Web

Однако современные приложения нуждаются не только в языке представления данных на экране клиента, но и в механизме, позволяющем определять структуру документа, описывать содержащиеся в нем элементы. HTML обладает несложным набором команд и вполне успешно справляется с задачей описания текстовой информации и отображением ее на экране программы просмотра- броузера. Однако сами отображаемые данные никак не связаны с теми тэгами, которые используются для форматирования, поэтому у программ-анализаторов нет возможности использовать тэги HTML для поиска нужных нам фрагментов документа. Т.е. встретив, например, такое описание

программа просмотра будет знать, каким цветом отобразить текст, содержащийся внутри тэгов и, вероятно, отобразит его правильно, но ей абсолютно безразлично, в каком месте документа встретился этот тэг, в какие другие тэги заключен текущий фрагмент, существуют ли вложенные в него фрагменты, правильно ли построены отношения между объектами. Такое «безразличие» к структуре документа приводит к тому, что поиск или анализ информации внутри него ничем не будет отличаться от работы со сплошным, не разбитым на элементы текстовым файлом. А это, как известно, не самый эффективный способ работы с информацией.

Другим существенным недостатком HTML можно назвать ограниченность набора его тэгов. DTD- правила для HTML определяют фиксированный набор дескрипторов и поэтому у разработчика нет возможности вводить собственные, специальные тэги. Хотя время от времени появляются новые расширения языка(на сегодняшний день последней версией HTML является HTML 4.0), но долгий путь их стандартизации, сопровождаемый постоянными разногласиями между основными производителями броузеров делают практически невозможной быструю адаптацию языка, его использование для отображения специализированной информации(например, мультимедийной, математических, химических формул и т.д.).

Подводя итог всему сказанному, можно утверждать, что HTML уже сегодня не удовлетворяет в полной мере требованиям, предъявляемым современными разработчиками к языкам подобного рода. И ему на смену был предложен новый язык гипертекстовой разметки, мощный, гибкий, и, одновременно с этим, удобный язык XML. В чем же заключается его достоинства?

XML (Extensible Markup Language[1]) — это язык разметки, описывающий целый класс объектов данных, называемых XML- документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. Т.е. сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания. Таким образом, если, например, мы считаем, что для обозначения элемента rose в документе необходимо использовать тэг , внутри которой также можно задавать номер версии языка, номер кодовой страницы и другие параметры, необходимые программе-анализатору в процессе разбора документа

Правила создания XML- документа

В общем случае XML- документы должны удовлетворять следующим требованиям:

  • В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация
  • Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь своего закрывающего «напарника», т.е., в отличие от HTML, нельзя опускать закрывающие тэги
  • В XML учитывается регистр символов
  • Все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки
  • Вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов
  • Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные и поэтому учитываются все символы форматирования ( т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML)

Если XML- документ не нарушает приведенные правила, то он называется формально-правильным и все анализаторы, предназначенные для разбора XML- документов, смогут работать с ним корректно.

Однако кроме проверки на формальное соответствие грамматике языка, в документе могут присутствовать средства контроля над содержанием документа, за соблюдением правил, определяющих необходимые соотношений между элементами и формирующих структуру документа. Например, следующий текст, являясь вполне правильным XML- документом, будет абсолютно бессмысленным:

Для того, чтобы обеспечить проверку корректности XML- документов, необходимо использовать анализаторы, производящие такую проверку и называемые верифицирующими.

На сегодняшний день существует два способа контроля правильности XML- документа: DTD — определения(Document Type Definition) и схемы данных(Semantic Schema). Более подробно об использовании DTD и схемах мы поговорим в следующих разделах. В отличии от SGML, определение DTD- правил в XML не является необходимостью, и это обстоятельство позволяет нам создавать любые XML- документы, не ломая пока голову над весьма непростым синтаксисом DTD.

Конструкции языка

Содержимое XML- документа представляет собой набор элементов, секций CDATA, директив анализатора, комментариев, спецсимволов, текстовых данных. Рассмотрим каждый из них подробней.

Элементы данных

Элемент — это структурная единица XML- документа. Заключая слово rose в в тэги , мы определяем непустой элемент, называемый , содержимым которого является rose. В общем случае в качестве содержимого элементов могут выступать как просто какой-то текст, так и другие, вложенные, элементы документа, секции CDATA, инструкции по обработке, комментарии, — т.е. практически любые части XML- документа.

Любой непустой элемент должен состоять из начального, конечного тэгов и данных, между ними заключенных. Например, следующие фрагменты будут являться элементами:

Набором всех элементов, содержащихся в документе, задается его структура и определяются все иерархическое соотношения. Плоская модель данных превращается с использованием элементов в сложную иерархическую систему со множеством возможных связей между элементами. Например, в следующем примере мы описываем месторасположение Новосибирских университетов (указываем, что Новосибирский Университет расположен в городе Новосибирске, который, в свою очередь, находится в России), используя для этого вложенность элементов XML :

Производя в последствии поиск в этом документе, программа клиента будет опираться на информацию, заложенную в его структуру — используя элементы документа. Т.е. если, например, требуется найти нужный университет в нужном городе, используя приведенный фрагмент документа, то необходимо будет просмотреть содержимое конкретного элемента , находящегося внутри конкретного элемента . Поиск при этом, естественно, будет гораздо более эффективен, чем нахождение нужной последовательности по всему документу.

В XML документе, как правило, определяется хотя бы один элемент, называемый корневым и с него программы-анализаторы начинают просмотр документа. В приведенном примере этим элементом является

В некоторых случаях тэги могут изменять и уточнять семантику тех или иных фрагментов документа, по разному определяя одну и ту же информацию и тем самым предоставляя приложению-анализатору этого документа сведения о контексте использования описываемых данных. Например, прочитав фрагмент Holliwood мы можем догадаться, что речь в этой части документа идет о городе, а вот во фрагменте Holliwood — о забегаловке.

В случае, если элемент не имеет содержимого, т.е. нет данных, которые он должен определять, он называется пустым. Примером пустых элементов в HTML могут служить такие тэги HTML, как
, ,

Комментарии

Комментариями является любая область данных, заключенная между последовательностями символов Комментарии пропускаются анализатором и поэтому при разборе структуры документа в качестве значащей информации не рассматриваются.

Атрибуты

Если при определении элементов необходимо задать какие-либо параметры, уточняющие его характеристики, то имеется возможность использовать атрибуты эдлемента. Атрибут — это пара «название» = «значение», которую надо задавать при определении элемента в начальном тэге. Пример:

Примером использования атрибутов в HTML является описание элемента :

Cпециальные символы

Для того, чтобы включить в документ символ, используемый для определения каких-либо конструкций языка (например, символ угловой скобки) и не вызвать при этом ошибок в процессе разбора такого документа, нужно использовать его специальный символьный либо числовой идентификатор. Например, < , > " или &amp#036;(десятичная форма записи), &amp#x1a (шестнадцатеричная) и т.д. Строковые обозначения спецсиволов могут определяться в XML документе при помощи компонентов (entity), о чем мы еще поговорим немного позже.

Директивы анализатора

Инструкции, предназначенные для анализаторов языка, описываются в XML документе при помощи специальных тэгов — ) или создании пространства имен[11].

CDATA

Чтобы задать область документа, которую при разборе анализатор будет рассматривать как простой текст, игнорируя любые инструкции и специальные символы, но, в отличии от комментариев, иметь возможность использовать их в приложении, необходимо использовать тэги . Внутри этого блока можно помещать любую информацию, которая может понадобится программе- клиенту для выполнения каких-либо действий (в область CDATA, можно помещать, например, инструкции JavaScript). Естественно, надо следить за тем, чтобы в области, ограниченной этими тэгами не было последовательности символов ]].

Что дальше

Мы рассмотрели в общих чертах основные структурные части XML- документа, правила описания элементов XML и теперь можем создать синтаксически правильный XML- документ, содержащий каким-то образом структурированные данные( более подробный пример приведен в Приложении 1.) Однако при этом почти не коснулись вопросов практического применения XML. Как отображать содержимое XML- документов на Web- страницах, осуществлять контроль над правильностью их составления; существуют ли уже сегодня какие-либо удобные средства для создания, анализа и просмотра таких документов? В следующих разделах мы попробуем ответить на эти вопросы.

Язык xml описание технологии

XML – это язык гипертекстовой разметки для структурирования и описания данных. Например, что бы создать XML-документ, который содержит информацию о погодных условиях, включая температуру, скорость ветра и облачность, Вам нужно создать свои собственные теги и атрибуты для описания этой информации. Вот пример такого XML-документа:


27

Сонечно

Как Вы уже заметили, XML очень похож на HTML – оба эти языка состоят из именованных тегов и атрибутов, но XML создан для выполнения большего количества задач. HTML-теги сообщают браузеру как форматировать текст и изображения, содержащиеся в HTML-документе. В то же время XML-теги могут означать всё, что угодно, в зависимости от того, что Вы от них хотите.

Правильно построенный XML-документ

Вэб-браузеры «прощают» некоторые ошибки HTML-документов. Например, если Вы забыли закрыть тег абзаца (

) его закрывающим тегом (

) или забыли взять в кавычки значения атрибутов ( вместо ), то документ по-прежнему будет отображаться должным образом. Происходит это потому, что HTML состоит из предопределённого заранее набора тегов/грамматик, и браузеры могут предполагать о недостающих тегах.

Однако в XML-документе тег

может означать, буквально, всё что угодно. Программы, которые читают XML-документы, не могут предполагать о недостающих тегах и сгенерируют ошибку, например при отсутствии закрывающего тега.

Следовательно, правила создания и форматирования XML-документов строго предписаны синтаксическими анализаторами XML. Документы, которые не соответствуют этим правилам, не могут быть использованы программой. Список правил форматирования XML-документов смотрите на странице https://www.w3schools.com/xml/.

Вы можете использовать XML-объект языка JavaScript для загрузки, анализа, пересылки, формирования и управления древом XML-документа. XML-дерево – это представление XML в иерархической форме. Что бы использовать XML, Вам вначале нужно создать его экземпляр:

xmldoc = new ActiveXObject(«msxml»);

Затем Вы сможете загружать внешний XML-документ в экземпляр, используя метод XML. URL .

Когда Вы загружаете XML внутрь экземпляра XML-объекта, то синтаксический анализатор преобразовывает XML-информацию в древовидный документ.

В диаграмме, представленной выше, каждая окружность XML-объекта называется узлом. Точно так же, как и в диаграмме генеалогического дерева, здесь узлы относятся друг другу как предки, потомки или как элементы одного уровня.

Верхний или корневой узел дерева XML-документа соответствует корневому элементу XML-документа. Дочерние вершины, исходящие из корневого узла, соответствуют XML-элементам, помещённым внутрь корневого элемента. Узлы, которые находятся на одном и том же уровне древа иерархии, называются элементами одного уровня.

Например, в примере XML-документа про погоду, обсуждаемого раньше, был бы корневым узлом древовидного документа. Элементы , и были бы дочерними для корневого узла, поэтому они помещены внутри этого узла. Эти дочерние узлы являются друг для друга элементами одного уровня, так как они находятся на одном уровне иерархии.

Методы и свойства XML-объекта

Internet Explorer 4 (или более поздняя версия), позволяет использовать встроенный в этот браузер XML- анализатор msxml в сценариях, написанных на Java Script или VBScript.

Рассмотрим основные свойства и методы, доступные JavaScript- сценарию в процессе его выполнения на стороне браузера. В наших примерах мы будем использовать XML- анализатор в сценариях Java Script, т.к. этот способ более понятен и быстрее работает.

Объектная модель XML- анализатора Microsoft может быть представлена в виде следующего набора внутренних объектов: XML Document, XML Element и Element Collection. Объект XML Document содержит свойства и методы, необходимые нам для работы с XML- документом в целом. XML Element отвечает за работу с каждым из элементов XML- документа. Element Collection представляет из себя набор элементов, доступ к которым доступен при помощи имени или порядкового номера. В следующих примерах мы рассмотрим каждый из этих объектов подробнее.

Свойства и методы документа(объект XML Document)

URL свойство, доступное для записи и чтения. Задает или возвращает URL обрабатываемого документа. В случае изменения этого свойства текущий документ уничтожается и начинается загрузка нового по указанному URL
root возвращает корневой элемент XML- документа
charset свойство, доступное для записи и чтения.Возвращает или устанавливает название текущее кодировочной таблицы согласно требованиям ISO
version возвращает номер версии XML
doctype Возвращает содержимое элемента !DOCTYPE
createElement() Метод, позволяющий создать новый элемент, который будет добавлен в качестве дочернего для текущего элемента дерева. В качестве первого параметра задается тип элемента, в качестве второго — название элемента
xml.createElement(0,»new_element»)
fileSize Возвращает размер XML- документа
fileModifiedDate Возвращает дату последнего изменения XML- документа
fileUpdatedDate Возвращает дату последнего обновления XML- документа
mimeType Возвращает MIME-тип(MIME- Multipurpose Internet Mail Extension, RFC 1341)

Свойства и методы элементов документа

type Возвращает тип элемента. Это свойство может быть использовано для того, чтобы разделить имена тэгов и данные, содержащиеся внутри них. В данной версии анализатора определены следующие типы элементов:
0 — элемент
1 — текст
2 — комментарий
3 — Document
4 — DTD
tagName Возвращает или устанавливает название тэга(в виде строки с символами, приведенными к верхнему регистру). Названия метатэгов(например, ) начинаются с символа ?. Названия тэгов комментариев начинаются с символа !.
text Возвращает текстовое содержимое элементов и комментариев.
AddChild() Добавление нового дочернего элемента и всех его потомков в текущую ветвь дерева. В качестве первого параметра этой функции необходимо передать объект типа Element, который затем будет помещен в список дочерних элементов. Также необходимо задать индекс нового элемента в списке и в качестве последнего параметра обязательно передать значение -1. Т.к. в данной модели любой элемент в документе может иметь ссылку только на один родительский элемент, при выполнении данной процедуры у добавляемого объекта старая ссылка на родительский элемент теряется. Используя это свойство, можно перемещать элементы из одного XML- документа в другое, но том случае, если у дочерних ссылок перемещаемого элемента существуют внешние ссылки или сами дочерние элементы ссылаются на внешние возможно возникновение ошибки
elem.addChild(elem.children.item(). children.item(0),0,-1)
removeChild() Удаляет дочерний элемент и всех его потомков. Элементы остаются в памяти и могут быть вновь добавлены к дереву при помощи метода addChild().
elem.removeChild(elem.children.item(1))
parent Возвращает указатель на текущий родительский элемент. Ссылки на родительский элемент имеют все элементы, за исключением корневого.
GetAttribute() Возвращает значение указанного атрибута в виде текстовой строки.
elem.getAttribute(«color»)
SetAttribute() Устанавливает указанный атрибут и его значение. Прежнее значение атрибута теряется
elem.setAttribute(«color»,»red»)
removeAttribute() Уничтожает указанный атрибут
elem.removeAttribute(«color»)
children Возвращает ассоциированный список дочерних элементов(коллекцию). Такой список позволяет приложению получать нужные элементы как по названию, так и по порядковому номеру при помощи метода item(). В том случае, если потомков у текущего элемента нет, функция возвратит null

Пример текста файла jornal.xml:

Пример текста сценария на JavaScript:

Как видно из примера, в процессе обработки XML- документа необходимо рекурсивно обходить все ветви создаваемого анализатором дерева, причем, на каждом шаге возможны следующие ситуации:

* Встретился новый элемент. В этом случае его название(задаваемое тэгом) доступно при помощи свойства tagName, а содержимое — свойством text. У любого непустого элемента существует хотя бы один потомок, представляющий собой содержимое этого элемента(в этом отличие представленной объектной модели msxml от реальной структуры документа — в XML под элементом понимается как название тэга, так и текстовое содержимое его)
* Встретилось текстовое поле. Это поле может быть либо комментарием, либо просто текстом, содержащемся в текущем элементе

Для обработки потомков текущего элемента используется метод item(), который вызывается в цикле столько раз, сколько потомков у текущего элемента. Обработка каждого дочернего элемента осуществляется вызовом этой же функции, в чем и заключается рекурсия.

Язык XML: средства, назначения и особенности использования. XML и DTD.

XML — язык разметки, фактически представляющий собой свод общих синтаксических правил. XML — текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML). XML является упрощённым подмножеством языка SGML.

XML — это описанная в текстовом формате иерархическая структура, предназначенная для хранения любых данных. Визуально структура может быть представлена как деревоэлементов. Элементы XML описываются тегами.

XML используется для описания данных (объектов). XML в отличие от HTML (языка форматирования страниц) позволяет создавать столько признаков в данных, сколько необходимо для их эффективного описания и обработки. Эти признаки можно приспосабливать под себя, т.е. XML может быть использован для создания собственных тэгов, которые будут описывать область, в которой мы работаем.

Первая строка XML-документа называется объявление XML (англ. XML declaration) — это строка, указывающая версию XML.

Важнейшее обязательное синтаксическое требование заключается в том, что документ имеет только один корневой элемент (англ. root element) (также иногда называемый элемент документа (англ. document element)). Это означает, что текст или другие данные всего документа должны быть расположены между единственным начальным корневым тегом и соответствующим ему конечным тегом.

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

Элементы могут иметь текстовое содержимое и атрибуты.

Внутри тела находятся элементы (element). Эти элементы могут состоять из других элементов — они являются основными стандартными блоками в XML. Элементы ограничены тэгами (tag). Каждый элемент должен иметь начальный и конечный тэги.

Элементы могут содержать атрибуты, а значения атрибутов должны быть заключены в кавычки (одинарные или двойные). Элементы могут быть вложенными в другие элементы на произвольную глубину.

DTD (Document Type Definition) определяет допустимые строительные блоки XML документа, путем указания списка допустимых элементов и атрибутов.

DTD может описываться как внутри XML документа, так и с помощью внешней ссылки.

Для чего необходимо использование DTD?

· С помощью DTD XML файлы могут содержать описание собственного формата.

· Независимые группы людей могут обмениваться данными.

· DTD-схема может быть использована для проверки действительности, как документов получаемых извне, так и собственных документов.

С точки зрения DTD все XML документы (HTML документы) строятся из следующих строительных блоков:

· Элементы (Elements). Элементы могут содержать текст, другие элементы или быть пустыми.

· Атрибуты (Attributes). Атрибуты всегда размещаются внутри открывающего тэга элемента. Атрибуты всегда записываются в виде пары имя/значение.

· PCDATA. Означает структурированные символьные данные. Подлежит анализу с помощью парсера на наличие специальных символов (entities) и элементов разметки.

· CDATA. Означает текст, содержимое которого не рассматривается анализатором.

При описании структуры элементов, содержащих вложенные элементы можно использовать специальные операторы, задающие множественность их вхождения.

Язык XML и схемы данных.

Схемы данных (Schemas) являются альтернативным способом создания правил построения XML-документов. По сравнению с DTD, схемы обладают более мощными средствами для определения сложных структур данных, обеспечивают более понятный способ описания грамматики языка, способны легко модернизироваться и расширяться. Безусловным достоинством схем является также то, что они позволяют описывать правила для XML- документа средствами самого же XML.

Создавая схемы данных, мы определяем в документе специальный элемент, ;, внутри которого содержатся описания правил.

XML Schema — язык описания структуры XML-документа и используется для определения правил достоверного (valid) документа XML.

Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.

После проверки документа на соответствие XML Schema читающая программа может создать модель данных документа, которая включает:

· словарь (названия элементов и атрибутов);

· модель содержания (отношения между элементами и атрибутами и их структура);

Каждый элемент в этой модели ассоциируется с определённым типом данных, позволяя строить в памяти объект, соответствующий структуре XML-документа. Языкам объектно-ориентированного программирования гораздо легче иметь дело с таким объектом, чем с текстовым файлом.

Другим удобством XML Schema является то, что один словарь может ссылаться на другой, и, таким образом, разработчик может использовать уже существующие словари и легче устанавливать и распространять стандарты XML структуры для определённых задач (например, словарь протокола SOAP).

Файл, содержащий XML Schema, обычно имеет расширение «.xsd» (XML Schema definition).

Так же как DTD схема XML Schema определяет допустимые строительные блоки XML документа.

· элементы, входящие в документ

· атрибуты, допустимые в документе

· порядок дочерних элементов

· количество дочерних элементов

· может ли элемент быть пустым или может содержать текст

· типы элементов и атрибутов

· фиксированные и значения по умолчанию элементов и атрибутов

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

XML и связанные технологии

Задачи

Задача статьи — рассказать о полезных возможностях общеизвестного и распространённого языка XML и связанных технологий, не ограничиваясь описанием XML как рядового текстового формата с угловыми скобочками.

Модель данных и разметка XML

  • — имеет имя и дочерние узлы; узлы остальных перечисленных типов являются листовыми (оконечными) и обязательно лежат под родительским элементом. В XML представлен в виде именованных открывающего и закрывающего тегов, для пустого элемента они могут сворачиваться: .
  • — имеет имя, уникальное в рамках родительского элемента, и скалярное значение, обычно небольшой длины. Выводится в открывающем теге родительского элемента: .
  • — неименованное скалярное значение произвольной длины. Выводится внутри родительского элемента, служебные символы разметки заменяются на & -последовательности : text: 1 .
  • — текст, символы разметки в котором не заменяются при выводе, обрамляется и ]]> .
  • — любой текст, не содержащий два дефиса под ряд: — . При выводе обрамляется и .

Так они выглядят при сериализации в XML:

  1. ?xml version = «1.0» encoding = «UTF-8» ?>
  2. title = «Гистограмма» y-max = «20» >
  3. Описание — текст с XML-разметкой
  4. и экранированными спецсимволами:
  5. 1 3
  6. label = «10-20» >5
  7. label = «20-30» >12
  8. label = «30-40» >11
  9. label = «40-50» >18
  10. label = «50-60» >4
  11. title = «График» x-max = «8» y-max = «8» >
  12. 3
  13. ]]>
  14. x = «0» y = «0» />
  15. x = «1» y = «1» />
  16. x = «3» y = «5» />
  17. x = «4» y = «4.7» />
  18. x = «6.5» y = «2.1» />
  19. x = «8» y = «2» />

XML-документ имеет единственный корневой элемент. Каждый элемент описывает объект определённого типа, в зависимости от которого он может быть пустым, либо иметь свойства: скалярные атрибуты, скалярные элементы и их списки, вложенные элементы-объекты. Например, объект в XHTML не содержит свойств и представляется пустым элементом
, а объект из приведённого примера XML-документа — контейнерным элементом , имеющим дочерние текстовые узлы и элементы форматирования .

Используемые в разметке XML символы являются служебными, их включение в явном виде в документ может привести к нарушению однозначности разметки: (кавычки в значении атрибута), a (угловые скобки в тексте). Для их экранирования в тексте и в значениях атрибутов предусмотрен механизм (character reference) , адресующий символ по коду в таблице Unicode: ссылки в десятичном & и в шестнадцетиричном представлении & эквивалентны и указывают на символ & (амперсанд). Механизм (entity reference) позволяет включить в разметку адресуемую по имени DTD -сущность — именованный фрагмент XML-разметки. Синтаксис ссылки на сущность аналогичен ссылке на символ: & также указывает на символ & . Набор доступных сущностей определяется в DTD-схеме, ассоциированной с XML-документом. Например, для XHTML-документов, обычных web-страниц, определены свои характерные сущности: длинное тире — , русские типографские кавычки « и » и прочие. Предопределённый набор сущностей доступен для любого XML-документа:

Ссылка на DTD-сущность Экранируемый символ
& &
>
« «

Описанные механизмы экранирования не распространяются на секции CDATA и комментарии — всё содержимое этих блоков включается в XML в явном виде до признака завершения блока.

Пространства имён

Объявление пространства имён в XML-документе выполняется добавлением служебного атрибута с URI в качестве значения и действует для текущего и всех нижележащих элементов. Пространство имён по умолчанию, применяемое к элементам без префикса, объявляется с помощью атрибута xmlns : , а для его сброса используется пустой атрибут: . Связь префикса с пространством имён объявляется с помощью одноимённого атрибута со служебным префиксом xmlns : . Использование префикса в имени элемента или атрибута — это только способ явного задания пространства имён, при обработке XML-документа наличие префикса и его имя больше нигде не учитываются.

Пример запроса, включающего элементы и атрибуты из разных пространств имён, в том числе не имеющие пространства имён:

  1. ?xml version = «1.0» encoding = «UTF-8» ?>
  2. s = «http://www.w3.org/2003/05/soap-envelope»
  3. xmlns: wsa = «http://schemas.xmlsoap.org/ws/2004/08/addressing»
  4. xmlns: stat = «http://remote.com/StatSvc» >
  5. uuid:123-ABC
  6. mustUnderstand = «1» >http://remote.com/StatSvc
  7. http://remote.com/StatSvc/submit
  8. http://falstart.com/FaultSvc
  9. title = «Гистограмма» y-max = «20» >

Пространства имён — логически простое, но при этом очень мощное расширение базового стандарта XML. Задачи инструмента намного шире и значительнее, чем просто разрешение конфликтов имён: позволяя определять ограниченные именованные множества однозначно адресуемых элементов и атрибутов, он делает XML универсальным конструктором языков разметки. Такие языки могут иметь разный уровень абстракции, назначение, предполагать разные способы обработки и, возможно, совместно использоваться в одном XML-документе.

Элементы в заголовке относятся к расширению WS-Addressing. Их обработка выполняется на следующем этапе после признания запроса корректным SOAP-сообщением. Этот слой также может отдельно обрабатываться, например, межсетевым экраном для пропуска парного входящего запроса с отчётом об ошибке на адрес из FaultTo .

При разработке своих форматов хранения и обмена на основе XML использование пространств имён является хорошей практикой. Такое решение при незначительном усложнении приносит значительную пользу. Исключениями являются разве что совсем синтетические случаи использования промежуточных внутренних XML-документов с очень простым и постоянным форматом.

Связанные технологии

Для решения задач по обработке XML-документов есть много стандартизованных технологий, для работы с ними нужно понять их идеологию и научиться формулировать свои задачи в их терминах. Далее кратко описаны назначение и подходы к наиболее базовым, универсальным и распространённым технологиям. Описание сопровождается примерами, цель которых — показать, как просто, дёшево и технологично можно решать задачи без тучи невнятного кода на каком-либо языке программирования.

XPath — адресация частей документа

— это язык выбора узлов XML-документа, также поддерживающий базовые возможности обработки строк, чисел, логических значений. XPath оперирует с DOM-моделью документа и применим к любым данным, которые можно представить в виде DOM — дерева элементов, атрибутов, текстовых узлов . Он предоставляет функциональность поиска, проверки узлов и выполнения несложных вычислений другим технологиям, в частности XSLT. XPath реализуют различные библиотеки по обработке XML во многих языках программирования.

Примеры XPath-выражений и результат их применения к приведённому ранее примеру XML-документа:

/stat/hist/descr Описание гистограммы — элемент descr /stat/hist/descr//text() Набор всех текстовых узлов описания без элементов форматирования /stat/* Набор всех непосредственных дочерних элементов stat : hist и graph //block Набор всех элементов документа block //hist/block[1] Первый блок гистограммы //hist/block[last()] Последний блок гистограммы //block[count(preceding-sibling::block) mod 2 = 0] Набор нечётных столбцов гистограммы /stat/graph/point[@x = 0]/@y Значение графика в точке 0 //block|//point Объединённый набор всех столбцов гистограммы и всех точек графика count(//block[. > 10]) Количество столбцов гистограммы со значением больше 10 //block[. > 10][1] Первый из всех столбцов гистограммы со значениями больше 10 //block[1][. > 10] Первый столбец гистограммы, если его значение больше 10

XPath-выражение вычисляется в контексте, включающем текущий контекстный узел, его порядковый номер и размер контекста, доступные функции, переменные и объявленные префиксы пространств имён. Обеспечение контекста — задача библиотеки или технологии, использующей XPath.

(path expression) — основной тип выражения в XPath, результатом вычисления которого является набор узлов, иногда пустой. Наборы узлов можно объединять, применять к ним функции, использовать в качестве операндов математических операторов и операторов сравнения, при этом значения автоматически приводятся к требуемым типам посредством неявного вызова функций string , number или boolean . Абсолютный путь начинается с / и вычисляется от корневого узла документа вместо контекстного. Путь состоит из (step) , разделённых / , каждый из которых содержит:

  • (axis) , задаёт направление поиска от текущего узла: атрибуты, непосредственные дочерние узлы, все узлы-потомки, родитель, все предки, предшествующие, последующие.
  • правило (node test) — первичное условие отбора из заданного осью множества узлов по имени element , attribute для именованных узлов, по типу text() , comment() для безымянных или * — выбрать все узлы.
  • опциональный (predicate) — логические выражения для расширенной фильтрации

Например, шаг preceding-sibling::block[. , возвращающий набор предшествующих контекстному узлу элементов block со значением меньше 10 , состоит из оси preceding-sibling , проверки узла block и предиката . .

Для основных осей есть сокращения. Ось непосредственных дочерних узлов используется по умолчанию: parent/child . Ось атрибутов обозначается @ : element/@attribute . Остальные оси указываются явно по именам: preceding::block . Сокращения предусмотрены и для целых шагов:

Сокращение Значение Пример
. контекстный узел block[. > 10]
.. родительский узел block/..
// контекстный и все нижележащие узлы stat//block

Выражение пути вычисляется последовательно, по шагам. На каждом шаге перебираются входные узлы: от узла выполняется переход по оси ко множеству связанных узлов, оно фильтруется по базовой проверке узла и предикату, результат добавляется в выходной набор узлов шага. Этот набор является входом следующего шага. Набор узлов в XPath не может содержать дубли, поэтому путь //block/../block , как и //block , вернёт набор всех узлов block документа.

XSLT — преобразование XML

— это язык на базе XML для преобразования XML в XML или в текст . Половина XSLT — это XPath: на нём пишутся все выражения для поиска, проверки и любых вычислений.


Ниже приведено XSLT-преобразование для визуализации графика и гистограммы из первого примера XML-документа. Преобразование трансформирует XML с исходными сырыми данными в SVG — формат векторной графики, также основанный на XML.

  1. ?xml version = «1.0» encoding = «UTF-8» ?>
  2. xmlns = «http://www.w3.org/2000/svg»
  3. xmlns :xsl= «http://www.w3.org/1999/XSL/Transform»
  4. version = «1.0» >
  5. name = «W» select = «‘400′» />
  6. name = «H» select = «‘200′» />
  7. match = «/stat» >
  8. version = «1.1» baseProfile = «full»
  9. height = «<$H>» width = «<$W>» >
  10. x = «0» y = «0» width = «<$W>» height = «<$H>» fill = «#181A26» />
  11. x = «0» y = «0» dy = «1em» fill = «##EEEEEE» >
  12. select = «hist/@title» /> и
  13. select = «graph/@title» />
  14. id = «dots» patternUnits = «userSpaceOnUse»
  15. width = «5» height = «5» >
  16. x = «4» y = «4» width = «1» height = «1» fill = «#4EEE94» />
  17. name = «hfy» select = «$H div hist/@y-max» />
  18. name = «w» select = «$W div count(hist/block)» />
  19. select = «hist/block» >
  20. name = «h» select = «. * $hfy» />
  21. x = «<$w * (position() - 1)>» y = «<$H - $h>«
  22. width = «<$w>» height = «<$h>» stroke-width = «2»
  23. fill = «url(#dots)» stroke = «#4EEE94» />
  24. name = «fx» select = «$W div graph/@x-max» />
  25. name = «fy» select = «$H div graph/@y-max» />
  26. name = «path» >
  27. M
  28. select = «graph/point» >
  29. select = «concat(‘ ‘, @x * $fx,
  30. ‘ ‘, $H — @y * $fy, ‘L’)» />
  31. d = «<$path>» fill = «none»
  32. stroke = «#DAA520» stroke-width = «4» />

Любой XML-документ, независимо от содержания, может ссылаться на таблицу стилей для его визуализации с помощь общего механизма xml-stylesheet , который также позволяет ассоциировать с документом XSLT-преобразование. Поддержка такой возможности реализована практически во всех современных web-браузерах. Например, к XML-документу со статистикой можно следующим образом подключить рассмотренное XSLT-преобразование:

  1. ?xml version = «1.0» encoding = «UTF-8» ?>
  2. type = «text/xsl» href = «stat_to_svg.xslt» ?>

При открытии документа web-браузером будет выполнено XSLT-преобразование, а полученная SVG-разметка будет отрисована в графическом виде:

XSD — система типизации

— это язык на основе XML для описания и ограничения структуры XML-документа.

Ниже приведён пример XSD-схемы, определяющей формат XML-документа со статистикой.

IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.

Расширяемый язык разметки XML. Синтаксис XML. Структура XML документа. Применение XML

Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Сегодня решил открыть рубрику Заметки о XML и XLST. В которой постараюсь на пальцах объяснить, что такое язык разметки XML. Рассказать о том, что такое XML схемы, подробно остановиться на вопросе применения языка XML. Собственно про сам расширяемый язык разметки можно рассказать в одной или двух статья, все будет зависит от того на сколько объемной получится статья, собственно в это статье я собираюсь поговорить о синтаксисе XML, о представление данных в языке разметки XML, о грамматике, семантике и синтаксисе XML элементов. Так же мы поговорим, о XML тегах и применение XML. Где, зачем и как можно применять XML.

Что такое XML. Дифирамбы расширяемому языку разметки.

XML — это язык, язык разметки, если HTML является языком разметки гипертекста, то XML является языком, который позволяет представлять какие-либо структурированные данные. В то время как HTML позволяет нам представлять структуру документа, какие-либо элементы, строки, блоки и прочее. XML позволяет нам создать структуру, в которой достаточно удобно хранить данные.

У всех языков разметки есть один, но очень большой недостаток. Все тот же HTML позволяет нам представлять веб страницы или HTML-документы и все эту красоту мы можем наблюдать в наших браузерах, но не факт, что в каких-то других клиентах или программах или для каких-то других целей HTML будет удобен. В XML таких недочетов нет. Не случайно он называется расширяемым, буковка X — eXtensible, что переводится как расширяемый.

XML абсолютно универсальный и абсолютно расширяемый язык разметки данных. За счет расширяемости XML мы получаем в свои руки мощнейший инструмент, на базе которого можно самому придумать язык разметки и им пользоваться. Еще одним несомненным плюсом XML является его независимость от платформы. То есть нам по барабану, с какой операционной системой работать, в какой программе работать с XML, какой язык программирования использовать, всё это для XML по барабану.

Плюс ко всему, помимо самих данных XML позволяет описать структуру данных, а так же метаданные или по рабоче-крестьянски описательная информация, о том что мы собираемся сохранить или передать. Все выше перечисленное делает XML очень мощным и гибким инструментом, даже в кривых руках. XML является промышленным стандартом.

XML документ. Структура XML документа. Что может содержать XML документ.

Давайте теперь поговорим о XML документах, познакомимся со структурой XML документа, а так же рассмотрим, что можно положить в XML документ. Назначение XML — представление данных в удобной форме и на удобной для вас платформе, при помощи удобного для вас языка программирования. С ума сойти можно как все круто.

И так XML документ содержит: данные, структуру этих данных, а так же уровень представления данных. Вообще с документами мы сталкиваемся очень часто, в почтовых ящиках в виде спама приходят различные прайс листы в экселе, я вчера в школе я сдавал реферат по географии, конец четверти как никак, оценки подтягивать надо, так этот самый реферат был тоже документом, но уже в док формате.

И так в реферате по географии были данные, о том, что Земля круглая и она вертится, биография Галилео Галилея — это все данные. У моего реферата по географии была структура, то есть введение, в котором я рассказал, про что мой реферат и с какой целью я его пишу(естественно, что цель у меня была сугубо корыстная, получить трояк, что бы двойки за четверть не было, но во введение я ее не написал), было заключение, в котором я подвел итоги проделанной работе(нервным ночным копипастам из википедии и с сайтов рефератов и дз), так же для удобства я разбил реферат на несколько логических частей: Биография Галилео Галилея, Планета Земля, Планета Земля как объект Солнечной системы. Все это является структурой моего реферата, так же и в XML мы можем создавать структуру XML документа самостоятельно. Обычно у XML документа древовидная структура, ее можно сравнить с договорами, ну например с договором ипотеке, пункт 1, подпункт 1.1 далее подподпункт 1.1.1, кто оформлял знает, вообщем-то это бюрократическая структура. Все это можно назвать вложенностью или деревом или древовидной структурой, вот примерно такая структура у XML документа.

Уровень представления XML или представление XML документа. Ну это все очень просто, уровень представления это то как вы видите документ, на экране монитора, в браузере, на принтере и так далее, вернемся к моему реферату, оформляя его я выделял жирным заголовки, сделал их 16 размером шрифта, а так же сделал их курсивными, отступ слева я сделал 20 мм, справа, снизу и сверху по 5 мм. Для текста в реферате я задал шрифт Times New Roman, размером 14, без дополнительных стилей, межстрочный интервал был 1.5, все это можно назвать представлением документа, который можно видеть, как на экране в Ворде, так и после того как я отправил свой реферат по географии на печать. У XML так же имеется представление документа.

Но у XML есть очень важное отличие от других языков разметки, опять же HTML — это язык описания обычной страничке, где будут расположены элементы, как они будут расположены, размеры этих элементов и прочее. А вот в XML нет уровня представления, при помощи XML можно описать только данные и отношения. Наш ботаник с первой парты, любимчик Надежды Петровны(учитель математике), обязательно спросил бы — Как это можно понять? Или в каком виде XML представляет данные? Ответ на этот вопрос прост — XML ни в каком виде не представляет данные, пока вы этого не захотите и причем документ будет выглядеть так, как этого хотите именно вы, но стандартно в XML этого нет.

Или такой вопрос, как XML документ будет выглядеть на экране браузера? Ответ — XML документ никак не будет выглядеть на экране браузера. Просто на экран браузера напечатается сам XML документ. XML очень абстрактный язык, при помощи которого можно сделать свой документ и делать с ним все, что душе угодно.

XML теги и XML элементы.

Поскольку XML разрабатывал w3.org, он, как и язык разметки гипертекста HTML, описывает документ при помощи тегов. Тег это слово, которое обрамлено треугольными скобками, вот так — данная конструкция является тегом, теги в XML бывают двух видов, открывающий тег и закрывающий тег, как и в языке HTML, но в HTML есть одиночные теги, а в XML одиночных тегов нет. То есть в XML есть открывающий тег Содержание элемента, которое пишется между тегами . Так же у XML есть закрывающий тег , а между открывающим и закрывающим тегами пишется содержание или контент или значение. В HTML есть одиночные теги, в XML по определению одиночных тегов нет.

Что бы не было путаницы, я опять же уточню, тег это метка написанная в текстовом редакторе(например, в Notepad++), а элемент это, то что в итоге нам выведется, то есть содержание плюс метка является XML элементом или HTML элементом, в случае если вы открыли HTML-документ. Если в HTML элементы могут быть блочными и строчными, то в XML элементы не делятся никак, просто XML элемент. И понятно, что все эти элементы могут быть вложенными друг в друга:

Введение в XML. Структура XML документа

Введение в XML

В 1986 году, задолго до того, как идея создания сети Веб была воплощена в жизнь, универсальный стандартизированный язык разметки SGML ( Standardized Generalized Markup Language ) был утвержден в качестве международного стандарта ( ISO 8879 ) определения языков разметки, хотя SGML существовал еще с конца шестидесятых. Он использовался для того, чтобы описывать языки разметки, предоставляя при этом автору возможность давать формальные определения каждому элементу и атрибуту языка .

Язык HTML первоначально был всего лишь одним из SGML -приложений. Он описывал правила, по которым должна быть подготовлена информация для World Wide Web . Таким образом, язык HTML — это набор предписаний SGML , сформулированных в виде определения типа документа ( DTD ), объясняющих, что именно обозначают тэги и элементы. Схема DTD для языка HTML хранится в веб-браузере.

К недостаткам языка HTML можно отнести следующие:

  • HTML имеет фиксированный набор тэгов. Нельзя создавать свои тэги, понятные другим пользователям.
  • HTML — это исключительно технология представления данных. HTML не несет информации о значении содержания, заключенного в тэгах.
  • HTML — «плоский» язык. Значимость тэгов в нем не определена, поэтому с его помощью нельзя описать иерархию данных.
  • В качестве платформы для приложений используются браузеры. HTML не обладает достаточной мощью для создания веб-приложений на том уровне, к которому в настоящее время стремятся веб-разработчики. Например, на языке HTML невозможно разработать приложение для профессиональной обработки и поиска документов.
  • Большие объемы трафика сети. Существующие HTML -документы, используемые как приложения, перегружают Интернет большими объемами трафика в системах клиент-сервер. Примером может служить пересылка по сети большого по объему документа, в то время как необходима только небольшая часть этого документа.

Таким образом, с одной стороны, язык HTML является очень удобным средством разметки документов для использования в веб, а с другой — документ, размеченный в HTML , имеет мало информации о своем содержании. Если тот или иной документ несет достаточно полную информацию о своем содержании, появляется возможность сравнительно легко провести автоматическую обобщенную обработку и поиск в файле, хранящем документ. Язык SGML позволяет сохранять информацию о содержании документа, однако вследствие особой сложности он никогда не использовался так широко, как HTML .

Группа экспертов по языку SGML , возглавляемая Джоном Боузэком ( Jon Bosak ) из компании Sun Microsystems , приступила к работе по созданию подмножества языка SGML , которое могло бы быть принято Web -сообществом. Решено было удалить многие несущественные возможности SGML . Перестроенный таким образом язык назвали XML . Упрощенный вариант оказался значительно более доступным, чем оригинал, его спецификации занимали всего 26 страниц по сравнению с более чем 500 страницами спецификаций SGML .

Рассмотрим более детально структуру и особенности этого языка.

XML ( eXtensible Markup Language ) — рекомендованный W3C язык разметки . XML — текстовый формат , предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе специализированных языков разметки. XML является упрощённым подмножеством языка SGML .

Язык XML имеет следующие достоинства:

  • Это человеко-ориентированный формат документа, он понятен как человеку, так и компьютеру.
  • Поддерживает Юникод.
  • В формате XML могут быть описаны основные структуры данных — такие как записи, списки и деревья.
  • Это самодокументируемый формат, который описывает структуру и имена полей также как и значения полей.
  • Имеет строго определённый синтаксис и требования к анализу, что позволяет ему оставаться простым, эффективным и непротиворечивым.
  • Широко используется для хранения и обработки документов;
  • Это формат, основанный на международных стандартах;
  • Иерархическая структура XML подходит для описания практически любых типов документов;
  • Представляет собой простой текст, свободный от лицензирования и каких-либо ограничений;
  • Не зависит от платформы;
  • Является подмножеством SGML , для которого накоплен большой опыт работы и созданы специализированные приложения;

К известным недостаткам языка можно отнести следующие:

  • Синтаксис XML избыточен.
    • Размер XML документа существенно больше бинарного представления тех же данных (порядка 10 раз).
    • Размер XML документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных (например JSON , YAML ) и особенно в форматах данных, оптимизированных для конкретного случая использования.
    • Избыточность XML может повлиять на эффективность приложения. Возрастает стоимость хранения, обработки и передачи данных.
    • Для большого количества задач не нужна вся мощь синтаксиса XML , и можно использовать значительно более простые и производительные решения.

    Вообще говоря, XML можно рассматривать не только как новый язык разметки , но и как основу для целого семейства технологий:

    Таблица 9.1. Структура семейства XML
    XML Технические рекомендации об использовании XML
    DTD Определение типа документа (схема)
    XDR Формат XML Reduced (схема Microsoft )
    XSD Определение схемы XML (схемы W3C )
    Пространство имен Метод определения имен элементов и атрибутов
    XPath Язык путей XML
    XLink Язык ссылок XML
    XPointer Язык указателей XML
    DOM API для объектной модели документа
    SAX Простой API для XML
    XSL Расширяемый язык таблиц стилей
    XSL -FO Объекты форматирования XSL
    XSLT Язык преобразований XSL
    XInclude Синтаксис XML Include
    XBase Синтаксис XML Base URI

    По-сути, XML служит метаязыком для описания структуры других языков. Взаимосвязь между SGML, XML, HTML и некоторыми другими языками показана на следующей диаграмме:

    Важным отличием XML от HTML является то большое внимание, которое уделяется контролю за тем, насколько точно соблюдаются правила языка при разметке документов. В зависимости от этого принято выделять правильно построенные и действительные XML документы.

    Документ XML считается правильно построенным, если он соответствует всем синтаксическим правилам XML .

    Проверка действительности документа предполагает выполнение следующих действий:

    • Проверка использования только заданного набора дескрипторов.
    • Проверка полного соответствия порядка следования элементов и атрибутов содержанию документа или определенным правилам.
    • Контроль типов данных (достигается при использовании соответствующей схемы).
    • Контроль целостности данных для обеспечения оптимального обмена информацией через Веб с помощью транзакций.

    Рассмотрим теперь основные синтаксические правила построения XML документов.

    • XML документ содержит один и только один корневой элемент, содержащий все остальные элементы
    • Дочерние элементы, содержащиеся в корневом элементе, должны быть правильно вложены.
    • Имена элементов подчиняются правилам:
      • Имя начинается с буквы, знака подчеркивания или двоеточия.
      • После первого символа в имени могут быть буквы, цифры, знаки переноса, подчеркивания, точка или двоеточие.
      • Имена не могут начинаться с буквосочетания XML .

      XML документ имеет следующую структуру :

      • Первая строка XML документа называется объявлением XML . Это необязательная строка, указывающая версию стандарта XML (обычно это 1.0). Также здесь может быть указана кодировка символов и внешние зависимости.
      • Комментарий может быть размещен в любом месте дерева. XML комментарии размещаются внутри пары тегов . Два знака дефис (—) не могут быть применены ни в какой части внутри комментария.
      • Остальная часть этого XML -документа состоит из вложенных элементов, некоторые из которых имеют атрибуты и содержимое.
      • Элемент обычно состоит из открывающего и закрывающего тегов, обрамляющих текст и другие элементы.
      • Открывающий тег состоит из имени элемента в угловых скобках;
      • Закрывающий тег состоит из того же имени в угловых скобках, но перед именем ещё добавляется косая черта.
      • Содержимым элемента называется всё, что расположено между открывающим и закрывающим тегами, включая текст и другие (вложенные) элементы.
      • Кроме содержания у элемента могут быть атрибуты — пары имя=значение, добавляемые внутрь открывающего тега после названия элемента.
      • Значения атрибутов всегда заключаются в кавычки (одинарные или двойные), одно и то же имя атрибута не может встречаться дважды в одном элементе.
      • Не рекомендуется использовать разные типы кавычек для значений атрибутов одного тега.
      • Для обозначения элемента без содержания, называемого пустым элементом, необходимо применять особую форму записи, состоящую из одного тега, в котором после имени элемента ставится косая черта «/».

      К сожалению, описанные выше правила позволяют контролировать только формальную правильность XML документа, но не содержательную. Для решения второй задачи используются так называемые схемы.

      Схема четко определяет имя и структуру корневого элемента, включая спецификацию всех его дочерних элементов. Программист может задать, какие элементы и в каком количестве обязательны, а какие — необязательны. Схема также определяет, какие элементы содержат атрибуты, допустимые значения этих атрибутов, в т.ч. значения по умолчанию.

      Чаще всего для описания схемы используются следующие спецификации:

      • DTD ( Document Type Definition ) — язык определения типа документов .
      • XDR (XML Data Reduced ) — диалект XML , разработанный Microsoft .
      • XSD (язык определения схем XML) — рекомендована консорциумом W3C .

      XML документ отличается от HTML документа также и тем, как он отображается в веб-браузере. Без использования CSS или XSL XML -документ отображается как простой текст в большинстве веб-браузеров. Некоторые веб-браузеры, такие как Internet Explorer и Mozilla Firefox отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.

      Наиболее распространены три способа преобразования XML -документа в отображаемый пользователю вид:

      • Применение стилей CSS .
      • Применение преобразования XSLT .
      • Написание на каком-либо языке программирования обработчика XML -документа.

      Языки описания cхем XML

      Идея создания собственных тэгов, имеющих специальное значение и помогающих описать содержание документа, сама по себе просто замечательна. Но если каждый пользователь может создавать свои собственные описания, каким образом их распознавать? С этой целью в спецификации XML для описания подобных «самодеятельных» тэгов используются схемы. Они необходимы для того, чтобы:

      • описать, что именно является разметкой;
      • описать точно, что означает разметка.

      Наиболее известными языками описания схем являются следующие:

      Национальная библиотека им. Н. Э. Баумана
      Bauman National Library

      Персональные инструменты

      XML (eXtensible Markup Language)

      XML (eXtensible Markup Language)
      • application/xml
      • text/xml [1]
      Расширение файла .xml
      Интернет-тип носителя
      Однородный идентификатор типа (UTI) public.xml
      UTI конфигурация public.text
      Разработчик Консорциум Всемирной паутины
      Тип формата язык разметки
      Расширенный от SGML
      Расширенный XHTML, RSS, Atom, KML, SVG и множество других форматов
      Стандарт
      • 1.0 (Fifth Edition)
        (26 November 2008 года ; 10 years ago ( 2008-11-26 ) )
      • 1.1 (Second Edition)
        (16 August 2006 года ; 13 years ago ( 2006-08-16 ) )

      XML (Extensible Markup Language) — это новый SGML-производный язык разметки документов, позволяющий структурировать информацию разного типа, используя для этого произвольный набор инструкций. Разработчиков Интернет приложений, пытающихся на практике использовать новую технологию, могут заинтересовать конкретные вопросы, связанные с проблемами создания, обработки XML-документов, их отображения на стороне клиента [2] .

      Содержание

      Описание XML

      Сегодня XML может использоваться в любых приложениях, которым нужна структурированная информация — от сложных геоинформационных систем, с гигантскими объемами передаваемой информации до обычных «однокомпьютерных» программ, использующих этот язык для описания служебной информации. При внимательном взгляде на окружающий нас информационный мир можно выделить множество задач, связанных с созданием и обработкой структурированной информации, для решения которых может использоваться XML:

      • В первую очередь, эта технология может оказаться полезной для разработчиков сложных информационных систем, с большим количеством приложений, связанных потоками информации самой различной структурой. В этом случае XML — документы выполняют роль универсального формата для обмена информацией между отдельными компонентами большой программы.
      • XML является базовым стандартом для нового языка описания ресурсов, RDF, позволяющего упростить многие проблемы в Web, связанные с поиском нужной информации, обеспечением контроля за содержимым сетевых ресурсов, создания электронных библиотек и т.д.
      • Язык XML позволяет описывать данные произвольного типа и используется для представления специализированной информации, например химических, математических, физических формул, медицинских рецептов, нотных записей. Это означает, что XML может служить мощным дополнением к HTML для распространения в Web «нестандартной» информации. Возможно, в самом ближайшем будущем XML полностью заменит собой HTML, по крайней мере, первые попытки интеграции этих двух языков уже делаются (спецификация XHTML).
      • XML-документы могут использоваться в качестве промежуточного формата данных в трехзвенных системах. Обычно схема взаимодействия между серверами приложений и баз данных зависит от конкретной СУБД и диалекта SQL, используемого для доступа к данным. Если же результаты запроса будут представлены в некотором универсальном текстовом формате, то звено СУБД, как таковое, станет «прозрачным» для приложения. Кроме того, сегодня на рассмотрение W3C предложена спецификация нового языка запросов к базам данных XQL, который в будущем может стать альтернативой SQL.
      • Информация, содержащаяся в XML-документах, может изменяться, передаваться на машину клиента и обновляться по частям. Разрабатываемые спецификации XLink и Xpointer позволят ссылаться на отдельные элементы документа, c учетом их вложенности и значений атрибутов.
      • Использование стилевых таблиц (XSL) позволяет обеспечить независимое от конкретного устройства вывода отображение XML- документов.
      • XML может использоваться в обычных приложениях для хранения и обработки структурированных данных в едином формате.

      XML-документ представляет собой обычный текстовый файл, в котором при помощи специальных маркеров создаются элементы данных, последовательность и вложенность которых определяет структуру документа и его содержание. Основным достоинством XML документов является то, что при относительно простом способе создания и обработки (обычный текст может редактироваться любым тестовым процессором и обрабатываться стандартными XML анализаторами), они позволяют создавать структурированную информацию, которую хорошо «понимают» компьютеры [3] .

      Создание XML-документа

      Для создания XML документа в простейшем случае вам не понадобится ничего кроме обычного текстового редактора. Вот пример небольшого XML-документа, используемого вместо обычной записной книжки:

      При создании собственного языка разметки вы можете придумывать любые названия элементов, соответствующих контексту их использования. В нашем примере приведен лишь один из многочисленных способ создания структуры дневника. В этом и заключается гибкость и расширяемость XML-производных языков — они создаются разработчиком «на лету», согласно его представлениям о структуре документа, и могут затем использоваться универсальными программами просмотра наравне с любыми другими XML-производными языками, так как вся необходимая для синтаксического анализа информация заключена внутри документа. Создавая новый формат, необходимо учитывать тот факт, что документов, «написанных на XML», не может быть в принципе — в любом случае авторы документа для его разметки используют основанный на стандарте XML язык, но не сам XML. Поэтому при сохранении созданного файла можно выбрать для него какое-то подходящее названию расширение ( noteML). XML может использоваться вами для создания документов какого-то определенного типа и структурой, необходимой для конкретного приложения. Однако если сфера применения языка оказывается достаточно широкой и он начинает представлять интерес для большого числа разработчиков, то его спецификация вполне может быть представлена на рассмотрение в W3C и после согласования всеми заинтересованными сторонами, утверждена консорциумом в качестве официальной рекомендации. Надо заметить, что процесс появления новой спецификации очень длителен и сложен. Любой документ, предлагаемый W3C, прежде чем стать стандартом проходит несколько этапов. Сначала пожелания и рекомендации, поступающие от различных компаний, участвующих в его разработке, оформляются в виде принятого к сведению замечания (Note), своеобразного протокола о намерениях. Информация, изложенная в таких документах предназначена только для обсуждения членами консорциума и никто не дает гарантии того, что эти замечания потом станут рекомендацией. Следующей этапом продвижения документа является рабочий вариант спецификации, который составляет и изменяет в дальнейшем специально созданная рабочая группа (Working Group), в состав которой входят представители заинтересовавшихся идеей компаний. Все изменения, вносимые в этот документ обязательно публикуются на сервере консорциума www.w3.org и до тех пор, пока рабочий вариант не станет рекомендацией, он может служить для разработчиков лишь «путеводной звездой», с которой компания может сверять свои планы, но не должна использовать при разработке ПО.

      XML-генераторы

      XML документы могут служить промежуточным форматом для передачи информации от одного приложения к другому, поэтому их содержимое иногда генерируется и обрабатывается программами автоматически. Далеко не всегда XML документ нужно создавать вручную.

      Пусть, например, нашей задачей является создание формата хранения данных регистрации каких-то происходящих в системе событий. В простейшем случае можно ограничиться фиксированием успешных и ошибочных запросов к нашим ресурсам — в таком документе должна присутствовать информация о времени произошедшего события, его результате (удача/ошибка), IP адресе источника запроса, URI ресурса и коде результата.

      XML документ может выглядеть следующим образом:

      Структура документа довольно проста — корневым в данном случае является элемент log, каждое произошедшее событие фиксируется в элементе event и описывается при помощи его атрибутов(date — время и result — тип события ) и внутренних элементов (method — метод доступа, ip-from — адрес источника, url-to — запрашиваемый ресурс, response — код ответа). Генерацией этого документа может заниматься, например, модуль аутентификации запросов в систему, а использованием — программа обработки регистрационных данных (log viewer).

      Область применения, ограничения, перспективы развития

      Эффективность использования XML

      XML — язык разметки, другими словами, средство описания документа. Именно в нише документов, текстов, где доля разнотипных символьных данных велика, а доля разметки мала — XML успешен. С другой стороны, обмен данными в открытых системах не сводится к обмену документами. Избыточность разметки XML сказывается в ситуациях, когда данные не вписываются в традиционную модель документа. Лента новостей, например, оформляемая с использованием синтаксиса XML (форматы RSS, Atom), представляет собой не документ в традиционном понимании, а поток однотипных мини-документов — многословная и избыточная разметка в этом случае составляет существенную часть передаваемых данных.

      W3C озабочен эффективностью применения XML, и соответствующие рабочие группы занимаются этой проблемой.

      Другая ситуация, когда форматы XML могут оказаться не лучшим решением — работа с данными с простой структурой и небольшим по объёму содержанием полей данных. В этом случае доля разметки в общем объёме велика, а программная обработка XML может оказаться неоправданно затратной, по сравнению с работой с данными более простой структуры. В этой области разработчики рассматривают средства, изначально ориентированные на данные, такие как INI, YAML, JSON. [4] .

      Язык xml описание технологии

      Serpstat использует файлы cookie для обеспечения работоспособности сервиса, улучшения навигации, предоставления возможности связаться с командой поддержки, а также маркетинговых активностей Serpstat.

      Нажав кнопку «Принять и продолжить», вы соглашаетесь с Политики конфиденциальности

      How-to – Читать 6 минут – 7 мая 2020

      XML (расширяемый язык разметки) — это язык программирования, который состоит из объявлений в виде информации и определяющих тегов. С его помощью удобно хранить и передавать любые данные.

      Язык не зависит от операционной системы и среды обработки. XML служит для представления неких данных в виде структуры, которую вы можете сами разработать или подстроить под программу или сервис.

      Именно поэтому данный язык называют расширяемым, и в этом его главное достоинство, за которое его так ценят.

      • Легкость чтения, подача в простой форме;
      • стандартный вид кодировки;
      • возможность создания разных структур (списков, схем, деревьев);
      • возможность восстановить данные, которые были сохранены в XML;
      • возможность обмена данными между любыми платформами;
      • популярность в разных сферах программирования.
      • Чрезмерный синтаксис, большое количество сущностей и тегов;
      • один объект может быть представлен в разных описаниях;
      • отсутствуют стандартные указания типа объекта.

      Альтернативные варианты языка XML: XAML, JSON, XF.

      Теперь разберем этот пример детальнее.

      Первая строка документа — это XML декларация. Здесь определяется версия XML (version=»1.0″) и тип кодировки документа (encoding=»UTF-8″)

      Далее описывается корневой элемент документа. Корневой элемент в документе может быть только один, и он будет содержать все ваши данные. Поскольку мы можем сами давать названия тегам, мы использовали . . Наш документ будет содержать список героев . .

      Обратите внимание, что в документе можно писать комментарии, но это не обязательное требование. Пример комментария:

      Далее внутри тега . мы описываем каждого героя. У нас есть тег . в который мы записали псевдоним героя, . — в который мы записали реальное имя героя, . — в который мы записали суперспособности героя.

      Также у тега hero присутствует атрибут ( ). Атрибуты предоставляют дополнительную информацию об элементе. Эта информация может быть важна для приложений, которые будут манипулировать этим элементом. Значение атрибута всегда должно заключаться в кавычки. Название атрибута вы можете придумать сами, поскольку язык — расширяемый.

      Синтаксис XML выглядит просто, но не приемлет ошибок. Например, если вы пропишите значение атрибута без кавычек, это вызовет синтаксическую ошибку, поэтому обязательно валидируйте свой файл. Проверка XML на валидность может быть выполнена с помощью Яндекс.Вебмастер или другого онлайн-сервиса, например, XML Validator.

      XML может применяться в любой сфере программирования. Например, иерархии с XML-данными могут использоваться в:

      • XHTML — для отображения страниц в интернете;
      • SVG — для описания картинок в векторном формате;
      • RDF — для описания ресурсов каталогов;
      • WSDL — для обращения к удаленным программам и веб-сервисам;
      • OWL — для описания структуры каталогов;
      • XAML — для описания интерфейса приложений.

      Синтаксис XML можно также использовать для представления математических символов, медицинских формул, синтезаторов речи и т.д.

      • XPath — невероятно гибкий, мощный, и простой инструмент для навигации по документам XML. Используется для быстрого поиска запросов к элементам;

      XQuery — язык запросов, разработанный для обработки данных в формате XML;

    • XSLT — используется для трансформации XML документов в другие форматы (например, для трансформации XML в HTML).
    • XML не является заменой HTML. Эти два языка дополняют друг друга.

      HTML используется для отображения информации, а XML — для хранения и транспортировки информации. В XML вы изобретаете свои собственные теги, так как в языке нет предопределенных тегов.

      В HTML все используемые теги определяются стандартами HTML. В XML-документах могут содержаться любые необязательные описания, чтобы другие приложения могли выполнить проверку его структуры.

      Документ XML можно преобразовать в формат HTML. При передаче данных с сервера в браузер этот процесс выполняется автоматически. Чтобы вручную конвертировать XML в HTML, можно использовать онлайн-инструменты. Например, Aconvert или Fconvert.

      Также можно выполнить обратное преобразование HTML в XML. Например, с помощью сервиса Beautifyconverter.

      Язык программирования XML используется для хранения и передачи структурированных данных в виде информации, обрамленной тегами.

      Синтаксис языка достаточно прост, но не терпит ошибок. Для проверки кода на валидность можно воспользоваться онлайн-инструментами. Редактировать код можно через оффлайн-программы или онлайн-инструменты.

      XML и HTML не заменяют друг друга. Можно преобразовать код из одного формата в другой. Вывод XML в HTML выполняется с помощью онлайн-конвертеров. XML предназначен для хранения и отправки данных, а HTML служит для их отображения на веб-странице.

      К тому же XML отличается расширенной разметкой и может быть дополнен самописными тегами. Этот язык используется во всех сферах программирования и очень популярен как метод преобразования объемной информации в форму иерархии для ее удобного хранения.

      Сэкономьте время на изучении Serpstat

      Хотите получить персональную демонстрацию сервиса, тестовый период или эффективные кейсы использования Serpstat?

      XML для начинающих

      Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

      Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.

      В этой статье

      Пометки, разметка и теги

      Чтобы понять XML, полезно вспомнить о том, как можно помечать данные. Документы создавались людьми в течение многих столетий, и на протяжении всего этого времени люди делали в них пометки. Например, учителя часто делают пометки в работах учащихся, указывая на необходимость переместить абзацы, сделать предложение более ясным, исправить орфографические ошибки и т. д. Посредством пометок в документе можно определить структуру, смысл и внешний вид информации. Если вы когда-либо использовали исправления в Microsoft Office Word, то вы знакомы с компьютеризованной формой добавления пометок.

      В мире информационных технологий термин «пометка» превратился в термин «разметка». При разметке используются коды, называемые тегами (или иногда токенами), для определения структуры, визуального оформления и — в случае XML — смысла данных.

      Текст этой статьи в формате HTML является хорошим примером применения компьютерной разметки. Если в Microsoft Internet Explorer щелкнуть эту страницу правой кнопкой мыши и выбрать команду Просмотр HTML-кода, вы увидите читаемый текст и теги HTML, например

      . В HTML- и XML-документах теги легко распознать, поскольку они заключены в угловые скобки. В исходном тексте этой статьи теги HTML выполняют множество функций, например определяют начало и конец каждого абзаца (

      ) и местоположение рисунков.

      Отличительные черты XML

      Документы в форматах HTML и XML содержат данные, заключенные в теги, но на этом сходство между двумя языками заканчивается. В формате HTML теги определяют оформление данных — расположение заголовков, начало абзаца и т. д. В формате XML теги определяют структуру и смысл данных — то, чем они являются.

      При описании структуры и смысла данных становится возможным их повторное использование несколькими способами. Например, если у вас есть блок данных о продажах, каждый элемент в котором четко определен, то можно загрузить в отчет о продажах только необходимые элементы, а другие данные передать в бухгалтерскую базу данных. Иначе говоря, можно использовать одну систему для генерации данных и пометки их тегами в формате XML, а затем обрабатывать эти данные в любых других системах вне зависимости от клиентской платформы или операционной системы. Благодаря такой совместимости XML является основой одной из самых популярных технологий обмена данными.

      Учитывайте при работе следующее:

      HTML нельзя использовать вместо XML. Однако XML-данные можно заключать в HTML-теги и отображать на веб-страницах.

      Возможности HTML ограничены предопределенным набором тегов, общим для всех пользователей.

      Правила XML разрешают создавать любые теги, требуемые для описания данных и их структуры. Допустим, что вам необходимо хранить и совместно использовать сведения о домашних животных. Для этого можно создать следующий XML-код:

      Как видно, по тегам XML понятно, какие данные вы просматриваете. Например, ясно, что это данные о коте, и можно легко определить его имя, возраст и т. д. Благодаря возможности создавать теги, определяющие почти любую структуру данных, язык XML является расширяемым.

      Но не путайте теги в данном примере с тегами в HTML-файле. Например, если приведенный выше текст в формате XML вставить в HTML-файл и открыть его в браузере, то результаты будут выглядеть следующим образом:

      Izzy Siamese 6 yes no Izz138bod Colin Wilcox

      Веб-браузер проигнорирует теги XML и отобразит только данные.

      Правильно сформированные данные

      Вероятно, вы слышали, как кто-то из ИТ-специалистов говорил о «правильно сформированном» XML-файле. Правильно сформированный XML-файл должен соответствовать очень строгим правилам. Если он не соответствует этим правилам, XML не работает. Например, в предыдущем примере каждый открывающий тег имеет соответствующий закрывающий тег, поэтому в данном примере соблюдено одно из правил правильно сформированного XML-файла. Если же удалить из файла какой-либо тег и попытаться открыть его в одной из программ Office, то появится сообщение об ошибке и использовать такой файл будет невозможно.

      Правила создания правильно сформированного XML-файла знать необязательно (хотя понять их нетрудно), но следует помнить, что использовать в других приложениях и системах можно лишь правильно сформированные XML-данные. Если XML-файл не открывается, то он, вероятно, неправильно сформирован.

      XML не зависит от платформы, и это значит, что любая программа, созданная для использования XML, может читать и обрабатывать XML-данные независимо от оборудования или операционной системы. Например, при применении правильных тегов XML можно использовать программу на настольном компьютере для открытия и обработки данных, полученных с мейнфрейма. И, независимо от того, кто создал XML-данные, с ними данными можно работать в различных приложениях Office. Благодаря своей совместимости XML стал одной из самых популярных технологий обмена данными между базами данных и пользовательскими компьютерами.

      В дополнение к правильно сформированным данным с тегами XML-системы обычно используют два дополнительных компонента: схемы и преобразования. В следующих разделах описывается, как они работают.

      Схемы

      Не пугайтесь термина «схема». Схема — это просто XML-файл, содержащий правила для содержимого XML-файла данных. Файлы схем обычно имеют расширение XSD, тогда как для файлов данных XML используется расширение XML.

      Схемы позволяют программам проверять данные. Они формируют структуру данных и обеспечивают их понятность создателю и другим людям. Например, если пользователь вводит недопустимые данные, например текст в поле даты, программа может предложить ему исправить их. Если данные в XML-файле соответствуют правилам в схеме, для их чтения, интерпретации и обработки можно использовать любую программу, поддерживающую XML. Например, как показано на приведенном ниже рисунке, Excel может проверять данные на соответствие схеме CAT.

      Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов . :

      Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:

      Строковые элементы в приведенном примере схемы называются объявлениями. Если бы требовались дополнительные сведения о животном, например его цвет или особые признаки, то специалисты отдела ИТ добавили бы к схеме соответствующие объявления. Систему XML можно изменять по мере развития потребностей бизнеса.

      Объявления являются мощным средством управления структурой данных. Например, объявление означает, что теги, такие как и
      , должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.

      Если данные в XML-файле соответствуют правилам схемы, то такие данные называют допустимыми. Процесс контроля соответствия XML-файла данных правилам схемы называют (достаточно логично) проверкой. Большим преимуществом использования схем является возможность предотвратить с их помощью повреждение данных. Схемы также облегчают поиск поврежденных данных, поскольку при возникновении такой проблемы обработка XML-файла останавливается.

      Преобразования

      Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).

      Вы (или ваш ИТ-отдел) можете также использовать преобразования для обмена данными между серверными системами, например между базами данных. Предположим, что в базе данных А данные о продажах хранятся в таблице, удобной для отдела продаж. В базе данных Б хранятся данные о доходах и расходах в таблице, специально разработанной для бухгалтерии. База данных Б может использовать преобразование, чтобы принять данные от базы данных A и поместить их в соответствующие таблицы.

      Сочетание файла данных, схемы и преобразования образует базовую систему XML. На следующем рисунке показана работа подобных систем. Файл данных проверяется на соответствие правилам схемы, а затем передается любым пригодным способом для преобразования. В этом случае преобразование размещает данные в таблице на веб-странице.

      В следующем примере представлено преобразование, которое загружает данные в таблицу на веб-странице. Суть примера не в том, чтобы объяснить, как создавать преобразования, а в том, чтобы показать одну из форм, которую они могут принимать.

      В этом примере показано, как может выглядеть текст одного из типов преобразования, но помните, что вы можете ограничиться четким описанием того, что вам нужно от данных, и это описание может быть сделано на вашем родном языке. Например, вы можете пойти в отдел ИТ и сказать, что необходимо напечатать данные о продажах для конкретных регионов за последние два года, и что эти сведения должны выглядеть так-то и так-то. После этого специалисты отдела могут написать (или изменить) преобразование, чтобы выполнить вашу просьбу.

      Корпорация Майкрософт и растущее число других компаний создают преобразования для различных задач, что делает использование XML еще более удобным. В будущем, скорее всего, можно будет скачать преобразование, отвечающее вашим потребностям без дополнительной настройки или с небольшими изменениями. Это означает, что со временем использование XML будет требовать все меньше и меньше затрат.

      XML в системе Microsoft Office

      Профессиональные выпуски Office обеспечивают расширенную поддержку XML. Начиная с 2007 Microsoft Office System, Microsoft Office использует форматы файлов на основе XML, например DOCX, XLSX и PPTX. Так как XML хранит данные в текстовом формате, а не в собственном двоичном формате, клиенты могут определять собственные схемы и использовать ваши данные разными способами, без необходимости платить ройалтиес. Дополнительные сведения о новых форматах см. в статье форматы Open XML и расширения имен файлов. Ниже приведены другие преимущества.

      Меньший размер файлов. Новый формат использует ZIP и другие технологии сжатия, поэтому размер файла на 75 процентов меньше, чем в двоичных форматах, применяемых в более ранних версиях Office.

      Более простое восстановление данных и повышенная безопасность. XML — это читаемость, поэтому если файл поврежден, вы можете открыть его в Microsoft Notepad или в другом текстовом средстве чтения и восстановить по крайней мере часть ваших данных. Кроме того, новые файлы более безопасны, поскольку они не могут содержать код Visual Basic для приложений (VBA). Если для создания шаблонов используется новый формат, все элементы ActiveX и макросы VBA располагаются в отдельном, более безопасном разделе файла. Кроме того, для удаления личных данных можно использовать инструменты, такие как инспектор документов. Дополнительные сведения об использовании инспектора документов см. в статье Удаление скрытых и персональных данных путем проверки документов.

      Все это замечательно, но что делать, если у вас есть XML-данные без схемы? Это зависит от того, какую программу Office вы используете. Например, при открытии XML-файла без схемы в приложении Excel оно предполагает, что схема существует, и дает возможность загрузить данные в XML-таблицу. Вы можете использовать XML-списки и таблицы для сортировки, фильтрации и вычисления данных.

      Включение средств XML в Office

      По умолчанию вкладка «Разработчик» не отображается. Ее необходимо добавить на ленту для использования команд XML в Office.

      В Office 2020, Office 2013 или Office 2010: Отображение вкладки «Разработчик».

      Илон Маск рекомендует:  Fwrite писать в файл
      Понравилась статья? Поделиться с друзьями:
      Кодинг, CSS и SQL