Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Сегодня решил открыть рубрику Заметки о XML и XLST. В которой постараюсь на пальцах объяснить, что такое язык разметки XML. Рассказать о том, что такое XML схемы, подробно остановиться на вопросе применения языка XML.Расширяемый язык разметки XML. Синтаксис 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 элемент. И понятно, что все эти элементы могут быть вложенными друг в друга:

[html]

<pricelist>
<book id="1">
<title>Как взломать сайт Пентагона</title>
<author>Васька Хакер</author>
<price currency="RUB">2200</price>
</book>
</pricelist>

[/html]

Внутри элемента price, находится элемент book, а внутри XML элемента book, находятся еще два элемента, title и price. XML регистрочувствительный язык, то есть в какими буковками вы написали открывающий тег, такими буковками надо писать и закрывающий тег. Теги <title> и <Title> — разные теги.

А теперь давайте рассмотрим такой вопрос, где искать XML теги, хотя это не правильная постановка вопроса, кто придумывает XML теги? XML теги придумываете вы самостоятельно, захотели создали тег <school>, захотели создали тег <vosmoi_A_klass>, все эти теги имеют право на существование.

Отличие HTML от XML. Синтаксис XML. Грамматика языка разметки XML. Семантика XML.

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

Синтаксис языка — это правило записи, для примера возьмем наш великий и могучий, слово «пАгАвАрить» пишется как «поговорить» и никак иначе. Только в русском языке на контрольно за написанное слово пАгАвАрить мне Анджела Робертовна пАставила двойку и фиг с ним. А вот с языками разметки такой подход не пройдет. Здесь нужно точно писать теги. Если заголовок первого  уровня в HTML пишется как <h1>, то его нужно писать <h1>, а не <x1> или <hodin>. Но в HTML теги можно писать хоть маленькими, хоть большими буквами, например тег авторского форматирования <pre>, можно писать как <PRE> или <PrE>, <pRe> — без разницы, а вот в XML в каком регистре написан открывающий тег, в таком регистре извольте писать и закрывающий тег, то есть тег <title> нужно закрывать тегом </title>, но никак не </Title>.

У любого языка есть грамматика — например, в русском языке деепричастные обороты выделяются запятыми. Например, «Просматривая рубрику Заметки для вебмастера, меня заинтересовал раздел Счетчики посещений». Просматривая рубрику Заметки для вебмастера — деепричастный оборот, после которого обязательно ставится запятая. Грамматика есть и у языков программирования например цикл while, если внутри цикла гоняется несколько инструкций, то их обязательно выделяют фигурными скобками или тело функции выделяется фигурными скобками. У HTML, тоже есть грамматика, например таблицы HTML 4, внутрь тега <table> по стандарту HTML 4, внутри тега <table> обязательно следует писать теги <tbody>, <tfoot>, <thead>, а внутри этих тегов уже <tr>.

Так же у любого языка есть семантика, семантика — это смысл, например «дать ремня», у данного выражения очень стимулирующий смысл в плане успеваемости, никто не хочет «получать ремня». Или слово «замок», тут два смысла, замок — как сооружение и замок — как средство защиты от грабителя. Опять же в HTML, так же имеется семантика, например два тега, тег <p> параграф или абзац и тег <div> раздел или два тега <b> и <strong> и как ни странно писать HTML-документы будет намного легче, если вы их будете писать с пониманием смысла, а не выковыривая теги из памяти и вспоминая стандарты и прочее. Например, почему внутри элемента <p>, нельзя создать еще один HTML элемент <p> или элемент div (ведь P элемент блочный и DIV блочный HTML элемент), если понять смыл тега <p>, то все становится очевидным, элемент P это параграф, кто-нибудь видел внутри параграфа параграф? А элемент DIV это раздел, кто-нибудь видел внутри параграфа раздел? Внутри параграфа, могут быть списки, изображения, тексты и так далее, но никак не раздел. А вот внутри раздела может быть сколь угодно много параграфов и разделов.

Или скажем тег <b> и <strong>, b — от англицкого слова bold, то есть жирный, текст заключенный между тегами <b>...</b> становится жирным и все, а strong — переводится как сильный или важный и смысл его в том, что бы указать браузере, что данный фрагмент текста очень важный и сделай ка ты нам его мужик как-то по особенному, в обычных браузерах текст выделится жирным, а в голосовых говорилка изменит интонацию или громкость произношения, что в случае с тегом <b> не наблюдается.

А теперь вернемся к примеру XML документа:

[html]

<pricelist>
<book id="1">
<title>Как взломать сайт Пентагона</title>
<author>Васька Хакер</author>
<price currency="RUB">2200</price>
</book>
</pricelist>

[/html]

И первый же вопрос, у XML тегов и XML документов есть смысл? Нет, не так(в конкретных ситуациях и на готовых решениях у XML тегов смысл есть), у очевидно ли будет правило, что книга как взломать сайт Пентагона, является частью прайс-листа? Ответ — все зависит от ситуации. Второй вопрос,  что означает тег <book>, очевидно ли что это действительно книга, а может это брошурка, атлас или журнал Весёлые картинки(old scholl заулыбался). То есть мы приходим к выводу, что у XML тегов смысла нет.

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

Поэтому, у XML нет грамматики, нет тегов нет грамматики, нет семантики так как нет тегов, справедливый вопрос в консорциум  w3 org прислал слесарь Калистрат Федорович Иванов из Новосибирска, «А на хрена нам тогда нужен язык разметки без правил и смыла?». Ответ очень прост, смысл у XML появляется при данных конкретных решениях, так же как и правила XML появляются тогда, когда мы начинаем работать над конкретной задачей. Все свойства, весь смысл находится в вашей голове, то есть на базе XML вы создаете свой собственный язык разметки, у которого есть смысл, есть грамматика. Как в моем примере я решил, что внутри XML элемента <book> будет находится информация о продаваемой книге(цена, автор книги, число страниц, название книги, издательство и т.д.) А внутри элемента <title> я решил держать информацию о название книги. И у всех моих тегов появился сразу же смысл.

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

На этом всё, спасибо за внимание, надеюсь, что был хоть чем-то полезен и до скорых встреч на страницах блога для начинающих вебразработчиков и вебмастеров ZametkiNaPolyah.ru 

    Возможно, вам будет интересно:

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

This article has 1 comment

  1. Pingback: Николай

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Loading Disqus Comments ...