Original page: http://xfront.com/accelerating-adoption-of-XML-vocabularies/
Roger L. Costello
Haluatko nopeuttaa XML-sanastosi hyväksymistä? Yksi tapa on saada 800 kilon gorilla pakottaa kaikki käyttämään sitä. Mutta tämä johtaa pian paheksuun ja kapinaan. Parempi tapa on luoda jotain, jota ihmiset todella haluavat käyttää, eikä vaadi heiltä suuria investointeja ajoissa tai rahassa ja antaa heille mahdollisuuden aloittaa yhteentoimivuus välittömästi. Näin voit:
- Kun luot XML-sanaston, määritä paitsi merkinnän merkitys myös sen käyttäytyminen sovelluksissa, jotka käsittelevät sitä.
- Määritä sääntöjenmukaisuus.
- Luo testipaketti.
- Luo sovellus, joka toteuttaa käyttäytymisen.
- Vahvista sovellus testipakettia vastaan.
- Tee sovellus maailmalle.
Ihannetapauksessa luodaan useita sovelluksen toteutuksia (joista jokaisella on tietysti sama käytös!). Näin käyttäjät voivat valita toteutuksen sen suorituskyvyn tai koon tai ohjelmointikielen perusteella.
Se siitä! Tee tämä ja XML-sanastosi voidaan hyväksyä nopeasti.
Esimerkki: Tarkastellaan XSLT-sanastoa. XSLT-spesifikaatio määrittelee paitsi kunkin elementin ja attribuutin merkityksen myös niiden käyttäytymisen. XSLT-spesifikaatio sisältää sääntöjenmukaisuuden. On olemassa XSLT-testipaketti. On luotu sovellus, jota kutsutaan XSLT-prosessoriksi ja joka toteuttaa XSLT-määrittelyssä määritetyn käyttäytymisen. Itse asiassa sovelluksen useita toteutuksia on luotu: Xalan, Saxon, Sableton ja muut.
Haluaisin laatia hieman enemmän siitä, mitä tarkoitan käyttäytymisen määrittämisessä. Harkitse uudelleen XSLT. XSLT-spesifikaatio sanoo, että <xsl:for-each> -elementti tunnistaa solmujen kokoelman. Se on merkitystä. Siinä sanotaan myös, että yhteensopiva sovellus täytyy iteroida jokaisen solmun, joka on tunnistettu määritteellä (jokaiselle elementille on valittu attribuutti), ja suorittaa elementit <xsl:for-each>. Se on käyttäytyminen. Siten XSLT-spesifikaatio määrittää, miten sovelluksen on toimittava <xsl:for-each>-elementissä. Liitä koko XSLT-sanastoon.
XML Schema-eritelmän avulla voit määrittää XML Schema validoijien käyttäytymisen. Se määrittelee esimerkiksi, että XML Schema olevan elementti-ilmoituksen validointilaitteen on tarkistettava, että XML-ilmentymisasiakirja sisältää oikean määrän elementin esiintymisiä ja sen sisältö on oikean tyyppinen. Siten se määrittää, miten validointilaitteen on käytettävä XML Schema sanastoa. Joten “määrittää käyttäytyminen” tarkoittaa kuvaamaan “tämän elementin (tai attribuutin) sanastossa”, sovelluksen on tehtävä tämä, tämä ja tämä.”
Virhe, jonka ihmiset tekevät XML-sanastoa luotaessa on se, että he eivät määritä käyttäytymistään. He jättävät sen “maailmaan” selvittämään, millainen käyttäytyminen pitäisi olla. Klassinen esimerkki tästä on HTML. Selaimen kehittäjien oli päätettävä, mitä käyttäytymisen pitäisi olla. Heillä oli laajasti vaihtelevia ajatuksia oikeasta käyttäytymisestä. Seurauksena oli se, että IE, Firefox ja muut selaimet käyttäytyivät eri tavalla. Kesti 10 vuotta, ennen kuin he vihdoin yhtyivät yhteiseen näkemykseen käyttäytymisestä. Jos HTML-spesifikaatio olisi osoittanut käyttäytymisen, säädetyt sääntöjen ja testisarjan, olisimme olleet samanlaisia käyttäytymässä selaimia 10 vuotta sitten.
Yksi asia, jota sinun on harkittava käyttäytymisen määrittämisessä, on se, että XML-sanastosi syötetään sovellukseen yhtenä XML-dokumenttina tai kahtena XML-dokumenttina? (Tai enemmän?) Otetaan joitakin esimerkkejä siitä, mitä tarkoitan:
- Selainsovellukset käsittelevät yhtä asiakirjaa (HTML-asiakirja)
- XML-skeeman validoijat käsittelevät kahta asiakirjaa (XML-skeema-asiakirja ja XML-asiakirja)
- XSLT-prosessorit käsittelevät kahta asiakirjaa (XSLT-asiakirja ja XML-asiakirja)
Näissä esimerkeissä sovellukset ovat: selain, XML-skeeman validointi ja XSLT-prosessori. Nämä sovellukset käsittelevät XML-sanastoa. XML-sanastosta riippuen sovellus voi vaatia yhden syöttöasiakirjan tai kaksi syöttöasiakirjaa (tai enemmän).
Tietojen yhteentoimivuus
Olen usein kuullut sen sanovan: “Tietojen yhteentoimivuuden saavuttamiseksi jokaisen sovelluksen on tulkittava/ymmärrettävä XML-sanastoa samalla tavalla.”
Mikä on parempi tapa varmistaa sama tulkinta/ymmärrys kuin käyttää samaa sovellusta!
Käyttämällä samaa sovellusta voimme olla täydellisiä tietojen yhteentoimivuutta. HUOMAUTUS: Kun sanon “sama sovellus”, tarkoitan joukkoa toteutuksia. Siten Xalan, Saxon ja Sabletron ovat kaikki samoja sovelluksia – ne ovat kaikki XSLT-prosessoreita. Sama sovellus ei tarkoita esimerkiksi sitä, että kaikki käyttävät Xalania. Yksi henkilö voi käyttää Xalania, toinen käyttää Saxonia ja toista Sabletronia. Ei se mitään; heillä kaikilla on sama käyttäytyminen; ne kaikki noudattavat XSLT-vaatimustenmukaisuutta koskevia sääntöjä; ne kaikki läpäisevät XSLT-testipaketin.
Tässä on esimerkki siitä, miten tiedon yhteentoimivuus saavutetaan saman sovelluksen jaetun käytön avulla.
Esimerkki: Harkitse XSLT. Voin luoda XSLT-asiakirjan ja suorittaa sen XSLT-prosessorilla. Voin lähettää XSLT-asiakirjan sinulle ja käyttää sitä XSLT-prosessorissasi. Saamme saman käyttäytymisen. Olemme täysin samaa mieltä siitä, mitä <xsl:for-every> -elementti tarkoittaa ja miten sen pitäisi toimia. Tee kaikki muut XSLT-sanaston elementit ja attribuutit. Olemme onnistuneet yhteentoimivasti. Mitä tämä mahdollisti? Vastaus: Yhteentoimivuuden mahdollistaminen on se, että käytämme samaa sovellusta. (Jälleen minun on korostettava, että se ei tarkoita, että käytämme samaa sovellusta sovelluksessa, saatat käyttää Xalania ja käytän ehkä Saxonia; se on kunnossa; ne ovat molemmat XSLT-prosessoreita.)
Voin luoda toisen XSLT-asiakirjan ja lähettää sen sinulle. Jälleen meillä on täydellinen yhteentoimivuus. Ja kolmas XSLT-asiakirja. Ja niin edelleen. XSLT-prosessorisovellus helpottaa loputtomien erilaisten XSLT-muunnosten luomista, vaihtamista ja toteuttamista täydellä ymmärryksellä/yhteentoimivuudella.
Kertaus
Tässä ovat tärkeimmät kohdat:
- Kun luot XML sanastoa, täsmentää käyttäytymistä XML sanastoa. Määritä yhteensopivuusvaatimukset. Luo Test Suite. Toteuttaa mukainen sovelluksia, joista jokaisella on sama käyttäytyminen (toteutukset voivat vaihdella kooltaan, suorituskyky, ohjelmointikieli, jne). Jokainen käyttää toteutuksia.
- Tietojen yhteentoimivuus ei saavuteta yhteisymmärrystä XML sanastoa. Tietojen yhteentoimivuus saavutetaan yhteiskäyttö XML sanaston hakemuksesta.
- Luominen XML sanastossa täsmentämättä sen käyttäytyminen on huono idea. Se on resepti viivästyneen yhteentoimivuutta parhaimmillaankin epäonnistuneet tietojen yhteentoimivuus pahimmillaan.
Viimeksi päivitetty: 17. elokuuta 2018