XML
From Wikipedia, the free encyclopedia
је стандардни скуп правила за дефинисање формата података у електронској форми. Прописан је од стране . Следећи правила XML стандарда, корисници дефинишу сопствене (XML) формате података, које могу користити за њихово складиштење, обраду и размену.

је скраћеница за , односно прошириви (мета) језик за означавање (енгл. ) текстуалних докумената. Идеја је била да се створи језик који ће и људи и рачунарски програми моћи једноставно да читају. дефинише општу синтаксу за означавање података помоћу одговарајућих етикета (енгл. ) које имају познато или лако разумљиво значење. Формат који обезбеђује за рачунарске елементе може се прилагодити најразличитијим областима, као што су електронска размена података, чување података, одвајање података од презентације, векторска графика, системи гласовне поште, израда нових специјализованих језика за означавање.
Пошто се сви XML формати података креирају следећи исти скуп правила, могуће је направити универзалне алате за њихову обраду. Тако постоји велики број бесплатних библиотека на различитим језицима на којима се може писати и читати , а могу се употребити и готови софтвери (као што су програми за обраду текста или читачи веба). Неке алатке могу да раде са свим документима, док су друге прилагођене за подршку апликацијама у различитим областима, али се увек користи иста синтакса. Многи формално дефинисани језици за означавање, као што су и сл. базирани су на -у.
омогућава стварање дуготрајних формата података који су независни од платформе. Често се документи писани на једној платформи не могу читати на другим платформама, нити у различитим програмима на истој платформи, чак ни у ранијој верзији једног програма на истој платформи. У документима текстуални су не само подаци већ и етикете које су смештене у самој датотеци. То значи да их може читати свака алатка која је у стању да чита текстуалне датотеке. Тако се подаци могу преносити са једног система на други. Тако даје преносиве податке.
-ова основна сврха је да олакша дељење података кроз различите информационе системе, посебно кроз оне системе који су повезани са Интернетом.
Историја
Шездесетих година 20. века, због проблема са великом количином различите техничке документације, у -у се јавља идеја за стварањем првог шире коришћеног језика за означавање података. Тако настаје , који су изумели Чарлс Голдфарб, Ед Мошер и Реј Лори ().
Пошто се показао као успешан, настављен је развој у том смеру, за шта је заслужно више стотина људи широм света. Језик који је настајао требало је да буде довољно формализован да може да гарантује верност докумената, довољно структуриран да може да оперише и комплексним документима, и довољно отворен да може подржати руковање великим количинама података. Овај језик назван је , који је 1986. прихватио као стандард 8879.
Тим Бернерс Ли () изабрао је мали скуп етикета из -а и применио их на форматирање докумената. Тако настаје , који је примењени . је имао коначан скуп етикета које су описивале основне делове докумената. Али, пошто је намењен за израду веб страница, није подесан за употребу изван ове области. Због тога је употребљаван за друге апликације које користи интернет, а нису просте веб странице.
Главни недостатак -а била је изузетна компликованост; био је опширан, сложен за коришћење и скуп у употреби. Зато није био много раширен, и корисници -а биле су углавном велике компаније, научне институције и државне службе. Због тога су 1996. године Џон Бозак, Тим Бреј, Сперберг-Меквин, Џејмс Кларк () и други почели рад на упрошћеној верзији -а, која је изоставила његове сувишне, збуњујуће и некорисне елементе, али задржала велики део његове функционалности. На почетку свог рада, одредили су десет циљева којих су се придржавали у току развоја -а:
- мора бити директно применљив преко интернета;
- мора подржавати широк спектар примена;
- мора бити компатибилан са -ом;
- мора лако писати програме који процесирају документе;
- број опционих могућности (енгл. ) у -у мора бити апсолутно минималан, а у идеалном случају једнак нули;
- документи морају бити читљиви људима и у разумној мери једноставни;
- стандард мора бити спецификован што пре;
- дизајн -а мора бити формалан и прецизан;
- креирање документа мора бити једноставно;
- сажетост код означавања документа -ом је од минималног значаја.
Тако је настао 1.0, који је објавио 10. фебруара 1998. године.
Поред назива разматрана су и друга имена: и .
1.0 заснован је на стандарду 2.0. Међутим, пошто је наставио да се развија и обухвата нова писма (монголско, камбоџанско, бурманско, амхарско...), је почео да заостаје. Зато је 4. фебруара 2004. године објављен 1.1, који дозвољава и употребу знакова из ових писама.
Предности
је једноставно читљив и човеку и рачунару.
Пошто је документ обично текстуална датотека, читљива је на свакој платформи која може читати текстуалне податке. Тако постаје неосетљив на технолошке промене – без обзира на напредак технологије, текстуалне податке ће још дуго сваки рачунар моћи да прочита. етикете подржава Уникод и омогућава приказ текста на свим познатим језицима.
Такође, овај формат је самодокументујући: етикете описују садржај који се налази унутар њих.
Исправност насталог документа врло је једноставно контролисати, јер има строга синтаксичка правила. Рачунарски програми за обраду докумената могу једноставно да обрађују садржај.
је међународно прихваћен стандард. Прихватили су га многи произвођачи програма и користе га у својим производима. Компатибилан је са -ом, који се користи од 1986. године, а може обрађивати велики број рачунарских програма. може да представља најуопштенију структуру рачунарске науке: снимке, листе и стабла, а његова хијерархијска структура је прикладна за већину (али не и за све) типове докумената. Може се рећи да је за најважније то што представља језик за метаозначавање, што подразумева да он нема фиксан скуп ознака и елемената. У имену -а слово потиче од речи (проширив). То значи да се језик може прилагођавати и проширивати како би задовољио различите потребе корисника.
Недостаци
Један од основних недостатака -а је редундантна и опширна синтакса. Она може збуњивати човека, а рачунарски програм који обрађује документ може делимично успорити. Ови рачунарски програми су веома сложени јер морају да обрађују велике количине угнежђених података на више нивоа.
Треба имати у виду да је само језик за означавање, а не програмски језик. документ само постоји, не радећи ништа.
Као ни , ни не шаље податке преко мреже. Послани подаци могу бити кодирани у -у, али изван документа мора постојати неки протокол ( и слично) који ће послати документ. То значи да није протокол за мрежни пренос.
Иако веома добро служи као преносни формат, који је независан од платформе, он није база података. Сама база података, иако може садржати податке, није документ. Да би корисник преузео документ из базе података, мора употребити неки посреднички програм (енг. ), као што је .
Синтакса
У документима подаци су смештени у облику знаковних низова (енг. ), који се налазе између текстуалних етикета које их описују. У -у се основне јединице етикета и података називају елементи.
Корисник се при писању етикета мора придржавати прецизно дефинисане синтаксе. Структуру документа описују његове етикете, помоћу којих се може видети који су елементи придружени другим елементима. Ако је документ добро пројектован, етикете описују и његову семантику (нпр. етикете указују да ли је елемент наслов, име особе, датум и сл.). Али, етикете у добро пројектованим апликацијама не говоре ништа о начину приказивања документа (нпр. да ли је елемент исписан полуцрно или курзивом и сл.) јер језик не означава начин приказивања, већ структуру и семантику.
Базична синтакса за један документ у -у је:
<osoba>Miloš Crnjanski</osoba>
Декларација
Сваки документ би требало да отпочиње декларацијом -а, али то није обавеза. Декларација садржи псеудоатрибуте и . На пример:
<?xml version=”1.0” encoding=”UTF-8” standalone=”yes”?>
Ако документ поседује декларацију -а, она мора бити но почетку документа, а пре ње не сме бити коментара, белина и сл. То је зато што анализатор на основу првих пет знакова () препознаје начин кодирања знакова у документу; испред декларације -а може се наћи једино невидљива ознака редоследа бајтова.
Атрибут углавном има вредност 1.0, јер задавање верзије 1.1 ограничава документ на мали број најновијих верзија анализатора, док сви анализатори за 1.1 подржавају и 1.0. Пошто неки системи не пружају податке о скупу знакова, допушта документима да сами назначе свој скуп знакова користећи декларацију кодирања (енг. ). Она се налази унутар декларације -а.
Атрибут је опциони. Ако је изостављен, анализатор претпоставља да је употребљен скуп знакова. Атрибут (самосталан) је такође необавезан. Може имати вредности и . Уколико је изостављен, претпоставка је да има вредност . У том случају апликација може учитати спољни (који је смештен у спољну датотеку), како би утврдила праве вредности неких делова докумената. Документ који нема као вредност атрибута standalone може имати вредност yes; ову вредност може имати и документ који има , ако тај не мења садржај документа или је потпуно интерни.
Елементи, ознаке и знаковни подаци
елементи описују одређени део документа. Један елемент је разграничен почетном ознаком (енг. ) и завршном ознаком (енг. ). Почетна ознака састоји се од имена елемента окруженог угластим заградама (). Завршна ознака састоји се од истог имена окруженог угластим заградама, али и од цртица које претходи имену елемента (). Све што се појављује између почетне и завршне ознаке представља садржај (енг. ) елемента. Садржај документа у првом примеру представља текст: . Иако су размаци део садржаја, многе апликације их занемарују. Етикете и чине маркирање (енг. ) документа, док знаковни низ „Милош Црњански“, заједно са размацима који га окружују, представља знаковне податке (енг. ).
Празни елементи
обезбеђује посебну синтаксу за представљање елемената празног садржаја. Он може бити представљен једном ознаком празног елемента (енг. ). Ова ознака почиње знаком <, а завршава се знаковима /> . Следећа три примера за означавање, нпр, прекида реда ( енг. ) у -у ( који је -изована варијанта -а) еквивалентна су:
<br></br> <br/>
Коренски елемент
Сваки документ мора имати тачно један коренски елемент (енг. ) који уоквирује комплетан садржај документа. У документу, он је први елемент и у себи садржи све друге елементе. Понекад се коренски елемент назива и елемент (целог) документа (енг. ).
Стабла
Следећи пример илуструје нешто сложенији документ:
<osoba>
<ime_i_prezime>
<ime>Miloš</ime>
<prezime>Crnjanski</prezime>
</ime_i_prezime>
<zanimanje>književnik</zanimanje>
<zanimanje>diplomata</zanimanje>
</osoba>
Овај документ још увек садржи само један елемент – особа. Али, овај елемент има три елемента-потомка (енг. ): један елемент и два елемента
. Елемент
има два елемента-потомка – елемент
и елемент
. Елемент
је родитељски елемент елемената
и елемената
, док је елемент
родитељ елементима
и
. Може се рећи да су елементи
и елементи
братски елементи, браћа (енг. ), а међусобно братски су и елементи
и
. Каже се да су елементи
и елементи
угнежђени унутар елемента
.
захтева да елементи буду прописно груписани: сваки елемент се налази унутар другог елемента, а и почетна и завршна ознака елемента морају бити унутар једног истог елемента. забрањује ознаке које се преклапају, односно елементи морају бити правилно угнежђени. Овај пример документа је неправилан:
<osoba>
<ime_i_prezime>
<ime>Miloš<prezime>Crnjanski</ime></prezime>
</osoba>
Атрибути
атрибути дају податке који додатно описују елементе документа. Атрибути имају свој назив и вредност. Име атрибута је раздвојено од вредности знаком једнакости и размаком, који је необавезан. Вредност атрибута мора бити затворена у наводнике или полунаводнике. На пример:
<osoba rođena=“1893” umrla=”1977”>
Miloš Crnjanski
</osoba>
Постоје две опречне струје мишљења у вези са коришћењем атрибута у оквиру документа. По једној, атрибути се не би смели користити за обогаћивање смисла садржаја; дозвољени су само они атрибути који не додају ништа у основну информацију (као на пример атрибути који описују врсту и величину фонта). Према другом схватању, атрибути се могу слободно користити јер се тиме смањује број елемената.
Референце
Унутар елемента документа не сме се наћи знак < који нема одговарајућу излазну (енг. ) секвенцу </, јер се знак < увек тумачи као почетак етикете. Овај знак се, уколико кориснику затреба у тексту, може претворити у излазну секвенцу помоћу референце ентитета (енг. ) , нумеричке референце знака (енг. ) , или хексадецималне референце знака (енг. ) . Референце ентитета и нумеричке референце знака спадају у маркирања; при анализирању документа, маркирања се замењују оним знаком на који упућује референца.
поседује пет унапред дефинисаних ентитета. То су:
&
(&, амперсенд);<
(<, знак „мање од“);>
(>, знак „веће од“);"
(", обичан (раван) наводник);'
(раван полунаводник, апостроф).
У садржају елемената се само &
и <
морају употребљавати уместо & и <, док су остале референце опционе.
Нумеричке референце знака личе на референце ентитета, али уместо имена садрже карактер # и одговарајући број. На пример, пошто је знак „мање од“ у систему дефинисан као код 60, нумеричка референца знака била би , док би у хексадецималној нумеричкој референци знака била (где је „“ префикс који указује на хексадецимални систем).
Ове референце могу се користити само у садржају елемената и вредностима атрибута, док су у именима елемената, именима атрибута, као и у другим врстама маркирања недопустиве.
Правилност документа
За сваки документ који је креиран у складу са синтаксичким правилима може се рећи да је добро обликован (енг. ). Све документе који нису у складу са овим правилима, програми за обраду -а (енг. ) одбијају.
Добро обликован документ мора да задовољава одређена правила. На пример:
- за сваки документ мора постојати тачно један коренски елемент;
- сваки елемент који није празан мора имати почетну етикету и одговарајућу завршну етикету;
- празан елемент може бити означен ознаком празног елемента (као што је , што је еквивалентно );
- све вредности атрибута морају бити затворене у наводнике или полунаводнике;
- елементи могу бити угнежђени, али се не смеју преклапати, а сваки елемент, осим коренског, мора се у потпуности садржати у другом елементу;
- један елемент не сме имати два истоимена атрибута;
- унутар ознака не смеју се користити коментари ни инструкције за обраду;
- знакови < или који нису претворени у излазну секвенцу не смеју се наћи у знаковним подацима елемената и атрибута;
- називи елемената могу садржати слова, бројеве и посебне знакове, морају почињати словом, али не смеју почињати текстом ни , а не смеју садржати ни празнине;
- такође, имена елемената су осетљива на разлику између малих и великих слова (енг. ). Тако елементи , и за нису исти.
документ који је формално исправан, тј. добро обликован, а притом и задовољава одређену шему, може се рећи да је валидан (енг. ). Документи који шему не задовољавају су невалидни (енг. ). То значи да валидност документа зависи од шеме са којом се пореди.
Ознаке које су допуштене у некој од примена -a могу бити документоване у шеми (енг. ). Дефиниција типа документа (енгл. , DTD) је најраширенији језик за шеме. Он је уједно и једини дефинисан у самој спецификацији -а. одређује где се и како у документу могу појавити све етикете које су дозвољене. За -ови су опциони, а не обавезни, али нису увек довољни. Осим -а постоје и други језици за описивање шема, као што су итд.
Приказивање на вебу
документи не садрже информације о томе како одређене податке треба приказивати, јер је језик за опис података. Без коришћења или ) атрибута документ је на интернету приказан као обичан текст. Неки интернет претраживачи приказују документ као стабло, при чему делови структуре могу бити приказани или сакривени кликом миша.
подаци могу се приказати помоћу -а. и користе знакове „< >“ за креирање елемената и атрибута структуре.
У документу се назив датотеке која га форматира наводи на одређени начин. Повезивање се врши унутар документа. На пример:
<?xml version=”1.0” encoding=”UTF-8”?>
<?xml-stylesheet type=”text/css” href=”osoba.css”?>
<osoba>
…
</osoba>
И назив датотеке која форматира документ наводи се на одређени начин.
<?xml version=”1.0” encoding=”UTF-8”?>
<?xml-stylesheet type=”text/xsl” href=”osoba.xslt”?>
<osoba>
…
</osoba>
Да би се одредила клијентска страна трансформације, -у је потребна следећа инструкција за обраду:
<?xml-stylesheet type=”text/xsl” href=”myTransform.xslt”?>
подржава већина интернет претраживача, али га не подржава претраживач , пре верзије 9.0. Алтернатива томе је да се употреби за конвертовање -а у формат који је могуће приказати „на серверу“, уместо да зависи од могућности претраживача крајњег корисника. Крајњи корисник нема представу о томе шта се дешавало „иза сцене“ и види се само добро форматиран документ.
Проширења
- је језик који омогућава једноставније претраживање садржаја у документу.
- је упитни језик за претраживање документа. Он је за оно што је и за односне базе података: начин да се приступи, манипулише и врати -у.
- омогућава да неки документи који садрже елементе и атрибуте буду узети из различитих речника без именовања, чиме се елиминише конфузија приликом комбиновања више шема у једном документу.
- дефинише синтаксу и правила за креирање дигиталног потписа на садржају.
- дефинише синтаксу и правила за шифровање садржаја.
- је језик који описује начин на који хиперлинкови упућују на одређено место у документу.
Обрада докумената
) и ) су објектно оријентисани за програмирање ја (), широко употребљеног за процесирање података. Први рашчлањивач излаже садржај документа у апликацијама као што су догађаји или објекти.
чини систем, заснован на догађајима, за анализу података. Процес се састоји од читања документа од почетка и издвајања података у корисне делове, на сваком кораку процеса дефинише догађаје који могу наступити.
је за . Док нуди приступ подацима унутар документа, је осмишљен да пружи значење руковању тим подацима. приказује стабло документа. Пошто је стабло познат структурни приказ података, лако је извести пролазак и обраду кроз структуру стабла у разним програмским језицима, па и у Јава програмском језику.
Форма приступа која је доживела велику популарност у скорије време је која третира документ као серију предмета очитаваних у секвенцама. На пример у Јава програмском језику, може бити употребљен за прављење онога што је основно, што секвенцијално посећује атрибуте и податке у документу. Код који користи овај „итератор“ може обрађивати постојећу ствар, нпр. да каже шта је почетак или крај елемента или текста, или да провери његове атрибуте, име, локално име, размак између имена, вредности атрибута, текста итд., као и да захтева да се „итератор“ помери на следећу ствар. Код може на тај начин да извуче информације из документа и да их прелази. Значајна предност методе је боља ефикасност од и стила рашчлањивања -а и рекурзивно-опадајући приступ са тенденцијом да на једноставан начин сачува податке.
Стандард је апликација за примену стилова за штампање или приказивање докумената на вебу. Он је подељен на и .
- је језик за описивање структуре страница које су излазни резултат документа, одштампане или приказане на вебу.
- омогућава претварање једног документа у други.
- је језик за испитивање, конструисање и трансформисање докумената.
- и се користе у -у.
Основни формат докумената у и је . Неки делови 1.1 су, такође, способни да уређују документе.
Верзије
Тренутно постоје две верзије -а. Прва, 1.0, иницијално је дефинисана 1998. године. Од тада је претрпела мање преправке, али без новог броја верзија. Тренутно је у свом четвртом издању, које је објављено 16. августа 2006. Широко је прихваћена и још увек се препоручује за општу употребу. Друга верзија, 1.1, објављена је 4. фебруара 2004. Трећа верзија, која је у свом другом издању, објављена 16. августа 2006, а садржи карактеристике којима је намеравано да се направи једноставнијим за употребу. 1.1 није у широкој употреби и препоручује се за употребу онима којима су потребна његова посебна својства.
1.0 и 1.1 се разликују по карактерима који су употребљени за имена и њихове елементе и атрибуте. 1.0 једино дозвољава карактере који су дефинисани у Уникод 2.0, што укључује већину светских језика, а искључује оне који су додати у касније Уникод верзије. Међу искљученима су писма Монголије, Камбоџе, Бурме и друга.
Скоро било који Уникод карактер може бити употребљен у вредности карактера и атрибута 1.1 докумената, чак и ако карактер није дефинисан, без обзира да ли има кодну тачку у важећој вредности Уникода. Приступ -а 1.1 је такав да су само одређени карактери забрањени, а да је све друго дозвољено, а у 1.0 само одређени карактери су експлицитно дозвољени, тако да се 1.0 не може прилагодити додавању карактера у будућим верзијама Уникода.
У знаковним подацима и вредностима атрибута 1.1 дозвољава употребу више контролних знакова од других верзија. Због робусности већине контролних карактера који се налазе у -у 1.1 они морају бити изражени као нумеричке знаковне референце. Међу подржаним контролним карактерима у -у 1.1 су и две испрекидане линије које представљају празан простор између карактера. То су једини контролни карактери који могу бити уписани директно.
Има говора о -у 2.0, али остаје да се види да ли ће доћи до његовог настанка. је прописан од стране научника који су развијали XML и садржи предлоге како би 2.0 могао да изгледа: као елиминација -а из синтаксе, интеграција , базе и информационог сета у основни стандард.
Референце
Литература
Спољашње везе
Wikiwand - on
Seamless Wikipedia browsing. On steroids.