Limbaj de marcare extensibil

Limbaj de marcare extensibil
Exemplu XML
Extensie fișier : .xml
Tip MIME : aplicație / xml, text / xml
Număr magic : 3C 3F 78 6D 6C hex
<? Xml
Dezvoltat de: Consorțiul World Wide Web
Tip: Limbaj de marcare
Extins de: SGML
Extins la: XHTML , RSS , Atom
Site web : 1.0 (ediția a cincea)
1.1 (ediția a doua)


Extensible Markup Language (dt. Extensible Markup Language ), prescurtată XML , este un limbaj de marcare pentru a reprezenta date structurate ierarhic în formatul unui fișier text care atât umană cât și poate fi citit de este.

XML este, de asemenea, utilizat pentru platformă și implementare - schimb independent de date între sistemele informatice , în special pe internet , și a fost publicat de World Wide Web Consortium (W3C) pe 10 februarie 1998. Versiunea actuală este a cincea ediție din 26 noiembrie 2008. XML este un limbaj metalic , pe baza căruia limbajele specifice aplicației sunt definite de restricții structurale și legate de conținut. Aceste restricții sunt exprimate fie printr-o definiție a tipului de document (DTD), fie printr-o schemă XML . Exemple de limbaje XML sunt: RSS , MathML , GraphML , XHTML , XAML , Scalable Vector Graphics (SVG), GPX , dar și schema XML în sine.

Codificarea standard a caracterelor unui document XML este UTF-8 . Sistemele care procesează XML trebuie să poată utiliza codificările UTF-8 și UTF-16 . Documentele XML care utilizează UTF-8 sau UTF-16 pot fi vizualizate și editate în orice editor de text care acceptă aceste codificări.

Dacă documentul XML trebuie să conțină date binare, aceste date trebuie recodificate ca text. În acest scop z. B. Codarea Base64 poate fi utilizată.

Termeni tehnici

element

Cea mai importantă unitate structurală a unui document XML este elementul . Elementele pot conține text, precum și alte elemente ca conținut. Elementele formează nodurile arborelui structurii unui document XML. Numele unui element XML poate fi selectat în mod liber în documentele XML fără o definiție a tipului de document (DTD) . În documentele XML cu DTD, numele unui element trebuie să fie declarat în DTD și elementul trebuie să fie într-o poziție permisă în cadrul arborelui structurii conform DTD . În DTD, printre altele definește conținutul posibil al fiecărui element. Elementele sunt purtătorii de informații dintr-un document XML.

Zi

Etichetele sunt folosite pentru a marca elemente:

  • o zi de început pentru începutul unui element: <Elementname>
  • o etichetă de sfârșit pentru sfârșitul unui element: </Elementname>
  • o etichetă goală pentru un element fără conținut: <Leer/>

Bună formare

Un document XML este „bine format” (sau engleza bine format ) dacă respectă toate regulile XML. Următoarele sunt exemple:

  • Documentul are exact un element rădăcină. Elementul cel mai exterior în fiecare caz este denumit element rădăcină, de ex. B. <html>în XHTML .
  • Toate elementele cu conținut au o etichetă de început și de final (de exemplu <eintrag>Eintrag 1</eintrag>). Elementele fără conținut pot fi marcate cu un gol (de exemplu <eintrag />).
  • Etichetele de început și de sfârșit sunt imbricate în perechi. Aceasta înseamnă că toate elementele trebuie închise înainte ca marcajele finale ale elementului părinte corespunzător sau marcajele inițiale ale unui element frate să apară.
  • Un element nu poate avea mai multe atribute cu același nume.
  • Valorile atributelor trebuie să fie încadrate între ghilimele ( "..."sau '...').
  • Etichetele de început și de sfârșit sunt sensibile la majuscule (de exemplu, <eintrag></Eintrag>nu este validă).

Valabilitate

Dacă XML trebuie utilizat pentru schimbul de date , este avantajos dacă formatul este definit printr-o gramatică (de exemplu, o definiție a tipului de document sau o schemă XML ). Standardul definește un document XML ca valid (sau valabil în limba engleză ) dacă este bine format, conține referința la o gramatică și respectă formatul descris de gramatică.

Analizator

Programele sau părțile programului care citesc, interpretează și, dacă este necesar, verifică validitatea datelor XML, se numesc analizatori XML . Dacă analizorul verifică validitatea, acesta este un analizor de validare .

Structura unui document XML

