Содержание

Что такое XML

Язык XML предназначен для хранения и передачи данных. HTML же предназначен для отображения данных.

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

Что такое XML?

  • XML — аббревиатура от англ. eXtensible Markup Language (пер. расширяемый язык разметки).
  • XML – язык разметки, который напоминает HTML.
  • XML предназначен для передачи данных, а не для их отображения.
  • Теги XML не предопределены. Вы должны сами определять нужные теги.
  • XML описан таким образом, чтобы быть самоопределяемым.

Разница между XML и HTML

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

XML ничего не делает

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

Следующий пример представляет некую заметку от Тови к Джени, сохраненную в формате XML:


<?xml version="1.0" encoding="UTF-8"?>
<note>
   <to>Tove</to>
   <from>Jani</from>
   <heading>Напоминание</heading>
   <body>Не забудь обо мне в эти выходные!</body>
</note>

Приведенная запись вполне самоописательна. Здесь есть информация об отправителе и получателе. Также присутствуют данные заголовка и само сообщение. И при всем при этом этот документ XML не делает ничего. Это просто информация, обернутая в теги. Кто-то должен написать программу, которая будет отсылать, получать и отображать эти данные.

В XML вы изобретаете свои собственные теги

Теги в вышеприведенном примере (например, <to> и <from>) не определяются никакими стандартами XML. Эти теги были «изобретены» автором этого XML документа.

Все потому, что в языке XML нет предопределенных тегов.

Так, в HTML все используемые теги предопределены. HTML документы могут использовать только те теги, которые определяются в стандартах HTML (<p>, <li> и т. д.).

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

XML – это не замена HTML

XML – это дополнение HTML.

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

XML – это программно- и аппаратно-независимый инструмент для транспортировки информации.

XML – везде

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

msiter.ru

HTML — это не XML / Habr

Многие считают, что html — это подмножество xml. И, соответственно, пишут код в том же стиле. Но это не так, между этими разметками есть различия. Есть некоторые правила xml, которые неприменимы в html.

Я рассмотрю три основные ошибки тех, кто пытается писать html в стиле xml.

1. Самозакрывающиеся теги


Первая и самая распространенная ошибка. Я много раз видел, как кто-то пытается закрыть html тег с
помощью /> Например, <button/> или <br />
.
Но даже если элемент не имеет содержимого, все равно так писать нельзя. Потому как в отличие от xml
в html закрывать теги с помощью /> запрещено. Тег можно закрывать только явно, с помощью </tag>. Это не просто хороший стиль. Браузер воспринимает символ «/» внутри элемента как ошибку и игнорирует его. Элемент просто не закрывается.

Давайте посмотрим, как браузер обрабатывает такие теги. Выполним следующий html:

<div>
	Красный
	<div/>
	Продолжение красного
</div>
<div>Следующий элемент</div>

Все вроде бы нормально, но выглядеть это будет так:

Как видно, браузер не закрыл элемент, завершающийся />. Его нужно было закрывать при помощи явного </div>.

И кстати, даже серьезные компании, бывает, пишут неправильно.

Пример

Яндекс.Метрика пишет свой img тег так: <img src=»//mc.yandex.ru/watch/24049213″ style=«position:absolute; left:-9999px;» alt=»»

/>


2. Закрытие тегов


Хорошо, теги нужно явно закрывать. Значит, нужно всегда писать <tag></tag>? Нет. Не все так просто. Согласно спецификации в html некоторые теги нужно обязательно закрывать, некоторые необязательно, а некоторые запрещено.

Приведу примеры:

  • Обязательно нужно закрывать div, span, script, table и footer;
  • Такие теги, как option, li, tr, body можно закрывать, а можно и нет. С точки зрения качества кода, конечно, лучше всегда закрывать теги, но стандарт разрешает не делать этого;
  • А вот некоторые теги, такие как input, br, img и hr закрывать запрещено. Если написать <input></input> или
    <img></img> — то это будет невалидный html. Такие теги нужно оставлять незакрытыми.

Конечно, эти примеры не полные. По каждому отдельному тегу смотрите документацию.

3. Запись булевых атрибутов


Как записывать булевы атрибуты в html (такие как checked и disabled)? Те, кто пишет html в стиле xml, случается, записывают их так: <option selected=«true»></option>
Так делать не нужно. В html нет значения «true». Стандарт говорит, что если атрибут заявлен в разметке, то его значение уже true.

