XML-sõnaraamatu vastuvõtmise kiirendamine

Original:  http://xfront.com/accelerating-adoption-of-XML-vocabularies/

Kas soovite oma XML-sõnaraamatu vastuvõtmist kiirendada? Üheks võimaluseks on, et igaüks kasutas seda 800-le naelise gorillaga. Kuid see toob peagi kaasa pahameele ja mässu. Parem viis on luua midagi, mida inimesed tõesti tahavad kasutada ja ei nõua neilt suurt investeeringut aega ega raha ning võimaldavad neil kohe koostoimida. Nii toimige järgmiselt.

  1. Kui loote oma XML sõnavara, mitte ainult kindla tähenduse märgistuskeel, vaid ka oma käitumist rakendusi, mis töötlevad seda.
  2. Määrake vastavuse eeskirjadega.
  3. Loo test suite.
  4. Loo rakendus, mis rakendab käitumist.
  5. Kinnitab taotluse vastu test suite.
  6. Tee kohaldamise kättesaadavaks kogu maailmas.

Ideaalis luuakse rakenduse mitu rakendust (loomulikult on kõik samad käitumised!). Sel moel saavad kasutajad valida rakenduse, mis põhineb selle jõudlusele või suurusele või millisele programmeerimiskeelt sellele rakendati.

See ongi! Tehke seda ja oma XML-sõnavara saab kiiresti vastu võtta.

Näide: Mõtle XSLT sõnavara. XSLT-spetsifikatsioon täpsustab mitte ainult iga elemendi ja atribuudi tähendust, vaid ka nende käitumist. XSLT spetsifikatsioon sisaldab vastavuse eeskirju. Siin on XSLT test komplekt. On loodud rakendus XSLT-protsessor, mis rakendab XSLT spetsifikatsioonis määratletud käitumist. Tegelikult on loodud rakenduse mitu rakendust: Xalan, Saxon, Sableton ja teised.

Lubage mul töötada natuke rohkem sellest, mida ma mõtlen “täpsustades käitumist.” Mõtle uuesti XSLT. XSLT spetsifikatsiooni ütleb, et <xsl:for-each> elemendi identifitseerib kogumik sõlmedes. See on tähendus. Samuti ütleb, et ühilduva rakenduse peab Käi iga sõlme tuvastatud valige atribuut (for-iga element on valitud atribuut) ning käivita elemendid <xsl:for-each>. See on käitumine. Seega XSLT spetsifikatsiooni täpsustab, kuidas peab avaldus käituda <xsl:for-each> element. Sama kogu XSLT sõnavara.

XML Schema spetsifikatsioon aitab korralikult määrata XML Schema valideerijate käitumist. Näiteks täpsustab see, et XML Schemas olevate elementide deklareerimiseks peab validator kontrollima, kas XML-i eksemplari dokument sisaldab õige elementide esinemisjuhtumit ja selle sisu on õiget tüüpi. Seega täpsustab see, kuidas valideerija peab XML Schema sõnavara käituma. Nii et “käitumise täpsustamiseks” tähendab “selle elemendi (või atribuudi) kirjeldamist sõnavaras, peab rakendus seda tegema, seda ja seda.”

XML-sõnavara loomisel on viga, et nad ei suuda oma käitumist täpsustada. Nad jätavad selle “maailma” välja, et välja selgitada, mis käitumine peaks olema. Selle klassikaline näide on HTML. Brauseri arendajad pidid otsustama, mis käitumine peaks olema. Neil oli väga erinevad ideed õige käitumise kohta. Selle tagajärjeks oli, et IE, Firefox ja teised brauserid käitusid erinevalt. Selleks kulus kümme aastat, enne kui nad lõpuks ühinesid käitumise ühiste arusaamadega. Kui HTML-i spetsifikatsioon kirjeldas käitumist, vastavuse eeskirju ja katseseadet, oleksime kümme aastat tagasi käitunud samamoodi käitunud brauseritega.

