__БЕЗКН__

мини|XML -{XML}- је стандардни скуп правила за дефинисање формата података у електронској форми. Прописан је од стране -{W3C}-. Следећи правила XML стандарда, корисници дефинишу сопствене (XML) формате података, које могу користити за њихово складиштење, обраду и размену.

-{XML}- је скраћеница за -{Extensible Markup Language}-, односно прошириви (мета) језик за означавање () текстуалних докумената. Идеја је била да се створи језик који ће и људи и рачунарски програми моћи једноставно да читају. -{XML}- дефинише општу синтаксу за означавање података помоћу одговарајућих етикета () које имају познато или лако разумљиво значење. Формат који обезбеђује -{XML}- за рачунарске елементе може се прилагодити најразличитијим областима, као што су електронска размена података, чување података, одвајање података од презентације, векторска графика, системи гласовне поште, израда нових специјализованих језика за означавање.

Пошто се сви XML формати података креирају следећи исти скуп правила, могуће је направити универзалне алате за њихову обраду. Тако постоји велики број бесплатних библиотека на различитим језицима на којима се може писати и читати -{XML}-, а могу се употребити и готови софтвери (као што су програми за обраду текста или читачи веба). Неке алатке могу да раде са свим -{XML}- документима, док су друге прилагођене за подршку -{XML}- апликацијама у различитим областима, али се увек користи иста синтакса. Многи формално дефинисани језици за означавање, као што су -{RSS, MathML, GraphML, XHTML, Scalable Vector Graphics, MusicXML}- и сл. базирани су на -{XML}--у.

-{XML}-омогућава стварање дуготрајних формата података који су независни од платформе. Често се документи писани на једној платформи не могу читати на другим платформама, нити у различитим програмима на истој платформи, чак ни у ранијој верзији једног програма на истој платформи. У -{XML}- документима текстуални су не само подаци већ и етикете које су смештене у самој -{XML}- датотеци. То значи да их може читати свака алатка која је у стању да чита текстуалне датотеке. Тако се подаци могу преносити са једног система на други. Тако -{XML}- даје преносиве податке.

-{XML}--ова основна сврха је да олакша дељење података кроз различите информационе системе, посебно кроз оне системе који су повезани са Интернетом.

Историја Шездесетих година 20. века, због проблема са великом количином различите техничке документације, у -{IBM}--у се јавља идеја за стварањем првог шире коришћеног језика за означавање података. Тако настаје -{GML (Generalized Markup Language)}-, који су изумели Чарлс Голдфарб, Ед Мошер и Реј Лори (-{Charles Goldfarb, Ed Mosher, Ray Lorie}-).

Пошто се -{GML}- показао као успешан, настављен је развој у том смеру, за шта је заслужно више стотина људи широм света. Језик који је настајао требало је да буде довољно формализован да може да гарантује верност докумената, довољно структуриран да може да оперише и комплексним документима, и довољно отворен да може подржати руковање великим количинама података. Овај језик назван је -{SGML (Standard Generalize Markup Language)}-, који је 1986. -{ISO}- прихватио као стандард 8879.

Тим Бернерс Ли (-{Tim Berneres Lee}-) изабрао је мали скуп етикета из -{SGML}--а и применио их на форматирање докумената. Тако настаје -{HTML (HyperText Markup Language)}-, који је примењени -{SGML}-. -{HTML}- је имао коначан скуп етикета које су описивале основне делове докумената. Али, пошто је намењен за израду веб страница, није подесан за употребу изван ове области. Због тога је -{SGML}- употребљаван за друге апликације које користи интернет, а нису просте веб странице.