Можно выбрать один из трех вариантов записи:

  • <option selected=«selected»></option>
  • <option selected=»»></option>
  • <option selected></option>

Я предпочитаю использовать короткий третий вариант, вроде: <input id=«smth» disabled type=«text»>.

P.S. Эти правила относится к html, а не к xhtml. Однако даже если ваша страница оформлена как xhtml, браузер будет

разбирать ее как html, если сервер отдает ее с mime-type ‘text/html’. Для того, чтобы странице стать действительной xhtml, ее mime-type должен быть ‘application/xhtml+xml’. Только тогда браузер будет парсить эту страницу по xml правилам.

habr.com

Различия между XML, DHTML, HTML

Для начала, XHTML и HTML — это особые форматы текста которые понимает браузер, а DHTML — это способ или технология которую использует разработчик сайта (другая категория понятий, нельзя сравнить с XHTML или HTML).

Различия между XHTML и HTML:

  • Все элементы должны быть закрыты. Теги, которые не имеют закрывающего тега (например, <img> или <br>) должны иметь на конце / (например, <br />).
  • Булевы атрибуты записываются в развёрнутой форме. Например, следует писать <option selected=»selected»> или <td nowrap=»nowrap»>.
  • Имена тегов и атрибутов должны быть записаны строчными буквами (например, <img alt=»» /> вместо <IMG ALT=»» />).
  • XHTML гораздо строже относится к ошибкам в коде; < и & везде, даже в URL, должны замещаться &lt; и &amp; соответственно. По рекомендации W3C браузеры, встретив ошибку в XHTML, должны сообщить о ней и не обрабатывать документ. Для HTML браузеры должны были попытаться понять, что хотел сказать автор.
  • Кодировкой по умолчанию является UTF-8 (в отличие от HTML, где кодировкой по умолчанию является ISO 8859-1).
Для XHTML страниц рекомендуется задавать MIME-тип — application/xhtml+xml, но это не является обязательным, более того — браузер Internet Explorer 6 и младшие версии, не смогут обрабатывать страницу, поэтому с XHTML 1.0 традиционно используется MIME-тип для HTML — text/html.

Также стандарт рекомендует указание <?xml version=»1.0″ encoding=»utf-8″?> перед DTD, но это не обязательно, более того — браузер Internet Explorer воспринимает такое указание (как и любой другой текст перед <!DOCTYPE>), как признак того, что данную страницу необходимо отображать в режиме обратной совместимости, а не согласно стандарту.

Существует три типа документов XHTML: strict, transitional и frameset. Наиболее употребительной и универсальной из версий XHTML является переходная (англ. transitional), поскольку она позволяет использовать iframe (включение содержимого одной веб-страницы в другую) и атрибут target у ссылок (для указания того, например, что ссылке необходимо открываться в новом окне). Фреймовая версия (англ. frameset) представляет собой расширенный вариант transitional, добавляя к нему, как следует из названия, возможность установки frameset вместо body. DTD строгой версии XHTML (англ. strict) не содержит многих тегов и атрибутов, описанных в DTD transitional, и признанных устаревшими.

 

www.nulled.cc

XML и XHTML

Определение 1

XML (Extensible Markup Language, расширяемый язык разметки) представляет собой принципиально новый стандарт, предложенный в 2000 году создателем языка HTML — консорциумом World Wide Web Consortium (W3C). XML является новейшей технологией изготовления веб-страниц, которая в настоящее время еще находится в стадии разработки. Структура XML характеризует его не как язык разметки гипертекста, а как метаязык, который должен описывать другие языки более низкого уровня.

В свою очередь XHTML (Extensible Hypertext Markup Language, расширяемый язык разметки гипертекста) является промежуточным вариантом между XML и HTML 4.0. Именно в связи с его широким применением консорциумом W3C планируется осуществление постепенного перехода от одного стандарта к другому. Спецификация XHTML построена ппринципу обратной совместимости. Иначе говоря, владельцам веб-сайтов, созданных в соответствии с технологией HTML 4.0 или более ранних версий, не нужно будет менять форматы опубликованных в сети Интернет документов: все дополнения и расширения нового языка полностью включили в свой состав предыдущие стандарты.

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

История появления

Начнем с языка SGML (Standard Generalized Markup Language), который является метаязыком, послужившим основой Тиму Бернерсу-Ли для создания HTML.

