Tha XML cha mhòr an-còmhnaidh air a mhì-chleachdadh

Tha XML cha mhòr an-còmhnaidh air a mhì-chleachdadh
Chaidh an cànan XML a chruthachadh ann an 1996. Cha bu luaithe a nochd e na bha comasachd an tagraidh aige air tòiseachadh a bhith air a mhì-thuigsinn mar-thà, agus airson na h-adhbharan airson an robh iad a 'feuchainn ri atharrachadh, cha b' e an roghainn a b 'fheàrr.

Chan eil e na iongnadh a bhith ag ràdh gu bheil a’ mhòr-chuid de sgeamaichean XML a chunnaic mi nan cleachdadh neo-iomchaidh no ceàrr de XML. A bharrachd air an sin, sheall an cleachdadh seo de XML mì-thuigse bunaiteach air cò mu dheidhinn a bha XML.

Tha XML na chànan comharrachaidh. Chan e cruth dàta a tha seo. Tha a’ mhòr-chuid de sgeamaichean XML air dearmad a dhèanamh air an eadar-dhealachadh seo, a’ cur troimh-chèile XML le cruth dàta, a thig gu crìch gu mearachd ann a bhith a’ taghadh XML leis gur e an cruth dàta a tha a dhìth.

Gun a bhith a’ dol a-steach gu cus mion-fhiosrachaidh, tha XML nas freagarraiche airson blocaichean teacsa a chomharrachadh le structar agus meata-dàta. Mura h-eil am prìomh amas agad a bhith ag obair le bloc teacsa, chan eil e coltach gum bi taghadh XML air fhìreanachadh.

Bhon t-sealladh seo, tha dòigh shìmplidh ann airson faighinn a-mach dè cho math ‘s a tha sgeama XML air a dhèanamh. Gabhamaid mar eisimpleir sgrìobhainn anns an sgeama a tha san amharc agus thoir air falbh a h-uile taga is buadhan bhuaithe. Mura h-eil na tha air fhàgail a’ dèanamh ciall (no ma tha loidhne bhàn air fhàgail), chan eil an sgeama agad air a thogail ceart no dìreach cha bu chòir dhut XML a chleachdadh.

Gu h-ìosal bheir mi seachad cuid de na h-eisimpleirean as cumanta de chuairtean air an togail gu ceàrr.

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

An seo chì sinn eisimpleir de dh’ oidhirp gun stèidh agus neònach (ged a tha e glè chumanta) air faclair sìmplidh prìomh-luach a chur an cèill ann an XML. Ma bheir thu air falbh a h-uile taga is buadhan, fàgaidh tu sreath falamh. Gu bunaiteach, tha an sgrìobhainn seo, ge bith dè cho neo-chinnteach sa dh’ fhaodadh e a bhith, na chomharra semantach de loidhne falamh.

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

Gus cùisean a dhèanamh nas miosa, chan e dìreach iomradh semantach de shreang fhalamh a th’ againn an seo mar dhòigh neo-àbhaisteach air faclair a chuir an cèill - an turas seo tha am “faclair” air a chòdachadh gu dìreach mar bhuadhan den eileamaid freumh. Tha seo a’ fàgail an t-seata de dh’ ainmean buadhan a chaidh a thoirt seachad air eileamaid neo-mhìnichte agus fiùghantach. A bharrachd air an sin, tha e a’ sealltainn gur e co-chòrdadh sìmplidh prìomh luach a bh’ anns a h-uile ùghdar a bha ag iarraidh a chuir an cèill, ach an àite sin rinn e an co-dhùnadh gu tur neònach XML a chuir an sàs, a’ toirt air aon eileamaid falamh a chleachdadh dìreach mar ro-leasachan airson co-chòrdadh buadhan a chleachdadh. Agus bidh mi a’ tighinn tarsainn air sgeamaichean mar sin glè thric.

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

Is e seo rudeigin nas fheàrr, ach a-nis airson adhbhar air choireigin tha na h-iuchraichean meata-dàta agus chan eil na luachan. Sùil gu math annasach air faclairean. Ma bheir thu air falbh a h-uile taga is buadhan, thèid leth an fhiosrachaidh a chall.

Bhiodh abairt faclair ceart ann an XML a’ coimhead rudeigin mar seo:

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

Ach ma tha daoine air co-dhùnadh neònach XML a chleachdadh mar chruth dàta agus an uairsin a chleachdadh gus briathrachas a chuir air dòigh, bu chòir dhaibh tuigsinn gu bheil na tha iad a ’dèanamh neo-iomchaidh agus nach eil goireasach. Tha e cumanta cuideachd do luchd-dealbhaidh XML a thaghadh le mearachd airson na tagraidhean aca a chruthachadh. Ach eadhon nas trice, bidh iad a’ dèanamh cùisean nas miosa le bhith a’ cleachdadh XML gun bhrìgh ann an aon de na cruthan a chaidh a mhìneachadh gu h-àrd, a’ seachnadh nach eil XML dìreach freagarrach airson seo.

