Nederlands
  • XML
  • HTML
  • SAML
  • gegevensoverdracht

Wat is XML?

XML is een veelzijdige opmaaktaal voor het structureren en overdragen van gegevens. Het heeft aanpasbare tags, een hiërarchische structuur en schema-definities. In tegenstelling tot HTML richt XML zich op gegevensrepresentatie in plaats van weergave. Het wordt veel gebruikt in verschillende toepassingen, waaronder SSO-configuraties zoals Logto's SAML-implementatie.

Darcy Ye
Darcy Ye
Developer

Extensible Markup Language (XML) gebruikt tags om aan te geven hoe tekst in databestanden gestructureerd, opgeslagen en verzonden moet worden. XML is ontworpen om zowel door mensen als machines leesbaar te zijn, waardoor het een krachtige en zeer aanpasbare opmaaktool is.

XML werd in 1996 gecreëerd door het World Wide Web Consortium (W3C). Het doel van het W3C was het creëren van een taal die kan helpen bij het definiëren van documenttypen en de mogelijkheid biedt om aangepaste tags te maken. Het resulterende type opmaaktaal maakt het mogelijk te definiëren hoe gegevens op een pagina worden gemarkeerd voordat ze als een XML-bestand met een ander systeem worden gedeeld. Zolang twee systemen dezelfde XML-taal gebruiken (met tags die ze beiden kunnen interpreteren), kunnen beide systemen het XML-bestandsformaat "begrijpen". Wanneer XML correct wordt ingezet, zorgt dit ervoor dat elk databestand kan worden opgeslagen, verzonden en vervolgens gebruikt, waarbij exact dezelfde gegevens en structuur worden gereproduceerd elke keer dat het wordt geopend.

XML-inhoud voorbeeld

XML-gegevens bestaan uit tekst in een digitaal bestand. Vergelijkbaar met HTML, creëer je de noodzakelijke "code" voor XML-bestanden door tags in te voegen om aan te geven hoe de tekst moet worden geïnterpreteerd. Bijvoorbeeld:

Dit voorbeeld toont drie gebruikers. De XML-inhoud omvat naam, gebruikersnaam, e-mail en gebruikersniveau.

Dit creëert een XML-document dat kan worden gedeeld en gelezen tussen identiteitsproviders en aanbiederproviders.

Belangrijk is dat het bovenstaande voorbeeld de hiërarchische aard van XML-documenten aantoont. Bijvoorbeeld:

  • De inhoud van de eerste regel <?xml version="1.0" encoding="UTF-8"?> is de XML-verklaring, die de versie en codering specificeert
  • In een XML-document moet er een rootelement zijn, wat in dit voorbeeld <users> is
  • Alle andere elementen binnen het rootelement worden "kindelementen" genoemd
  • In het bovenstaande voorbeeld zijn er 3 kindelementen, gemarkeerd met de <user> tag
  • Binnen de <user> kindelementen zijn er verschillende andere kindelementen, zoals <name>, <username>, <email>, en <level>
  • Bij de <user> tag is er ook een id, wat een XML-attribuut wordt genoemd. Een element kan niet meerdere attributen met dezelfde naam bevatten

De gebruikte tags laten zien wat elk type gegevens is, terwijl platte tekst dient als de gegevens zelf. Merk ook op hoe de inhoud is ingesprongen. Dit is niet om systemen te helpen het XML-bestand te verwerken, maar om mensen te helpen het XML-bestand en zijn hiërarchische volgorde gemakkelijker te doorbladeren om eventuele fouten of weglatingen te ontdekken en op te lossen.

Wat is XML-schema?

Een schema fungeert als de "definitie" voor een XML-document. Dit betekent dat het de sleutelregels en beperkingen van de XML-bestandsstructuur beschrijft, evenals controles op inhoud en gegevenstypen—controlerend hoe ze met elkaar omgaan in het document. Dit zorgt ervoor dat de gegevensintegriteit van de XML te allen tijde wordt beschermd, zelfs wanneer ze worden verwerkt tussen verschillende toepassingen of zelfs systemen.

De twee belangrijkste schema-talen zijn Document Type Definition (DTD) en XML Schema Definition (XSD). XSD is de meest gebruikte taal in XML-documenten vanwege zijn rijke functieset, krachtige gegevenstype-mogelijkheden en meer.

Wat is XML-syntaxis?

Als XML-schema's zoals XSD allemaal gaan over gedetailleerde specificaties voor XML-documenten om hun geldigheid te waarborgen, dan biedt XML-syntaxis een set regels die de algehele structuur van XML-bestanden beheersen en controleren. Bijvoorbeeld, XML-syntaxis kan tekstinhoud dekken, zoals zichzelf afsluitende elementen (enkele informatie-eenheden die geen extra inhoud vereisen) of XML-verklaringen (gebruikt aan het begin van documenten om belangrijke informatie te beschrijven, zoals karaktercodering), evenals de XML-versie die door het document wordt gebruikt.

XML versus HTML

Als je bekend bent met HTML, zal de manier waarop XML-bestanden opmaak toepassen erg vertrouwd voorkomen—maar er is een belangrijk verschil tussen deze twee opmaaktalen—hun gebruiksscenario's en doeleinden verschillen:

  • HTML is een opmaaktalen gebruikt om browsers te helpen begrijpen hoe inhoud op het scherm moet worden weergegeven
  • XML is een opmaaktalen gebruikt om gegevens op te slaan, weer te geven en over te dragen

Naast dit hebben ze nog enkele andere verschillen:

  1. Omdat HTML is voor het weergeven van pagina-inhoud voor browsers, zijn de typetags vooraf gedefinieerd, terwijl XML-tags kunnen worden aangepast aan de feitelijke situaties
  2. HTML is vaak statisch omdat het wordt gebruikt om inhoud weer te geven; XML is dynamisch omdat het wordt gebruikt om gegevens over te dragen
  3. HTML ondersteunt geen naamruimten, terwijl XML naamruimten kan gebruiken om tags te onderscheiden die dezelfde naam kunnen hebben maar verschillende contexten om verwarring te voorkomen

In dit voorbeeld:

  • tech:title gebruikt <http://www.example.com/tech> als de naamruimte, wat aangeeft dat dit <title>-element behoort tot de tech naamruimte
  • bio:author gebruikt <http://www.example.com/bio> als de naamruimte, wat aangeeft dat dit <author>-element behoort tot de bio naamruimte

Hoe wordt XML gebruikt in Logto?

Logto ondersteunt het SAML-protocol voor SSO. Bij het configureren van SSO verstrekt de identiteitsprovider een XML-formaat configuratiebestand dat belangrijke configuraties bevat, zoals certificaten en single sign-on URL's.

Bij het configureren van SAML SSO, staat Logto toe om het XML-configuratiebestand direct te uploaden dat is verkregen van de identiteitsprovider, waardoor het niet nodig is om handmatig elk configuratie-item in te vullen.