Déantar mí-úsáid a bhaint as XML beagnach i gcónaí

Déantar mí-úsáid a bhaint as XML beagnach i gcónaí
Ceapadh an teanga XML i 1996. Ní túisce a tháinig sé chun solais ná go raibh tús curtha cheana féin le míthuiscint a fháil ar fhéidearthachtaí a chur i bhfeidhm, agus chun na gcríoch a raibh siad ag iarraidh é a oiriúnú, níorbh é sin an rogha ab fhearr.

Ní haon áibhéil é a rá gur úsáidí míchuí nó míchearta a bhain le XML formhór mór na scéimre XML a chonaic mé. Ina theannta sin, léirigh an úsáid seo a bhain le XML míthuiscint bhunúsach ar cad a bhí i gceist le XML.

Is teanga mharcála é XML. Ní formáid sonraí é seo. Rinne an chuid is mó de scéimeanna XML an t-idirdhealú seo a neamhaird go soiléir, rud a chuir mearbhall ar XML le formáid sonraí, rud a fhágann go bhfuil botún i ndeireadh na dála nuair a roghnaítear XML toisc gurb í an fhormáid sonraí atá de dhíth.

Gan an iomarca mionsonraí a dhéanamh, is fearr XML chun bloic téacs a anótáil le struchtúr agus meiteashonraí. Murab é do phríomhsprioc oibriú le bloc téacs, ní dócha go mbeidh údar le roghnú XML.

Ón taobh sin de, tá bealach simplí ann lena sheiceáil cé chomh maith agus a dhéantar scéimre XML. Glacaimis mar shampla doiciméad sa scéimre atá beartaithe agus bainfimid na clibeanna agus na tréithe go léir as. Mura bhfuil ciall leis an méid atá fágtha (nó má tá líne bhán fágtha), ansin níl do scéimre tógtha i gceart nó níor cheart duit úsáid a bhaint as XML.

Anseo thíos tabharfaidh mé cuid de na samplaí is coitianta de chiorcaid a tógadh go mícheart.

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

Anseo feicimid sampla d’iarracht gan bhunús agus aisteach (cé go bhfuil sé an-choitianta) foclóir simplí eochairluacha a chur in iúl in XML. Má bhaineann tú na clibeanna agus na tréithe go léir, fágfar as a chéile folamh tú. Go bunúsach, is nótáil shéimeantach de líne fholamh é an doiciméad seo, is cuma cé chomh áiféiseach is féidir leis.

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

Chun cúrsaí a dhéanamh níos measa, ní hamháin go bhfuil nóta shéimeantach de shreang fholamh againn anseo mar bhealach neamhghnách chun foclóir a chur in iúl - an uair seo déantar an "foclóir" a ionchódú go díreach mar thréithe den bhuneilimint. Fágann sé seo go bhfuil an tacar ainmneacha tréithe ar eilimint neamhshainithe agus dinimiciúil. Ina theannta sin, taispeánann sé go raibh an t-údar ar fad ag iarraidh a chur in iúl gur comhréir shimplí eochairluacha a bhí ann, ach ina ionad sin rinne sé an cinneadh fíor-aisteach XML a chur i bhfeidhm, rud a chuir iallach air eilimint fholamh amháin a úsáid go simplí mar réimír chun comhréir tréithe a úsáid. Agus tagann mé trasna ar scéimeanna den sórt sin go minic.

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

Is é seo rud éigin níos fearr, ach anois ar chúis éigin tá na heochracha meiteashonraí agus nach bhfuil na luachanna. Súil an-aisteach ar fhoclóirí. Má bhaineann tú na clibeanna agus na tréithe go léir, caillfear leath na faisnéise.

Breathnódh slonn ceart foclóra in XML ar rud mar seo:

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

Ach má tá an cinneadh aisteach déanta ag daoine XML a úsáid mar fhormáid sonraí agus ansin é a úsáid chun foclóir a eagrú, ba cheart dóibh a thuiscint go bhfuil an méid atá á dhéanamh acu míchuí agus nach bhfuil sé áisiúil. Tá sé coitianta freisin do dhearthóirí XML a roghnú trí dhearmad chun a bhfeidhmchláir a chruthú. Ach níos minice fós, déanann siad cúrsaí níos measa trí úsáid a bhaint as XML gan bhrí i gceann de na foirmeacha a thuairiscítear thuas, gan aird a thabhairt ar an bhfíric nach bhfuil XML oiriúnach dó seo.