Exemplu de fișier XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<verzeichnis>
     <titel>Wikipedia Städteverzeichnis</titel>
     <eintrag>
          <stichwort>Genf</stichwort>
          <eintragstext>Genf ist der Sitz von ...</eintragstext>
     </eintrag>
     <eintrag>
          <stichwort>Köln</stichwort>
          <eintragstext>Köln ist eine Stadt, die ...</eintragstext>
     </eintrag>
</verzeichnis>

Documentele XML au o structură fizică și logică.

Structura fizică

  • Entitatea Documentul conține documentul principal.
  • Sunt despre alte posibile entități
    • Referințele entităților ( &name;pentru document sau %name;pentru definiția tipului de document) au integrat șiruri de caractere, eventual și fișiere întregi, precum și referințe la entități de caractere pentru integrarea caracterelor individuale la care au făcut referire numărul lor ( sau ).&#Dezimalzahl;&#xHexadezimalzahl;
  • O declarație XML este utilizată pentru a specifica versiunea XML, codificarea caracterelor și posibila procesabilitate fără o DTD .
  • O definiție a tipului de document este utilizată pentru a specifica entitățile și structura logică permisă. Utilizarea unui DTD poate fi deselectată în declarația XML .

Structura logică

Structura logică corespunde unei structuri de copac și este astfel organizată ierarhic. Nodurile arborelui sunt:

  • Elemente a căror identificare fizică este prin intermediul
    • o pereche adecvată de zi de început și de sfârșit sau<Tagname></Tagname>
    • poate avea loc într- o zi goală ,<Tagname/>
  • Atribute ca proprietăți suplimentare ale elementelor din sintaxa scrise pentru o zi de început sau o zi goală ,Attributname="Attributwert"
  • Instrucțiuni de procesare (engleză. Instrucțiuni de procesare )<?Zielname Daten?>
  • Comentarii și<!-- Kommentar-Text -->
  • Text care poate apărea ca date de caractere normale sau sub formă de secțiune CDATA .<![CDATA[ beliebiger Text]]>

Un document XML trebuie să conțină exact un element de nivel superior. Mai multe elemente și text pot fi cuibărite sub acest element de document.

DTD

O definiție a tipului de document (DTD) descrie structura și gramatica documentelor. Face parte din sistemul XML și este activat în mod implicit.

Dacă documentele sunt create cu referire la o definiție a tipului de document extern sau cu o definiție integrată a tipului de document, analizorul verifică documentul imediat ce este deschis (citit). Un document bazat pe o definiție a tipului de document este întotdeauna un document valid. Accentul este pus pe conformitatea conținutului documentului cu regulile definiției tipului de document. Lizibilitatea tehnică, inclusiv citirea documentelor nevalide, are o importanță secundară. Acesta este destinat documentelor full-text ( documente narative ) și este scopul principal.

Documentele fără DTD sunt mai potrivite pentru orice schimb de date. Analizorul verifică aceste documente numai în conformitate cu regulile de bună formare. Legibilitatea tehnică este principala prioritate aici. Informațiile reale sunt verificate și citite folosind procese din aval.

Citibilitatea documentelor XML

Practic toate browserele web, cum ar fi Apple Safari , Google Chrome , Microsoft Internet Explorer , Mozilla Firefox și Opera pot vizualiza documente XML direct cu ajutorul analizorului XML încorporat .

Clasificarea documentelor XML

Documentele XML pot fi împărțite în documente centrate pe documente și documente centrate pe date, pe baza utilizării intenționate și a gradului de structură. Cu toate acestea, granița dintre aceste tipuri de documente este fluidă. Formele mixte pot fi descrise ca semi- structurate.

  • centrat pe document: documentul se bazează pe un document text care este în mare măsură de înțeles pentru cititorul uman, chiar și fără metainformații suplimentare. Elementele XML sunt utilizate în principal pentru marcarea semantică a pasajelor din document; documentul este doar slab structurat. Prelucrarea mașinii este dificilă din cauza structurii slabe.
  • centrat pe date: documentul este destinat în principal procesării mașinilor. Urmează o schemă care descrie entitățile unui model de date și definește relația dintre entități și atributele entităților. Documentul este astfel foarte structurat și mai puțin potrivit pentru utilizarea directă a omului.
  • semi-structurat: documentele semi-structurate reprezintă un fel de formă hibridă care este mai structurată decât documentele centrate pe documente, dar mai slabe decât documentele centrate pe date.

