I-XML ihlale isetshenziswa kabi

I-XML ihlale isetshenziswa kabi
Ulimi lwe-XML lwasungulwa ngo-1996. Ngokushesha nje lapho kuvele khona amathuba okusebenza kwawo ayeseqalile ukungaqondakali, futhi ngezinhloso ababezama ukukulungisa, kwakungeyona into engcono kakhulu.

Akulona ihaba ukusho ukuthi iningi lama-schema e-XML engiwabonile awafanelekile noma awalungile ukusetshenziswa kwe-XML. Ngaphezu kwalokho, lokhu kusetshenziswa kwe-XML kubonise ukungaqondi kahle ukuthi i-XML yayimayelana nani.

I-XML iwulimi lwemakhaphu. Lena akuyona ifomethi yedatha. Iningi le-XML schemas lishaye indiva ngokusobala lo mehluko, lidida i-XML ngefomethi yedatha, okuholela ekugcineni iphutha ekukhetheni i-XML ngoba iyifomethi yedatha edingeka ngempela.

Ngaphandle kokungena emininingwaneni eminingi, i-XML ifaneleka kangcono kumabhulokhi esichasiselo ombhalo ngesakhiwo nemethadatha. Uma umgomo wakho oyinhloko ungasebenzi ngebhulokhi yombhalo, ukukhetha i-XML cishe ngeke kuthethelelwe.

Kuleli phuzu lokubuka, kunendlela elula yokuhlola ukuthi i-schema ye-XML yenziwe kahle kangakanani. Ake sithathe njengesibonelo idokhumenti ku-schema esihlosiwe futhi sisuse bonke omaka nezibaluli kuso. Uma okusele kungenangqondo (noma uma kukhona umugqa ongenalutho osele), kusho ukuthi i-schema sakho asakhiwe ngendlela efanele noma bekungafanele usebenzise i-XML.

Ngezansi ngizonikeza ezinye zezibonelo ezivame kakhulu zamasekethe akhiwe ngokungalungile.

<roоt>
  <item name="name" value="John" />
  <item name="city" value="London" />
</roоt>

Lapha sibona isibonelo somzamo ongenasisekelo futhi ongajwayelekile (nakuba uvame kakhulu) ukuveza isichazamazwi senani elingukhiye ku-XML. Uma ususa bonke omaka nezibaluli, uzosala nomugqa ongenalutho. Empeleni, lo mbhalo, kungakhathaliseki ukuthi ungase uzwakale kungenangqondo kangakanani, uyisichasiselo se-semantic somugqa ongenalutho.

<root name="John" city="London" />

Ukwenza izinto zibe zimbi kakhulu, asinaso nje isichasiselo se-semantic sochungechunge olungenalutho lapha njengendlela ewubukhazikhazi yokuveza isichazamazwi - kulokhu "isichazamazwi" sifakwe ikhodi ngokuqondile njengezibaluli zesici sempande. Lokhu kwenza isethi enikeziwe yamagama ezibaluli entweni ingachazwa futhi ibe namandla. Ngaphezu kwalokho, kukhombisa ukuthi wonke umbhali wayefuna ngempela ukuveza kwakuyi-syntax yokhiye-value elula, kodwa esikhundleni salokho wenze isinqumo esiyinqaba sokusebenzisa i-XML, ephoqa ukusetshenziswa kwento eyodwa engenalutho njengesiqalo sokusebenzisa i-syntax yesibaluli. Futhi ngihlangana njalo nezikimu ezinjalo.

<roоt>
  <item key="name">John</item>
  <item key="city">London</item>
</roоt>

Lokhu kuyinto engcono, kodwa manje ngenxa yesizathu esithile okhiye bayimethadatha futhi amanani awekho. Ukubukeka okuyinqaba kakhulu kwezichazamazwi. Uma ususa bonke omaka nezibaluli, ingxenye yolwazi izolahleka.

Isisho sesichazamazwi esilungile ku-XML singabukeka kanje:

<roоt>
  <item>
    <key>Name</key>
    <value>John</value>
  </item>
  <item>
    <key>City</key>
    <value>London</value>
  </item>
</roоt>

Kodwa uma abantu benze isinqumo esiyinqaba sokusebenzisa i-XML njengefomethi yedatha bese beyisebenzisela ukuhlela ulwazimagama, kufanele baqonde ukuthi abakwenzayo akufaneleki futhi akulula. Kuvamile futhi ukuthi abaklami bakhethe ngephutha i-XML ukuze bakhe izinhlelo zabo zokusebenza. Kodwa kaningi, benza izinto zibe zimbi kakhulu ngokusebenzisa ngokungenanjongo i-XML kwelinye lamafomu achazwe ngenhla, beshaya indiva iqiniso lokuthi i-XML ayikulungele lokhu.