Scéimre XML is measa? Dála an scéil, an duais do an scéimre XML is measa dá bhfaca mé riamh, Faigheann sé formáid comhaid cumraíochta soláthair uathoibríoch d’fhóin theileafónaíochta Polycom IP. Teastaíonn comhaid iarratais XML a íoslódáil trí TFTP, rud a... Go ginearálta, seo sliocht as comhad amháin den sórt sin:

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

Ní hé seo an duine éigin joke olc. Agus ní hé seo mo aireagán:

  • ní úsáidtear eilimintí go simplí mar réimír chun tréithe a cheangal, a bhfuil ainmneacha ordlathacha orthu féin.
  • Más mian leat luachanna a shannadh do chásanna iolracha de chineál áirithe taifid, ní mór duit ainmneacha tréithe a úsáid chun é seo a dhéanamh. a bhfuil innéacsanna acu.
  • Ina theannta sin, tréithe ag tosú le softkey., ní mór a chur ar eilimintí <softkey/>, tréithe ag tosú le feature., ní mór a chur ar eilimintí <feature/> etc., in ainneoin go bhfeiceann sé go hiomlán gan ghá agus ar an gcéad amharc gan brí.
  • Agus ar deireadh, má bhí tú ag súil go mbeadh an chéad chomhpháirt d'ainm tréithe i gcónaí mar an gcéanna leis an ainm eilimint - rud ar bith mar sin! Mar shampla, tréithe up. Ní mór a bheith ag gabháil leis <userpreferences/>. Tá an t-ord a bhaineann le hainmneacha tréithe a cheangal le heilimintí treallach, beagnach go hiomlán.

Doiciméid nó sonraí. Ó am go chéile, déanann duine rud éigin aisteach go hiomlán trí iarracht a dhéanamh comparáid a dhéanamh idir XML agus JSON - agus mar sin a thaispeáint nach dtuigeann siad ach an oiread. Is teanga mharcála doiciméad é XML. Is formáid sonraí struchtúrtha é JSON, mar sin is ionann iad a chur i gcomparáid lena chéile agus iarracht a dhéanamh comparáid a dhéanamh idir te agus bog.

Coincheap an difríocht idir doiciméid agus sonraí. Mar analóg de XML, is féidir linn doiciméad meaisín-inléite a ghlacadh go coinníollach. Cé go bhfuil sé beartaithe é a bheith inléite ag meaisín, tagraíonn sé go meafarach do dhoiciméid, agus ón taobh sin de tá sé inchomparáide i ndáiríre le doiciméid PDF, ar minic nach mbíonn siad inléite ag meaisín.

Mar shampla, tá tábhacht le hord na n-eilimintí in XML. Ach i JSON, tá ord na bpéirí eochairluacha laistigh de réada gan bhrí agus neamhshainithe. Más mian leat foclóir péirí eochairluacha a fháil gan ord, is cuma cén t-ord ina bhfuil na heilimintí sa chomhad sin. Ach is féidir leat go leor cineálacha éagsúla sonraí a fhoirmiú ó na sonraí seo. de dhoiciméid, toisc go bhfuil ord áirithe sa doiciméad. Go meafarach, tá sé ar aon dul le doiciméad ar pháipéar, cé nach bhfuil toisí fisiceacha aige, murab ionann agus asphrionta nó comhad PDF.

Léiríonn mo shampla de léiriú ceart foclóir XML ord na n-eilimintí san fhoclóir, i gcomparáid le léiriú JSON. Ní féidir liom neamhaird a dhéanamh den ordú seo: tá an líneacht seo ina cuid dhílis de mhúnla an doiciméid agus formáid XML. B’fhéidir go roghnódh cuid acu neamhaird a dhéanamh den ord agus an doiciméad XML seo á léirmhíniú, ach ní miste a bheith ag argóint faoi seo toisc go bhfuil an cheist taobh amuigh de scóip an phlé ar an bhformáid féin. Ina theannta sin, má dhéanann tú an doiciméad infheicthe sa bhrabhsálaí trí stílbhileog cascáideach a cheangal leis, feicfidh tú go bhfuil gnéithe an fhoclóra le feiceáil in ord áirithe agus in aon ord eile.