Este tipic documentelor XML centrate pe date că elementele au fie conținut de element, fie conținut de text. Așa-numitul conținut mixt, în care elementele conțin atât text cât și elemente secundare, este tipic pentru celelalte documente XML.

Prelucrarea XML

Criterii de procesare

Practic, trei aspecte sunt importante atunci când accesați un document XML:

  • Cum se accesează fișierul XML: secvențial sau aleatoriu?
  • Cum este conceput procesul de accesare a datelor XML: „Push” sau „Pull”? (Push înseamnă că parserul controlează fluxul programului. Pull înseamnă că controlul fluxului este implementat în codul care apelează parserul.)
  • Cum se efectuează managementul structurii arborescente a datelor XML: ierarhic sau imbricat?

Acces programatic la documente XML

Documentele XML sunt citite la cel mai scăzut nivel folosind o componentă specială a programului, un procesor XML , cunoscut și sub numele de analizor XML. Oferă o interfață de programare (API) prin care aplicația accesează documentul XML.

Procesoarele XML acceptă trei modele de procesare de bază.

  • DOM : Un DOM-API reprezintă un document XML ca structură de arbore și oferă acces aleatoriu la componentele individuale ale structurii de arbore. În plus față de citirea documentelor XML, DOM permite, de asemenea, să se manipuleze structura arborelui și să fie scrisă din nou într-un document XML. Din această cauză, DOM necesită foarte multă memorie.
  • SAX : O API SAX reprezintă un document XML ca flux de date secvențial și apelează funcțiile de apel invers specificate în standard pentru evenimente. O aplicație care utilizează SAX își poate înregistra propriile subrutine ca funcții de apel invers și în acest fel poate evalua datele XML.
  • API Pull : un API XML pull procesează secvențial datele și oferă atât procesare bazată pe evenimente, cât și un iterator . Este foarte eficient din punct de vedere al memoriei și, dacă este necesar, mai ușor de programat decât SAX-API, deoarece controlul procesului revine programului și nu parserului.

Alte modele de procesare:

  • Legarea datelor : această opțiune oferă date XML ca structură de date direct pentru accesul la program. Datele XML nu sunt analizate direct în z. B. Obiecte convertite.
  • API XML care nu se extrage : datele sunt procesate foarte eficient la nivel de octeți.

De multe ori, codul aplicației nu accesează direct parser API. În schimb, XML este încapsulat în continuare, astfel încât codul aplicației să funcționeze cu obiecte native / structuri de date bazate pe XML. Exemple de astfel de straturi de acces sunt JAXB în Java , Data Binding Wizard în Delphi sau XML Schema Definition Toolkit în .Net . Conversia obiectelor în XML este de obicei bidirecțională. Această conversie este cunoscută sub numele de serializare sau marshaling .

Exemple de API parser XML

API-urile parser XML sunt disponibile pentru diferite limbaje de programare, cum ar fi: B. Java , C , C ++ , C # , Python , Perl și PHP . Exemple API API:

  • XML :: Parser ( Perl ): Un analizor XML pentru Perl. Un API foarte simplu oferă de ex. B. și modulul CPAN XML :: Simple.
  • Funcții DOM (PHP5): Modul în PHP5 pentru citirea documentelor XML; alternativ simpluXML; pentru PHP4 există DOM XML.
  • StAX (Java) : O implementare parser (pull) foarte eficientă în memorie și în același timp ușor de programat. Sunt oferite modele de procesare a cursorului și a iteratorului.
  • JAXB : Legarea datelor pentru Java. De exemplu, clasa Java corespunzătoare poate fi generată dintr-o schemă XML și invers.
  • Apache XMLBeans Java Data Binding Framework, poate fi deja utilizat cu Java 1.4.2
  • Xerces : Un analizor XML de validare pentru C ++, Java și Perl pentru o mare varietate de platforme.
  • ElementTree iterparse : un API parser pentru Python care iterează peste subarburi. Combină eficiența de stocare a unui analizor de tragere cu simplitatea unui analizor DOM.
  • VTD-XML : Exemplu de API XML care nu se extrage.
  • MSXML : Microsoft XML Core Services, biblioteca software Microsoft XML pentru suport XML prin DOM, SAX, XSLT, XML Scheme și alte tehnologii legate de XML
  • Pugixml : Un analizor XML DOM pentru C ++ a cărui dezvoltare a pus un accent deosebit pe codul eficient.

Există programe speciale, așa-numiții editori XML, pentru crearea documentelor XML . Există, de asemenea, programe speciale, așa-numitele baze de date XML, pentru stocarea și gestionarea documentelor XML .

