XML kusan ana amfani da shi ba daidai ba

XML kusan ana amfani da shi ba daidai ba
An ƙirƙira yaren XML a cikin 1996. Ba da daɗewa ba ya bayyana sai an fara fahimtar yiwuwar aikace-aikacensa, kuma don dalilan da suke ƙoƙarin daidaita shi, ba shine mafi kyawun zaɓi ba.

Ba ƙari ba ne a faɗi cewa mafi yawan tsare-tsaren XML da na gani ba su dace ko amfani da XML ba daidai ba. Bugu da ƙari, wannan amfani da XML ya nuna ainihin rashin fahimtar abin da XML ke ciki.

XML harshe ne mai alamar alama. Wannan ba tsarin bayanai bane. Yawancin tsare-tsare na XML sun yi watsi da wannan bambance-bambance, suna rikitar da XML tare da tsarin bayanai, wanda a ƙarshe ya haifar da kuskure wajen zaɓar XML saboda tsarin bayanan da ake bukata.

Ba tare da yin cikakken bayani ba, XML ya fi dacewa don bayyana tubalan rubutu tare da tsari da metadata. Idan babban burin ku ba shine yin aiki tare da toshe rubutu ba, zaɓin XML ba zai yuwu ku zama barata ba.

Daga wannan ra'ayi, akwai hanya mai sauƙi don duba yadda aka tsara tsarin XML. Bari mu ɗauki a matsayin misali daftari a cikin tsarin da aka yi niyya kuma mu cire duk tags da sifofi daga gare ta. Idan abin da ya rage bai yi ma'ana ba (ko kuma idan akwai bargon layi), to ko dai ba a gina tsarin ku daidai ba ko kuma kawai bai kamata ku yi amfani da XML ba.

A ƙasa zan ba da wasu misalai na gama gari na da'irori da ba daidai ba.

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

Anan mun ga misalin mara tushe kuma baƙon (ko da yake na gama gari) ƙoƙarin bayyana ƙamus mai sauƙi-daraja a cikin XML. Idan ka cire duk tags da sifofi, za a bar ka da jere mara komai. Mahimmanci, wannan takarda, komai rashin hankali ne, bayanin ma'ana na layin mara komai.

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

Don yin muni, ba wai kawai muna da bayanin ma’anar jumlar kirtani mara komai ba a nan a matsayin wata babbar hanya ta bayyana ƙamus - wannan lokacin “kamus” an sanya shi kai tsaye a matsayin sifofi na tushen tushen. Wannan yana sanya saitin sifa da aka bayar akan wani kashi mara fayyace kuma mai ƙarfi. Bugu da ƙari, yana nuna cewa duk marubucin da gaske yana so ya bayyana shi ne madaidaicin maɓalli-daraja, amma a maimakon haka ya yanke shawara mai ban mamaki don amfani da XML, ya tilasta yin amfani da nau'in fanko guda ɗaya kawai a matsayin prefix don amfani da sifa na sifa. Kuma sau da yawa ina cin karo da irin wannan makirci.

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

Wannan wani abu ne mafi kyau, amma yanzu saboda wasu dalilai maɓallan metadata ne kuma ƙimar ba haka bane. Wani ban mamaki kallon ƙamus. Idan ka cire duk tags da sifofi, rabin bayanin zai ɓace.

Madaidaicin bayanin ƙamus a cikin XML zai yi kama da wani abu kamar haka:

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

Amma idan mutane sun yanke shawara mai ban mamaki don amfani da XML azaman tsarin bayanai sannan suyi amfani da shi don tsara ƙamus, to yakamata su fahimci cewa abin da suke yi bai dace ba kuma bai dace ba. Hakanan ya zama ruwan dare ga masu ƙira suyi kuskuren zaɓi XML don ƙirƙirar aikace-aikacen su. Amma ko da sau da yawa, suna ƙara yin muni ta hanyar amfani da XML marasa ma'ana a cikin ɗayan nau'ikan da aka bayyana a sama, suna watsi da gaskiyar cewa XML bai dace da wannan ba.

