XML-fail: mis see on ja kuidas seda avada? Miks me vajame XML-i? Milleks Xml-i kasutatakse?

Üsna sageli puutuvad paljud kaasaegsete arvutisüsteemide ja erinevat tüüpi tarkvaratoodete kasutajad kokku .xml-laiendiga failidega. Paljud inimesed lihtsalt ei tea, mis tüüpi dokument see on või kuidas seda avada. Nüüd hakatakse seda kaaluma. Samal ajal saame teada, mis see on ja milleks seda vaja on.

Mis on XML-fail

Alustame ehk sellest, et tänapäevaste arvutitehnoloogiate ja seda tüüpi dokumentide loomiseks kasutatavate programmide seisukohalt on tegemist tekstifailiga, kuhu on kirjutatud universaalse laiendatava märgistuskeele käsud, mis on üsna meenutab tuntud märgistustööriista HTML.

Tavaliselt sisaldab XML-fail üldist teavet objekti kohta, mida väljendatakse kirjeldavalt (sellest lähemalt hiljem). Mis puutub sellistesse konteineritesse salvestatud andmetesse, siis need võivad olla andmebaasid, mida sageli kasutatakse Internetis video- ja helikataloogide jaoks, salvestatud kasutajaeelistused programmide ja rakenduste jaoks, aga ka terved veebilehed.

Näiteks võite võtta näiteks mõne artisti helialbumi. XML-fail sisaldab teavet väljalaskeaasta, žanri, lugude arvu ja nimede, populaarsuse jms kohta. Veebi ressursse külastades ei pea aga surfar mõtlema sellise teabefaili füüsilisele avamisele, kuna isegi siis, kui esitate lugu võrgus pleieris. Kõik andmed kuvatakse sarnaselt tavalistes MP3-failides sisalduvatele ID3-siltide kujul. Teave laaditakse esitatavale loole.

XML-faili tüüp

Kui vaatate faili, märkate kohe, et selles kirjeldatakse mis tahes objekti omadusi käsitsi seadistatavate siltide ja atribuutide abil.

Me ei räägi keele enda põhikäskudest, kuna tavakasutaja sellist teavet ei vaja. Ainus, mida saab märkida, on see, et selles vormingus objekti kirjeldamiseks ei kasutata konkreetset elementide arvu: kui palju neid vaja on, on määratud.

Kuidas avada standardset XML-vormingut

Nüüd vaatame, kuidas XML-faili avada. Nagu paljud on ilmselt juba aru saanud, on tegemist tekstifailiga, mis tähendab, et kõige lihtsam on selle vaatamiseks või redigeerimiseks kasutada mis tahes, ka kõige primitiivsemat redaktorit. Jah, vähemalt sama “Notepad” Windowsi standardkomplektist.

Siin pole aga kõik nii lihtne. Fakt on see, et faili topeltklõpsamine ilma ühegi programmiga sobivat seost määramata ei avane. Parimal juhul pakub süsteem kõige sobivamate rakenduste loendit. Saate valida oma valitud programmi ja samal ajal märkida kõigi seda tüüpi failide jaoks valitud rakenduse pideva kasutamise valiku kõrval oleva ruudu.

Seda saab teha teisiti, kui teete failil paremklõpsu ja valite seejärel käsu "Ava koos...", misjärel valige uuesti soovitud rakendus kas loendist või määrake peamise käivitatava komponendi asukoht (enamik sageli on see EXE-fail).

Kolmas viis XML-faili avamiseks on algselt programm käivitada ja seejärel kasutada faili avamise menüüd (enamasti on selleks Ctrl + O). Sel juhul pole Notepadi kasutamine absoluutselt vajalik. Palun, fail avaneb ilma probleemideta samas Wordi rakenduses ja sarnastes rakendustes. Isegi Microsoft Excel suudab selles vormingus andmeid avada.

Kui aga on vaja redigeerida XML-vormingut, on parem kasutada professionaalseid keele süntaksit toetavaid utiliite, näiteks Oxygen XML Editor, XML Marker või EditiX Lite Version. Loomulikult pole need kõik utiliidid, mis suudavad failikeelega kõige kõrgemal tasemel töötada. Täna leiate selliseid programme palju.

Nüüd paar sõna selle kohta, miks mõnikord ilmub avamisel XML-faili tõrge. Enamasti on see tingitud faili enda terviklikkuse rikkumisest, samuti kirjeldavate atribuutide või siltide ebaõigest sisestamisest. Lisaks on Excelil kuvatavate ridade piirang, nii et sel juhul ei pruugi andmed avamisel täielikud olla.