Transformarea și reprezentarea documentelor XML

Un document XML poate fi transformat într-un alt document folosind limbaje de transformare adecvate, cum ar fi XSLT sau DSSSL . Transformarea este adesea utilizată pentru a transfera un document dintr-un limbaj XML în alt limbaj XML, de exemplu pentru a-l transforma în XHTML, pentru a afișa documentul într-un browser web.

Limbi schemă

Așa-numitele limbaje schemă sunt utilizate pentru a descrie structura limbajelor XML .

Schema XML / XSD

Schema XML (sau XSD pentru definirea schemei XML) este modul modern de a descrie structura documentelor XML. Schema XML oferă, de asemenea, posibilitatea de a restricționa conținutul elementelor și atributelor, de ex. B. pe numere, date sau texte, de ex. B. folosind expresii regulate . O schemă este ea însăși un document XML care permite descrierea unor relații mai complexe (de asemenea, legate de conținut) decât este posibil cu un DTD formal.

Mai multe limbi schemă

Alte limbaje de schemă sunt Document Structure Description , RELAX NG și Schematron .

Familia XML

Infrastructură

În legătură cu XML, consorțiul W3 a definit multe limbaje pe baza XML, care oferă expresii XML pentru funcții generale frecvent solicitate, cum ar fi conectarea documentelor XML. Numeroase limbaje XML folosesc aceste elemente de bază.

  • Transformarea documentelor XML: XSLT , STX
  • Adresarea părților unui arbore XML: XPath
  • Conectarea resurselor XML: XPointer , XLink și XInclude
  • Selectarea datelor dintr-o înregistrare de date XML: XQuery
  • Manipularea datelor într-o înregistrare de date XML: XUpdate
  • Redactarea formularelor electronice: XForms
  • Definirea structurilor de date XML: XML Schema (= XSD, XML Schema Definition Language), DTD și RELAX NG
  • Semnătura și criptarea nodurilor XML : semnătura XML și criptarea XML
  • Declarații privind conținutul informațiilor oficiale: XML Infoset
  • Reprezentarea formatată a datelor XML: XSL-FO
  • Definiția apelului metodei sau funcției de către sistemele distribuite: XML-RPC
  • Atribute standardizate: XML Base și ID (DTD)
  • Limbaj de programare declarativ bazat pe XML: MXML

limbi

Astăzi, multe limbaje formale folosesc sintaxa XML. XML este un instrument esențial pentru crearea unui peisaj informațional deschis ( web semantic ) care este de înțeles pentru oameni și mașini - așa cum intenționează W3C .

Binecunoscutul limbaj document HTML a fost, de asemenea, integrat în acest concept ca „Extensible HyperText Markup Language” ( XHTML ) după versiunea 4.01, astfel încât acum se bazează pe XML ca bază pentru definire. Un motiv comun pentru utilizarea XML este prezența numeroasă a analizatorilor și sintaxa simplă: definiția SGML cuprinde 500 de pagini, cea a XML doar 26.

Următoarele liste reprezintă unele dintre aceste limbaje XML.

text

  • XSL-FO (formatare text)
  • DocBook
  • DITA
  • XHTML (HTML compatibil XML)
  • TEI (Text Encoding Initiative)
  • NITF (News Industry Format Format)
  • OPML (Outline Processor Markup Language)
  • OSIS (Open Scripture Information Standard)

grafic

  • SVG (grafică vectorială)
  • X3D (limbaj de modelare 3D)
  • Collada (format de schimb de date între diferite programe 3D)

Date geospațiale

multimedia

  • MEI (Music Encoding Initiative)
  • MusicXML (date despre partituri, muzică înregistrată)
  • SMIL (conținut multimedia sincronizat în timp)
  • MPEG-7 (metadate MPEG-7)
  • Laszlo (LZX)

Siguranță

Inginerie

  • AutomationML , un format pentru stocarea datelor de planificare a sistemului
  • CAEX , un format pentru stocarea informațiilor ierarhice despre obiect
  • GSDML, un format pentru descrierea dispozitivelor de automatizare care pot comunica cu Profinet
  • IODD , un format pentru descrierea senzorilor și actuatorilor
  • PLMXML, un format pentru descrierea datelor despre produse ca parte a software-ului Siemens PLM
  • LandXML, un format pentru stocarea obiectelor georeferențiate
  • RTML (Remote Telescope Markup Language), un format pentru descrierea cererilor de observare astronomică

