../Logo: XML Sweden W3C
XML 1.0 XML 1.1

W3C-standarder

I februari 1998 blev XML 1.0 en standard. Från början planerade man endast ett fåtal standarder byggda på den nya syntaxen, däribland XSL för presentation och XLL (senare XLink/XPointer) för länkar. Men utvecklingen tog en helt annan vändning, och en hel rad nya standarder började utvecklas. De är alla tillämpningar på XML, dvs. märkspråk som själva använder XML som syntax. Nu är de applikationer som först planerades färdiga. Det här dokumentet ger en helhetsbild över de mest intressanta standarderna, som utvecklas av olika arbetsgrupper inom World Wide Web Consortium (W3C). W3C har nu gjort de största och viktigaste uppgifterna i sitt standardarbete. Genom bl.a. uppgörelser mellan de stora företagen IBM, Microsoft och Sun har även väsentligt standardutvecklingsarbete inom XML-sfären gjorts i organisationen OASIS (Organiztion for the Advancement of Structured Information Standards). Till det återkommer vi senare under 2008.

Till varje beskriven standard finns det en statusruta, som anger hur långt man kommit. Varje dokument går nämligen igenom en linjär process i flera steg innan de blir antagna standarder, så kallade rekommendationer. Så här ser processen ut:

Note (N)
Ett inlämnat förslag från tredje part. Att förslaget antas som Note betyder att W3C anser att förslaget förtjänar uppmärksamhet, men att man avvaktar innan man beslutar sig för en eventuell standardisering.
Working Draft (WD)
En Working Draft är en teknisk specifikation som utvecklas av W3C-medlemmar och eventuellt inbjudna experter. Oftast följer flera Working Drafts på varandra. Enligt reglementet ska en Working Draft uppdateras minst en gång var tredje månad, men så är inte alltid fallet.
Working Draft in Last Call (WDLC)
När en Working Draft har nått sådan stabilitet att den i nästa steg kan gå vidare, kallas den för Working Draft in Last Call.
Candidate Recommendation (CR)
Det här steget kan ta ganska lång tid, men är viktig för att minska klyftan mellan teori och praktik. Man ger programhusen och enskilda utvecklare tid att diskutera och implementera standarden och återkomma med feedback. Anledningen är att det kan finnas brister i specifikationer som uppdagas först när den implementeras. Om man beslutar sig för att göra substantiella ändringar brukar dokumentet återgå till Working Draft.
Proposed Recommendation (PR)
När allt verkar stabilt följer en slutlig remisstid, vanligen en ren transportsträcka till dess att man antar standarden.
Recommendation (REC)
Som rekommendation är standarden låst och kan inte ändras. Eventuella stavfel och förtydliganden samlas i en speciell fil som kallas Errata. Givetvis kan dokumentet ersättas av andra standarder i framtiden.
2nd, 3rd etc edition
När tillräckligt många Errata har anmälts sammanställs en ny upplaga (edition) av standarden. Errata, som leder till nya upplagor, är fel eller förändringar som utgörs av sådana mindre modifieringar av standarden, som inte förändrar kompatibiliteten. Om förändringarna är av större art ger W3C ut en ny version med nytt versionsnummer.

Notera: Förkortningarna till varje steg är våra egna och används i statusrutorna nedan. För detaljer om W3C:s beslutsprocess, se http://www. w3.org/Consortium/Process/Process-19991111/tr.html.


Innehåll

  1. Extensible Markup Language (XML)
  2. Namespaces in XML
  3. Canonical XML
  4. XML Information Set
  5. XML Inclusions (XInclude)
  6. XML Schema
  7. Extensible Stylesheet Language (XSL)
  8. XSL Transformations (XSLT)
  9. Associating Style Sheets with XML documents
  10. XML Path Language (XPath)
  11. XML Linking Language (XLink)
  12. XML Base (XBase)
  13. XForms
  14. Resource Description Framework (RDF)
  15. Extensible HyperText Markup Language (XHTML)
  16. Document Object Model (DOM)
  17. Simple Object Access Protocol (SOAP)
  18. Platform for Privacy Preferences (P3P)
  19. Scalable Vector Graphics (SVG)

1. Extensible Markup Language (XML)