Võimalikud vead XML-faili avamisel meilimanuksena

Mõnikord võivad meilimanuses oleva faili avamisel ilmneda vead. Enamasti kehtib see tavaliste meiliklientide (nt Outlook Express) kohta.

Fakt on see, et esmalt salvestatakse manus ajutiste andmetena (väga sageli lisatakse põhilaiendile täiendav .tmp) ja sellele pääseb juurde.

Selle olukorra vältimiseks peate lihtsalt algselt salvestama manuse algses vormingus mis tahes sobivasse kohta kettale või irdkandjale ja seejärel kasutama ülalkirjeldatud standardmeetodeid.

Kogusumma asemel

Nagu näete, pole selle vormingu failide ülesehituse ja avamise meetodite mõistmisel midagi rasket. Siinkohal aga XML-andmete loomise küsimust põhimõtteliselt ei käsitletud, kuna protsessi täielikuks mõistmiseks peate teadma vähemalt keele enda põhitõdesid. Muidu arvan, et kasutajatel pole selle vormingu failidega raskusi.

Püüan teha mõned kokkuvõtted oma kogemusest XML-iga:

Plussid

Lugemise formaat:

Igaüks saab nende sisu kontrollida lihtsalt seda lugedes. See muudab selle hõlpsaks kasutamiseks ja selgeks suhtlusvormiks. See meeldib isegi äriinimestele (minu teada finantsasutustes juba aastaid), sest nad saavad sellest aru ja saavad hõlpsalt sõnumeid kontrollida, näiteks sõnumisüsteemides. Ainult nemad saavad otsustada, milline süsteem on vale. Teeb nad õnnelikuks :) Võrrelge seda JSON-iga. Arvan, et JSON pole kaugeltki lugejasõbralik, sest sulgude sulgemist on raskem jälgida kui XML-i elementide sulgemist. Peate lehele tagasi minema, et teada saada, mis algus oli. XML-i mõistmiseks pole vaja programmeerimisoskusi. Isegi teie vanaema saab selle poole tunniga selgeks.

Platvormi sõltumatus:

Olenemata sellest, millist keelt või platvormi kasutate, on teil selle lugemiseks kindlasti parser. See muudab selle tõenäoliselt parimaks suhtlusvormiks heterogeensete süsteemide vahel. Vaadake, et inimesed transpordivad tavaliselt XML-faile JMS-i järjekordade peale, postitavad XML-faile veebiteenustesse, pakivad objektid enne transportimist XML-dokumentidesse. XML on nii fundamentaalne materjal, et erinevate parseritega pole suuri probleeme. Nad kõik mõistavad XML-i.

Suurepärased ümberkujundamise tööriistad

Suurepärane tööriist kontrollimiseks

Vastu

Paljusõnalisus

See võib tarbida mis tahes kettaruumi. XML-failid muudavad logid suureks ning neid on raske lugeda ja hankida. Teisest küljest saate palke tihendada. Isegi veebiteenuseid või JMS-sõnumeid saab ribalaiuse vähendamiseks tihendada. Kuid isegi sel juhul on tihendamine protsessori ja mälu jaoks kulukas. Teisest küljest võib minu kogemuse kohaselt XML ja sellega seotud tehnoloogiad arengut kärpida ning mandaatidesse salvestatu läheb piisavalt kaugele, et osta teine ​​protsessor. Protsessorid on odavamad kui inimesed.

Ebaefektiivne kasutamine

Pole kaugeltki triviaalne, millistel objektidel (XPath-avaldised, XSL-mallid, XSD-skeemid, XML-parserid jne) milline elutsükkel on. Mida saab vahemällu salvestada? Paljud inimesed ei tee seda niidiohutuse probleemide vältimiseks õigesti. Ja see viib teid kohutava aegluseni. Ja ma tahan seda rõhutada See ei ole tehnoloogia probleem, vaid väärkasutus. Paljud inimesed on ummikus vana DOM-i parteriga, mis on kole. Nad abstraheerisid mõne kihi selle kohal ja lõid oma API-d XML-i käsitlemiseks, mis on halb. Liigu edasi, kasuta DOM4j või STAX või JAXB või midagi standardset.

Vale vabadus luua midagi erilist

Paljud ettevõtted on loonud XML-iga domeenispetsiifilisi keeli või kohutavaid konfiguratsioonifaile. Kuna seda on lihtne sõeluda ja läbi käia, on nad isegi loonud tõlkijad täiesti uue keele jaoks. Keel jäi toppama ja planeeritud arendustööriistu ei loodudki. Ärge kunagi kasutage programmide loomiseks XML-i. Seda ei saa kasutada. Ärge programmeerige XPathis, kuna see pole arendusaja testitud. Hoidke asjad paigas. XML on mõeldud peamiselt andmete edastamiseks mingil standardsel kujul. Ärge leiutage XML-is ratast uuesti. See oleks enda jaoks programmtool, mitte auto.