Sgeama XML as miosa? Co-dhiù, an duais airson an sgeama XML as miosa a chunnaic mi a-riamh, A’ faighinn an cruth faidhle rèiteachaidh solarachaidh fèin-ghluasadach airson fònaichean fòn Polycom IP. Feumaidh na faidhlichean sin faidhlichean iarrtas XML a luchdachadh sìos tro TFTP, a tha... San fharsaingeachd, seo earrann à aon fhaidhle den leithid:

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

Chan e seo droch fealla-dhà cuideigin. Agus chan e seo an innleachd agam:

  • tha eileamaidean dìreach air an cleachdadh mar ro-leasachan gus buadhan a cheangal, aig a bheil ainmean rangachd fhèin.
  • Ma tha thu airson luachan a shònrachadh do iomadh suidheachadh de sheòrsa sònraichte de chlàr, feumaidh tu ainmean buadhan a chleachdadh gus seo a dhèanamh. aig a bheil clàran-amais.
  • A bharrachd air an sin, feartan a 'tòiseachadh le softkey., feumar a chur air eileamaidean <softkey/>, buadhan a’ tòiseachadh le feature., feumar a chur air eileamaidean <feature/> msaa, a dh'aindeoin 's gu bheil e a' coimhead gu tur neo-riatanach agus aig a 'chiad shealladh gun bhrìgh.
  • Agus mu dheireadh, nam biodh tu an dòchas gum biodh a’ chiad phàirt de ainm feart an-còmhnaidh co-ionann ri ainm an eileamaid - gun dad mar sin! Mar eisimpleir, feartan up. feumar a bhith ceangailte ris <userpreferences/>. Tha an òrdugh airson ainmean buadhan a cheangal ri eileamaidean neo-riaghailteach, cha mhòr gu tur.

Sgrìobhainnean no dàta. Gach turas ann an ùine, bidh cuideigin a 'dèanamh rudeigin gu tur neònach le bhith a' feuchainn ri coimeas a dhèanamh eadar XML agus JSON - agus mar sin a 'sealltainn nach eil iad a' tuigsinn nas motha. Tha XML na chànan comharrachaidh sgrìobhainnean. Is e cruth dàta structarail a th’ ann an JSON, agus mar sin tha an coimeas ri chèile coltach ri bhith a’ feuchainn ri coimeas a dhèanamh eadar blàth agus bog.

Tha bun-bheachd an eadar-dhealachadh eadar sgrìobhainnean agus dàta. Mar analogue de XML, is urrainn dhuinn sgrìobhainn a ghabhas leughadh le inneal a ghabhail le cumha. Ged a thathar an dùil a bhith furasta a leughadh le inneal, tha e a’ toirt iomradh metaphorically air sgrìobhainnean, agus bhon t-sealladh seo tha e dha-rìribh an coimeas ri sgrìobhainnean PDF, a tha mar as trice nach gabh leughadh le inneal.

Mar eisimpleir, ann an XML tha òrdugh nan eileamaidean cudromach. Ach ann an JSON, tha òrdugh paidhrichean prìomh luach taobh a-staigh nithean gun bhrìgh agus neo-mhìnichte. Ma tha thu airson faclair neo-òrdaichte de chàraidean prìomh luach fhaighinn, chan eil e gu diofar dè an òrdugh anns a bheil na h-eileamaidean a’ nochdadh san fhaidhle sin. Ach faodaidh tu iomadh seòrsa dàta a chruthachadh bhon dàta seo. de sgrìobhainnean, oir tha òrdugh sònraichte anns an sgrìobhainn. Gu metaphorically, tha e coltach ri sgrìobhainn air pàipear, ged nach eil tomhasan fiosaigeach aige, eu-coltach ri clò-bhualadh no faidhle PDF.

Tha an eisimpleir agam de riochdachadh faclair XML ceart a’ sealltainn òrdugh nan eileamaidean san fhaclair, an taca ri riochdachadh JSON. Chan urrainn dhomh an òrdugh seo a leigeil seachad: tha an sreathachd seo dualach do mhodail na sgrìobhainn agus cruth XML. Faodaidh cuid roghnachadh dearmad a dhèanamh air an òrdugh nuair a thathar a’ mìneachadh an sgrìobhainn XML seo, ach chan eil adhbhar ann a bhith ag argamaid mu dheidhinn seo leis gu bheil a’ chùis taobh a-muigh raon deasbaid air a’ chruth fhèin. A bharrachd air an sin, ma nì thu an sgrìobhainn ri fhaicinn sa bhrobhsair le bhith a’ ceangal duilleag stoidhle cascading ris, chì thu gu bheil na h-eileamaidean faclair a’ nochdadh ann an òrdugh sònraichte agus gun a bhith ann an dòigh sam bith eile.

