XML

Վիքիպեդիայից՝ ազատ հանրագիտարանից
XML նշման լեզուն

Ընդարձակ նշման լեզու (XML), նշման լեզու, որը մի շարք կանոններ է սահմանում՝ փաստաթղթերը մարդու ու համակարգչի համար ընթեռնելի լեզվով կոդավորելու համար։ Այս կանոնները սահմանված են XML 1.0-ում։

XML-ի նախագծման հիմնական նպատականերն են պարզությունը, ընդհանրությունը ու համացանցում օգտագործման հեշտությունը։ XML֊ը տեքստային ինֆորմացիայի ձևաչափ է՝ Յունիկոդի ուժեղ աջակցությամբ։ Չնայած, որ XML-ի դիզայնը հիմնականում կենտրոնանում է փաստաթղթերի վրա, այն շատ է օգտագործվում կամայական տվյալների կառույցների ներայացման համար, օրինակ՝ համացանցում։

Բազմաթիվ ծրագրերի ծրագրավորման ինտերֆեյսը զարգացվել է ստեղծողներին XML տեղեկատվության մշակումն օգնելու համար։ 2009-ից սկսած փաստաթղթերի հարյուրավոր ձևաչափեր են ստեղծվել, ներառած RSS, Atom, SOAP և XHTML։ XML-ի վրա հիմնվածները դարձան հիմնականը բազմաթիվ գրասենյակա-արտադրողականային գործիքների համար, ներառելով Microsoft Officeը (Office Open XML), OpenOffice-ը, ԼիբրեՕֆիսը (OpenDocument) և AppleiWork-ը. XML-ը նաև հիմնական լեզու է կոմունիկացիոն պրոտոկոլների համար, ինչպիսին է, օրինակ, XMPP-ն։

Հրամանները[խմբագրել | խմբագրել կոդը]

Այս պարբերությունում ներկայացված նյութը չի ներկայացնում բոլոր կառույցների ցանկը XML-ում. այն ներկայացնում է միայն հիմնական կառույցները, որոնք շատ են հանդիպում առօրյաում։

Յունիկոդ[խմբագրել | խմբագրել կոդը]

XML փաստաթուղթը, ըստ սահմանման, նշանների շարք է։ Գրեթե բոլոր օրինական Յունիկոդի նշաններ կարող են XML դոկումենտի մեջ հանդիպել։

Պրոցեսոր և ծրագիրր[խմբագրել | խմբագրել կոդը]

Պրոցեսորը վերլուծում է նշումը և տալիս է համակարգված տեղեկատվություն ծրագրին։ Բնորոշիչը պահանջներ է ներկայացնում՝ թե XML պրոցեսորը ինչ պետք է կատարի, և ինչը՝ ոչ, սակայն ծրագրին ոչ մի բան չի կարող անել։

Նշում և բովանդակություն[խմբագրել | խմբագրել կոդը]

Նիշերը, որոնք պարունակում է XML փաստաթուղթը, լինում են նշման և բովանդակային և կարող են տարբերակվել սովորական սինտակտային կանոններով ծրագրով։ Հիմնականում, շարքերը, որոնք ստեղծում են նշումը, սկսվում են < նիշով և վերջանում > նիշով, կամ սկսվում & նիշով և վերջանում ; նիշով։ Նիշերի այն շարքերը, որոնք նշման չեն՝ բովանդակային են։ Չնայած դրան, CDATA բաժնում <![CDATA[ և ]]> բաժանիչները դասակարգվում են նշման դասին, իսկ նրանց միջև գտնվող տեքստը՝ բովանդակային։

Հայտանիշ[խմբագրել | խմբագրել կոդը]

Նշման կառույցները, որոնք սկսվում են < և վերջանում են > կոչվում են հայտանիշեր (անգլ.՝ tag)։ Հայտանիշները լինում են 3 տեսակ՝

  • Սկսման հայտանիշեր։ Օրինակ՝ <section>
  • Վերջացնելու հայտանիշեր։ Օրինակ՝ </section>
  • Դատարկ-տարրային հայտանիշեր։ Օրինակ՝ <line-break />

Տարր[խմբագրել | խմբագրել կոդը]

