ISSN 1312-0379

Главна > Статии > Код

Какво по дяволите е XML?. От Трой Яниш.

XML (Extensible Markup Language) е Евродоларът при разработването на уеб сайтове. Както XML, така и Еврото превръщат хаоса в ред; те предлагат неоспорими и разнообразни предимства; и двете имат за цел, през 2002, да променят начина, по който работим. Честно казано - и двете плашат хората до смърт.

За уеб разработчиците 2002 година е моментът да победят страховете си и за пръв път да започнат да се запознават с XML. Време е да се оцени XML и да се осъзнаят практическите преимущества, които той може да осигури на уеб проектите днес.

XML, HTML и бази данни

Ако искате чрез аналогия да опишете на някой какво представлява XML не споменавайте HTML. Макар XML да изглежда доста като HTML, създаването на един добър XML файл повече прилича на проектиране на база данни, а не - на уеб страница.

И базите данни, и XML документите се използват като средства за организиране на данни. В резултат, между тях има доста прилики. В една база данни таблица, съдържаща новини, ще изглежда горе-долу така:

Table Name: News
Table Columns:
  • Headline
  • Category
  • Author
  • Date
  • Abstract
  • Body
  • Status

Един прост XML документ съдържащ същата информация може да изглежда така:

<?xml version="1.0"?>
<News>
<Category></Category>
<Headline></Headline>
<Author></Author>
<Abstract></Abstract>
<Body>Pending</Body>
</News>

В допълнение към тези прилики както базите данни, така и XML представляват гигантска стъпка напред във възможността да се публикува и поддържа информация в Мрежата.

XML навсякъде

Във всички други случаи освен при малките, лични странички, сайтовете разчитащи на бази данни са неоспоримо по-лесни за управление, поддържане и подновяване на съдържание, отколкото HTML сайтовете. Нещо, което всеки ще открие през 2002 година е това, че сайтовете с XML бази данни ще докажат своето превъзходство пред обикновенните сайтове движени от бази данни. XML ще бъде навсякъде.

И като уеб разразботчици обезателно ще го харесате.

XML е обречен да премахне повече главоболия отколкото цяла опаковка Аналгин, да повиши произодителността повече от стек Red Bull и да увеличи печалбата повече отколкото ще искаме нашите клиенти да знаят.

Как? Две думи: Контент мениджмънт (бел. прев. буквално се превежда управление на съдържанието, но както в много случаи английският термин звучи по-добре).

Контент мениджмънт и миграция

Понякога дори още клиентът да пусне в действие даден проект, подготвеният уеб сайт достига етап, в който е или вече остарял, или трябва да бъде пуснат незабавно, или се обърква напълно. Уеб проектите са големи проекти, които трябва да заработят в кратки срокове. Ето защо не е учудващо, че един от най-важните фактори, влияещи върху печалбата и успеха им е способността да се управлява ефективно съдържанието.

Разделяне на оформление, програмиране и съдържание

Възможността да се разположат отделно съдържанието, програмирането и дизайна на един сайт и след това да се смесят незабележимо, при нужда, е изкуството в нашия занаят. Всеки път, когато си спестяваме допълнителната работа и повторението на нещо, кето вече сме свършили, ние слагаме още пари в джобовете си. Същото време можем да използваме, за да добавим нови възможности към сайта, вместо да преработваме, пренаписваме и “Search & Replace”.

Вече разрешихме голяма част от проблемите с базите данни, темплейтите, стиловете и server-side includes. Останалите могат да се решат чрез XML. Той е най-доброто средство за контент мениджмънт - самото съдържание, а не начинът, по който се показва текстът върху екрана. XML се използва, за да структурира, съхранява и изпраща информация във формат независим от платформата, обектно ориентиран и чисто текстов.

Партизански тактики

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

Лесен начин за миграция към XML е в текстов редактор (като MS Word) да се започне нов документ, който после може директно да се конвертира в XML (или през RTF, използвайки допълнителен софтуер). След конверсията в XML, документите могат да бъдат използвани от XML сървър или да се конвертират в HTML чрез друг допълнителен софтуер.

Миграция към XML съдържание: диаграма.

Преди да започне разработката на сайта трябва да се осигури един Microsoft Word темплейт и набор от основни стилове на хората, които създават съдържание. Темплейтът трябва да съдържа стандартните стилови тагове - в зависимост от организацията на бъдещия сайт.

Когато използва темплейта, създателят на съдържание трябва да избягва употребата на възможностите за форматиране на текста в MS Word, които отсъстват в стандартните стилови тагове. Ако тези основни тагове са недостатъчни, трябва да бъдат добавени допълнителни тагове в съответствие със съдържанието, за което ще се използват.

Макар процесът да изглежда труден, с достатъчно практика, вече ще ви отнема значително по-малко време да обновявате съдържанието на сайта, отколкото ако работите без XML. Валидирането (бел. прев. валидирането е процесът за проверка на валидността на един документ. Валиден е документ, който отговаря на определени изисквания и правила. В уеб езиците - HTML, XML, XHTML - тези изисквания и правила се съдържата в Document Type Definition, за които става въпрос по-долу) на XML ви дава дори още повече възможности.

Валидиране

Сайтовете или се развиват, или умират бавно и мъчително в забвение. Трябва да се добавя ново съдържание. Старото съдържание трябва да се маха. Липсващото съдържание трябва да се открие. Клиентите се изнервят, защото не могат да поддържат и управляват съдържанието на сайтовете си. Разработчиците се изнервят заради последствията от всичко това. XML може да помогне.