В ходе развития Всемирной сети как социального и технического явлений, представители W3C стали изучать перспективное развитие языков и методов, используемых в сети Интернет. С того времени появилось большое количество технологий, к которым можно отнести и Extensible Markup Language (XML).

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

Замечание 1

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

Когда появились XML, HTML 4.0 с тремя DTD, а также CSS, разработчиками было продолжено исследование HTML, в результате которого обнаружилось его ограничение в установках, т.е. его рамки нельзя расширять дальше определенной точки.

Желание совместить строгость и способность к расширению побудили разработчиков из W3C обратиться к XML как к средству, влияющему на HTML. В следствие чего, HTML был переформулирован в приложение XML (а не SGML), что и явилось появлением Extensible Hypertext Markup Language (XHTML).

Цели XHTML

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

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

Особыми целями XHTML являются:

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

Замечание 2

Отметим, что XHTML поддерживает любой браузер, способный к интерпретации HTML, так как XHTML работает с HTML-словарем.

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

Преимущества использования XHTML

Язык XHTML обладает рядом преимуществ:

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

Версии XHTML

Многими предпочтение отдается XHTML 1.1 Strict, но данная версия менее совместима со старыми браузерами и ею используются MIME-типы, что может привести к некоторым проблемам в поведении определенных популярных браузеров.

Замечание 3

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

Разработчикам были представлены наброски стандарта XHTML 2.0. Данный стандарт очень близок к идеалу, поскольку он не совместим с HTML или XHTML 1.0 и не использует некоторые привычные элементы, включая IMG.

Реакция разработчиков на появление данной версии была разная: от нескрываемого восторга до крайне осторожной.

С течением времени будет ясно, какие спецификации XHTML 2.0 станут стандартом, и будет ли он поддерживаться дизайнерами и разработчиками. В настоящее время XHTML 2.0 не поддерживается ни одним браузером.

Так же как и ни один производитель браузеров не намерен отказываться от поддержки HTML 4. Сайты, написанные на корректном HTML 4.01, будут продолжать работать годы и годы. Это же относится и к XHTML 1.

HTML или XHTML

Осуществляя выбор между этими двумя стандартами необходимо обратить внимание на следующие основные моменты:

  • XHTML представляет собой текущий стандарт разметки гипертекста, заменивший HTML 4;
  • является совместимым с другими продуктами на базе XML (языками, протоколами и приложениями) в отличии от HTML;
  • XHTML является более последовательным, чем HTML, что способствует снижению вероятности возникновения ошибок;
  • XHTML 1.0 представляет собой мост к новым версиям XHTML;
  • старыми браузерами так же корректно отображается XHTML, как и HTML;
  • новые браузеры охотнее работают с XHTML, поскольку им предоставляются многие функции, которые недоступны в HTML;
  • XHTML хорошо работает в беспроводных устройствах, программах для чтения информации с экрана и других пользовательских устройствах, чем устраняется необходимость создания отдельных версий для беспроводных устройств и повышается доступность сайта;
  • XHTML относится к семейству веб-стандартов (куда входят и CSS и W3C DOM), это дает возможность контроля внешнего вида и поведения страницы в разных платформах, браузерах и устройствах;
  • использование XHTML повышает доступность сайта и способствует одинаковому отображению страниц в разных браузерах;
  • при использовании XHTML можно осуществлять проверку страниц с помощью валидатора Консорциума W3C, что способствует экономии времени на тестировании и отладке и недопущению основных ошибок доступности.

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

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

Замечание 4

Эти правила не обязательные при написании кода, однако все они отлично работают в HTML.

Одно правило XHTML все же нарушает синтаксис HTML — это применение косой черты при закрытии пустых элементов.

При использовании HTML вместо XHTML необходимо учесть только эту небольшую разницу при написании страниц.

spravochnick.ru

HTML и XML 2019

HTML для XML: расширение языка разметки

Подавляющее большинство людей, работающих в компьютерной индустрии, знают, что такое HTML (Hypertext Markup Language). Он существует очень долгое время и широко используется в дизайне веб-страниц, хотя он редко встречается с веб-страницами, написанными исключительно в HTML, и считается основным знанием для всего процесса создания веб-страниц.