Parimad XML-õpetused on minu arvates ZVONil. Kasutage neid, kui soovite.

XML-i kasutatakse paljudes veebiarenduse aspektides, kuid selle peamine eesmärk on hõlbustada andmete salvestamist ja edastamist.

XML eraldab andmed HTML-ist

Kui teil on vaja HTML-dokumendis kuvada dünaamilisi andmeid, võtab see liiga palju aega, kui muudate HTML-dokumenti ennast iga kord, kui andmed muutuvad.

KOOS XML andmeid saab salvestada eraldi XML-failides. Seda tehes keskendute HTML-i/CSS-i kasutamisele kuvamisel ja mallimisel ning võite olla kindel, et uute andmete saabumine ei nõua dokumendi HTML-koodi muutmist.

XML lihtsustab andmete levitamist

Reaalses maailmas kasutavad arvutisüsteemid ja andmebaasid andmeid ühildumatus vormingus.

XML-andmed salvestatakse lihtsas tekstivormingus. See tagab tarkvara ja riistvara sõltumatuse.

See muudab andmete loomise lihtsaks, mida saavad kasutada väga erinevad rakendused.

XML lihtsustab andmeedastust

Üks kõige aeganõudvamaid probleeme arendajate jaoks on alati olnud ja jääb endiselt andmevahetuse probleem omavahel mitteühilduvate süsteemide vahel.

Andmete XML-vormingus edastamine vähendab oluliselt selle probleemi keerukust, kuna selles vormingus andmeid saavad lugeda erinevad ühildumatud rakendused.

XML lihtsustab platvormi muutmist

Uutele süsteemidele (riistvara- või tarkvaraplatvormidele) üleminek võtab alati palju aega. Palju andmeid tuleb teisendada uutesse vormingutesse. Sel juhul lähevad sageli kaotsi kokkusobimatud andmed.

XML-andmed salvestatakse tekstivormingus. See muudab palju lihtsamaks operatsioonisüsteemide laiendamise või uuendamise, uutele rakendustele või brauseritele ülemineku ilma andmete kadumise ohuta.

XML muudab teie andmed kättesaadavamaks

Teie andmetele pääsevad juurde mitte ainult HTML-dokumendid, vaid ka kõik muud rakendused.

XML muudab teie andmed kättesaadavaks kõikvõimalikele "lugemismasinatele" (hääleaparaadid, uudistekanalid jne), muutes nägemispuudega ja muude füüsiliste puuetega inimeste juurdepääsu neile palju lihtsamaks.

XML-i kasutatakse uute Interneti-keelte loomiseks

Paljud Interneti-programmeerimiskeeled on loodud XML-i abil.

Siin on mõned näited.

  • XHTML
  • WSDL saadaolevate veebiteenuste kirjeldamiseks
  • WAP ja WML märgistuskeeltena kaasaskantavatele seadmetele, nagu pihuarvutid
  • RSS-keeled uudistekanalite jaoks
  • RDF ja OWL ressursside kirjeldamiseks ja ontoloogiaks
  • SMIL veebi multimeediumi kirjeldamiseks

XML-skeem on võimsam kui DTD.

XML-skeemi tugi andmetüüpidele

Üks olulisemaid on XML Schema andmetüüpide toetamise võimalus.

Tänu andmetüübi toele:

  • See võib hõlpsasti kirjeldada dokumendi kehtivat sisu
  • Andmete õigsust võib olla lihtsam kontrollida
  • Andmebaasi andmetega saate hõlpsamini koostööd teha
  • Andmeid saab hõlpsamini määratleda piirangute (andmete tahkude) abil
  • Andmemudelit (või andmevormingut) saab hõlpsasti määratleda
  • Andmete teisendamine erinevate andmetüüpide vahel võib olla lihtsam

Toimetaja märkus: Andmepiirangud või täpsustatud aspektid on XML-i – skeemi prototüübi termin, hiina keelt võib tõlkida kui "nägu", mida kasutatakse andmetüübi kehtiva väärtuse piiramiseks.

XML-i skeemid, mis kasutavad XML-i süntaksit

Teine oluline XML-skeemi omadus on see, et need on kirjutatud XML-is.