Տրամաբանական փաստաթղթի մասը, որը կա'մ սկսվում է սկսման հայտանիշով և վերջանում է վերջացնելու հայտանիշով, կա'մ էլ պարունակում է միայն դատարկ-տարրային հայտանիշեր, կոչվում է տարր։ Սկսման և վերջացնելու հայտանիշերի միջև գտնվող նիշերը, եթե առկա են, կոչվում են տարրերի բովանդակություն, և կարող են պարունակել նշում, ներառյալ այլ տարրեր, որոնք կոչվում են երեխա տարրեր։ Տարրի օրինակ է՝ <Greeting>Hello, world.</Greeting>, կամ՝ <line-break />։

Բնորոշիչ[խմբագրել | խմբագրել կոդը]

Նշման կառույցները, որոնք պարունակում են անուն/արժեք զույգ, որը ունի սկսման և դատարկ-տարրային հայտանիշ, կոչվում են բնորոշիչներ։ Ստորև ներկայացված օրինակում img տարրը ունի երկու բնորոշիչ՝ src և alt։

<img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>

Այլ օրինակ, որտեղ բնարոշիչի անունը number է, իսկ արժեքը 3 է։

<step number="3">Connect A to B.</step>

XML-ի բնորոշիչը կարող է ունենալ մեկ արժեք և ամեն բնորոշիչը կրող է հայտնվել ամենաշատը մեկ անգամ ամեն տարրում։ Այն դեպքում, երբ մի քանի արժեք է պետք՝ դա պետք է արվի ցանկը լավ կազմված XML բնորոշչի մեջ կոդավորելով։ XML բնորոշիչը՝ այս դեպքում, պետք է ունենա որոշ ձևաչափ։ Սովորաբար դա կամ։ կամ ; նիշերով սահմանվոց ցանկ է, կամ էլ , եթե անհատական արժեքները չեն պարունակում բացատներ, կարող է օգտագործվել բացատներով սահմանված ցանկ։

<div class="inner greeting-box" >Hello!</div>

Այստեղ class բնորոշիչը ունի երկու արժեք՝ inner greeting-box, որը նշում է inner և greeting-box class-անունները։

XML-ի հայտարարումը[խմբագրել | խմբագրել կոդը]

XML փաստաթղթերը կարող են սկսվել իրենց մասին որոշ տեղեկատվությամբ, ինչպես հետևյալ օրինակում՝

<?xml version="1.0" encoding="UTF-8"?>

Սիմվոլներ ու խուսափումը[խմբագրել | խմբագրել կոդը]

XML փաստաթուղթը բաղկացած է Յունիկոդի սիմվոլների բազմությունից։ Բացի մի քանի հատուկ հանված կառավարող սիմվոլներից, մնացած բոլոր սիմվոլները, որոնք կան Յունիկոդում, կարող են հայտնվել նաև XML փաստաթղում։

Վավերական սիմվոլներ[խմբագրել | խմբագրել կոդը]

Յունիկոդի կոդի միավորները հետևյալ միջակայքերում վավերական են XML 1.0 փաստաթղթի համար։

  • U+0009, U+000A, U+000D
  • U+0020–U+D7FF, U+E000–U+FFFD
  • U+10000–U+10FFFF