XML (Extensible Markup Language), с другой стороны, является более современной и менее известной технологией по сравнению с HTML. XML был создан в 1996 году группой из 11 человек в качестве адаптации SGML (Стандартный обобщенный язык разметки) для использования во Всемирной паутине. XML — это более структурированный и строгий язык разметки по сравнению с HTML, который позволяет пользователям создавать свои собственные определения и модульный код. Было сделано создание стандартных спецификаций для создания пользовательских языков разметки, которые теперь известны как диалекты XML. Это может быть не сразу, но пользовательские языки разметки, такие как HTML, RSS и Atom, были построены из XML как метод повышения удобства использования Интернета.

Поскольку XML был адаптирован из SGML, он содержит много кода и методов, которые первоначально были из SGML, как и его строгость и так называемая корректность. Характеристики, которые распространяются даже на потомков XML. Некоторые правила всегда должны учитываться при создании кода, основанного на XML. Существует даже хорошо сформированная декларация с каждым документом, чтобы указать, какой тип документа он и какие правила должна основываться на обработке. Это очень отличается от очень расслабленного кодирования, которое используется в HTML.

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

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

ru.esdifferent.com

Основы XML для начинающих пользователей

Введение в правильную разметку

Кей Уэйтли
Опубликовано 02.06.2017

XML означает Extensible Markup Language, с акцентом на markup (разметка). Вы можете создавать текст и размечать его при помощи обрамляющих тегов, превращая каждое слово, предложение или фрагмент в идентифицируемую, сортируемую информацию. Создаваемые вами файлы, или экземпляры документа, состоят из элементов (тегов) и текста, причем элементы помогают правильно понимать документ при чтении на бумаге или даже обрабатывать его в электронном виде. Чем больше описательных элементов, тем больше частей документа можно идентифицировать. С первых дней существования разметки одно из ее преимуществ заключается в том, что в случае потери компьютерной системы распечатанные данные все равно остаются читабельными благодаря тегам.

Языки разметки прошли путь от первых форм, создаваашихся компаниями и госучреждениями, до Стандартного языка обобщенной разметки (Standard Generalized Markup Language — SGML), Гипертекстового языка разметки (Hypertext Markup Language — HTML) и в конечном итоге до XML. SGML может показаться сложным, а HTML (который, по сути, сначала был просто набором элементов) оказался недостаточно мощным для идентификации информации. XML разрабатывался как простой в применении и удобный для расширения язык разметки.

В XML можно создавать свои собственные элементы, что позволяет точно представлять фрагменты данных. Документы можно не просто разделять на абзацы и заголовки, но и выделять любые фрагменты внутри документа. Чтобы это было эффективно, нужно определить конечный перечень своих элементов и придерживаться его. Элементы можно определять в Описании типа документа (Document Type Definition — DTD) или в схеме, что будет кратко обсуждено ниже. Когда вы освоите и начнете использовать XML, не бойтесь экспериментировать с именами элементов, создавая реальные файлы.

Построение документа XML

Как уже упоминалось, файлы XML состоят из текста и разметки. Большая часть текста помещается в элементы, в которых текст окружен тегами. Например, допустим, нужно создать поваренную книгу в формате XML. У нас есть рецепт под названием Ice Cream Sundae, который нужно преобразовать в XML. Чтобы разметить название рецепта, заключим его текст в элемент, который начинается и заканчивается тегами. Этот элемент можно назвать recipename. Чтобы отметить начальный тег элемента, поместим его имя в угловые скобки <>), вот так: <recipename>. Затем введем текст Ice Cream Sundae. После текста поставим замыкающий тег, который представляет собой имя элемента в угловых скобках, плюс косая черта завершения элемента (/) перед именем элемента, вот так: </recipename>. Эти теги образуют элемент, в который можно вводить текст и даже другие элементы.

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

Начало создания файла XML

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

Декларация может выглядеть просто как <XML> или включать версию XML (<XMLversion="1.0">) и даже кодировку символов, например, <?xml version="1.0" encoding="utf-8"?> для Unicode. Поскольку эта декларация должна находиться в самом начале файла, если вы планируете комбинировать мелкие XML-файлы в более крупный файл, этот необязательный элемент лучше пропустить.

Создание корневого элемента

Начальный и замыкающий теги корневого элемента окружают весь текст XML-документа. В файле должен присутствовать только один корневой элемент, и это необходимая «обложка» для него. В листинге 1 показан фрагмент примера, который я здесь использую, с корневым элементом <recipe> (рецепт). (Полный файл XML приведен в Загрузках.)