Üks asi, mida peate arvestama käitumise määratlemisel, on see: kas teie XML-sõnavara lisatakse rakendusse kui üks XML-dokument või kaks XML-dokumenti? (Või rohkem?) Võtame mõned näited, mida ma mõtlen:

  • Browser rakenduste protsessi üks dokument (HTML dokument)
  • XML Schema kontrollijaid töödelda kaks dokumenti (XML Schema dokument ja XML dokument)
  • XSLT töötlejad töötlevad kaks dokumenti (XSLT dokument ja XML dokument)

Nendes näidetes on rakendused: brauser, XML Schema valideerija ja XSLT-protsessor. Need rakendused töötlevad XML-sõnavara. Sõltuvalt XML sõnavarast võib rakendus nõuda ühte sisendandmekandjat või kahte sisestust (või rohkem).

Andmete koostalitlusvõime

Olen tihti kuulnud seda öelnud: “Andmete koostalitlusvõime saavutamiseks peab iga rakendus XML-sõnaraamatu tõlgendama/mõistma samal viisil.”

Mis on parem viis sama tõlgendamise/mõistmise tagamiseks kui sama rakenduse kasutamine?

Kasutades sama rakendust, on meil täiuslik andmete koostalitlusvõime. MÄRKUS: kui ütlen “sama rakendus”, siis ma mõtlen rakenduste komplekti. Seega on Xalan, Saxon ja Sabletron kõik ühesugused rakendused – need on kõik XSLT protsessorid. Sama rakenduse kasutamine ei tähenda näiteks seda, et kõik kasutaksid Xalanit. Üks inimene võib kasutada Xalani, teine kasutab saksot ja teist Sabletronit. See on korras; neil kõigil on sama käitumine; nad kõik järgivad XSLT vastavuse eeskirju; nad kõik läbivad XSLT test komplekti.

Siin on näide, kuidas illustreerida, kuidas andmete koostalitlusvõime saavutatakse sama rakenduse ühiskasutusega.

Näide: kaaluge XSLT-i. Ma saan luua XSLT-dokumendi ja käivitada selle minu XSLT-protsessoril. Võin saata XSLT-dokumendi ja käivitada selle oma XSLT-protsessoril. Me saame sama käitumise. Oleme täiesti nõus sellega, mida tähendab element <xsl: for-each> ja kuidas see peaks käituma. Sarnaselt kõigi XSLT sõnavara muude elementide ja atribuutidega. Oleme edukalt koostoiminud. Mis lubas seda? Vastus: Mis võimaldas koostalitlusvõime seda, et me kasutame sama rakendust. (Veelgi enam, ma pean rõhutama, et see ei tähenda, et me kasutame sama rakenduse rakendust, võite kasutada Xalani ja ma võin kasutada Saxoni; see on kõik korras, nad on mõlemad XSLT-i protsessorid).

Võin luua teise XSLT-dokumendi ja saata see teile. Jällegi on meil täiuslik koostalitlusvõime. Ja kolmas XSLT dokument. Ja nii edasi. XSLT-i protsessori rakendus hõlbustab lõputu erinevate XSLT-de teisenduste loomist, vahetamist ja täideviimist täiusliku mõistmise ja koostalitlusvõimega.

Kokkuvõte

Siin on peamised punktid:

  1. Kui loote XML sõnavara, täpsustada käitumist XML sõnavara. Määrake vastavuse nõuetele. Loo test suite. Rakendada vastab rakendused, iga sama käitumine (rakendamised võivad erineda suuruse, tulemuslikkust, programmeerimiskeelt, jne). Igaühel kasutada rakendusi.
  2. Andmed koostalitlusvõime ei ole saavutada ühine arusaam XML sõnavara. Andmed koostalitlusvõime saavutamine läbi jagatud kasutamine XML sõnavara taotlus.
  3. Loomine XML sõnavara täpsustamata selle käitumine on halb mõte. See on retsept hilinenud andmete koostalitlusvõime parimal ebaõnnestus andmete koostalitlusvõime halvimal.

Viimati uuendatud: 18. märts 2018