Mai departe

În plus, există limbaje XML pentru servicii web (de ex. SOAP , WSDL și WS- * ), pentru integrarea codului Java în documente XML ( XSP ), pentru sincronizarea datelor de calendar SyncML , formule matematice ( MathML ), Reprezentarea graficelor ( GraphML ), proceduri în domeniul semantic web ( RDF , OWL , Topic Maps , UOML ), furnizarea de servicii ( SPML ), schimbul de mesaje ( XMPP ) sau rapoarte financiare precum situațiile financiare anuale ( XBRL ) , în domeniile industriei auto ( șabloane ODX , MSRSW , AUTOSAR , QDX , JADM , OTX ), test automat de ex. B. de la circuite ( ATML ) la biologia sistemelor ( SBML ) și agricultură ( AgroXML ) la publicare ( ONIX ) sau chimie (CIDX) și multe altele.

Un rezumat al limbajelor XML pentru aplicațiile Office poate fi găsit în formatul de schimb OpenDocument ( OASIS Open Document Format for Office Applications ).

Formate alternative

Trivia

Linus Torvalds a descris XML ca fiind inadecvat ca limbaj de marcare (comentariul nr. 19):

„XML este o prostie. Într-adevăr. Nu există scuze. XML este urât să se analizeze pentru oameni și este un dezastru să se analizeze chiar și pentru computere. Nu există niciun motiv pentru care să existe acea porcărie oribilă ".

- Linus Torvalds, 2014

literatură

  • Charles F. Goldfarb, Paul Prescod: XML Handbook . Piață și tehnologie, München [u. a.] 1999, ISBN 3-8272-9575-0 .
  • Wiebke Möhr, Ingrid Schmidt: SGML și XML: Aplicații și perspective . Springer-Verlag, Berlin / Heidelberg / New York [u. a.] 1999, ISBN 3-540-65543-3 .
  • Robert Eckstein: XML - scurt și bun . O'Reilly Verlag, Cambridge / Köln [u. a.] 2000, ISBN 3-89721-219-6 .
  • Henning Lobin: Modelarea informațiilor în XML și SGML . Springer, Berlin 2000, ISBN 3-540-65356-2 .
  • Michael Seeboerger-Weichselbaum: Seminarul pentru începători XML . Ediția a doua, revizuită. Software BHV, Kaarst 2000, ISBN 3-8287-1018-2 .
  • Elliotte Rusty Harold: Biblia XML . A doua ediție actualizată. mitp, Bonn 2002, ISBN 3-8266-0821-6 .
  • Stefan Mintert: XML & Co. Specificațiile W3C pentru arhitectura de documente și date . Addison-Wesley, München 2002, ISBN 3-8273-1844-0 .
  • Christine Kränzler: XML / XSL -… pentru începători profesioniști. pentru carte și web . Markt + Technik, München 2002, ISBN 3-8272-6339-5 .
  • Frank Bitzer: XML în companie. Informare pentru managementul IT . Galileo Press, Bonn 2002, ISBN 3-89842-288-7 .
  • Erik T. Ray: Introducere în 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: standarde și tehnologii . Comelio Medien, Berlin 2009, ISBN 978-3-939701-21-7 .
  • Helmut Vonhoegen: Noțiuni introductive despre XML. Standarde actuale: Schema XML, XSL, XLink . Ediția a VIII-a. Rheinwerk, 2015, ISBN 978-3-8362-3798-7 .

Link-uri web

Commons : XML  - colecție de imagini, videoclipuri și fișiere audio
Wikibooks: Dezvoltare de site-uri web: XML  - materiale de învățare și predare

Dovezi individuale

  1. Extensible Markup Language (XML) 1.0. w3.org, 10 februarie 1998, arhivat din original la 15 iunie 2006 ; accesat pe 12 februarie 2017 .
  2. Extensible Markup Language (XML) 1.0 (ediția a cincea). w3.org, 26 noiembrie 2008, accesat la 12 februarie 2017 .
  3. Personaje. În: Extensible Markup Language (XML) 1.0 (ediția a cincea). 26 noiembrie 2008, accesat pe 9 martie 2019 .
  4. plm.automation.siemens.com
  5. Limbaj de marcare a telescopului la distanță (RTML), cod bib : 2006AN .... 327..751H
  6. Comentariu în discuția despre XML ca limbaj de markup (6 martie 2014) . ( plus.google.com [accesat la 10 aprilie 2017]).