Листинг 1. Корневой элемент
<?xml version="1.0" encoding="UTF-8"?>
<recipe>
</recipe>

По мере создания своего документа вы будете размещать текст и дополнительные теги между <recipe> и </recipe>.

Наименования элементов

Соблюдение регистра в тегах

При создании XML регистры начального и конечного тегов должны совпадать. В противном случае можно получить сообщение об ошибке при использовании или просмотре XML. Например, Internet Explorer не отображает текст в случае несовпадения регистров. Вместо этого он выводит сообщения о несовпадении начального и конечного тегов.

Итак, у нас есть корневой элемент <recipe>. В XML сначала выбираются имена элементов, а затем на основе этих имен определяется соответствующее описание DTD или схема. Имена могут содержать буквы, цифры и специальные знаки, такие как знак подчеркивания (_). Вот несколько правил об именах, которые нужно помнить:

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

В предыдущем примере, если мы добавили элемент с именем <recipename>, то его начальным тегом должен быть <recipename>, а соответствующим замыкающим тегом —</recipename>.

Листинг 2. Другие элементы
<?xml version="1.0" encoding="UTF-8"?>
<recipe>
<recipename>Ice Cream Sundae</recipename>
<preptime>5 minutes</preptime>
</recipe>

XML-документ может содержать пустые теги, внутри которых ничего нет и которые могут выражаться одним тегом, а не парой из открывающего и замыкающего тегов. Например, это может быть самостоятельный тег в стиле HTML <img src="mylogo.gif">. Он не содержит никаких дочерних элементов или текста, так что это пустой элемент, и его можно записать как <img src="mylogo.gif" /> (с пробелом и знакомой замыкающей косой чертой в конце).

Вложение элементов

Вложение— это размещение элементов внутри других элементов. Эти новые элементы называются дочерними элементами, а элементы, которые их окружают, — их родительскими элементами. В листинге 3 в корневой элемент <recipe> вложено несколько элементов. Это вложенные дочерние элементы <recipename>, <ingredlist> и <preptime>. Внутри элемента <ingredlist> находится несколько одинаковых дочерних элементов <listitem>. Вложение может делать XML-документ многоуровневым.

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

Пример правильного вложения приведен в Листинге 3. Теги начинаются и завершаются без переплетения с другими тегами.

Листинг 3. Правильное вложение элементов XML.
<?xml version="1.0" encoding="UTF-8"?>
<recipe>
<recipename>Ice Cream Sundae</recipename>
<ingredlist>
<listitem>
<quantity>3</quantity>
<itemdescription>chocolate syrup or chocolate fudge</itemdescription>
</listitem>
<listitem>
<quantity>1</quantity>
<itemdescription>nuts</itemdescription>
</listitem>
<listitem>
<quantity>1</quantity>
<itemdescription>cherry</itemdescription>
</listitem>
</ingredlist>
<preptime>5 minutes</preptime>
</recipe>

Добавление атрибутов