Документите използващи XML улесняват намирането на остарялото и липсващо съдържание - става само с един поглед. Това се постига чрез използването на XML Document Type Definition (DTD), за да се индентифицират времевите рамки на информацията и за да се определят ценните “части” в съдържанието.

Както и базите данни, XML документите ви позволяват да валидирате информацията преди да я използвате, за да сте сигурни, че съдържанието се появява навреме, уместно е и е цялостно. И понеже говорим за валидация, отнасяща се до базите данни, нека разгледаме по-внимателно таблицата, която създадохме по-горе. В реалността, една база данни трябва да съдържа описания на всяка една колона:

News Table:

Колона

Тип

Необходима ли е?

Забележки

Headline

varchar

Да

Max 50 знака

Author

varchar

Не

 

Category

Varchar

Да

Избира се от drop-down меню

Date

date/time

Да

Дата добавяна към таблицата

Abstract

varchar

Да

Въведение от 250 знака

Body

text

Да

Позволява форамтирането на текста

Status

varchar

Да

предварителен - не се публикува
публичен - разрешава се публикуване
частен - за вътрешно ползване

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

Съответно XML документът с прост, валидиран DTD може да изглежда така:

<?xml version="1.0"?>

<!DOCTYPE News[
<!ELEMENT News(Category ,Headline, Author?, Abstract, Body)>
<!ELEMENT Category(#PCDATA)>
<!ELEMENT Headline(#PCDATA)>
<!ELEMENT Author(#PCDATA)>
<!ELEMENT Abstract(#PCDATA)>
<!ELEMENT Body(#PCDATA)>
]>

<News begins="7/1/02" ends="7/5/02" >
<Category></Category>
<Headline></Headline>
<Author></Author>
<Abstract></Abstract>
<Body>Pending</Body>
</News>

XML документът - в сравнение с базите данни - подпомага в значителна степен публикуването. XML дава възможност данните да бъдат валидирани чрез DTD включен в самия документ (бел. прев. обикновенно DTD са предварително зададени от W3C. В XML всеки може да създава свой DTD според нуждите), чрез XML таговете и атрибутите. Това означава, че нужното ни съдържание може да се извлече директно от XML документа, без да има нужда от междинна база данни, без да има нужда от търсене в базата данни и без да има нужда да бъде отделяна от изходния документ.

Използвайки свои DTD, XML документите внезапно стават независими.

Съдържание и оформление

XML има поддръжници и сред двете страни на спора “съдържание” срещу “оформление”.

XSL (eXtensible Stylesheet Language), стиловете за XML, затапва всички. Той е много по-мощен от Cascading Style Sheets (CSS). Вместо да използва разлчини правила (rules), за да форматира съдържанието, XSL използва (.xsl) темплейти, за да опише трансформацията на един XML документ в други видове документи. Когато създавате един XML сайт, XML не замества HTML. Звучи малко объркващо. ето защо:

Когато имате работа с XSL, не всичко е както изглежда:

  1. .XSL файлът обединява HTML с таговете и логиката на XML, която определят как трябва да бъде показвана инфорацията при нужда.
  2. В необходимия момент, в браузъра се .XML файлът.
  3. В .XSL е заложен начинът, по който се съставя HTML, но това не се вижда по никаквъв начин в кода на .XML документа, показван от браузъра.
  4. Външният вид се постига чрез комбинирането на XML таговете с логиката на .XSL файла.
  5. Понеже .XSL файлът може да трансформира XML, документът който се показва от браузъра може да е само част от целия XML файл.

Показвайки XML в браузъра, части от документа могат да останат скрити или да се показват в зависимост от нуждите ни.

Сега му е времето

Уеб разработчиците казваха на другите, че чакат XML да стане достатъчно достъпен, за да почнат да се занимават с него.

Истаната е, че той е широко достъпен от няколко месеца:

  • Director включва и XML Parser Xtra от Director 7.0, който позволява на Shockwave файловете да четат, обработват и използват съдържанието на XML документи.

  • Flash 5 ActionScript поддържа XML трансфер на данни от и към сървъра.

  • Internet Explorer 5 има XML engine който напълно поддържа XML 1.0 както изискват препоръките на World Wide Web Consortium (W3C) . Това е голямо подобре ни в сравнение с енджина в IE4.

  • Netscape 6.0/Mozilla напълно поддържа XML .

  • IIS съсрвърите предлагат интеграция с XML чрез Microsoft XML Parser. Неговата четвърта версия поддържа XML 1.0.

  • SQL Server 2000 предлага вградена XML поддръжка.

  • XML technology preview на Майкрософт върви с всяка версия на SQL Server. Въпреки че резултатите се различават малко в някои случаи, това е солидна XML среда за хората, които още не използват SQL Server 2000.

  • Версия 2 на Apache Cocoon XML дава широки възможности за XML интеграция.

  • Xepat XML 1.0 parser може да бъде използван съвместно с XML parser function за PHP. Този инструмент ви дава възможнсот да обработвате, но не и да валидирате XML документи.

  • XMLRPC е едно експериментално PHP разширение, което обещава по-добра интеграция между XML и PHP.

Това означава, че нямаме повече извинения да пренебрегваме XML. Днес предимставата на XML са невъобразими. Но за сметка на това са достижими.