XML inenge ichigara ichishandiswa zvisizvo

XML inenge ichigara ichishandiswa zvisizvo
Mutauro weXML wakagadzirwa muna 1996. Nenguva isipi yakaonekwa, mikana yekushandiswa kwayo yakanga yatotanga kusanzwisiswa, uye nekuda kwezvinangwa zvavaiedza kuigadzirisa, yakanga isiri sarudzo yakanakisisa.

Hakusi kuwedzeredza kutaura kuti ruzhinji rweXML schemas dzandaona dzaive dzisina kufanira kana dzisiri kushandiswa kweXML. Uyezve, kushandiswa kweXML uku kwakaratidza kusanzwisisa kwakakosha kweiyo XML yaive nezve.

XML mutauro wekumaka. Iyi haisi data format. Mazhinji maXML schemas akafuratira musiyano uyu, achivhiringidza XML nefomati yedata, izvo zvinozoguma nekukanganisa pakusarudza XML nekuti ndiyo fomati yedata inonyanya kudiwa.

Pasina kupinda mune zvakawandisa, XML inonyatsokodzera zvidhinha zvemashoko ane chimiro uye metadata. Kana chinangwa chako chikuru chisiri chekushanda nebhuroka yemavara, kusarudza XML hakugone kuve kwakakodzera.

Kubva pane iyi maonero, pane nzira iri nyore yekutarisa kuti XML schema inogadzirwa sei. Ngatitorei semuenzaniso gwaro mune yakarongwa schema uye tibvise ese tag uye hunhu kubva mairi. Kana izvo zvasara zvisingaite zvine musoro (kana kana paine mutsara usina chinhu wasara), saka ingave yako schema haina kuvakwa nemazvo kana iwe unofanirwa kunge usina kushandisa XML.

Pazasi ini ndichapa mimwe mienzaniso yakajairika yemasekete asina kuvakwa zvisirizvo.

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

Pano tinoona muenzaniso wezvisina hwaro uye zvisinganzwisisike (kunyangwe zvakajairika) kuyedza kuratidza nyore kiyi-ukoshi duramazwi muXML. Kana iwe ukabvisa ese ma tag uye hunhu, iwe unosara nemutsara usina chinhu. Chaizvoizvo, gwaro iri, kunyangwe ringaite sezvisinganzwisisike sei, chirevo che semantic chemutsara usina chinhu.

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

Kuita kuti zvinhu zvinyanye kuoma, isu hatingove nechirevo chechirevo chetambo isina chinhu pano senzira yakanyanyisa yekutaura duramazwi - panguva ino "duramazwi" rakanyorwa zvakananga sehunhu hwemudzi. Izvi zvinoita kuti iyo yakapihwa seti yemazita ehunhu pane chinhu chisina kutsanangurwa uye chine simba. Zvakare, zvinoratidza kuti munyori wese ainyatsoda kutaura yaive yakapfava kiyi-value syntax, asi panzvimbo pezvo akaita sarudzo isinganzwisisike yekushandisa XML, achimanikidza kushandiswa kwechinhu chimwe chete chisina chinhu sechivakashure chekushandisa hunhu syntax. Uye ndinosangana nezvirongwa zvakadaro kakawanda.

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

Ichi chimwe chinhu chiri nani, asi ikozvino nekuda kwechimwe chikonzero makiyi ari metadata uye kukosha hakusi. Kutarisa kunoshamisa kwazvo pamaduramazwi. Kana iwe ukabvisa ese ma tag uye hunhu, hafu yeruzivo icharasika.

Chirevo cheduramazwi chakarurama muXML chinotaridzika seizvi:

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

Asi kana vanhu vakaita sarudzo inoshamisa yekushandisa XML sefomati yedata vobva vaishandisa kuronga mazwi, saka vanofanirwa kunzwisisa kuti zvavari kuita hazvina kufanira uye hazvina kunaka. Zvakajairikawo kuti vagadziri vasarudze XML zvisirizvo kuti vagadzire maapplication avo. Asi zvakatonyanya, vanoita kuti zvinhu zvinyanye kushata nekushandisa zvisina zvazvinoreva XML mune imwe yemafomu anotsanangurwa pamusoro, vachiregeredza chokwadi chekuti XML haina kukodzera izvi.