Mafi munin Tsarin XML? Af, kyautar ga mafi munin tsarin XML da na taɓa gani, Yana samun tsarin fayil ɗin tsari na samarwa ta atomatik don Polycom IP wayar tarho. Irin waɗannan fayilolin suna buƙatar zazzage fayilolin buƙatun XML ta hanyar TFTP, waɗanda... Gaba ɗaya, ga wani yanki daga ɗaya irin wannan fayil ɗin:

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

Wannan ba mummunan wargi bane. Kuma wannan ba ƙirƙira tawa ba ce:

  • abubuwa ana amfani da su kawai azaman prefix don haɗa halaye, waɗanda su kansu suna da sunaye.
  • Idan kana son sanya ƙima zuwa lokuta da yawa na wani nau'in rikodin, dole ne ka yi amfani da sunaye don yin wannan. wanda ke da alamomi.
  • Bugu da kari, halayen farawa da softkey., dole ne a sanya shi akan abubuwa <softkey/>, halayen farawa da feature., dole ne a sanya shi akan abubuwa <feature/> da dai sauransu, duk da cewa ya dubi gaba daya ba dole ba kuma da farko kallo marar ma'ana.
  • Kuma a ƙarshe, idan kuna fatan cewa ɓangaren farko na sunan sifa koyaushe zai kasance iri ɗaya da sunan kashi - babu kamar haka! Misali, halaye up. dole ne a haɗe zuwa <userpreferences/>. Tsarin liƙa sunaye ga abubuwa sabani ne, kusan gaba ɗaya.

Takaddun bayanai ko bayanai. Kowane lokaci a cikin wani lokaci, wani yana yin wani abu gaba ɗaya mai ban mamaki ta ƙoƙarin kwatanta XML da JSON - don haka yana nuna cewa ba su fahimta ba. XML yaren alamar daftarin aiki ne. JSON tsarin bayanai ne da aka tsara, don haka kwatanta su da juna kamar ƙoƙarin kwatanta dumi da taushi.

Ma'anar bambanci tsakanin takardu da bayanai. A matsayin analogue na XML, za mu iya ɗaukar takaddun da za a iya karantawa cikin na'ura bisa sharaɗi. Ko da yake ana son ya zama na’ura mai karantawa, amma yana nufin a misalta takardu, kuma daga wannan ra’ayi yana kama da takardun PDF, waɗanda galibi ba a iya karanta na’ura ba.

Misali, a cikin XML tsarin abubuwa yana da mahimmanci. Amma a cikin JSON, tsari na maɓalli-darajar nau'i-nau'i a cikin abubuwa bashi da ma'ana kuma ba a bayyana shi ba. Idan kana son samun ƙamus mara tsari na maɓalli-darajar nau'i-nau'i, ainihin tsari wanda abubuwan da ke cikin wannan fayil ɗin ba su da matsala. Amma kuna iya ƙirƙirar nau'ikan bayanai da yawa daga wannan bayanan. na takardu, saboda akwai takamaiman tsari a cikin takaddar. Metaphorically, yana da kwatankwacin daftarin aiki akan takarda, kodayake ba shi da girman jiki, sabanin bugu ko fayil ɗin PDF.

Misali na na daidaitaccen ƙamus na XML yana nuna tsarin abubuwan da ke cikin ƙamus, sabanin wakilcin JSON. Ba zan iya yin watsi da wannan odar ba: wannan layin yana cikin tsarin daftarin aiki da tsarin XML. Wasu na iya zaɓar yin watsi da oda lokacin fassara wannan takaddar XML, amma babu wata fa'ida a cikin jayayya game da wannan tunda batun ya wuce iyakar tattaunawar tsarin kanta. Bugu da ƙari, idan ka sanya takaddar a iya gani a cikin mazuruftan ta hanyar makala takardan salon cascading zuwa gare ta, za ka ga cewa abubuwan ƙamus suna bayyana a cikin wani tsari kuma babu wani.