XML-i kirjutamisel XML-skeemil on palju eeliseid:

  • Ilma uut keelt õppimata
  • Skeemifailide redigeerimiseks saate kasutada XML-redaktorit
  • Skeemifailide sõelumiseks saate kasutada XML-parserit
  • Skeemi saab renderdada XML DOM-i abil
  • Skeemi saab teisendada XSLT abil

XML-skeem võib andmeedastust turvaliseks muuta

Andmete edastamisel saatjalt saajale on asi selles, et mõlemad pooled peavad austama samade "ootuste" sisu.

XML-skeemi puhul saavad saatja ja saaja aru, kuidas andmeid kirjeldatakse.

A Andmeid nagu "03.11.2004" võib mõnes riigis tõlgendada kui 3. novembrit, samas kui teistes riikides on see 11. märts.

Elemendi XML-andmetüüp on aga näiteks:<дата типа = "дата"> 2004-03-11 sisu järjepideva mõistmise tagamiseks, kuna XML-i andmetüüp "kuupäev" nõuab vormingut "AAAA-KK-PP".

XML-skeemi saab laiendada

XML-skeemid on laiendatavad, kuna need on kirjutatud XML-is.

Laiendatava skeemi määratluse abil saate:

  • Skeemi taaskasutamine teises skeemis
  • Loodud standardtüüpidega, mis on tuletatud teie enda andmetüüpidest
  • Skeemitab mitu linki ühte dokumenti

Heast vormist ei piisa

Nimetasime seda dokumenti, mis vastab hästi vormindatud XML-dokumentide XML-i süntaksile, näiteks:

  • See peab algama XML-deklaratsiooniga
  • Sellel peab olema ainulaadne juurelement
  • Algusmärgend peab ühtima lõpumärgendiga
  • Elemendid on tõstutundlikud
  • Kõik elemendid peavad olema suletud
  • Kõik elemendid peavad olema õigesti pesastatud
  • Erimärgid peavad kasutama objekti

Isegi hea dokumendivorm ei saa garanteerida, et need ei sisalda vigu ja neil võivad olla tõsised tagajärjed.

Mõelge järgmisele olukorrale: tellite viie asemel 5 tosinat laserprinterit. XML-skeemis saab enamiku nendest vigadest teie valideerimistarkvara kinni püüda.

Ma arvan, et saate juba aru, miks seda vajate HTML(jah, HTML). See on vajalik andmete esitamiseks brauseris. See tähendab, et on olemas HTML kood ja sellele vastav HTML kood teatud tüüpi. Kuid tänapäevased trendid nõuavad mitte ainult andmete kuvamist, vaid ka nende pädevat sisemist struktuuri.

See on selleks luues struktuuri ja olemas on XML-keel. Lihtne näide:

Roheline õun

Meile inimestele saab kõik kohe selgeks. Minu pähe ilmub kohe pilt" roheline õun" aga kuidas selgitada arvutile, et see on õun, mitte apelsin, inimene või meie galaktika? Siin tuleb jälle appi XML, kus saame luua mis tahes silte, tehes selgeks, kus on õun, kus on oranž, kus on inimene ja kus on meie galaktika. Loodan, et selgitasin seda selgelt.

Nüüd kõige olulisemast. XML-i peamine omadus on selle mitmekülgsus. See on XML saab aru mis tahes kaasaegsest keelest. Ja sellest ajast peale XML on tekstifail, siis saate sellega töötada tavalises märkmikus. Nüüd konkreetselt harjutamiseks, kus kasutatakse XML-i:

  • Seadete fail. Seaded sisse XML-fail väga lihtne lugeda ja kirjutada. Sel põhjusel on neid sadu XML-failid.
  • Andmesild erinevates keeltes kirjutatud programmide vahel. Väga oluline omadus, mis tuleneb keele mitmekülgsusest ja mida kasutatakse regulaarselt keerulistes süsteemides.
  • Andmete salvestamine. Tegelikult on see omamoodi andmebaasi analoog, kuid see ei nõua DBMS(Näiteks MySQL). Ja tänu päringukeelele XPath sellega saab hõlpsasti suhelda" andmebaasi".

Ja lõpuks võin oma praktikast tuua kõige lihtsama näite. Minu veebisaidil on XML-vormingus saidiplaan. Seal on lingid saidi kõikidele lehtedele. See on väga mugav asi ja oluline saidi hea indekseerimise jaoks, kuid iga kord käsitsi uue lehe lisamine on ebamugav. Seetõttu tänu teadmistele XML-iga töötamine, automatiseerisin selle asja kergesti. Niisiis XML on kasulik keel, mida iga programmeerija peab vähemalt üldiselt teadma.