XML

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

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

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

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

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

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

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

#### Հայտանիշ
Նշման կառույցները, որոնք սկսվում են  կոչվում են հայտանիշեր ()։ Հայտանիշները լինում են 3 տեսակ՝

* Սկսման հայտանիշեր։ Օրինակ՝ 
* Վերջացնելու հայտանիշեր։ Օրինակ՝  
* Դատարկ-տարրային հայտանիշեր։ Օրինակ՝ 

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

#### Բնորոշիչ
Նշման կառույցները, որոնք պարունակում են անուն/արժեք զույգ, որը ունի սկսման և դատարկ-տարրային հայտանիշ, կոչվում են բնորոշիչներ։ Ստորև ներկայացված օրինակում img տարրը ունի երկու բնորոշիչ՝ src և alt։
:
```xml
<img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>
```

 
Այլ օրինակ, որտեղ բնարոշիչի անունը number է, իսկ արժեքը 3 է։
:
```xml
<step number="3">Connect A to B.</step>
```


XML-ի բնորոշիչը կարող է ունենալ մեկ արժեք և ամեն բնորոշիչը կրող է հայտնվել ամենաշատը մեկ անգամ ամեն տարրում։ Այն դեպքում, երբ մի քանի արժեք է պետք՝ դա պետք է արվի ցանկը լավ կազմված XML բնորոշչի մեջ կոդավորելով։ XML բնորոշիչը՝ այս դեպքում, պետք է ունենա որոշ ձևաչափ։ Սովորաբար դա կամ։ կամ ; նիշերով սահմանվոց ցանկ է, կամ էլ, եթե անհատական արժեքները չեն պարունակում բացատներ, կարող է օգտագործվել բացատներով սահմանված ցանկ։ 
:
```xml
<div class="inner greeting-box" >Hello!</div>
```
 
Այստեղ class բնորոշիչը ունի երկու արժեք՝ inner greeting-box, որը նշում է inner և greeting-box class-անունները։

#### XML-ի  հայտարարումը
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 ընձեռնում է խուսափելու հարմարանքներ՝ ներառելու համար սիմվոլներ, որոնք ուղիղ ներառելուց խնդիրներ են առաջանում։ Օրինակ՝ 
* 
* & ներկայացնում է &
* &apos; ներկայացնում է '
* " ներկայացնում է "

Բոլոր թույլատրելի Յունիկոդի սիմվոլները կարող են ներկայացվել թվային սիմվոլների տեղեկանքով։ Դիտարկենք չինական 中 սիմվոլը, որի թվային կոդը Յունիկոդում տասնվեցական 4E2D, կամ տասական 20,013։