Extensible Markup Language (XML) är stamfadern i XML-familjen. XML är två saker. Dels är XML en specifikation på hur man beskriver nya uppmärkningsspråk (HTML är ett uppmärkningsspråk). En sådan beskrivning av ett språk, formulerad enligt en viss syntax, kallas dokumenttypsdefinition (DTD). Varje DTD sägs vara en applikation av XML, för ett visst syfte (webbsidor, programinställningar, kundregister och så vidare). Dels specificerar XML en gemensam syntax för dessa språk, så att de kan kontrolleras av samma mjukvara. Alla uppmärkningspråk som är skapade utifrån XML behandlas som en särskild filtyp, vars kännetecken är en lättförståelig, självbeskrivande syntax som skiljer struktur och sakinnehåll från presentation. XML finns i två versioner dels version 1.0, den ursprungliga och idag till 99,99 % använda versionen och dels en version 1.1, som har tillgodosett uppdateringen av Unicode-standarden från 2.0 till 4.0 liksom IBMs krav på tomrumstecken. Versionen 1.1 tillåter samtliga Unicode-tecknen nr 1-31 (x1-x1F), där 1.0-versonen endast tillåter nr 9 (x9, tabulatorsteg), nr 10 (xA, radmatning) och nr 13 (xD, vagnretur).

Status: Recommendation från 10 februari 1998. En "fjärde upplaga" kom 29 september 2006.

http://www.w3.org/TR/REC-xml

http://www.w3.org/TR/xml11


2. Namespaces in XML

Namespaces in XML ("namnrymder") är den enda egentliga utbyggnaden av XML-syntaxen. Namnrymder gör det möjligt att identifiera och särskilja varje innebörd av ett element så att beståndsdelar från flera olika DTD:er kan användas tillsammans utan risk för semantiska konflikter. Ett exempel på en sådan konflikt är det vanliga ordet "titel", som kan betyda såväl boktitel som yrkestitel. Utanför ursprungsdokumentet riskerar <titel> att blandas ihop med andra element med samma namn, men med en annan innebörd. Genom ett prefix (till exempel <person:titel>) ger man elementet en universiell betydelse. Principen för namnrymder är inte helt okontroversiell, men trots det används den av i snart sagt alla viktiga applikationer inom XML-familjen.

Status: Recommendation från 14 januari 1999. En "andra upplaga" kom 16 augusti 2006.

http://www.w3.org/TR/REC-xml-names/


3. Canonical XML 1.0

Med Canonical XML kan man avgöra om två dokument är logiskt identiska. Det räcker inte att jämföra dokumenten tecken för tecken. Deras innebörd kan vara densamma, fastän det finns mindre programspecifika skillnader mellan dem - skillnader som inte har någon bäring på slutprodukten. Exempel på det är teckenkodning, vissa entiteter och attributens ordningsföljd. Eftersom dessa skillnader neutraliseras i den beskrivning av dokumentet man gör i Canonical XML, kan man avgöra om två dokument är logiskt identiska.

Status: Recommendation från 15 mars 2001.

http://www.w3.org/TR/xml-c14n


4. XML Information Set

XML Information Set, eller Infoset, specificerar de olika slags beståndsdelar ett XML-dokument kan innehålla: element, attribut, entiteter, notationer, kommentarer processinstruktioner och så vidare. XML Information Set är ett referensdokument för programutvecklare som behöver se exakt vilken typ av information programmet bör kunna känna igen och hantera. Infoset grundas på erfarenheter från bland annat DOM och XPath.

Status: Recommendation från 24 oktober 2001. En "andra upplaga" kom 4 februari 2004.

http://www.w3.org/TR/xml-infoset


5. XML Inclusions (XInclude)

XInclude ger en möjlighet att i ett XML-dokument importera ett annat eller delar av ett annat (inkluderat) dokument. Det inkluderade dokumentet addresseras med en URI och delar av det inkluderade dokumentet addresseras med hjälp av XPointer. Tre olika typer av information kan inkluderas: CDATA-avsnitt, text (utan uppmärkning) samt XML. I det nu aktuella förslaget till XInclude-standard sker importen med hjälp av ett tomt element <xinclude:include> med attributet "parse" som kan anta värderna cdata, text eller xml.

Status: Recommendation från 20 december 2004. En "andra upplaga" kom 3 oktober 2006.

http://www.w3.org/TR/xinclude/


6. XML Schema

Det finns flera förslag på att utöka funktionaliteten hos DTD:er som med sitt ursprung hos SGML blivit för trubbiga för dagens tillämpningar. För att göra det möjligt att automatisera vissa processer på webben idag, krävs det en större kontroll på dokumentens innehåll än vad DTD:er erbjuder. XML Schema ("scheman") ger framförallt mer kontroll över elementinnehåll och datatyper, och möjligör större flexibilitet. Till skillnad från DTD:er använder scheman XML:s egen syntax för att föreskriva en dokumenttyps grammatik. Specifikationen består av tre dokument som utvecklas samtidigt, en handledning och två referenser till syntaxen och datatyperna.

Status: Recommendation från 2 maj 2001. En "andra upplaga" kom 28 oktober 2004.

http://www.w3.org/TR/xmlschema-0/
http://www.w3.org/TR/xmlschema-1/
http://www.w3.org/TR/xmlschema-2/


7. Extensible Stylesheet Language (XSL)

