Ang XML halos kanunay nga sayop nga gigamit

Ang XML halos kanunay nga sayop nga gigamit
Ang XML nga pinulongan naimbento niadtong 1996. Sa wala madugay nga kini nagpakita nga ang mga posibilidad sa paggamit niini nagsugod na nga dili masabtan, ug alang sa mga katuyoan nga ilang gipaningkamutan nga ipahiangay kini, dili kini ang pinakamaayo nga pagpili.

Dili pagpasobra ang pag-ingon nga ang kadaghanan sa XML schema nga akong nakita dili angay o sayop nga paggamit sa XML. Dugang pa, kini nga paggamit sa XML nagpakita sa usa ka sukaranan nga dili pagsinabtanay kung unsa ang XML.

Ang XML kay markup language. Dili kini usa ka format sa datos. Kadaghanan sa mga eskema sa XML klaro nga wala magtagad niini nga kalainan, naglibog sa XML sa usa ka format sa datos, nga sa katapusan nagresulta sa usa ka sayup sa pagpili sa XML tungod kay kini ang format sa datos nga gikinahanglan.

Kung wala’y daghang detalye, ang XML labing angay alang sa pag-annotate sa mga bloke sa teksto nga adunay istruktura ug metadata. Kung ang imong panguna nga katuyoan dili ang pagtrabaho sa usa ka bloke sa teksto, ang pagpili sa XML dili mahimo nga makatarunganon.

Gikan niini nga punto sa panglantaw, adunay usa ka yano nga paagi sa pagsusi kon unsa ka maayo ang XML schema gihimo. Atong kuhaon ingon nga usa ka pananglitan ang usa ka dokumento sa gituyo nga schema ug tangtangon ang tanan nga mga tag ug mga hiyas gikan niini. Kung ang nahabilin dili makatarunganon (o kung adunay usa ka blangko nga linya nga nahabilin), kung ang imong schema wala matukod sa husto o dili gyud nimo gigamit ang XML.

Sa ubos ihatag nako ang pipila sa labing kasagaran nga mga pananglitan sa dili husto nga pagkatukod nga mga sirkito.

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

Dinhi atong makita ang usa ka pananglitan sa usa ka walay basehanan ug katingad-an (bisan kasagaran kaayo) nga pagsulay sa pagpahayag sa usa ka yano nga key-value nga diksyonaryo sa XML. Kung imong tangtangon ang tanan nga mga tag ug mga hiyas, mabiyaan ka nga adunay usa ka walay sulod nga laray. Sa esensya, kini nga dokumento, bisan unsa pa kini ka binuang, usa ka semantiko nga anotasyon sa usa ka walay sulod nga linya.

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

Ang mas grabe pa, dili lang kita adunay semantiko nga anotasyon sa usa ka walay sulod nga hilo dinhi isip usa ka maluho nga paagi sa pagpahayag sa usa ka diksyonaryo - niining higayona ang "diksyonaryo" direkta nga gi-encode isip mga kinaiya sa elemento sa gamut. Kini naghimo sa gihatag nga hugpong sa mga ngalan sa hiyas sa usa ka elemento nga dili matino ug dinamiko. Dugang pa, kini nagpakita nga ang tanan nga gusto sa tagsulat nga gusto nga ipahayag mao ang usa ka yano nga key-value syntax, apan sa baylo naghimo siya sa hingpit nga katingad-an nga desisyon sa paggamit sa XML, nga nagpugos sa paggamit sa usa ka walay sulod nga elemento isip prefix lamang sa paggamit sa attribute syntax. Ug kanunay kong makit-an ang ingon nga mga laraw.

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

Kini usa ka butang nga mas maayo, apan karon sa pipila ka mga hinungdan ang mga yawe metadata ug ang mga kantidad dili. Usa ka talagsaon nga pagtan-aw sa mga diksyonaryo. Kung imong tangtangon ang tanan nga mga tag ug mga hiyas, ang katunga sa impormasyon mawala.

Ang husto nga ekspresyon sa diksyonaryo sa XML mahimong sama niini:

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

Apan kung ang mga tawo nakahimog katingad-an nga desisyon nga gamiton ang XML ingon usa ka format sa datos ug dayon gamiton kini aron maorganisar ang usa ka bokabularyo, nan kinahanglan nila nga masabtan nga ang ilang gibuhat dili angay ug dili kombenyente. Kasagaran usab alang sa mga tigdesinyo nga nasayop sa pagpili sa XML aron mahimo ang ilang mga aplikasyon. Apan mas kanunay, gipasamot nila ang mga butang pinaagi sa walay pulos nga paggamit sa XML sa usa sa mga porma nga gihulagway sa ibabaw, nga wala magtagad sa kamatuoran nga ang XML dili angay alang niini.