Главни недостатак -{SGML}--а била је изузетна компликованост; био је опширан, сложен за коришћење и скуп у употреби. Зато није био много раширен, и корисници -{SGML}--а биле су углавном велике компаније, научне институције и државне службе. Због тога су 1996. године Џон Бозак, Тим Бреј, Сперберг-Меквин, Џејмс Кларк (-{Jon Bosak, Tim Bray, C. M. Sperberg-McQueen, James Clark}-) и други почели рад на упрошћеној верзији -{SGML}--а, која је изоставила његове сувишне, збуњујуће и некорисне елементе, али задржала велики део његове функционалности. На почетку свог рада, одредили су десет циљева којих су се придржавали у току развоја -{XML}--а: -{XML}- мора бити директно применљив преко интернета; -{XML}- мора подржавати широк спектар примена; -{XML}- мора бити компатибилан са -{SGML}--ом; -{XML}- мора лако писати програме који процесирају -{XML}- документе; број опционих могућности () у -{XML}--у мора бити апсолутно минималан, а у идеалном случају једнак нули; -{XML}- документи морају бити читљиви људима и у разумној мери једноставни; стандард мора бити спецификован што пре; дизајн -{XML}--а мора бити формалан и прецизан; креирање -{XML}- документа мора бити једноставно; сажетост код означавања документа -{XML}--ом је од минималног значаја.

Тако је настао -{XML}- 1.0, који је -{World Wide Web Consortium}- објавио 10. фебруара 1998. године.

Поред назива -{XML}- разматрана су и друга имена: -{MAGMA (Minimal Architecture for Generalized Markup Applications), SLIM (Structured Language for Internet Markup)}- и -{MGML ( Minimal Generalized Markup Language)}-.

-{XML}- 1.0 заснован је на стандарду -{Unicode}- 2.0. Међутим, пошто је -{Unicode}- наставио да се развија и обухвата нова писма (монголско, камбоџанско, бурманско, амхарско...), -{XML}- је почео да заостаје. Зато је 4. фебруара 2004. године објављен -{XML}- 1.1, који дозвољава и употребу знакова из ових писама.

Предности -{XML}- је једноставно читљив и човеку и рачунару.

Пошто је -{XML}- документ обично текстуална датотека, читљива је на свакој платформи која може читати текстуалне податке. Тако постаје неосетљив на технолошке промене – без обзира на напредак технологије, текстуалне податке ће још дуго сваки рачунар моћи да прочита. етикете -{XML}- подржава Уникод и омогућава приказ текста на свим познатим језицима.

Такође, овај формат је самодокументујући: етикете описују садржај који се налази унутар њих.

Исправност насталог -{XML}- документа врло је једноставно контролисати, јер -{XML}- има строга синтаксичка правила. Рачунарски програми за обраду докумената могу једноставно да обрађују -{XML}- садржај.

-{XML}- је међународно прихваћен стандард. Прихватили су га многи произвођачи програма и користе га у својим производима. Компатибилан је са -{SGML}--ом, који се користи од 1986. године, а -{SGML}- може обрађивати велики број рачунарских програма. -{XML}- може да представља најуопштенију структуру рачунарске науке: снимке, листе и стабла, а његова хијерархијска структура је прикладна за већину (али не и за све) типове докумената. Може се рећи да је за -{XML}- најважније то што представља језик за метаозначавање, што подразумева да он нема фиксан скуп ознака и елемената. У имену -{XML}--а слово -{X}- потиче од речи -{Extensible}- (проширив). То значи да се језик може прилагођавати и проширивати како би задовољио различите потребе корисника.

Недостаци Један од основних недостатака -{XML}--а је редундантна и опширна синтакса. Она може збуњивати човека, а рачунарски програм који обрађује документ може делимично успорити. Ови рачунарски програми су веома сложени јер морају да обрађују велике количине угнежђених података на више нивоа.

Треба имати у виду да је -{XML}-само језик за означавање, а не програмски језик. -{XML}- документ само постоји, не радећи ништа.

Као ни -{HTML}-, ни -{XML}- не шаље податке преко мреже. Послани подаци могу бити кодирани у -{XML}--у, али изван -{XML}- документа мора постојати неки протокол (-{HTTP, FTP, NFS}- и слично) који ће послати документ. То значи да -{XML}- није протокол за мрежни пренос.

Иако -{XML}- веома добро служи као преносни формат, који је независан од платформе, он није база података. Сама база података, иако може садржати -{XML}- податке, није -{XML}- документ. Да би корисник преузео -{XML}- документ из базе података, мора употребити неки посреднички програм (енг. -{middleware product}-), као што је -{Enhydra}-.