Ett XML-dokument har som bekant ingen på förhand given utformning. Hur dokumentet ser ut på papper, på en webbsida eller på displayen i en mobiltelefon, bestäms av en så kallad stilmall ("stylesheet"). XSL är en standard för presentation av XML-dokument som varit under utveckling allt sedan XML kom till. Under 1999 delades XSL upp i en större del för sidlayout och presentation, och en mindre del för så kallad transformering (se XSLT).

Numera hör man ibland "XSL" i betydelsen allt som ligger utanför XSLT. Ditt räknas traditionell typografi som marginaler, spalter, radavstånd, kärning, textstorlek, typsnitt, färger och så vidare. XSL är en applikation av XML med en mycket omfattande uppsättning element och attribut för att beskriva layout. En stor arbetsgrupp med en rad tunga företag är med och utvecklar standarden.

Vissa tror att XSL kommer att falla mellan två stolar, eftersom det anses vara för svårt för webbranschen och för tunnt för tryckbranschen. Svårigheterna för dagens webbdesigners kan dock överbryggas av smarta program som underlättar kodningen, och för tryck på papper kommer XSL att räcka till det mesta. Ett enklare alternativ till XSL är Cascading Style Sheets (CSS), som från början utvecklades för HTML.

Status: Recommendation från 15 oktober 2001. Version 1.1 recommendation från 5 december 2006.

http://www.w3.org/TR/xsl/


8. XSL Transformations (XSLT)

Med en transformering ("transformation") omvandlar man ett dokument till ett annat, till exempel för att ändra ordningen på innehållet, lägga till information eller för att välja ut valda delar av grunddokumentet. I processen skapas det ett nytt dokument, som inte behöver följa samma DTD som grunddokumentet. Också XSLT är en applikation av XML, och man använder XPath för att identifiera de objekt som ska transformeras.

Status: Recommendation från 16 november 1999. Version 2.0 recommendation från 23 januari 2007.

http://www.w3.org/TR/xslt

http://www.w3.org/TR/xslt20


9. Associating Style Sheets with XML documents

Den här specen kom till i brådrasket strax innan Internet Explorer 5.0 släpptes. Man behövde standardisera sättet att referera till stilmallar, innehållande instruktioner för transformering och utformning. Lösningen är en processinstruktion med attribut liknande de för LINK-elementet i HTML.

Status: Recommendation från 29 juni 1999. Version 2.0 recommendation från 23 januari 2007.

http://www.w3.org/TR/xml-stylesheet/


10. XML Path Language (XPath)

XML Path Language (XPath) är en syntax för att indentifiera det objekt (elementinnehåll, attributvärde och så vidare) som man vill hitta, hämta eller bearbeta på något sätt. Man kan jämföra XPath med URI:er, men syntaxen används inom dokument istället för utanför. Detta sker genom en uppdelning i noder (se DOM). XPath används som en del i syntaxen för XSLT och XPointer.

Status: Recommendation från 16 november 1999.

http://www.w3.org/TR/xpath

http://www.w3.org/TR/xpath20


XML Linking Language (XLink) är en applikation av XML för att beskriva länkar mellan dokument och andra resurser. Detta sker genom en namnrymd med en samling attribut som ger element länkegenskaper. Tanken med detta är att kunna addera länkfunktionalitet i efterhand till en redan färdig DTD, men vissa kritiker menar att man misslyckats med detta mål. Andra mål har man lyckats bättre med, och XLink presenterar några nya och mycket användbara länkfunktioner utöver de som finns i HTML.

Status: Recommendation från 27 juli 2000. Version 1.1 working draft last call kom 31 mars 2008.

http://www.w3.org/TR/xlink

http://www.w3.org/TR/xlink11


12. XML Base (XBase)

XML Base (XBase) beskriver ett nytt attribut, xml:base, som används för att i ett element (ofta rotelementet) ange en sökväg som ligger till grund för relativ länking till andra dokument. Attributet xml:base kan också själv innehålla en relativ sökväg, men ska då ges ett ingångsvärde från ett överordnat element med samma attribut. XBase underlättar länking i XML.

Status: Recommendation från 27 juli 2001. En "andra upplaga" har kommit i proposed edited recommendation 20 mars 2008.

http://www.w3.org/TR/xmlbase


13. XForms

XForms är en utveckling av formulären i HTML, och ska kunna arbeta mot olika plattformar, i röststyrda program, bärbara enheter och så vidare. XForms innehåller också avancerad formulärlogik, flexibel presentation samt stöd för olika språk. På sikt ska XForms lyftas in som en modul i XHTML.

Status: Recommendation från 14 oktober 2003. En "tredje upplaga" kom 29 oktober 2007.

http://www.w3.org/TR/XForms


14. Resource Description Framework (RDF): Concepts and Abstract Syntax

