Utökningsbart markeringsspråk

Från Wikipedia, den fria encyklopedin
Hoppa till navigation Hoppa till sökning
Utökningsbart markeringsspråk
XML -exempel
Filtillägg : .xml
MIME -typ : application / xml, text / xml
Magiskt nummer : 3C 3F 78 6D 6C hex
<? xml
Utvecklad av: World Wide Web Consortium
Typ: Markeringsspråk
Utökad av: SGML
Utökat till: XHTML , RSS , Atom
Webbplats : 1.0 (femte upplagan)
1.1 (andra upplagan)


Extensible Markup Language (dt. Extensible Markup Language), XML förkortat, är ett markeringsspråk för att representera hierarkiskt strukturerade data i formatet för en textfil som både mänskligt och maskinläsbart är.

XML används också för plattform och implementering -oberoende utbyte av data mellan datorsystem , särskilt över Internet , och publicerades av World Wide Web Consortium (W3C) den 10 februari 1998. [1] Den nuvarande versionen är den femte upplagan från den 26 november 2008. [2] XML är ett metallspråk , på grundval av vilket applikationsspecifika språk definieras av strukturella och innehållsrelaterade begränsningar. Dessa begränsningar uttrycks antingen av en Document Type Definition (DTD) eller av ett XML -schema . Exempel på XML -språk är: RSS , MathML , GraphML , XHTML , XAML , Scalable Vector Graphics (SVG), GPX , men också själva XML -schemat.

Standardteckenkodningen för ett XML-dokument är UTF-8 . System som bearbetar XML måste kunna använda UTF-8 och UTF-16 kodningar. [3] XML-dokument som använder UTF-8 eller UTF-16 kan visas och redigeras i alla textredigerare som stöder dessa kodningar.

Om XML -dokumentet ska innehålla binär data måste dessa data kodas om som text. För detta ändamål z. B. Base64 -kodning kan användas.

Tekniska termer

element

Den viktigaste strukturella enheten i ett XML -dokument är elementet . Element kan innehålla såväl text som andra element som innehåll. Element bildar noderna i strukturträdet i ett XML -dokument. Namnet på ett XML -element kan väljas fritt i XML -dokument utan en Document Type Definition (DTD) . I XML -dokument med DTD måste namnet på ett element deklareras i DTD och elementet måste vara i en tillåten position i strukturträdet enligt DTD . I DTD definieras bland annat det möjliga innehållet för varje element. Element är bärare av information i ett XML -dokument.

Dag

Taggar används för att markera element:

  • en startdag för början av ett element: <Elementname>
  • en sluttagg för slutet av ett element: </Elementname>
  • en tom tagg för ett element utan innehåll: <Leer/>

Välformad

Ett XML-dokument är "välformat" (eller engelska välformat) om det följer alla XML-regler. Följande är exempel:

  • Dokumentet har exakt ett rotelement. Det yttersta elementet i varje fall kallas rotelementet, t.ex. B. <html> i XHTML .
  • Alla element med innehåll har en start- och en sluttagg (t.ex. <eintrag>Eintrag 1</eintrag> ). Element utan innehåll kan markeras med ett tomt (t.ex. <eintrag /> ).
  • Start- och sluttaggarna är kapslade i par. Detta innebär att alla element måste stängas innan slutmarkörerna för motsvarande överordnade element eller startmarkörerna för ett syskonelement visas.
  • Ett element kan inte ha flera attribut med samma namn.
  • Attributvärdena måste stå med citattecken ( "..." eller '...' ).
  • Start- och sluttaggarna är skiftlägeskänsliga (t.ex. <eintrag></Eintrag> är inte giltig).

Giltighet

Om XML ska användas för datautbytet är det fördelaktigt om formatet definieras med hjälp av en grammatik (t.ex. en dokumenttypdefinition eller ett XML -schema ). Standarden definierar ett XML -dokument som giltigt (eller engelska giltigt) om det är välformat, innehåller referensen till en grammatik och uppfyller det format som beskrivs av grammatiken.

Parser

Program eller programdelar som läser upp, tolkar och vid behov kontrollerar XML -data för giltighet kallas XML -parsers . Om parsern kontrollerar giltigheten är det en validerande parser.

