Як відомо, ніщо не забиває цвяхи так, як мікроскоп, і ніщо не зрівняти з технікою видалення гландів ректально. Мови розмічування і приклади їх застосування дають пересвідчитися в цьому не гірше за податкове законодавство чи діяльність поцкомісії по боротьбі з мораллю.
Приклад перший,
самодескриптивний і дуже життєвий.
Нумерування рівнів ієрархії в структурі документа
Щойно, збираючись створити заголовочок в кошерний спосіб, я зіткнувся з логічною проблемою — в HTML не один, а стопіццод шість різних елементів для цього (<H1>, <H2>, <H3>, <H4>, <H5> і <H6>), і, за задумом (слово, неймовірно цинічне в цьому контексті) вони потрібні для різних рівнів ієрархії в складноорганізованому документі. Якщо мати за документа цей допис, заголовок має бути другого рівня (першим буде його назва). Якщо мати за документа глагне цього бложека, то, скоріш за все — третього. А може й четвертого, якщо назва бложека згори — першого, заголовочок трошки нижче — другого, а сабджі дописів, відповідно, третього. Щоправда, почитавши вихідняк сторінки, ми дізнаємося, що він має бути першого рівня, бо насправді™ ані назва бложека, ні заголовки стрічок у бложеку, ані сабджі дописів заголовками не є взагалі, це просто текст, побитий div’ами та span’ами, які нагнуто стилями.
Така нелегка реальність ніби промовляє: «Грабь! Убивай! Не розмічуй текст правильно, %username%!»
А на іншій справді, позаяк сама структура розміченого якимося ОУН-УПА SGML-XML тексту — дерево, для скільки-треба-рівневої ієрархічної структури заголовків більше ніж досить 2 (двох) елементів:
- розділ (<SECTION> чи (не в HTML, зрозуміло що) <DIV>)
- заголовок (<H> чи (не в HTML, зрозуміло що) <HEAD>)
позаяк вкладенням розділів у розділи рівні ієрархії створюються у будь-якій потрібній кількості, пересуваючи розділ із підрозділами в ієрархії розділів, водночас коректно міняєш місце в ієрархії всіх його заголовків, а головне — авторові нема потреби їх рахувати.
Але. Навіть у мові розмічування TEI, де є елементи відповідної семантики <DIV> та <HEAD>для чогось незнано важливого наявні і пропіарені в документації, для сумісності з цією діркою в голові <DIV1>, <DIV2>, <DIV3>, <DIV4>, <DIV5>, <DIV6>, <DIV7>.
І це ж не лише у мовах розмічування, а й у стилях редакторів типу ворда й видавничих системах таке щось коїться. І несамовито, шалено нагадує мені
Приклад другий,
феєричний.
Якщо вам смішно — ви розумієте слово з трьох літер XML
«Там, де я працюю, ми тримаємо безліч даних у XML-файлах,» – пише Бен, – «Хоча це не ваші звичайні XML-файли — вони специфічні.» Його колега винайшов наступну техніку (рекомендовану тільки для високофахових XML-програмувальників).
<rootNode>
<numberOfAddresses>110</numberOfAddresses>
<address_1>442 Fake St.</address_1>
<address_2>61 Main St.</address_2>
...
<address_110>3881 N 4th Ave. #5D</address_110>
</rootNode>
Бен додає: — «Хоча це означа, що написати XSD схему такого документа неможливо ніяк.»