На заре существования Intel Энди Гроув встретил сотрудника, который предложил компании разработать персональные компьютеры на базе микросхем. Энди
«Что может персональный компьютер?» — спросил Гроув. Сотрудник сказал, например, что он может хранить рецепты. Гроув посчитал, что все затраты на исследования, разработки и маркетинг составят миллионы долларов, и в конечном итоге решил начать с производства чипов для светофоров.
Все смотрят задним числом. Энди Гроув, как ни посмотри на него, обычно считается очень умным человеком, способным принимать важные решения для развития компании. Но в 1970-е годы было невозможно заставить его предвидеть потенциал персонального компьютера. Если бы он видел Excel, Quark, Photoshop, Oracle или Интернет, он бы понял, что установка мощного процессора на настольном компьютере позволяет программному обеспечению делать что угодно.
Но кто бы мог подумать, если бы они не видели этого своими глазами. Можете ли вы объяснить компьютер и его предназначение в эпоху, когда пишущие машинки, арифмометры и карандаши были инструментами вычислений?
Этот пример можно использовать для объяснения расширяемого языка разметки (XML — eXtensible Markup Language).
Язык) вкл. Ничего подобного пока нет, поэтому сравнивать сложно. Возможно, вы слышали, что XML является заменой HTML или что XML похож на HTML в том смысле, что вы можете определять свои собственные теги. Оба эти утверждения не совсем верны, как и утверждение, что ПК — это машина для хранения рецептов.
Моя мама — опытный повар, и если бы я воспользовался ее рецептом, моя семья сэкономила бы много денег.
Я начал с простого. Итак, я открыл текстовый редактор и начал писать HTML.
Код:
<HTML>
<H1 ALIGN=CENTER>Рецепт</H1>
<FONT FACE size=2>Шоколадные батончики</FONT>
После написания вышеперечисленных строк я хочу продолжить писать о замечательных рецептах моей мамы. Так как же это сделать? Старомодная веб-страница. Что дальше? Дайте URL-адрес моей страницы людям, заинтересованным в рецепте, и попросите их убрать с нее <P> и <FONT.
Размер ЛИЦА=2>? Это займет некоторое время, я хочу получить реальный контент.
Взгляните на следующие возможные XML-теги:
<author>Кэрол Шмидт</author>
<recipe_name>Шоколадные батончики</recipe_name>
В XML содержимое лучше всего описывается тегами. Таким образом, я могу быть уверен, что любой запрос «Шоколадная крошка» появится в теге <recipe_name>.
Рецепты Mom_ доступны каждому. Более того, если моя информация окружена такими тегами — значимыми тегами — я могу указать другим программам, как их использовать. Я также мог бы закодировать содержимое тега <recipe_name> в поле базы данных, а затем вывести его на бумажном носителе книги.
Кроме того, я могу использовать текстовый процессор с поддержкой XML, чтобы упростить публикацию веб-страниц.
В этом суть XML: сделать разметку доступной для чтения людьми и машинами. Но прежде чем достичь этой цели, следует понять, что включает в себя кодирование с помощью XML.
Документы должны быть хорошо организованы. XML-файл должен удовлетворять двум требованиям: быть хорошо организованным и эффективным. Начнем с хорошо организованного документа.
Я придумал несколько обозначений для описания рецептов и организовал их в разумной и удобочитаемой форме. Возможно, это не лучшая разметка, но в примере ниже она хорошо работает.
<?xml версия="1.0"?>
<список>
<рецепт>
<author>Кэрол Шмидт</author>
<recipe_name>Плитки с шоколадной крошкой</recipe_name>
<еда>Ужин
<курс>Десерт</course>
</еда>
<ингредиенты>
<item>2/3 стакана сливочного масла</item>
<item>2 стакана коричневого сахара</item>
<item>1 чайная ложка ванили</item>
<item>1 3/4 стакана непросеянной муки общего назначения</item>
<item>1 1/2 чайной ложки разрыхлителя</item>
<item>1/2 чайной ложки соли</item>
<item>3 яйца</item>
<item>1/2 стакана измельченных орехов</item>
<item>2 чашки (упаковка по 12 унций) полусладких шоколадных чипсов</item>
</ингредиенты>
<направления>
Разогрейте духовку до 350 градусов.
смешайте с коричневым сахаром и ванилью в большой миске.
Дайте остыть. Смешайте муку, разрыхлитель и соль;
отложите в сторону. Добавьте яйца в остывшую сахарную смесь и хорошо взбейте;
Добавьте сохраненные ингредиенты для сушки, орехи и чипсы.
Выложите в смазанную маслом форму размером 13 на 9 дюймов.
Выпекайте 25–30 минут до золотистого цвета;
круто. Разрезать на квадраты.
</направления>
</рецепт>
</список>
Это приемлемый XML-документ, рассказывающий вам, что такое XML: осмысленная организация данных.
Хотя эти теги немного похожи на HTML, есть большая разница: в файле нет информации о том, как представлены данные. Инструкцию по макету, когда будем готовы,
появится откуда-то еще. Это то же самое, что размещать информацию адресной книги в полях и записях базы данных, а не в списках, созданных текстовым процессором. Базы данных позволяют объединять информацию из вашей адресной книги на этикетках, конвертах, письмах или любом другом носителе. Наконец, файл рецепта синтезируется в язык представления, например HTML или CSS.
Как упоминалось ранее, документы XML должны быть хорошо организованы. Это означает, что файл должен соответствовать следующим трем основным правилам:
Документ начинается с определения XML <?xml version="1.0"?>.
Иметь корневой элемент, содержащий весь остальной контент, например <list> в приведенном выше примере.
и теги </list>.
Все элементы должны быть разумно вложенными, перекрестная вложенность не допускается.
В приведенном выше примере несколько элементов <item> правильно вложены в <ingredients> и
Тег </ingredients>. Но есть серьезная проблема со следующей разметкой:
<ingredients><item></ingredients>шоколадная крошка</item>
Таким образом, «шоколадная крошка» не включена в список ингредиентов. Поэтому документ не очень хорошо организован. В HTML это может не иметь большого значения, поскольку браузеры уже предназначены для такой обработки.
Но в XML это фатально — приложения отказываются обрабатывать неорганизованные файлы.
Теперь мы знаем, что хорошая организованность важна, но дело не только в этом.