Struktur för ett XML -dokument

Exempel på en XML -fil

 <? xml version = "1.0" encoding = "UTF-8" fristående = "ja"?>
<katalog>
     <titel> Wikipedia stadskatalog </titel>
     <entré>
          <nyckelord> Genève </keyword>
          <eintragstext> Genève är säte för ... </eintragstext>
     </entry>
     <entré>
          <stichwort> Köln </stichwort>
          <eintragstext> Köln är en stad som ... </eintragstext>
     </entry>
</directory>

XML -dokument har en fysisk och en logisk struktur.

Fysisk struktur

  • Dokumentenheten innehåller huvuddokumentet.
  • Andra möjliga enheter handlar om
    • Entity referenser ( &name; för dokument eller %name; för definition dokumenttypen) inbäddade teckensträngar, möjligen också hela filer, samt hänvisningar till tecken enheter för integrering av enskilda tecken refereras av deras antal ( &# Dezimalzahl ; eller &#x Hexadezimalzahl ; ).
  • En XML -deklaration används för att specificera XML -versionen, teckenkodning och möjlig bearbetbarhet utan en DTD .
  • En definition av dokumenttyp används för att specificera entiteter och den tillåtna logiska strukturen. Användningen av en DTD kan avmarkeras i XML -deklarationen .

Logisk struktur

Den logiska strukturen motsvarar en trädstruktur och är därmed organiserad hierarkiskt. Trädnoderna är:

  • Element vars fysiska identifiering sker med hjälp av
    • ett lämpligt par av < Tagname > -taggen </ Tagname > tagg < Tagname > och sluttagg </ Tagname > eller
    • ett tomt < Tagname /> kan göras,
  • Attribut som ytterligare egenskaper för elementen som skrivs vid en startdag eller en tom dag i syntaxattributet Attributname =" Attributwert " ,
  • Behandlingsinstruktioner <? Zielname Daten?> ( Behandlingsinstruktioner ),
  • Kommentarer <!-- Kommentar-Text --> och
  • Text som kan visas som normal teckendata eller i form av ett CDATA -avsnitt <![CDATA[ beliebiger Text ]]> .

Ett XML-dokument måste innehålla exakt ett element på högsta nivå. Ytterligare element och text kan kapslas under detta dokumentelement.

DTD

En definition av dokumenttyp (DTD) beskriver strukturen och grammatiken för dokument. Det är en del av XML -systemet och aktiverat som standard.

Om dokument skapas med hänvisning till en extern dokumenttypdefinition eller med en integrerad dokumenttypdefinition kontrollerar parsern dokumentet så snart det öppnas (läses). Ett dokument baserat på en definition av dokumenttyp är alltid ett giltigt dokument. Fokus ligger på att dokumentinnehållet överensstämmer med reglerna för dokumenttypdefinitionen. Teknisk läsbarhet, inklusive att läsa ogiltiga dokument, är av sekundär betydelse. Detta är avsett för fulltextdokument ( berättande dokument ) och är huvudsyftet.

Dokument utan DTD är mer lämpade för datautbyte. Parsern kontrollerar endast dessa dokument enligt reglerna för välformadhet. Teknisk läsbarhet är högsta prioritet här. Den faktiska informationen kontrolleras och läses upp med nedströms processer.

Läsbarhet för XML -dokument

Praktiskt taget alla webbläsare som Apple Safari , Google Chrome , Microsoft Internet Explorer , Mozilla Firefox och Opera kan visualisera XML-dokument direkt med hjälp av den inbyggda XML- parsern .

Klassificering av XML -dokument

XML-dokument kan delas in i dokumentcentrerade och datacentriska dokument baserat på avsedd användning och struktur. Gränsen mellan dessa typer av dokument är dock flytande. Blandade former kan beskrivas som halvstrukturerade .

  • dokumentcentrerad: Dokumentet är baserat på ett textdokument som till stor del är förståeligt för den mänskliga läsaren även utan ytterligare metainformation. XML -element används främst för semantisk markering av passager i dokumentet; dokumentet är endast dåligt strukturerat. Maskinbearbetningen är svår på grund av den svaga strukturen.
  • datacentriskt: Dokumentet är främst avsett för maskinbearbetning. Den följer ett schema som beskriver entiteterna i en datamodell och definierar förhållandet mellan entiteterna och attributen för enheterna. Dokumentet är således mycket strukturerat och mindre lämpligt för direkt mänskligt bruk.
  • halvstrukturerade: Halvstrukturerade dokument representerar ett slags hybridform som är mer strukturerat än dokumentcentrerade dokument, men svagare än datacentrerade dokument.

Det är typiskt för datacentriska XML-dokument att element har antingen elementinnehåll eller textinnehåll. Det så kallade blandade innehållet, där element innehåller både text och underordnade element, är typiskt för de andra XML-dokumenten.

Bearbetning av XML

Bearbetningskriterier

I grund och botten är tre aspekter viktiga vid åtkomst till ett XML -dokument:

  • Hur nås XML -filen: sekventiellt eller slumpmässigt?
  • Hur är processen för åtkomst till XML -data utformad: "Push" eller "Pull"? (Push betyder att parsern styr flödet av programmet. Pull betyder att kontrollen av flödet implementeras i koden som kallar parsern.)
  • Hur utförs trädstrukturhanteringen av XML -data: hierarkisk eller kapslad?

Programmatisk åtkomst till XML -dokument

XML -dokument läses in på lägsta nivå med hjälp av en speciell programkomponent, en XML -processor , även känd som en XML -parser. Det tillhandahåller ett programmeringsgränssnitt (API) via vilket programmet får åtkomst till XML -dokumentet.

XML -processorerna stöder tre grundläggande bearbetningsmodeller.

  • DOM : Ett DOM-API representerar ett XML-dokument som en trädstruktur och ger slumpmässig åtkomst till de enskilda komponenterna i trädstrukturen. Förutom att läsa XML -dokument tillåter DOM också trädstrukturen att manipuleras och trädstrukturen skrivas tillbaka till ett XML -dokument. På grund av detta är DOM mycket minneskrävande.
  • SAX : Ett SAX API representerar ett XML -dokument som en sekventiell dataström och anropar återuppringningsfunktionerna som anges i standarden för händelser. En applikation som använder SAX kan registrera sina egna underrutiner som återuppringningsfunktioner och på så sätt utvärdera XML -data.
  • Pull API : Ett XML pull API bearbetar data sekventiellt och erbjuder både händelsebaserad behandling och en iterator . Det är mycket minneseffektivt och vid behov lättare att programmera än SAX-API, eftersom processstyrningen ligger hos programmet och inte hos parsern.

Ytterligare bearbetningsmodeller:

Ofta får applikationskoden inte direkt åtkomst till parser -API: et. Istället inkapslas XML ytterligare så att programkoden fungerar med inbyggda objekt / datastrukturer som är baserade på XML. Exempel på sådana åtkomstlager är JAXB i Java , guiden Databinding i Delphi eller XML Schema Definition Toolkit i .Net . Konverteringen av objekt till XML är vanligtvis dubbelriktad. Denna konvertering är känd som serialisering eller marschalering .

Exempel på XML -parser -API

XML -parser -API: er är tillgängliga för olika programmeringsspråk, t.ex. B. Java , C , C ++ , C # , Python , Perl och PHP . Parser API -exempel:

  • XML :: Parser ( Perl ): En XML -parser för Perl. Ett mycket enkelt API erbjuder t.ex. B. även CPAN -modulen XML :: Enkel.
  • DOM -funktioner (PHP5): Modul i PHP5 för att läsa XML -dokument; alternativt simpleXML; för PHP4 finns DOM XML.
  • StAX (Java) : En mycket minnseffektiv parserimplementering ( pull) och samtidigt enkel att programmera. Markör- och iteratorbearbetningsmodeller erbjuds.
  • JAXB : Databinding för Java. Till exempel kan motsvarande Java -klass genereras från ett XML -schema och vice versa.
  • Apache XMLBeans Java Data Binding Framework, kan redan användas med Java 1.4.2
  • Xerces : En validerande XML -parser för C ++, Java och Perl för en mängd olika plattformar.
  • ElementTree iterparse : Ett parser -API för Python som itererar över subtrees. Den kombinerar lagringseffektiviteten för en pull -parser med enkelheten i en DOM -parser.
  • VTD-XML : Exempel på ett icke-extraherande XML-API.
  • MSXML : Microsoft XML Core Services, Microsoft XML-programbiblioteket för XML-stöd via DOM, SAX, XSLT, XML-scheman och annan XML-relaterad teknik
  • Pugixml : En DOM XML -parser för C ++ vars utveckling lade särskild vikt vid effektiv kod.

Det finns speciella program, så kallade XML-redaktörer, för att skapa XML-dokument. Det finns också specialprogram, så kallade XML-databaser, för lagring och hantering av XML-dokument.

Transformation och representation av XML -dokument

Ett XML -dokument kan omvandlas till ett annat dokument med hjälp av lämpliga transformationsspråk som XSLT eller DSSSL . Transformationen används ofta för att överföra ett dokument från ett XML -språk till ett annat XML -språk, till exempel för att transformera det till XHTML, för att visa dokumentet i en webbläsare.

Schemaspråk

Så kallade schemaspråk används för att beskriva XML- språkens struktur.

XML -schema / XSD

XML -schema (eller XSD för XML -schemadefinition) är det moderna sättet att beskriva strukturen för XML -dokument. XML Schema erbjuder också möjligheten att begränsa innehållet i element och attribut, t.ex. B. om siffror, datum eller texter, t.ex. B. använder reguljära uttryck . Ett schema är i sig ett XML -dokument som gör det möjligt att beskriva mer komplexa (inklusive innehåll) relationer än vad som är möjligt med en formell DTD.

Fler schemaspråk

Ytterligare schemaspråk är Document Structure Description , RELAX NG och Schematron .

XML -familj

Infrastruktur

I samband med XML har W3 -konsortiet definierat många språk på grundval av XML, som erbjuder XML -uttryck för ofta nödvändiga allmänna funktioner som länkning av XML -dokument. Många XML -språk använder dessa grundläggande byggstenar.

språk

Idag använder många formella språk XML -syntaxen. XML är ett viktigt instrument för att skapa ett öppet informationslandskap ( semantisk webb ) som är förståeligt för människor och maskiner - enligt W3C: s avsikt.

Det välkända dokumentspråket HTML integrerades också i detta koncept som "Extensible HyperText Markup Language" ( XHTML ) efter version 4.01, så att det nu bygger på XML som grund för definition. En vanlig orsak till att använda XML är den många förekomsten av parsers och den enkla syntaxen: definitionen av SGML omfattar 500 sidor, den för XML endast 26.

Följande listor representerar några av dessa XML -språk.

text

grafisk

  • SVG (vektorgrafik)
  • X3D (3D -modelleringsspråk)
  • Collada (utbytesformat för data mellan olika 3D -program)

Geospatiala data

multimedia

  • MEI (Music Encoding Initiative)
  • MusicXML (notdata, inspelad musik)
  • SMIL (tidssynkroniserat, multimediainnehåll)
  • MPEG-7 (MPEG-7 metadata)
  • Laszlo (LZX)

säkerhet

Teknik

  • AutomationML , ett format för lagring av systemplaneringsdata
  • CAEX , ett format för lagring av hierarkisk objektinformation
  • GSDML, ett format för att beskriva automatiseringsenheter som kan kommunicera med Profinet
  • IODD , ett format för beskrivning av sensorer och ställdon
  • PLMXML, ett format för att beskriva produktdata som en del av Siemens PLM -programvara [4]
  • LandXML, ett format för lagring av georefererade objekt
  • RTML (Remote Telescope Markup Language), ett format för att beskriva astronomiska observationsförfrågningar [5]

Ytterligare

Dessutom finns det XML-språk för webbtjänster (t.ex. SOAP , WSDL och WS- * ), för integration av Java- kod i XML-dokument ( XSP ), för synkronisering av kalenderdata SyncML , matematiska formler ( MathML ), Representation av grafer ( GraphML ), procedurer inom området för den semantiska webben ( RDF , OWL , Topic Maps , UOML ), tillhandahållande av tjänster ( SPML ), utbyte av meddelanden ( XMPP ) eller finansiella rapporter såsom årsbokslut ( XBRL ) , inom områden inom bilindustrin ( ODX , MSRSW , AUTOSAR -mallar , QDX , JADM , OTX ), automatiserade test t.ex. B. från kretsar ( ATML ) till systembiologi ( SBML ) och jordbruk ( AgroXML ) till publicering ( ONIX ) eller kemi (CIDX) och många fler.

En sammanfattning av XML -språk för Office -program finns i OpenDocument -utbytesformatet ( OASIS Open Document Format for Office Applications ).

Alternativa format

Trivia

Linus Torvalds beskrev XML som olämpligt som markeringsspråk [6] (kommentar nr 19):

"XML är skit. Verkligen. Det finns inga ursäkter. XML är otäckt att analysera för människor, och det är en katastrof att analysera även för datorer. Det finns bara ingen anledning till att det hemska skitet existerar. "

- Linus Torvalds, 2014

litteratur

  • Charles F. Goldfarb, Paul Prescod: XML Handbook . Markt und Technik, München [ua] 1999, ISBN 3-8272-9575-0 .
  • Wiebke Möhr, Ingrid Schmidt: SGML och XML: Applikationer och perspektiv . Springer-Verlag, Berlin / Heidelberg / New York [et al.] 1999, ISBN 3-540-65543-3 .
  • Robert Eckstein: XML - kort och bra . O'Reilly Verlag, Cambridge / Köln [et al.] 2000, ISBN 3-89721-219-6 .
  • Henning Lobin: Informationsmodellering i XML och SGML . Springer, Berlin 2000, ISBN 3-540-65356-2 .
  • Michael Seeboerger-Weichselbaum: XML för nybörjarseminariet . 2: a, reviderade upplagan. BHV Software, Kaarst 2000, ISBN 3-8287-1018-2 .
  • Elliotte Rusty Harold: XML -bibeln . 2: a uppdaterade upplagan. mitp, Bonn 2002, ISBN 3-8266-0821-6 .
  • Stefan Mintert: XML & Co. W3C -specifikationerna för dokument- och dataarkitektur . Addison-Wesley, München 2002, ISBN 3-8273-1844-0 .
  • Christine Kränzler: XML / XSL -... för professionella nybörjare. för bok och webb . Markt + Technik, München 2002, ISBN 3-8272-6339-5 .
  • Frank Bitzer: XML i företaget. Briefing för IT -hantering . Galileo Press, Bonn 2002, ISBN 3-89842-288-7 .
  • Erik T. Ray: Introduktion till XML . O'Reilly, 2004, ISBN 3-89721-286-2 .
  • Margit Becher: XML: DTD, XML-Schema, XPath, XQuery, XSLT, XSL-FO, SAX, DOM . W3L Verlag, Witten 2009, ISBN 978-3-937137-69-8 .
  • Marco Skulschus, Marcus Wiederstein: XML: Standards and Technologies . Comelio Medien, Berlin 2009, ISBN 978-3-939701-21-7 .
  • Helmut Vonhoegen: Komma igång med XML. Nuvarande standarder: XML Schema, XSL, XLink . 8: e upplagan. Rheinwerk, 2015, ISBN 978-3-8362-3798-7 .

webb-länkar

Commons : XML - samling av bilder, videor och ljudfiler
Wikibooks: Webbplatsutveckling: XML - lärande och läromedel

Individuella bevis

  1. Extensible Markup Language (XML) 1.0. w3.org, 10 februari 1998, arkiverat från originalet den 15 juni 2006 ; åtkomst den 12 februari 2017 .
  2. Extensible Markup Language (XML) 1.0 (femte upplagan). w3.org, 26 november 2008, öppnade 12 februari 2017 .
  3. Characters. In: Extensible Markup Language (XML) 1.0 (Fifth Edition). 26. November 2008, abgerufen am 9. März 2019 (englisch).
  4. plm.automation.siemens.com
  5. Remote Telescope Markup Language (RTML), bibcode : 2006AN....327..751H
  6. Kommentar in Diskussion um XML als Markup-Sprache (06.03.2014) . ( plus.google.com [abgerufen am 10. April 2017]).