К элементам иногда добавляются Атрибуты. Атрибуты состоят из пары имя-значение, где значение берется в двойные кавычки ("), вот так: type="dessert". Атрибуты позволяют сохранять вместе с элементом дополнительные параметры, меняя значения этих параметров от элемента к элементу в одном и том же документе.

Атрибут —или даже несколько атрибутов —указывается внутри начального тега элемента: <recipe type="dessert">. При добавлении нескольких атрибутов они разделяются пробелами: <recipename cuisine="american" servings="1">. В листинге 4 показан файл XML, как он выглядит теперь.

Листинг 4. Наш файл XML с элементами и атрибутами
<?xml version="1.0" encoding="UTF-8"?>
<recipe type="dessert">
<recipename cuisine="american" servings="1">Ice Cream Sundae</recipename>
<preptime>5 minutes</preptime>
</recipe>

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

Правильно и неправильно построенный XML

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

В зависимости от того, что именно вы делаете с XML, вам может понадобиться работа с правильно построенным XML. Рассмотрим приведенный выше пример сортировки по типу рецептов. Нужно, чтобы элементы <recipe> содержали атрибут type. Очень важно иметь возможность успешно проверить код и гарантировать постоянное присутствие значения этого атрибута.

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

Чтобы разрешить проверку, нужно ближе к началу своих XML-документов поместить декларацию типа документа ( DOCTYPE). Эта строка содержит ссылку на DTD или схему (перечень элементов и правил), которая будет использоваться для проверки данного документа. Строка DOCTYPE может быть примерно такой, как в листинге 5.

Листинг 5. DOCTYPE
<!DOCTYPE MyDocs SYSTEM "filename.dtd">

Этот пример означает, что ваш файл списка элементов с именем filename.dtd находится в вашем компьютере (то есть в каталоге SYSTEM, а не в общем каталоге PUBLIC).

Использование сущностей

Сущности (entity)могут представлять собой фрагменты текста или специальные символы. Они могут указываться внутри документа или вне его. Во избежание ошибок и для правильности отображения сущности должны быть надлежащим образом объявлены и выражены.

Нельзя вводить специальные символы прямо в текст. Для использования в тексте специальных символов их нужно сделать сущностями и использовать коды этих символов. В качестве сущностей можно определить фразы, такие как название компании, а затем использовать их по всему тексту. Чтобы создать сущность, назначьте ей имя и вставляйте это имя и вставляйте это имя в текст после знака амперсанда (&) и заканчивая точкой с запятой — например, &coname; (или другое имя). Затем укажите этот код в своей строке DOCTYPE в квадратных скобках([]), как в листинге 6. Этот код определяет текст, который подставляется вместо сущности.

Листинг 6. Сущность
<!DOCTYPE MyDocs SYSTEM "filename.dtd" [ <!ENTITY coname "Rabid Turtle
Industries"
]>

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

Как избежать ошибок

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

Как упоминалось в разделе Вложение элементов, элемент, содержащий другой элемент, называетя родителем этого вложенного элемента. В приведенном ниже примере <recipe> является корневым элементом и содержит весь текст файла. В этот родительский элемент <recipe> вложены дочерние элементы <recipename>, <ingredlist>, <directions> и другие. Такая структура делает <recipename>, <ingredlist> и <directions> дочерними элементами. Не забывайте правильно вкладывать эти дочерние элементы. В листинге 7 приведен пример правильно построенного XML-документа с правильным вложением элементов.

Листинг 7. Правильно построенный документ XML
<?xml version="1.0" encoding="UTF-8"?>
<recipe type="dessert">
<recipename cuisine="american" servings="1">Ice Cream Sundae</recipename>
<ingredlist>
<listitem><quantity units="cups">0.5</quantity>
<itemdescription>vanilla ice cream</itemdescription></listitem>
<listitem><quantity units="tablespoons">3</quantity>
<itemdescription>chocolate syrup or chocolate fudge</itemdescription></listitem>
<listitem><quantity units="tablespoons">1</quantity>
<itemdescription>nuts</itemdescription></listitem>
<listitem><quantity units="each">1</quantity>
<itemdescription>cherry</itemdescription></listitem>
</ingredlist>
<utensils>
<listitem><quantity units="each">1</quantity>
<utensilname>bowl</utensilname></listitem>
<listitem><quantity units="each">1</quantity>
<utensilname>spoons</utensilname></listitem>
<listitem><quantity units="each">1</quantity>
<utensilname>ice cream scoop</utensilname></listitem>
</utensils>
<directions>
<step>Using ice cream scoop, place vanilla ice cream into bowl.</step>
<step>Drizzle chocolate syrup or chocolate fudge over the ice cream.</step>
<step>Sprinkle nuts over the mound of chocolate and ice cream.</step>
<step>Place cherry on top of mound with stem pointing upward.</step>
<step>Serve.</step>
</directions>
<variations>
<option>Replace nuts with raisins.</option>
<option>Use chocolate ice cream instead of vanilla ice cream.</option>
</variations>
<preptime>5 minutes</preptime>
</recipe>

Примечание: Разрывы строк облегчают чтение кода, не влияют на сам XML.

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

Проверка XML

На рисунке 1 показан XML-документ, элементы которого отображаются без сбоев в Internet Explorer. Текст обрамляют открывающий и замыкающий теги. Рядом с родительскими элементами расположены значки плюс (+) и минус(-), которые позволяют убрать внутрь элементов все вложенные в них элементы (их потомков).

Рисунок 1. Пример файла XML со свернутыми потомками

Заключение

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

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

Ресурсы для скачивания
Похожие темы

Подпишите меня на уведомления к комментариям

www.ibm.com

Введение в XML

У Вас в браузере заблокирован JavaScript. Разрешите JavaScript для работы сайта!

Что такое XML?

XML (eXtensible Markup Language) — расширяемый язык разметки. Основное внимание в XML сосредоточено на данных. В XML структурная разметка данных и представление данных строго разделены.

Основные причины создания XML:

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

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

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

<?xml version="1.0" encoding="WINDOWS-1251"?>

В примере 1 приведена служебная записка (memo), состоящая из получателя (recipient) и сообщения (message).

Пример 1

<?xml version="1.0" encoding="WINDOWS-1251"?>
<memo>
<recipient>Иванов M.</recipient>
<message>Командировка отменяется. Подготовьте материалы.
</message>
</memo>

Это пример документа XML без разметки представления. Структура записки отражает структуру хранящихся в ней данных. О представлении данных на экране в ней пока что ничего нет. Для создания представления автор должен применить какой-либо метод наложения стилей, например CSS (Cascading Style Sheets — каскадные листы стилей) или XSLT (eXtensible Stylesheet Language Transformations — расширяемый язык преобразования листов стилей).

У многих Web-дизайнеров возникают определенные трудности в связи с абстрактностью XML и произвольным использованием его методов. Однако в действительности XML — это весьма логичная и хорошо организованная технология. Он имеет четкий синтаксис, вынуждающий строго придерживаться определенных правил. Хоть это и не то, к чему привыкли Web-дизайнеры, однако преимущества соблюдения строгих правил весьма велики. Как язык разметки Web-документов XML обладает следующими достоинствами.

  • Гибкость. XML позволяет обрабатывать уникальные данные в коммерческой и медицинской областях. Независимо от характера данных XML способен предоставить адекватные методы их хранения и обработки. Исключение составляют лишь двоичные данные и внедренные сценарии.
  • Возможность настройки. Гибкость XML непосредственно связана с возможностью определять собственные дескрипторы, необходимость в которых возникает в процессе решения задачи.
  • Согласованность. XML отличается синтаксической целостностью и строгой структурой.

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

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

Пример 2

<!-- Прайс-лист фруктов -->
<dl>
 <!-- Тип фруктов -->
 <dt>Яблоки</dt>
  <!-- Цена -->
  <dd>$1</dd>
 <!-- Тип фруктов -->
 <dt>Мандарины</dt>
  <!-- Цена -->
  <dd>$2</dd>
</dl>

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

Пример 3

<Прайс_лист_фруктов>
<Фрукт>Яблоки</Фрукт>
  <Цена>$1</Цена>
<Фрукт>Мандарины</Фрукт>
  <Цена>$2</Цена>
</Прайс_лист_фруктов>

На стороне клиента XML способен предоставить разработчикам Web огромные возможности. Поддержку XML содержат браузеры Microsoft Internet Explorer версии 5.0 и выше, а также Netscape Navigator версии 6.0 и выше. Однако даже если во все браузеры будет включена полная поддержка XML, все же останутся некоторые проблемы:

  1. изучить XML труднее, чем HTML;
  2. пока еще недостаточно инструментов для работы с XML в визуальной среде.

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

<h2>Текст заголовка</h2>               <!-- HTML -->
<заголовок>Текст заголовка</заголовок> <!-- XML -->

В отличие от HTML в XML:

Переопределение HTML как приложения XML

Языки HTML и XML предназначены для решения разных задач. Учитывая прекрасную структуру XML и место, реально занимаемое HTML в практике Web-дизайна, было решено объединить HTML и XML. В результате появился XHTML. Появление XHTML означает, что HTML переопределяется как приложение XML. Отныне HTML должен подчиняться правилам XML.

В настоящее время заметно растет интерес к улучшению того, что представлено в Web-браузерах и альтернативных устройствах. Идеология HTML 4.0, перенесенная в XHTML 1.0, переходит в концепцию разработки документов для разных типов устройств.

В версии XHTML 1.0 обязательно строгое соблюдение правил разметки, что способствует улучшению структуры и синтаксиса разметки. Это чрезвычайно важно, так как в настоящее время Web интенсивно выходит за рамки браузеров. Будущий информационный дизайнер должен будет учитывать в своих разработках многочисленные альтернативные пользовательские устройства. Документы должны быть логичными и эстетически привлекательными в таких средах, как пейджеры, PDA (Personal Digital Assistant — персональный цифровой помощник), сотовые телефоны и т.д.

Читать дальше: Язык преобразований XSLT

htmlweb.ru

Добавить комментарий

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