Labing daotan nga XML Schema? Pinaagi sa dalan, ang premyo alang sa ang pinakagrabe nga XML schema nga akong nakita, Nakuha ang awtomatikong provisioning configuration file format para sa Polycom IP telephony nga mga telepono. Ang ingon nga mga file nanginahanglan pag-download sa mga file sa hangyo sa XML pinaagi sa TFTP, nga... Sa kinatibuk-an, ania ang usa ka kinutlo gikan sa usa sa ingon nga file:

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

Dili kini daotan nga joke sa usa ka tawo. Ug dili kini ang akong imbensyon:

  • Ang mga elemento kay gigamit lang isip prefix sa pag-attach sa mga attribute, nga adunay mga hierarchical nga ngalan.
  • Kung gusto nimo nga hatagan ang mga kantidad sa daghang mga higayon sa usa ka partikular nga klase sa rekord, kinahanglan nimo nga gamiton ang mga ngalan sa hiyas aron mahimo kini. nga adunay mga indeks.
  • Dugang pa, ang mga hiyas nagsugod sa softkey., kinahanglan ibutang sa mga elemento <softkey/>, mga hiyas nga nagsugod sa feature., kinahanglan ibutang sa mga elemento <feature/> ug uban pa, bisan pa sa kamatuoran nga kini tan-awon nga hingpit nga wala kinahanglana ug sa una nga pagtan-aw wala’y kahulogan.
  • Ug sa katapusan, kung naglaum ka nga ang una nga sangkap sa usa ka ngalan sa hiyas kanunay nga parehas sa ngalan sa elemento - wala’y ingon niana! Pananglitan, mga hiyas up. kinahanglan nga gilakip sa <userpreferences/>. Ang han-ay sa paglakip sa mga ngalan sa hiyas sa mga elemento kay arbitraryo, halos hingpit.

Mga dokumento o datos. Matag karon ug unya, adunay usa nga naghimo sa usa ka butang nga hingpit nga katingad-an pinaagi sa pagsulay sa pagtandi sa XML ug JSON-ug sa ingon nagpakita nga wala usab sila makasabut. XML mao ang usa ka dokumento markup pinulongan. Ang JSON usa ka structured nga format sa datos, mao nga ang pagtandi kanila sa usag usa sama sa pagsulay sa pagtandi sa init sa humok.

Ang konsepto sa kalainan tali sa mga dokumento ug datos. Isip usa ka analogue sa XML, mahimo natong kondisyon nga makuha ang usa ka dokumento nga mabasa sa makina. Bisan tuod kini gituyo nga mahimong mabasa sa makina, kini nagtumong sa metapora nga paagi sa mga dokumento, ug gikan niini nga punto sa panglantaw sa pagkatinuod ikatandi sa PDF nga mga dokumento, nga kasagaran dili mabasa sa makina.

Pananglitan, sa XML ang han-ay sa mga elemento hinungdanon. Apan sa JSON, ang han-ay sa key-value pairs sulod sa mga butang walay kahulogan ug wala matino. Kung gusto nimo makakuha usa ka dili masunud nga diksyonaryo sa mga pares nga kantidad sa yawe, ang tinuud nga pagkasunud kung diin makita ang mga elemento sa kana nga file dili igsapayan. Apan mahimo nimong maporma ang daghang lainlaing klase sa datos gikan sa kini nga datos. sa mga dokumento, tungod kay adunay usa ka order sa dokumento. Sa metapora, susama kini sa usa ka dokumento sa papel, bisan kung wala kini pisikal nga mga sukat, dili sama sa usa ka printout o PDF file.

Ang akong pananglitan sa tukma nga representasyon sa diksyonaryo sa XML nagpakita sa han-ay sa mga elemento sa diksyonaryo, sukwahi sa representasyon sa JSON. Dili nako ibaliwala kini nga order: kini nga linearity kay kinaiyanhon sa modelo sa dokumento ug format sa XML. Mahimong pilion sa uban nga dili ibaliwala ang han-ay sa paghubad sa kini nga XML nga dokumento, apan wala’y kapuslanan ang paglalis bahin niini tungod kay ang isyu lapas sa sulud sa usa ka diskusyon sa format mismo. Dugang pa, kung imong himoon ang dokumento nga makita sa browser pinaagi sa paglakip sa usa ka cascading style sheet niini, imong makita nga ang mga elemento sa diksyonaryo makita sa usa ka piho nga han-ay ug wala nay lain.