XML 1.1-ը ընդլայնում է թույլատրվող սիմվոլների շարքը՝ ներառելով բոլոր վերևինները, ինչպես նաև մնացած սիմվոլները U+0001–U+001F միջակայքում։ Նույն ժամանակ, չնայած դրան, այն սահմանում է C0 և C1 կառավարող սիմվոլների շարքը, թույլ տալով միայն U+0009, U+000A, U+000D, U+0085 և պահանջում է, որպեսզի նրանք գրվեն այլ ձևով(Օրինակ՝ U+0001 պետք է գրվի &#x01)։ U+0000 կոդի միավորը միակն է, որ չի թույլատրվում ո'չ XML 1.0-ում, ո'չ էլ XML 1.1-ում։

Կոդավորման հայտնաբերում[խմբագրել | խմբագրել կոդը]

Յունիկոդի սիմվոլների շարքը կարող է կոդավորվել բայտերի՝ պահպանման համար կամ մի քանի ձևերով փոխանցման համար, որոնք կոչվում են <<կոդավորումներ>>։ Յունիկոդը ինքն իրենով սահմանում է կոդավորումները, որոնք ընդգրկում են ամբողջ շարքը. ամենատարածվածները ընդգրկում են UTF-8 և UTF-16։ Կան շատ ուրիշ տեքստային կոդավորումներ, որոնք նախորդել են Յունիկոդին, ինչպիսին է ASCII և ISO/IEC 8859։ XML թույլ է տալիս Յունիկոդով սահմանված այլ կոդավորումնեի օգտագործումը և այլ կոդավորումները, որոնց սիմվոլները նույնպես հայտնվում են Յունիկոդում։ XML-ը նաև մեխանիզմ է տրամադրում, որի միջոցով XML պրոցեսորը կարող է հուսալիորեն, առանց որևէ նախնական գիտելիքի, որոշել որ կոդավորումն է օգտագործվում։

Խուսափումներ[խմբագրել | խմբագրել կոդը]

XML ընձեռնում է խուսափելու հարմարանքներ՝ ներառելու համար սիմվոլներ, որոնք ուղիղ ներառելուց խնդիրներ են առաջանում։ Օրինակ՝

  • < և & սիմվոլները հիմնական սինտակտային մարկերներն են և երբեք չեն հանդիպում CDATA բաժնից դուրս։
  • Որոշ սիմվոլների կոդավորումներ աջակցում են միայն Յունիկոդի ենթաբազմություն։ Օրինակ՝ XML փաստաթուղթը ASCII-ում կոդավորելը օրինական է, բայց ASCII-ում բացակայում են Յունիկոդի սիմվոլների համար կոդի միավորներ, ինչպիսին է, օրինակ, é-ն։
  • Կարող է անհնար լինել օգտագործել սիմվոլը հեղինակի մեքենայում։
  • Որոշ սիմվոլներ ունեն գլիֆեր, որոնք դժվար է տարվերակել այլ սիմվոլներից։ Օրինակներ են՝
    • Չդադարող բացատ ( ) " " և բացատ ( ) " "
    • Կիրիլյան մեծտառ А (А) "А" և լատինական մեծատառ A (A) "A"

Կա հինգ նախապես սահմանված սուբյեկտներ՝

  • < ներկայացնում է <
  • > ներկայացնում է >
  • & ներկայացնում է &
  • ' ներկայացնում է '
  • " ներկայացնում է "

Բոլոր թույլատրելի Յունիկոդի սիմվոլները կարող են ներկայացվել թվային սիմվոլների տեղեկանքով։ Դիտարկենք չինական 中 սիմվոլը, որի թվային կոդը Յունիկոդում տասնվեցական 4E2D, կամ տասական 20,013։ &#0;-ը չի թույլատրվում, քանի որ զրոն կառավարող սիմվոլներից է, որոնք ներառված չեն XML-ում, նույնիսկ երբ օգտագործվում են` որպես թվային սիմվոլի տեղեկանք։ Ինչ-որ այլ կոդավորման մեխանիզմ է պահանջվում, օրինակ՝ Base64-ը, այսպիսի սիմվոլները ներկայացնելու համար։

Մեկնաբանություններ[խմբագրել | խմբագրել կոդը]

Մեկնաբանությունները կարող են հայտնվել ամեն տեղ փաստաթղթում՝ նշումից դուրս։ Մեկնաբանությունները չեն կարող հայտնվել XML հայտարարւթյունից առաջ։ Մեկնաբանությունները սկսվում են ։ -- շարքը չի թույլատրվում մեկնաբանությունների ներսում։ Ամպերսանդը չունի ինչ-որ հատուկ նշանակություն մեկնաբանությունների համար։ Վավերական մեկնաբանության օրինակ՝

Համաշխարհային օգտագործում[խմբագրել | խմբագրել կոդը]

XML 1.0 (հինգերորդ հրատարակությունը) և XML 1.1 թույլ են տալիս գրեթե բոլոր Յունիկոդի սիմվոլի օգտագործումը տարրերի անուններում, բնորոշիչներում, մեկնաբանություններում և սիմվոլների տվյալներում։ Հետևյալը լավ կազմված XML փաստաթուղթ է, որը ներառում է և՛ չինական և՛ կիրիլյան սիմվոլներ։

<?xml version="1.0" encoding="UTF-8"?>
<俄语>данные</俄语>