I-Schema ye-XML embi kakhulu? Ngendlela, umklomelo we i-schema ye-XML embi kunazo zonke engake ngayibona, Ithola ifomethi yefayela yokulungiselela okuzenzakalelayo yamafoni ocingo e-Polycom IP. Amafayela anjalo adinga ukulanda amafayela esicelo se-XML nge-TFTP, okuthi... Ngokuvamile, nansi ingxenye yefayela elilodwa elinjalo:

<softkey
        softkey.feature.directories="0"
        softkey.feature.buddies="0"
        softkey.feature.forward="0"
        softkey.feature.meetnow="0"
        softkey.feature.redial="1"
        softkey.feature.search="1"

        softkey.1.enable="1"
        softkey.1.use.idle="1"
        softkey.1.label="Foo"
        softkey.1.insert="1"
        softkey.1.action="..."

        softkey.2.enable="1"
        softkey.2.use.idle="1"
        softkey.2.label="Bar"
        softkey.2.insert="2"
        softkey.2.action="..." />

Akulona ihlaya elibi leli. Futhi lokhu akukona okuqanjiwe kwami:

  • izakhi zimane zisetshenziswe njengesiqalo sokunamathisela izimfanelo, zona ngokwazo zinamagama alandelanayo.
  • Uma ufuna ukwabela amanani kuzimo eziningi zohlobo oluthile lwerekhodi, kufanele usebenzise amagama ezibaluli ukwenza lokhu. ezinezinkomba.
  • Ngaphezu kwalokho, izimfanelo eziqala nge softkey., kumele ibekwe phezu kwezakhi <softkey/>, izimfanelo eziqala ngazo feature., kumele ibekwe phezu kwezakhi <feature/> njll., naphezu kweqiniso lokuthi kubukeka kungenasidingo ngokuphelele futhi ekuboneni kokuqala kungenangqondo.
  • Futhi ekugcineni, uma ubunethemba lokuthi ingxenye yokuqala yegama lemfanelo izohlale ifana negama lesici - akukho okufana nalokho! Ngokwesibonelo, izimfanelo up. kumele ixhunywe ku <userpreferences/>. Ukuhleleka kokunamathisela amagama esibaluli kuma-elementi akunangqondo, cishe ngokuphelele.

Amadokhumenti noma idatha. Njalo ngemva kwesikhashana, othile wenza okuthile okuxakile ngokuzama ukuqhathanisa i-XML ne-JSON—futhi ngaleyo ndlela abonise ukuthi nabo abaqondi. I-XML iwulimi lokumaka idokhumenti. I-JSON ifomethi yedatha ehleliwe, ngakho-ke ukuziqhathanisa nezinye kufana nokuzama ukuqhathanisa ukufudumala nokuthambile.

Umqondo womehluko phakathi imibhalo kanye nedatha. Njenge-analogue ye-XML, ngokwemibandela singathatha idokhumenti efundeka ngomshini. Nakuba kuhloswe ukuthi ifundeke ngomshini, ibhekisela ngendlela engokomfanekiso emibhalweni, futhi kusukela kuleli phuzu lokubuka empeleni iqhathaniseka nemibhalo ye-PDF, evamise ukungafundeki ngomshini.

Isibonelo, ku-XML ukuhleleka kwama-elementi kubalulekile. Kodwa ku-JSON, ukuhleleka kwamapheya enani elingukhiye phakathi kwezinto akusho lutho futhi akuchazwa. Uma ufuna ukuthola isichazamazwi esingahlelekile samapheya enani elingukhiye, ukuhleleka kwangempela okuvela ngayo izici kulelo fayela akunandaba. Kodwa ungakha izinhlobo eziningi ezahlukene zedatha kusuka kule datha. yemibhalo, ngoba kunokuhleleka okuthile kudokhumenti. Ngokomfanekiso, ifana nedokhumenti esephepheni, nakuba ingenabo ubukhulu bomzimba, ngokungafani nefayela eliphrintiwe noma le-PDF.

Isibonelo sami sokumelela kahle kwesichazamazwi se-XML sibonisa ukuhleleka kwezakhi kusichazamazwi, ngokuphambene nokumelwa kwe-JSON. Angikwazi ukuziba leli oda: lokhu kulayini kuyingxenye yemodeli yedokhumenti nefomethi ye-XML. Abanye bangase bakhethe ukungawunaki umyalo lapho behumusha lo mbhalo we-XML, kodwa asikho isidingo sokuphikisana ngalokhu njengoba udaba lungaphezu kobubanzi bengxoxo yefomethi ngokwayo. Ngaphezu kwalokho, uma wenza idokhumenti ibukeke esipheqululini ngokunamathisela ishidi lesitayela se-cascade, uzobona ukuthi izici zesichazamazwi zivela ngokulandelana okuthile futhi azikho ezinye.