Yakaipisisa XML Schema? Nenzira, mubayiro we yakaipisisa XML schema yandati ndamboona, Inowana iyo otomatiki kugovera kumisikidza faira fomati yePolycom IP nharembozha. Mafaira akadaro anoda kudhaunirodha mafaira ekukumbira eXML kuburikidza neTFTP, iyo... Kazhinji, heino chidimbu kubva kune imwe faira yakadaro:

<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="..." />

Iri harisi jee remumwe munhu rakaipa. Uye izvi hazvisi zvangu zvekugadzira:

  • zvinhu zvinongoshandiswa sechivakashure chekubatanidza hunhu, iwo iwo pachawo ane mazita ehierarchical.
  • Kana iwe uchida kugovera kukosha kune akati wandei eimwe mhando rekodhi, unofanirwa kushandisa mazita ehunhu kuita izvi. dzine indexes.
  • Mukuwedzera, hunhu kutanga softkey., inofanira kuiswa pamusoro pezvinhu <softkey/>, hunhu hunotangira feature., inofanira kuiswa pamusoro pezvinhu <feature/> nezvimwewo, pasinei nokuti zvinoratidzika zvisingakoshi zvachose uye pakutanga kutarisa hazvina maturo.
  • Uye pakupedzisira, dai wanga uchitarisira kuti chikamu chekutanga chezita rehunhu chaizogara chakafanana sezita rechinhu - hapana chakadaro! Somuenzaniso, hunhu up. inofanira kubatanidzwa <userpreferences/>. Kurongeka kwekubatanidza mazita ehunhu kune zvinhu zvinopokana, zvinenge zvakazara.

Zvinyorwa kana data. Nguva nenguva, mumwe munhu anoita chimwe chinhu chisinganzwisisike nekuyedza kuenzanisa XML neJSON-uye kuratidza kuti havanzwisise. XML igwaro markup mutauro. JSON yakarongeka data fomati, saka kuvaenzanisa kune mumwe nemumwe kwakafanana nekuyedza kuenzanisa kudziya nekupfava.

Pfungwa yemusiyano pakati zvinyorwa uye data. Seanalogue yeXML, tinogona kutora gwaro rinoverengwa nemuchina. Kunyangwe ichitarisirwa kuve muchina unoverengeka, inoreva dimikira kune zvinyorwa, uye kubva padanho rino rekuona rinonyatso kufananidzwa nemagwaro ePDF, ayo asingawanzo kuverengeka nemuchina.

Semuenzaniso, muXML kurongeka kwezvinhu zvine basa. Asi muJSON, kurongeka kwekiyi-kukosha pairi mukati mezvinhu hazvina zvazvinoreva uye hazvina kutsanangurwa. Kana iwe uchida kuwana duramanzwi risina kurongeka remakey-value pairs, kurongeka chaiko uko zvinhu zvinoonekwa mufaira iroro hazvina basa. Asi iwe unogona kugadzira akawanda akasiyana marudzi e data kubva kune iyi data. yezvinyorwa, nokuti pane kurongeka kwakati mugwaro racho. Sedimikira, inofananidzwa negwaro riri pabepa, kunyangwe risina mativi emuviri, kusiyana neprintout kana faira rePDF.

Muenzaniso wangu weiyo XML inomiririra duramanzwi inoratidza kurongeka kwezvinhu muduramazwi, kupesana neiyo JSON inomiririra. Ini handikwanise kufuratira kurongeka uku: mutsara uyu unowanikwa mugwaro modhi uye XML fomati. Vamwe vangasarudza kufuratira kurongeka pakududzira gwaro iri reXML, asi hapana chikonzero chekupokana pamusoro peizvi sezvo nyaya yacho iri pamusoro pehurukuro yefomati yacho pachayo. Uyezve, kana iwe ukaita kuti gwaro rionekwe mubrowser nekuisa pepa remasitadhi e-cascading kwariri, uchaona kuti zvinhu zveduramazwi zvinoonekwa mune imwe kurongeka uye hakuna kumwe.

