XML

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

ЕКСЕМЕЛ[редактиране | edit source]

XML (произнася се екс-ем-ел, от англ. eXtensible Markup Language — разширяем маркиращ език) е стандарт (метаезик), дефиниращ правила за създаване на специализирани маркиращи езици, както и синтаксисът, на който тези езици трябва да се подчиняват. Сам по себе си той е безполезен, защото указва само как да бъде структуриран един документ (чрез маркиране с етикети), но не и какво означават отделните маркери (етикети). Ето защо е по-правилно да се нарече метаезик отколкото език — обикновените езици имат семантика, т.е. предават някаква информация, докато XML указва само граматиката (по-точно синтаксиса) на езиците, базирани на него.

Ползата от XML се състои в това, че синтаксисът (структурирането) на документите се измисля само веднъж, а специализираните маркиращи езици само дефинират семантиката т.е. набора от маркиращи етикети и тяхното значение. Другата изгода е, че XML прави възможно разработването на семантично агностични програмни средства които могат да обработват всички XML базирани езици, дори и такива които не са съществували по време на съставянето на софтуера. Тези програмни средства могат след това да се използват и в изработването на софтуер който е написан за конкретен XML език. Или накратко — разделянето на синтаксиса от семантиката е поредното въплъщение на принципа „Разделяй и владей“.

XML е създаден като олекотена версия на SGML, целящ по-лесното му внедряване и налагане сред разработчиците. Създаден е от Уеб консорциума (World Wide Web Consortium) и съответно е добре пригоден за употреба в Интернет пространството.

Синтаксис[редактиране | edit source]

В XML информацията се маркира като се загражда с етикети:

<name>Иван Димитров Георгиев</name>

Тук текстът Иван Димитров Георгиев е маркиран с етикет <name> като по този начин указваме, че маркираният къс информация искаме да бъде разглеждан като едно цяло, имащо определено значение. Етикетите вървят по двойки — отварящ и затварящ, маркиращи съответно началото и края на маркирания текст.

Освен това етикетите могат да се влагат един в друг, така че да са получи йерархична организация на информацията:

<person>
   <name>Иван Димитров Георгиев</name>
   <country>България</country>
   <language>български</language>
   <language>руски</language>
</person>

По горния начин бихме могли да маркираме информация, свързана с отделни хора. В примера цялата информация е маркирана с етикет <person>, тъй като искаме да укажем, че се отнася за човек.

Добре оформени XML-документи[редактиране | edit source]

Това, което XML указва, е как да бъдат използвани етикетите. Например всеки документ трябва да започва с коренов етикет, така че цялата информация ще бъде маркирана от поне един етикет. Друго правило е изискването етикетите да не се припокриват (кръстосват) като в следващия пример:

<!-- Неправилно оформен документ! -->
<person><name>Иван Димитров Георгиев</person></name>

Правилно е следното:

<person><name>Иван Димитров Георгиев</name></person>

Документ, който се подчинява на тези (и много други) правила описани в XML-стандарта, се нарича добре оформен XML-документ. Това, че един документ е добре оформен, гарантира, че всички програми, написани според стандарта, ще могат да го манипулират така, както всички останали валидни XML-документи. Обикновено първата стъпка преди програмната обработка на един документ е проверката за оформеност. Има много широкодостъпни програмни средства, които извършват тази проверка.

Валидност и XML разширения[редактиране | edit source]

Тъй като XML не се занимава със семантичната страна на документите, следният текст също е част от добре оформен XML-документ:

<name>
   <person>България</person>
</name>

Разбира се, най-вероятно бихме искали етикетът <name> да се среща само в <person> етикет, но не и в <language> етикет, тъй като с него бихме искали да маркираме име на човек. Също така ще е добре, ако държавата, в която живее човекът, бъде маркирана винаги с етикет <country>, а не с някой друг.

Именно това е ролята на XML разширенията — да опишат допълнителни синтактични правила като това кои етикети къде могат да се срещат, както и да се изясни тяхната семантика (значение). Тези допълнителни синтактични правила са в тясна зависимост от семантиката на етикетите и по това се различават от общите XML правила. Описването им лесно може да се формализира, за която цел са създадени специални езици. Тези езици се наричат XML схеми (XML schemas) и задават допълнителните синтактични правила, на които трябва да отговаря документ, написан според някой от резширяващите XML стандарти.

Документи, които отговарят на правилата, описани в дадена XML схема, се наричат валидни. Валидните документи винаги са и добре оформени. Една от най-простите XML схеми е DTD (Document Type Definition — Дефиниция на документен тип). Схемата, на която отговаря XML документът, се посочва в началото му и следва определен от XML синтаксис:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Горният код показва, че документът е написан според стандарта на Web Consortium, XHTML 1.0 Transitional (който представлява разширение на XML). Формалността на описанието в XML схемите позволява проверката за валидност на документите да се автоматизира.

Втората задача на разширяващите стандарти — описване на семантиката — е по-трудна и обикновено се описва в изказен, полуформален текст, предназначен да бъде четен от хора (за разлика от XML схемите, които са формални и могат да се разбират от програмите). Спазването на семантиката е изцяло задължение на този, който съставя документа, и не може да бъде проверено от програма.

XML базирани езици[редактиране | edit source]

Това са маркиращи езици, които са написани според XML стандарта. Всеки такъв език може да се разглежда като подмножество на XML.

  • XHTML — превъплъщение на HTML езика, променен така че да отговаря на XML стандарта
  • MathML — език за описване на математически изрази
  • SVG — описване на векторна графика

Стандарти свързани с XML[редактиране | edit source]

Има множество стандарти, които са създадени да работят в тясно сътрудничество с XML.

  • XSL (Extensible Stylesheet language — Разширяем език за стилове) е всъщност семейство езици, чрез които може да се опише как един XML документ да бъде трансформиран или форматиран:
    • XSL Transformations
    • XSL Formatting Objects
    • XPath
  • DOM (Document Object Model — Обектен документен модел) — стандартен обектен модел за програмен достъп до XML документи

Външни препратки[редактиране | edit source]