Snabbare antagande av XML-vocabularier

Källa: http://xfront.com/accelerating-adoption-of-XML-vocabularies/

Vill du påskynda antagandet av ditt XML-ordförråd? Ett sätt är att ha en 800 pund gorilla tvinga alla att använda den. Men det kommer snart att resultera i vrede och uppror. Ett bättre sätt är att skapa något som folk verkligen vill använda och kräver inte av dem en stor investering i tid eller pengar och låter dem börja interoperera omedelbart. Här är hur:

  1.     När du skapar ditt XML-ordförråd anger du inte bara betydelsen av markeringen utan också dess beteende i program som behandlar det.
  2.     Ange regler för överensstämmelse.
  3.     Skapa en testpaket.
  4.     Skapa en applikation som implementerar beteendet.
  5.     Bekräfta ansökan mot testpaketet.
  6.     Gör ansökan tillgänglig för världen.

Idealiskt kommer flera implementeringar av applikationen att skapas (var och en med samma beteende, förstås!). På så sätt kan användarna välja ett genomförande baserat på dess prestanda eller storlek eller vilket programmeringsspråk det implementerades i.

Det är allt! Gör det här och ditt XML-ordförråd kan snabbt antas.

Exempel: Tänk på XSLT-ordförrådet. XSLT-specifikationen anger inte bara innebörden av varje element och attribut men också deras beteende. XSLT-specifikationen innehåller överensstämmelsesregler. Det finns en XSLT testpaket. En applikation som kallas en XSLT-processor har skapats som implementerar det beteende som anges i XSLT-specifikationen. Faktum är att flera implementeringar av applikationen har skapats: Xalan, Sakson, Sableton och andra.

Låt mig utarbeta lite mer om vad jag menar med “specificera beteende”. Tänk på XSLT igen. XSLT-specifikationen säger att elementet <xsl: for-varje> identifierar en samling av noder. Det är meningen. Det står också att en kompatibel ansökan måste iterera över varje nod som identifieras av välj attributet (varje element har ett väljattribut) och utför elementen inom <xsl: för-varje>. Det är beteende. Således specificerar XSLT-specifikationen hur en applikation måste verka på elementet <xsl: för-varje>. Ditto för hela XSLT-ordförrådet.

XML Schema-specifikationen gör ett bra jobb för att specificera beteendet hos XML Schema-validerare. Till exempel specificeras det att en elementdeklaration i ett XML-schema måste en validator kontrollera att XML-instansdokumentet innehåller det korrekta antalet förekomster av ett element och dess innehåll är av rätt typ. Således anger den hur validatorn måste verka på XML Schema-ordförrådet. Så, för att “specificera beteende” betyder att “för detta element (eller attribut) i ordförrådet måste ansökan göra detta, detta och detta.”

Det misstag som människor gör när man skapar ett XML-vokabulär är att de misslyckas med att ange sitt beteende. De lämnar det upp till “världen” för att ta reda på vad beteendet ska vara. Ett klassiskt exempel på detta är HTML. Webbläsarutvecklare måste bestämma vad beteendet ska vara. De hade mycket olika idéer om det korrekta beteendet. Konsekvensen var att IE, Firefox och de andra webbläsarna alla uppträdde annorlunda. Det tog 10 år innan de slutligen konvergerade på en gemensam förståelse för beteendet. Om HTML-specifikationen angav beteendet, tillhandahöll överensstämmelsesregler och en testpaket, skulle vi ha haft identiskt fungerande webbläsare för 10 år sedan.

En sak du måste tänka på när du anger beteende är detta: kommer din XML-ordförråd att matas in i programmet som ett XML-dokument eller som två XML-dokument? (Eller mer?) Låt oss ta några exempel för att se vad jag menar:

  •     Webbläsarprogrammet bearbetar ett dokument (ett HTML-dokument)
  •     XML Schema-validatorer bearbetar två dokument (ett XML Schema-dokument och ett XML-dokument)
  •     XSLT-processorer bearbetar två dokument (ett XSLT-dokument och ett XML-dokument)

I dessa exempel är applikationerna: webbläsare, XML Schema-validator och XSLT-processor. Dessa applikationer bearbetar en XML-ordförråd. Beroende på XML-ordförrådet kan en applikation kräva ett inmatningsdokument eller två inmatningsdokument (eller mer).

Data Interoperabilitet

Jag har ofta hört det sagt, “För att uppnå datakompatibilitet måste varje applikation tolka / förstå XML-ordförrådet på samma sätt.”

Vilket bättre sätt att säkerställa samma tolkning / förståelse än att använda samma ansökan!

Genom att använda samma applikation kan vi ha perfekt datakompatibilitet. OBS! När jag säger “samma ansökan” menar jag en uppsättning implementeringar. Således är Xalan, Sakson och Sabletron alla samma applikationer – de är alla XSLT-processorer. Att använda samma applikation betyder inte att alla använder Xalan. En person kan använda Xalan, en annan använder saksisk och en annan Sabletron. Det är okej; de har alla samma beteende; De följer alla XSLT-reglerna för överensstämmelse. De passerar alla XSLT-testpaketet.

Här är ett exempel som illustrerar hur driftskompatibilitet uppnås genom gemensam användning av samma applikation.

Exempel: Tänk på XSLT. Jag kan skapa ett XSLT-dokument och köra det på min XSLT-processor. Jag kan skicka XSLT-dokumentet till dig och du kör det på din XSLT-processor. Vi får samma beteende. Vi är helt överens om vad elementet <xsl: for-varje> betyder och hur det ska verka. Ditto för alla andra element och attribut i XSLT-ordförrådet. Vi har framgångsrikt samarbetat. Vad aktiverade detta? Svar: Vad aktiverade driftskompatibiliteten är det faktum att vi använder samma applikation. (Återigen måste jag betona att det inte betyder att vi använder samma implementering av ansökan, du kan använda Xalan och jag kan använda saksiska, det är okej, det är båda XSLT-processorerna.)

Jag kan skapa ett andra XSLT-dokument och skicka det till dig. Återigen har vi perfekt driftskompatibilitet. Och ett tredje XSLT-dokument. Och så vidare. XSLT-processorprogrammet underlättar oändliga olika XSLT-transformeringar skapas, byts ut och exekveras med perfekt förståelse / driftskompatibilitet.

Recap

Här är huvudpunkterna:

  1.     När du skapar ett XML-vokabulär, ange beteendet för XML-ordförrådet. Ange överensstämmelseskrav. Skapa en testpaket. Implementera överensstämmande applikationer, var och en med samma beteende (implementeringarna kan variera i storlek, prestanda, programmeringsspråk, etc.). Alla använder implementationerna.
  2.     Datakompatibilitet uppnås inte genom gemensam förståelse av XML-ordförrådet. Datakompatibilitet uppnås genom gemensam användning av XML-ordförrådets ansökan.
  3.     Att skapa ett XML-vokabulär utan att ange sitt beteende är en dålig idé. Det är ett recept på försenad datainteroperabilitet i bästa fall, misslyckad datakompatibilitet i värsta fall.

Leave a Reply

Your email address will not be published. Required fields are marked *

*