Ann am faclan eile, faodar faclair (pìos de dhàta structaraichte) a thionndadh gu n diofar sgrìobhainnean a dh’ fhaodadh a bhith ann (ann an XML, PDF, pàipear, msaa), far a bheil n - an àireamh de choimeasgaidhean comasach de eileamaidean anns an fhaclair, agus chan eil sinn fhathast air aire a thoirt do chaochladairean eile.

Ach, tha e cuideachd a 'leantainn ma tha thu airson gluasad a-mhàin dàta, an uair sin a' cleachdadh inneal-leughaidh sgrìobhainn airson seo cha bhi èifeachdach. Bidh e a 'cleachdadh modail, a tha sa chùis seo iomarcach; chan fhaigh e ach air an t-slighe. A bharrachd air an sin, gus an stòr dàta a tharraing, feumaidh tu prògram a sgrìobhadh. Cha mhòr gu bheil feum sam bith ann a bhith a’ cleachdadh XML airson rudeigin nach tèid a chruth mar sgrìobhainn aig àm air choreigin (can, a’ cleachdadh CSS no XSLT, no an dà chuid), oir is e sin am prìomh adhbhar (mura h-e an aon rud) airson sin a dhèanamh. gu modail na sgrìobhainn.

A bharrachd air an sin, leis nach eil bun-bheachd aig XML air àireamhan (no abairtean Boolean, no seòrsachan dàta eile), thathas a’ beachdachadh air a h-uile àireamh a tha air a riochdachadh sa chruth seo dìreach teacsa a bharrachd. Gus dàta a tharraing, feumaidh fios a bhith aig an sgeama agus an dàimh a th’ aige ris an dàta co-fhreagarrach a thathar a’ cur an cèill. Feumaidh fios a bhith agad cuideachd cuin, stèidhichte air a’ cho-theacsa, gu bheil eileamaid teacsa sònraichte a’ riochdachadh àireamh agus a bu chòir a thionndadh gu àireamh, msaa.

Mar sin, chan eil am pròiseas airson dàta a tharraing à sgrìobhainnean XML cho eadar-dhealaichte bhon phròiseas a bhith ag aithneachadh sgrìobhainnean a chaidh a sganadh anns a bheil, mar eisimpleir, clàran a tha a’ dèanamh suas mòran dhuilleagan de dhàta àireamhach. Tha, tha e comasach seo a dhèanamh ann am prionnsapal, ach chan e seo an dòigh as fheàrr, ach a-mhàin mar an roghainn mu dheireadh, nuair nach eil roghainnean sam bith eile ann. Is e fuasgladh reusanta dìreach leth-bhreac didseatach den dàta tùsail a lorg nach eil freumhaichte ann am modail sgrìobhainn a tha a’ cothlamadh an dàta leis an riochdachadh teacsa sònraichte aige.

Thuirt sin, chan eil e na iongnadh dhomh gu bheil fèill mhòr air XML ann an gnìomhachas. Is e an adhbhar airson seo gu cinnteach gu bheil cruth na sgrìobhainn (air pàipear) furasta a thuigsinn agus eòlach air gnìomhachas, agus tha iad airson leantainn orra a’ cleachdadh modal eòlach agus so-thuigsinn. Air an aon adhbhar, bidh gnìomhachasan ro thric a’ cleachdadh sgrìobhainnean PDF an àite chruthan a ghabhas leughadh le inneal - leis gu bheil iad fhathast ceangailte ri bun-bheachd duilleag clò-bhuailte le meud corporra sònraichte. Tha seo eadhon a’ buntainn ri sgrìobhainnean nach eil dualtach a bhith air an clò-bhualadh a-riamh (mar eisimpleir, PDF 8000-duilleag de sgrìobhainnean clàraidh). Bhon t-sealladh seo, tha cleachdadh XML ann an gnìomhachas gu ìre mhòr na dhearbhadh air skeuomorphism. Bidh daoine a 'tuigsinn a' bheachd metaphorical de dhuilleag clò-bhuailte de mheud cuingealaichte, agus tha iad a 'tuigsinn mar a chruthaicheas iad pròiseasan gnìomhachais stèidhichte air sgrìobhainnean clò-bhuailte. Mas e sin an stiùireadh agad, tha sgrìobhainnean gun chuingealachaidhean meud corporra a ghabhas leughadh le inneal - sgrìobhainnean XML - a’ riochdachadh ùr-ghnàthachadh fhad ‘s a tha iad nan co-aoisean sgrìobhainnean eòlach agus comhfhurtail. Chan eil seo a’ cur stad orra bho bhith a’ fuireach mar dhòigh ceàrr agus ro skeuomorphic airson dàta a thaisbeanadh.

Gu ruige seo, is e XHTML agus DocBook na h-aon sgeamaichean XML as aithne dhomh as urrainn dhomh cleachdadh dligheach den chruth a ghairm.

Source: www.habr.com

Cuir beachd ann