XML

История о деревьях

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

Мир в виде деревьев

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

Если говорить о деревьях языком программистов или математиков, то надо сначала сказать, что такое граф. Граф — это пара множеств: множество вершин и множество дуг, которые соединяют эти вершины из одной в другую. А дерево — это один из видов графа, который обладает следующими свойствами:
— дуги ориентированы (если есть только дуга A→B, то из B в A пройти нельзя);
— существует корень дерева — вершина, в которую не входит ни одна дуга;
— в каждую вершину, кроме корня, входит только одна дуга.

Простой пример дерева.

Дерево

Для примера, можно применить структуру «дерево» для автомобиля. Автомобиль — это корневой элемент. У него есть подэлементы (сыновья): колеса, сиденья, руль, двигатель и.т.д. У каждого колеса тоже есть подэлементы: диск, шина, болты, камера.

XML

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

Узлы XML называются тегами. Тэг можно назвать каким угодно сочетанием символов, кроме «<», «>» и пустого символа (хотя, там, может, что-то еще нельзя экзотическое). У тэга надо четко обозначить начало и конец. Тут может быть два случая.

Первый случай. Внутри тэга нет содержимого, текста или других тэгов. В таких случаях тэг пишется так: <branch/>.

Второй случай. Если внутри тэга есть содержимое, то он пишется так: <tree>содержимое</tree>.

У каждого тэга могут быть сыновья: тэги, вложенные в него; братья: тэги, которые вложены в его отца. У всех тэгов, кроме корневого, есть один отец (угадай, как его найти 8).

У каждого тэга может быть множество атрибутов. Атрибуты пишутся так: <tag attribute1=”hello” attribute2=”2″>. Названия атрибутов и их значения программист волен придумывать какие угодно. Есть, правда, одно исключение: значение атрибута id, если оно задается, должно быть уникальным для каждого тэга. Например, в документе может быть только один тэг с атрибутом id равным «green».

Простой пример
XML-документа.

XML документ

Рассмотрим простой пример на картинке. Корневой тэг в этом документе — tree. У него два сына, оба с именами branch. У первого тэга branch есть два атрибута, age и length, и нет никакого содержимого. У второго тэга branch есть два сына, leaf и flower. Leaf — брат flower’а и наоборот.

И зачем это мне?

Затем, что все страницы сайтов — это документы XHTML, разновидности XML. Затем, что передавать за один раз много данных от сервера клиенту очень удобно в виде XML-документов. И твой обожаемый RSS тоже основан на формировании и передаче XML.

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

Если тебе очень интересно — можешь почитать спецификацию XML на английском от первоисточника.

По теме


Понравилась статья — подписывайся на RSS или e-mail рассылку.