A wasu kalmomi, ƙamus (wani yanki na bayanan da aka tsara) ana iya canza shi zuwa n daban-daban yiwu takardun (a cikin XML, PDF, takarda, da dai sauransu), inda n - adadin yuwuwar haɗakar abubuwa a cikin ƙamus, kuma ba mu riga mun yi la'akari da wasu masu iya canzawa ba.

Duk da haka, ya kuma biyo bayan cewa idan kuna son canja wurin bayanai kawai, to amfani da daftarin aiki na inji don wannan ba zai yi tasiri ba. Yana amfani da samfurin, wanda a cikin wannan yanayin ya wuce gona da iri; kawai zai shiga hanya. Bugu da kari, don fitar da bayanan tushen, kuna buƙatar rubuta shirin. Babu wata ma'ana ta amfani da XML don wani abu da ba za a tsara shi azaman takarda ba a wani lokaci (ce, ta amfani da CSS ko XSLT, ko duka biyun), tunda wannan shine babban (idan ba shine kaɗai) dalilin yin hakan ba. zuwa samfurin daftarin aiki.

Bugu da ƙari, tun da XML ba shi da ra'ayi na lambobi (ko maganganun Boolean, ko wasu nau'ikan bayanai), duk lambobin da aka wakilta a cikin wannan tsarin ana ɗaukar su kawai ƙarin rubutu. Don cire bayanai, dole ne a san tsarin da dangantakarsa da bayanan da suka dace da ake bayyanawa. Hakanan kuna buƙatar sanin lokacin, dangane da mahallin, wani ɓangaren rubutu yana wakiltar lamba kuma yakamata a canza shi zuwa lamba, da sauransu.

Don haka, tsarin fitar da bayanai daga takardun XML bai bambanta da tsarin tantance takaddun da ke ɗauke da, alal misali, allunan da ke samar da shafuka masu yawa na bayanan ƙididdiga ba. Haka ne, yana yiwuwa a yi wannan bisa manufa, amma wannan ba shine mafi kyawun hanya ba, sai dai a matsayin makoma ta ƙarshe, lokacin da babu sauran zaɓuɓɓuka. Magani mai ma'ana ita ce kawai nemo kwafin dijital na ainihin bayanan da ba a sanya shi a cikin ƙirar daftarin aiki wanda ya haɗa bayanai tare da takamaiman rubutun sa.

Wannan ya ce, ba ya ba ni mamaki ko kadan cewa XML ya shahara a kasuwanci. Dalilin wannan shi ne daidai cewa tsarin daftarin aiki (a kan takarda) yana iya fahimta kuma ya saba da kasuwanci, kuma suna so su ci gaba da amfani da samfurin da aka saba da su. Saboda wannan dalili, 'yan kasuwa su kan yi amfani da takaddun PDF maimakon ƙarin nau'ikan nau'ikan da za a iya karantawa na inji - saboda har yanzu suna da alaƙa da manufar bugu da ke da takamaiman girman jiki. Wannan ma ya shafi takaddun da ba za a taɓa iya bugawa ba (misali, PDF mai shafi 8000 na takaddun rajista). Daga wannan ra'ayi, amfani da XML a cikin kasuwanci shine ainihin bayyanar skeuomorphism. Mutane sun fahimci ra'ayin kwatankwacin bugu na shafi mai iyaka, kuma sun fahimci yadda ake ƙirƙirar hanyoyin kasuwanci bisa takaddun bugu. Idan wannan shine jagorar ku, takaddun ba tare da iyakance girman jiki ba waɗanda ke iya karanta na'ura-takardun XML-suna wakiltar ƙira yayin kasancewa takwarar takaddun da aka saba da su. Wannan baya hana su ci gaba da kasancewa hanyar da ba daidai ba kuma ta wuce gona da iri ta gabatar da bayanai.

Har zuwa yau, kawai tsarin XML da na sani game da hakan da gaske zan iya kiran ingantaccen amfani da tsarin shine XHTML da DocBook.

source: www.habr.com

Add a comment