Mune mamwe mazwi, duramazwi (chidimbu che data rakarongeka) rinogona kushandurwa kuita n akasiyana magwaro anogoneka (muXML, PDF, bepa, nezvimwewo), kupi n - huwandu hwezvinogoneka musanganiswa wezvinhu muduramazwi, uye isu hatisati tafunga zvimwe zvinogoneka.

Nekudaro, zvinotevera zvakare kuti kana iwe uchida kuendesa data chete, saka kushandisa dhidhiroji rinoverengeka muchina kune izvi hazvizoshande. Inoshandisa modhi, iyo mune iyi kesi yakanyanyisa; inongopinda munzira. Mukuwedzera, kuti ubvise iyo data data, iwe uchada kunyora chirongwa. Hapana kana chikonzero chekushandisa XML kune chimwe chinhu chisingazogadziriswe segwaro pane imwe nguva (taura, uchishandisa CSS kana XSLT, kana zvese), sezvo chiricho chikuru (kana chisiri icho chega) chikonzero chekuita kudaro. kumuenzaniso wegwaro.

Uyezve, sezvo XML isina pfungwa yenhamba (kana mataurirwo eBoolean, kana mamwe marudzi edata), nhamba dzese dzinomiririrwa mune iyi fomati dzinoonekwa sechinyorwa chekuwedzera. Kubvisa data, schema uye hukama hwayo kune inoenderana data iri kuratidzwa inofanira kuzivikanwa. Iwe zvakare unofanirwa kuziva kuti riini, zvichibva pane zviri mukati, chimwe chinyorwa chinomiririra nhamba uye chinofanira kushandurwa kuita nhamba, nezvimwe.

Saka, maitiro ekutora data kubva kumagwaro eXML haana kunyanya kusiyana nemaitiro ekucherechedza zvinyorwa zvakaongororwa zvine, semuenzaniso, matafura anoumba mapeji akawanda ehuwandu hwehuwandu. Hongu, zvinokwanisika kuita izvi mumusimboti, asi iyi haisi iyo yakanyanya kunaka nzira, kunze kweyekupedzisira sarudzo, kana pasina zvachose dzimwe sarudzo. Mhinduro inonzwisisika ndeyekungotsvaga kopi yedhijitari yeiyo yekutanga data isina kuisirwa mugwaro modhi inosanganisa iyo data neiyo chaiyo inomiririra zvinyorwa.

Izvozvo zvakati, hazvindishamise zvachose kuti XML yakakurumbira mubhizinesi. Chikonzero cheizvi ndechekuti chimiro chegwaro (papepa) chinonzwisisika uye chinozivikanwa kune bhizinesi, uye vanoda kuramba vachishandisa yakajairika uye inonzwisisika modhi. Nechikonzero chimwe chetecho, mabhizinesi anowanzo shandisa magwaro ePDF pachinzvimbo chemamwe mafomati anoverengwa nemuchina - nekuti achiri akasungirirwa kupfungwa yepeji rakadhindwa rine saizi chaiyo yemuviri. Izvi zvinotoshanda kumagwaro asingambofi akadhindwa (semuenzaniso, 8000-peji PDF yezvinyorwa zvekunyoresa). Kubva pane iyi maonero, kushandiswa kweXML mubhizinesi kunoratidza skeuomorphism. Vanhu vanonzwisisa zano redimikira repeji rakadhindwa rehukuru hushoma, uye vanonzwisisa maitiro ekugadzira mabhizinesi maitiro anoenderana nemagwaro akadhindwa. Kana iri iro gwara rako, magwaro asina kuganhurirwa saizi yemuviri anoverengeka muchina-XML magwaro-anomiririra hunyanzvi uku ari anojairwa uye akagadzika gwaro mubatsiri. Izvi hazvivadzivise kuti varambe vari isiri iyo uye yakanyanyisa skeuomorphic nzira yekupa data.

Parizvino, iwo ega XML schemas andinoziva nezvandinogona kunyatso kudana kushandiswa kwakakodzera kwefomati ndeye XHTML uye DocBook.

Source: www.habr.com

Voeg