Ngamanye amazwi, isichazamazwi (ucezu lwedatha ehlelekile) singaguqulwa sibe n imibhalo ehlukahlukene engenzeka (ku-XML, PDF, iphepha, njll.), lapho n - inani lenhlanganisela yezakhi ezingase zibe khona kusichazamazwi, futhi asikazicabangeli ezinye izinguquko ezingaba khona.

Kodwa-ke, kuyalandela futhi ukuthi uma ufuna ukudlulisa idatha kuphela, ukusebenzisa idokhumenti efundeka ngomshini kulokhu ngeke kusebenze. Isebenzisa imodeli, kulokhu ingaphezu kwamandla; izongena kuphela endleleni. Ngaphezu kwalokho, ukuze ukhiphe idatha yomthombo, uzodinga ukubhala uhlelo. Akukho phuzu ekusebenziseni i-XML kokuthile okungeke kufomethwe njengombhalo esikhathini esithile (awuthi, kusetshenziswa i-CSS noma i-XSLT, noma kokubili), ngoba lokho kuyisizathu esiyinhloko (uma kungesona ukuphela) sokwenza kanjalo. kumodeli yedokhumenti.

Ngaphezu kwalokho, njengoba i-XML ingenawo umqondo wezinombolo (noma izinkulumo ze-Boolean, noma ezinye izinhlobo zedatha), zonke izinombolo ezimelwe ngale fomethi zibhekwa njengombhalo owengeziwe. Ukuze kukhishwe idatha, i-schema nobudlelwano baso nedatha ehambisanayo evezwayo kufanele kwaziwe. Udinga futhi ukwazi ukuthi, ngokusekelwe kumongo, isici esithile sombhalo simelela nini inombolo futhi kufanele siguqulwe sibe inombolo, njll.

Ngakho-ke, inqubo yokukhipha idatha kumadokhumenti e-XML ayihlukile kangako enqubweni yokubona imibhalo eskeniwe equkethe, isibonelo, amatafula akha amakhasi amaningi edatha yezinombolo. Yebo, kungenzeka ukwenza lokhu ngokomthetho, kodwa lena akuyona indlela engcono kakhulu, ngaphandle njengendawo yokugcina, lapho zingekho ezinye izinketho. Isixazululo esiphusile ukuthola kalula ikhophi yedijithali yedatha yoqobo engashumekiwe kumodeli yedokhumenti ehlanganisa idatha nokumelwa kwayo okuqondile kombhalo.

Sekushiwo lokho, akumangazi nakancane ukuthi i-XML idumile kwezamabhizinisi. Isizathu salokhu ukuthi ifomethi yedokhumenti (ephepheni) iyaqondakala futhi ijwayele ibhizinisi, futhi bafuna ukuqhubeka nokusebenzisa imodeli ejwayelekile futhi eqondakalayo. Ngesizathu esifanayo, amabhizinisi avame ukusebenzisa imibhalo ye-PDF esikhundleni samafomethi afundeka ngomshini - ngoba asaboshelwe kumqondo wekhasi eliphrintiwe elinosayizi othile womzimba. Lokhu kusebenza nakumadokhumenti okungenzeka ukuthi angaphinde aphrintwe (isibonelo, i-PDF enamakhasi ayi-8000 yemibhalo yokubhalisa). Kusukela kuleli phuzu lokubuka, ukusetshenziswa kwe-XML ebhizinisini empeleni kuwukubonakaliswa kwe-skeuomorphism. Abantu bayawuqonda umqondo ongokomfanekiso wekhasi eliphrintiwe losayizi olinganiselwe, futhi bayaqonda ukuthi zingakha kanjani izinqubo zebhizinisi ngokusekelwe kumadokhumenti aphrintiwe. Uma lowo kuyinkomba yakho, amadokhumenti angenayo imikhawulo yosayizi womzimba akwazi ukufunda ngomshini—imibhalo ye-XML—amele ukuqanjwa kabusha kuyilapho enguzakwabo wedokhumenti ojwayelekile futhi onethezekile. Lokhu akubavimbeli ukuthi bahlale beyindlela engalungile futhi eyeqisayo ye-skeuomorphic yokwethula idatha.

Kuze kube manje, okuwukuphela kwezikimu ze-XML engizaziyo engingakwazi ngempela ukuzibiza ngokuthi ukusetshenziswa okuvumelekile kwefomethi yi-XHTML ne-DocBook.

Source: www.habr.com

Engeza amazwana