Sa laing pagkasulti, ang usa ka diksyonaryo (usa ka piraso sa structured data) mahimong ma-convert ngadto sa n nagkalain-laing posibleng mga dokumento (sa XML, PDF, papel, ug uban pa), diin n - ang gidaghanon sa posible nga mga kombinasyon sa mga elemento sa diksyonaryo, ug wala pa namo tagda ang ubang posibleng mga baryable.

Bisan pa, gisundan usab niini nga kung gusto nimo nga ibalhin ang data lamang, nan ang paggamit sa usa ka dokumento nga mabasa sa makina alang niini dili epektibo. Naggamit kini usa ka modelo, nga sa kini nga kaso sobra ra; kini makabalda lamang. Dugang pa, aron makuha ang gigikanan nga datos, kinahanglan nimo nga magsulat usa ka programa. Wala’y punto sa paggamit sa XML alang sa usa ka butang nga dili maporma ingon usa ka dokumento sa usa ka punto (ingon, gamit ang CSS o XSLT, o pareho), tungod kay kana ang panguna (kung dili lamang) nga hinungdan sa pagbuhat sa ingon. sa modelo sa dokumento.

Dugang pa, tungod kay ang XML walay konsepto sa mga numero (o Boolean nga mga ekspresyon, o uban pang matang sa datos), ang tanang numero nga girepresentahan niini nga pormat giisip lamang nga dugang nga teksto. Aron makuha ang datos, ang schema ug ang relasyon niini sa katugbang nga datos nga gipahayag kinahanglan mahibal-an. Kinahanglan usab nimo nga mahibal-an kung kanus-a, base sa konteksto, ang usa ka partikular nga elemento sa teksto nagrepresentar sa usa ka numero ug kinahanglan nga i-convert sa usa ka numero, ug uban pa.

Sa ingon, ang proseso sa pagkuha sa datos gikan sa mga dokumento sa XML dili kaayo lahi sa proseso sa pag-ila sa na-scan nga mga dokumento nga adunay sulud, pananglitan, mga lamesa nga nagporma daghang mga panid sa numerical data. Oo, posible nga buhaton kini sa prinsipyo, apan dili kini ang labing kamalaumon nga paagi, gawas sa katapusan nga paagi, kung wala’y lain nga kapilian. Ang usa ka makatarunganon nga solusyon mao ang pagpangita sa usa ka digital nga kopya sa orihinal nga datos nga wala gilakip sa usa ka modelo sa dokumento nga naghiusa sa datos sa iyang piho nga representasyon sa teksto.

Ingon niana, dili nako ikatingala nga ang XML popular sa negosyo. Ang hinungdan niini mao nga ang format sa dokumento (sa papel) masabtan ug pamilyar sa negosyo, ug gusto nila nga magpadayon sa paggamit sa usa ka pamilyar ug masabtan nga modelo. Sa parehas nga hinungdan, ang mga negosyo kanunay nga naggamit sa mga dokumento sa PDF imbes nga daghang mga format nga mabasa sa makina - tungod kay nahigot pa sila sa konsepto sa usa ka giimprinta nga panid nga adunay piho nga pisikal nga gidak-on. Naaplikar pa gani kini sa mga dokumento nga lagmit dili maimprinta (pananglitan, usa ka 8000-panid nga PDF sa dokumentasyon sa rehistro). Gikan sa kini nga punto sa panan-aw, ang paggamit sa XML sa negosyo usa ka pagpadayag sa skeuomorphism. Nasabtan sa mga tawo ang metapora nga ideya sa usa ka giimprinta nga panid nga limitado ang gidak-on, ug nahibal-an nila kung giunsa paghimo ang mga proseso sa negosyo base sa giimprinta nga mga dokumento. Kung kana ang imong giya, ang mga dokumento nga wala’y limitasyon sa pisikal nga gidak-on nga mabasa sa makinaβ€”mga dokumento sa XMLβ€”nagrepresentar sa kabag-ohan samtang pamilyar ug komportable nga kauban sa dokumento. Dili kini makapugong kanila sa pagpabilin nga dili husto ug sobra ka skeuomorphic nga paagi sa pagpresentar sa datos.

Hangtod karon, ang bugtong XML schemas nga akong nahibal-an nga tinuod nakong matawag nga balido nga paggamit sa format mao ang XHTML ug DocBook.

Source: www.habr.com

Idugang sa usa ka comment