Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

Обнаженная теория об XML.

DarkSergeant

Спецвыпуск Xakep, номер #028, стр. 028-056-1


(darksergeant@inbox.ru)

Еще в 1960-ом году для переноса документов между различными платформами был разработан язык SGML(Standard Generalized Markup Language). Но хотя SGML – мощный и достаточно универсальный язык, но из-за своей сложности и дороговизны, не получил широко распространения, даже не смотря на то, что МинОбороны США приняло его в качестве стандарта для описания технической документации.

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

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

В последние годы 1990-x, консорциум W3C понял, что HTML из простого языка вырос в большого такого монстра, и уже не справляется со своими обязанностями. Также стало понятно, что жестко заданных в стандарте тегов не хватает при сложной разметке документа.

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

HTML (вернее XHTML) хоть и был разработан раньше, чем XML, теперь является подмножеством XML-я.

XML – Расширяемый Язык Разметки

Основным понятием языка XML является ЭЛЕМЕНТ.

Элемент - это конструкция вида <Name></Name>, где вместо Name, может быть произвольное имя. Если внутренности элемента пусты, то возможна краткая запись - <Name/>. <Name> - называется, открывающим тегом, </Name> - закрывающим тегом. <Name/> - пустой элемент. Имя в открывающем теге и закрывающем теге, должно быть одинаковым. Регистр имени имеет значение, например, Name и name – это разные имена.

Внутрь каждого элемента можно вставлять любые другие элементы, а также можно вставлять произвольный текст - <User><Name>Вася</Name></User>.

На верхнем уровне документа может быть только один элемент, т.е. весь файл должен состоят из одного элемента, а все остальные элементы и текст должны быть вложены в этот главный элемент. Главный элемент обычно называют корневым(root) элементом. К каждому элементу могут быть приписаны атрибуты. Смысловая разница между внутренним элементом и атрибутом небольшая. В атрибуты обычно выносят простые свойства, который не имеют сложной структуры. Например, картинку размера 320х200 можно задать: <Image> <Width> 320 </Width> <Height> 200 </Height> <Path> c:/grjaznoe_porno/a.jpg </Path> </Image>, но намного удобнее задавать ту же самую инфу (высоту, ширину, путь) через атрибуты: <Image Width=”320” Height=”200” Path=”c:/grjaznoe_porno/a.jpg”/>. Обращаю твое внимание на то, что в XML-е, в отличии от HTML-я, все атрибуты должны браться в кавычки.

Содержание  Вперед на стр. 028-056-2