Комментарии (75) на «XML»

  1. Юлий

    и??? а где как это применять, как передать данные, почему везде пишется, что XML используется для этого, но не пишут как?
    Извините, не сразу допер, что слово “XML” на данном сайте использовано только для веса в поисковых системах.
    Стать поверхностная, ни о чем. Ничего не дает тому, кому вы объясняете о HTML

  2. Юрий Гугнин

    Юлий: о том, как XMl используется для передачи данных, я расскажу далее. А отделил я XML от XHTML исключительно потому, что XML — это основа и ее надо знать прежде всего. Но у XHTML достаточно своих тонкостей, чтобы вынести это в отдельный пост 8)

  3. Дмитрий

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

  4. Somemomo

    увы не все в жизни бывает так как нам хочеться…

  5. Вадик

    Другу покажу, статья просто супер

  6. Сергей

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

  7. Сергей

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

  8. Евгения

    Спасибо за пост!

  9. Евгений

    Спасибо за пост!

  10. Анонимно


  11. Вячеслав

    Превосходно

  12. Анастасия Истомина

    Очень познавательно. Спасибо.

  13. Женечка

    Спасибо за полезную информацию!

  14. Олеся Akiko

    а где подписка на рсс? не находит канал(

  15. Соколь

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

  16. Александр

    Пост просто супер.

  17. Михаил

    Пост просто супер!

  18. anfisa


  19. mister

    good post, senks.

  20. Василий

    Спасибо за статью.

  21. Соня

    я в восторге от Вашего стиля:)

  22. ayreon


  23. deep


  24. diablero


  25. Настя

    предлагаю обменяться ссылками!

  26. Анонимно


  27. Оля Шатурова

    забавно, пожалулуй изучу весь Ваш блог

  28. Альбина

    Владелец блога всё чётко подметил

  29. chimaera

    interesnaya statya

  30. Саша Экстази

    Спасибо. Прочитал с интересом. Блог в избранное занес=)

  31. absurd

    post true

  32. Игнат

    Автор, а скажите а куда написать по поводу обмена ссылок (на какое мыло)?

  33. Bossa


  34. banderas


  35. gregor

    The most ridiculous that in my opinion, my comments on lawhack.ru did not pass moderation:) Now for any left behind a link can be run at the title of the spammer:)

    I am at your blog-to-not-mention trite put a tick “I do not spammer” in the form of add a comment - all those egghead as a hand removed, left only debilki to manually post at least a little meaningful comment, but his belt - they for that comment did not receive money as a reference from the ’site’ is not displayed.

  36. trend


  37. amaran

    Welcome to the Hell

  38. Дмитрий

    В принципе, вебмастер четко накропал.

  39. mox

    Промо

  40. aderrolla

    Афтар перспективный мужик

  41. Vayzanie

    Vyazanie gurnali, knigi. Kroika i shit’e vyazhi.ru
    Vyazhi!

  42. Майкл

    Супер статья, очень много полезного

  43. СЕО

    А вы не пробывали зарабатывать в интернете?

  44. Romeblorgomab

    Довольно, грамотная новость

  45. okino


  46. Святослав

    Занятно и полезно, а будет еще что-нибудь по этой теме?

  47. Егор

    Хорошая статья. Буду ждать продолжения. Тема безусловно интересна всем.

  48. Назар

    Я тоже в блоге про такое пишу, только на тему кино

  49. Корейские автомобили

    почитайте про автомобили в моем блоге

  50. erotikx

    Автор, а скажите а куда написать по поводу обмена ссылок (на какое мыло)?

  51. kononin

    Все-таки на самом деле нравится мне Ваш блог. Всегда очень интересно читать, включая эту тему

  52. BigSegurero

    вот прям очень бы хотелось видеть больше постов

  53. scociotly

    С кем вы разговариваете, это всё боты?

  54. obedkirov

    obed kirov

  55. sex-phone

    Привет! Я смотрю у тебя опыт в блоггерстве средненький, даже нормальный :) а я вот только начала =))
    Если что смотри , заходи и звони!! а то скучно мне :’(
    А лучше заходи и звони!!! ))

  56. amuppydaw

    ммм )) красивенький blog ;)
    не хотел случайно сменить тему? Поставить ещё пару плагинови будет симпотнее..ну это вот это будет симпотно действительно :)
    Кстати , ты какой Hosting юзаешь? =)

  57. Марк

    Извините за офф-топик, не подскажете, где мона такой же симпатичный шаблон для блога взять?

  58. WarezCity

    ВарезСити - это Сайт который содержит игры , скачивать можно без смс

  59. ВмиреМото

    Хочу показать мой сайт о о машинах тут вы найдете много полезной информации о мотоциклах и машинах

  60. МедСправка

    Хочу показать своий сайт
    Мед терминология. Сайт о медицине. Много полезной информации
    Медицинские термины.

  61. KniniBalAttah

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

  62. impekdayday

    Представлю свой сайт
    Сайт содержит информацию о о ремонте.

  63. oricluber

    oriclub

  64. Lamka

    Ну конечно, как говорят, полезное рядом! :)

  65. Flex

    Меня очень заинтересовал ваш блог.
    Могу ли я связаться с вами в асе для более подробного обсуждения поста?

  66. Биография личностей

    Большая база биографий. Информация оО великих людях росии.
    Мы собрали большую базу биографий.С каждым днем база пополняется.На сайте представлена информация об известнейших людей росии.

  67. Платон

    Очень покорила ваша статья, в ней припрятано очень неисчетно поднято с нашей гуманной жизни и это аж хорошо! Есть над чем помозговать

  68. Акционные влосипеды в нашем магазине

    Странная у нас страна. Жениться можно с 16, а порнуху смотреть с 18.

  69. Раймонд

    Привет от мала до велика! Хочу сказать спасибочки полиграфам сего дневника за то что необычайно тонко освящаете тему. Ваш блог мне весьма понравился и я и буду возобновлять его считывать всегда! С почитанием, Ваш абонент.

  70. Продажа стриральных машин

    Алкоголь, несомненно, имеет дистанционное действие. Например, ты только купил бутылку водки, ещё не выпил ни грамма, а настроение уже улучшилось!

  71. аварии на шоссе

    Последний из этих афоризмов уже цитировался в одной из дискуссий. Но мне очень хочется привести его и здесь. А ещё войти в круг уважаемых авторов:

  72. GSM позиционирование

    Сайт поможет:
    -Если вам кто-то звонил, и вы хотите знать больше чем номер телефона звонившего.
    -Если хотите “проследить” за своей девушкой/женой (своим парнем/мужем)
    -Если Вы беспокоитесь за своего ребенка
    -Если хотите проконтролировать недобросоветсного работника
    -В конце концов просто хотите разъиграть друзей позвонив и сказав им: “спорим на 1000, я знаю где ты щас” ))) С помощью данного сайта Вы всегда можете определить регион местонахождения любого абонента сети GSM, зная только номер его мобильного телефона.
    GSM пеленгатор поможет во многом.

  73. каталог rss

    Уважаемые блоггеры! Кому интересно продвижение личных блогов, примешивайтесь к моему современному проекту yrss.Ru и прибавляйте свои RSS полосы. Каталог оптимизирован на невыпадение страницы с Вашей ссылкой на главную страницу интернет-дневника, из поисковых систем, путем частичной синонимизации RSS лент. При добавлении Вашей полосы, получается феноменальная страница с уникальным описыванием и Вашей ссылкой а еще и скриншотом Вашего дневника.
    Кого заинтересовывает сам скрипт каталога RSS лент, приглашаю черкать мне на мыло stocklockinfo_NOSPAM_gmail.Com Тонкая защита от спама “_NOSPAM_” :)

  74. Даниил Семин

    Статья понравилась! Этакий короткий микс практических знаний. Хоть и “зажгли лампу среди белого дня”:)

  75. Олег Фролов

    Интерсно тут у Вас. ) Надо будет еще заглянуть.

Оставить комментарий