I bhfocail eile, is féidir foclóir (píosa sonraí struchtúrtha) a thiontú ina n doiciméid fhéideartha éagsúla (in XML, PDF, páipéar, etc.), áit n - líon na dteaglaim d’eilimintí a d’fhéadfadh a bheith san fhoclóir, agus níl athróga féideartha eile curtha san áireamh againn go fóill.

Mar sin féin, leanann sé freisin, más mian leat sonraí a aistriú amháin, ní bheidh sé éifeachtach ag baint úsáide as doiciméad meaisín-inléite chuige seo. Úsáideann sé múnla, a bhfuil sa chás seo iomarcach; ní rachaidh sé ach ar an mbealach. Ina theannta sin, chun na sonraí foinse a bhaint, beidh ort clár a scríobh. Is ar éigean go bhfuil aon chiall le XML a úsáid le haghaidh rud éigin nach ndéanfar a fhormáidiú mar dhoiciméad ag pointe éigin (abair, ag baint úsáide as CSS nó XSLT, nó an dá rud), mar sin é an príomhchúis (mura bhfuil an t-aon chúis) le déanamh amhlaidh. leis an múnla doiciméad.

Ina theannta sin, ós rud é nach bhfuil aon choincheap uimhreacha ag XML (nó na sloinn Boole, nó cineálacha eile sonraí), meastar nach bhfuil sna huimhreacha go léir a léirítear san fhormáid seo ach téacs breise. Chun sonraí a bhaint, ní mór an scéimre agus a ghaol leis na sonraí comhfhreagracha atá á gcur in iúl a bheith ar eolas. Ní mór duit fios a bheith agat freisin cathain, bunaithe ar an gcomhthéacs, go seasann eilimint téacs ar leith d’uimhir agus ar cheart í a thiontú go huimhir, etc.

Mar sin, níl an próiseas maidir le sonraí a bhaint as doiciméid XML chomh difriúil leis an bpróiseas chun doiciméid scanta a aithint ina bhfuil, mar shampla, táblaí a fhoirmíonn go leor leathanaigh de shonraí uimhriúla. Sea, is féidir é seo a dhéanamh i bprionsabal, ach ní hé seo an bealach is fearr, ach amháin mar rogha dheireanach, nuair nach bhfuil aon roghanna eile ann. Réiteach réasúnta is ea cóip dhigiteach de na sonraí bunaidh a aimsiú nach bhfuil leabaithe i múnla doiciméid a chomhcheanglaíonn na sonraí lena léiriú sainiúil téacs.

É sin ráite, ní chuireann sé iontas ar bith orm go bhfuil an-tóir ar XML i gcúrsaí gnó. Is é an chúis atá leis seo go beacht ná go bhfuil formáid an doiciméid (ar pháipéar) intuigthe agus eolach do ghnólachtaí, agus ba mhaith leo leanúint ar aghaidh ag úsáid múnla eolach intuigthe. Ar an gcúis chéanna, ró-mhinic a úsáideann gnólachtaí doiciméid PDF in ionad formáidí níos inléite ag meaisín - toisc go bhfuil siad fós ceangailte le coincheap leathanach clóite le méid fisiceach sonrach. Baineann sé seo fiú le doiciméid nach dócha a phriontáil go deo (mar shampla, PDF 8000-leathanach de dhoiciméadú na clárlainne). Ón taobh sin de, is léiriú ar skeuomorphism é úsáid XML i ngnó go bunúsach. Tuigeann daoine an smaoineamh meafarach ar leathanach clóite de mhéid teoranta, agus tuigeann siad conas próisis ghnó a chruthú bunaithe ar dhoiciméid chlóite. Más é sin do threoir, is ionann doiciméid gan teorainneacha méide fisiceacha atá inléite ag meaisín—doiciméid XML – do nuálaíocht agus iad ina gcomhghleacaí doiciméad eolach agus compordach. Ní chuireann sé seo cosc ​​orthu fanacht mar bhealach mícheart agus ró-skeuomorphic chun sonraí a chur i láthair.

Go dtí seo, is iad XHTML agus DocBook an t-aon scéimre XML a bhfuil aithne agam orthu ar féidir liom úsáid bhailí a bhaint as an fhormáid.

Foinse: will.com

Add a comment