Синтакса У -{XML}- документима подаци су смештени у облику знаковних низова (енг. -{strings}-), који се налазе између текстуалних етикета које их описују. У -{XML}--у се основне јединице етикета и података називају елементи.

Корисник се при писању етикета мора придржавати прецизно дефинисане синтаксе. Структуру -{XML}- документа описују његове етикете, помоћу којих се може видети који су елементи придружени другим елементима. Ако је -{XML}- документ добро пројектован, етикете описују и његову семантику (нпр. етикете указују да ли је елемент наслов, име особе, датум и сл.). Али, етикете у добро пројектованим -{XML}- апликацијама не говоре ништа о начину приказивања документа (нпр. да ли је елемент исписан полуцрно или курзивом и сл.) јер -{XML}- језик не означава начин приказивања, већ структуру и семантику.

Базична синтакса за један документ у -{XML}--у је: <osoba>Miloš Crnjanski</osoba>

Декларација Сваки -{XML}- документ би требало да отпочиње декларацијом -{XML}--а, али то није обавеза. Декларација садржи псеудоатрибуте -{version, standalone}- и -{encoding}-. На пример:

<?xml version=”1.0” encoding=”UTF-8” standalone=”yes”?>

Ако -{XML}- документ поседује декларацију -{XML}--а, она мора бити но почетку документа, а пре ње не сме бити коментара, белина и сл. То је зато што -{XML}- анализатор на основу првих пет знакова (-{<?xml}-) препознаје начин кодирања знакова у документу; испред декларације -{XML}--а може се наћи једино невидљива -{Unicode}- ознака редоследа бајтова.

Атрибут -{version}- углавном има вредност 1.0, јер задавање верзије 1.1 ограничава документ на мали број најновијих верзија анализатора, док сви анализатори за -{XML}-1.1 подржавају и -{XML}- 1.0. Пошто неки системи не пружају податке о скупу знакова, -{XML}- допушта документима да сами назначе свој скуп знакова користећи декларацију кодирања (енг. -{encoding declaration}-). Она се налази унутар декларације -{XML}--а.

Атрибут -{encoding}- је опциони. Ако је изостављен, анализатор претпоставља да је употребљен -{Unicode}- скуп знакова. Атрибут -{standalone}- (самосталан) је такође необавезан. Може имати вредности -{yes}- и -{no}-. Уколико је изостављен, претпоставка је да има вредност -{no}-. У том случају апликација може учитати спољни -{DTD}- (који је смештен у спољну датотеку), како би утврдила праве вредности неких делова докумената. Документ који нема -{DTD}- као вредност атрибута standalone може имати вредност yes; ову вредност може имати и документ који има -{DTD}-, ако тај -{DTD}- не мења садржај документа или је потпуно интерни.

Елементи, ознаке и знаковни подаци -{XML}- елементи описују одређени део -{XML}- документа. Један елемент је разграничен почетном ознаком (енг. -{start-tag}-) и завршном ознаком (енг. -{end-tag}-). Почетна ознака састоји се од имена елемента окруженог угластим заградама (-{}-). Завршна ознака састоји се од истог имена окруженог угластим заградама, али и од цртица које претходи имену елемента (-{}-). Све што се појављује између почетне и завршне ознаке представља садржај (енг. -{content}-) елемента. Садржај документа у првом примеру представља текст: -{Miloš Crnjanski}-. Иако су размаци део садржаја, многе апликације их занемарују. Етикете -{}- и -{}- чине маркирање (енг. -{markup}-) документа, док знаковни низ „Милош Црњански“, заједно са размацима који га окружују, представља знаковне податке (енг. -{character data}-).

Празни елементи -{XML}- обезбеђује посебну синтаксу за представљање елемената празног садржаја. Он може бити представљен једном ознаком празног елемента (енг. -{empty-element tag}-). Ова ознака почиње знаком <, а завршава се знаковима /> . Следећа три примера за означавање, нпр, прекида реда ( енг. -{line break}-) у -{XHTML}--у ( који је -{XML}--изована варијанта -{HTML}--а) еквивалентна су: <br></br>

<br/>

Коренски елемент