Resource Description Framework (RDF), ännu en XML-applikation, används för att knyta så kallad metadata, till dokumentinnehållet. Framförallt är RDF tänkt att underlätta för dagens sökmotorer, men det är också ett komplement till XML:s egen detaljbeskrivande syntax. RDF-beskrivningen kan finnas såväl inuti dokumentet i fråga, eller utanför. En utmärkt tillämpning utanför webben är om man har en mängd gamla dokument som man inte har inte resurser att låta konvertera till XML. Ett bra alternativ är då att göra dem sökbara med övergripande beskrivningar i RDF.

Status: Rekommendation från 10 februari 2004.

http://www.w3.org/TR/REC-rdf-syntax/


15. Extensible HyperText Markup Language (XHTML)

XHTML är den nya dynastin i HTML:s historia. Den nuvarande standarden heter XHTML 1.1. I 1.0 skrev man om HTML 4.01 till en XML-applikation (från SGML), och med 1.1 plockar man bort gamla stilattribut och inför modularisering enligt en särskild specifikation. Modulariseringen innebär bland annat att svagare anordningar som mobiltelefoner (och kylskåp m.fl.) ska kunna använda valda moduler (delmängder) av språket. Tack vare äldre webbläsares tolerans blir XHTML också bakåtkompatibelt.

Status: Recommendation (XHTML 1.1) från 31 maj 2001. XHTML Basic, arvtagare till WML (språket för WAP), blev Recommendation 19 december 2000. Modularization of XHTML, som ligger till grund för alla framtida versioner av XHTML, blev Recommendation 10 april 2001. Version 2.0 är på gång.

http://www.w3.org/TR/xhtml1/
http://www.w3.org/TR/xhtml11/
http://www.w3.org/TR/xhtml-modularization/
http://www.w3.org/TR/xhtml-basic/


16. Document Object Model (DOM)

DOM är inte en XML-applikation. DOM är ett programmeringsgränssnitt (så kallat API) för XML-dokument. Det finns en uppsättning vanliga funktioner som nästan alla program som arbetar med XML-dokument behöver. Det kan vara att hämta innehållet ur ett visst attribut eller räkna antalet underliggande element av ett visst slag. Istället för att skriva de här små programsnuttarna själv, har man de samlade i en DOM-implementation med objekt och funktioner färdiga att använda. Det finns ett antal mer eller mindre kompletta implementationer idag.

Status: Recommendation (DOM 3) från 7 april 2004.

http://www.w3.org/TR/REC-DOM-Level-1/
http://www.w3.org/TR/DOM-Level-2-Core/
http://www.w3.org/TR/DOM-Level-3-Core/


17. Simple Object Access Protocol (SOAP)

Det finns många som utvecklat protokoll för transaktioner och funktionsanrop i XML. Simple Object Access Protocol (SOAP) är ett av de mest framgångsrika projekten, mycket tack vare Microsofts satsning.

SOAP är ett Internet-protokoll skrivet i XML och underordnat HTTP och andra transportprotokoll. Det handlar om att kommunicera intelligent med andra datorer på ett överenskommet sätt. W3C har uppmärksammat SOAP, och förslaget har därmed goda chanser att påverka arbetet med de standardiserade protokoll som man börjat skissa på inom W3C.

Status: Recommendation från 24 juni 2003.

http://www.w3.org/TR/soap12-part0/
http://www.w3.org/TR/soap12-part1/
http://www.w3.org/TR/soap12-part2/



18. Platform for Privacy Preferences

Platform for Privacy Preferences (P3P) beskriver en XML-applikation för "privacy practices", det vill säga information om hur en webbplats hanterar information om besökare. Det kan vara information besökaren lämnat ifrån sig genom ett formulär, men också all annan form av information som kan vara integritetskränkande om de hamnar på fel plats. Genom ett P3P-dokument kan en webbplats ge raka besked om hur de hanterar information från besökare. Tanken är inte att detta dokument ska visas för besökaren. P3P-dokumentet ska läsas av webbläsaren som jämför det med sina inställningar. Om webbplatsen saknar P3P-policy, eller har en policy som besökaren i sina inställningar angivit som undermålig, kan webbläsaren slå larm med en dialogruta.

Status: Recommendation från 16 april 2002.

http://www.w3.org/TR/P3P/


19. Scalable Vector Graphics

Scalable Vector Graphics (SVG) kommer att konkurrera med de ägda formaten för multimediapresentationer på webben, som Quicktime, Flash och Shockwave. Det roliga är att W3C fått med sig Macromedia, Apple, Adobe, Microsoft, Netscape och många andra intressanta aktörer i utvecklingen av SVG. De bästa implementationerna är för närvarande Adobe SVG Viewer (plug-in för webbläsare).

Status: Recommendation från den 5 september 2001. Version 1.1 recommendation från 14 januari 2003.

http://www.w3.org/TR/SVG/