xml Zelfstudie
Aan de slag met xml
Zoeken…
Opmerkingen
XML is een opmaaktaal die wordt gebruikt om hiërarchische gegevens in tekstbestanden op te slaan. Het staat ook bekend als semi-gestructureerde gegevens, zoals JSON. XML is machineleesbaar, maar kan ook door mensen worden gelezen en geproduceerd.
XML bestaat uit elementen, soms ook wel tag-soup genoemd , die zelf andere elementen en / of tekst kunnen bevatten. Elementen kunnen ook attributen bevatten.
XML wordt vaak gebruikt voor gegevensuitwisseling tussen platforms, met name via internet. Het wordt ook steeds vaker gebruikt voor het opslaan van semi-gestructureerde gegevens in NoSQL-datastores (XML-databases / documentstores). Bovendien biedt het de flexibiliteit om documentgeoriënteerde gegevens (tekst met markup) te verwerken, waardoor het erg populair is in de uitgeverij. XML wordt ook veel gebruikt voor configuratiebestanden.
Een van de belangrijkste redenen waarom XML zo veel wordt gebruikt, is dat het is gestandaardiseerd, met veel beschikbare parsers, waaronder open source. Dit maakt de kosten van het gebruik van XML lager dan de uitvinding van de eigen nieuwe syntaxis.
Meer informatie over de oorsprong en doelen van XML is te vinden in de officiële W3C-aanbeveling .
Er zijn twee versies van XML, weergegeven in de onderstaande tabel. De edities van elke versie zijn slechts revisies van de originele documenten en geen wijzigingen van de normen.
De eerste versie van XML is 1.0 . XML 1.1 is primair gewijzigd vanwege de Unicode-versiewijziging van 2.0 naar 3.1 en specificeert een set nieuwe regels voor het gebruik en de interpretatie van nieuwe Unicode-tekens.
versies
Versie | Publicatiedatum |
---|---|
1.0 | 1998/02/10 |
1.1 | 2001/12/13 |
Installatie of instellingen
XML is een syntaxis, wat betekent dat een eenvoudige teksteditor voldoende is om te beginnen.
Het is echter bijna onmisbaar voor een productiviteit om een XML-specifieke editor te hebben die aangeeft wanneer en waar uw document niet goed is opgebouwd. Met dergelijke editors kunt u ook XML-documenten valideren tegen een XML-schema of zelfs XML-schema's genereren op basis van XML-documenten (en vice versa).
Enkele voorbeelden van editors zijn oXygen, Atom, Eclipse en Altova XMLSpy. Een alternatieve oplossing is het gebruik van een opdrachtregel-XML-parser zoals Apache Xerces.
De basisbouwstenen
XML is gemaakt van basisbouwstenen, die zijn:
- element
- tekst
- attributen
- opmerkingen
- verwerkingsinstructies
Een element heeft punthaken:
<element/>
<element>some content</element>
Een kenmerk verschijnt in een openingstag:
<element
attribute-name="attribute value"
other-attribute='single-quoted value'>
...
</element>
Tekst kan overal binnen of tussen elementen verschijnen:
<element>some more <b>bold</b> text</element>
Opmerkingen gebruiken de volgende syntaxis. Het is belangrijk om te weten dat XML-opmerkingen, in tegenstelling tot programmeertalen, deel uitmaken van het model en zichtbaar zijn voor de toepassing boven de parser.
<!-- this is a comment -->
Met verwerkingsinstructies kunnen berichten worden doorgegeven aan de verbruikende toepassing (bijvoorbeeld hoe deze worden weergegeven of een stylesheet, enz.). XML beperkt het formaat van de verwerkingsinstructies niet.
<?target-application these are some instructions?>
Meer details over bouwstenen vindt u in dit onderwerp
Welgevormdheidsregels
Een XML-document is een tekstbestand dat voldoet aan de regels van de XML-specificatie. Van een dergelijk conform document wordt gezegd dat het goed gevormd is (niet te verwarren met geldig ). XML is erg strikt met een goede formaliteit in vergelijking met andere talen zoals HTML. Een tekstbestand dat niet goed is gevormd, wordt niet als XML beschouwd en kan helemaal niet worden gebruikt door applicaties te consumeren.
Hier zijn enkele regels die van toepassing zijn op XML-documenten:
XML gebruikt een veel zichzelf beschrijvende syntaxis. Een proloog definieert de XML-versie en de tekencodering:
<?xml version="1.0" encoding="UTF-8"?>
Er moet precies één element op het hoogste niveau zijn.
Opmerkingen, verwerkingsinstructies en de eerste XML-aangifte zijn echter ook op het hoogste niveau toegestaan. Tekst en attributen zijn dat niet.
<?xml version="1.0"?> <!-- some comments --> <?app a processing instruction?> <root/> <!-- some more comments -->
Elementen kunnen nestelen, maar moeten "correct worden genest":
<name> <first-name>John</first-name> <last-name>Doe</last-name> </name>
De start- en eindtags van een ingesloten element moeten zich binnen de start- en eindtags van het containerelement bevinden. Een overlapping van elementen is illegaal. Dit is met name geen goed gevormde XML:
<foo><bar></foo></bar>
Attributen kunnen alleen worden weergegeven in openende element-tags of lege element-tags, niet in afsluitende element-tags. Als de syntaxis van het kenmerk tussen elementen verschijnt, heeft dit geen betekenis en wordt het als tekst ontleed.
<person first-name="John" last-name="Doe"/>
Dit is niet goed gevormd:
<person></person first-name="John"/>
Opmerkingen, verwerkingsinstructies, tekst en andere elementen kunnen overal in een element verschijnen (dat wil zeggen, tussen de openings- en sluitingstag) maar niet in de tags.
<element> This is some <b>bold</b> text. <!-- the b tag has no particular meaning in XML --> </element>
Dit voorbeeld is niet goed gevormd:
<element <-- comment --> />
Het teken
<
mogelijk niet in tekst of in kenmerkwaarden weergegeven.Het
"
teken verschijnt mogelijk niet in attribuutwaarden tussen aanhalingstekens"
. Het'
teken verschijnt mogelijk niet in attribuutwaarden die worden geciteerd met'
.De reeks tekens
--
mogelijk niet in een opmerking weergegeven.Letterlijke
<
en&
tekens moeten worden ontlopen door hun respectieve entiteiten<
en&
.
Hallo Wereld
<?xml version="1.0"?>
<?speech-generator voice="Siri"?>
<root xmlns:vocabulary="http://www.example.com/vocabulary">
<!-- These are the standard greetings -->
<vocabulary:greetings>
<vocabulary:greeting xml:lang="en-US" type="informal">
Hi!
</vocabulary:greeting>
<vocabulary:greeting xml:lang="en-US" type="intermediate">
Hello!
</vocabulary:greeting>
<vocabulary:greeting xml:lang="en-US" type="formal">
Good morning to <b>you</b>!
</vocabulary:greeting>
</vocabulary:greetings>
</root>
namespaces
Element- en attribuutnamen leven in naamruimten die URI's zijn. Naamruimten zijn gebonden aan voorvoegsels die worden gebruikt in de feitelijke element- en kenmerknamen, die QNames worden genoemd.
Dit document bindt een namespace aan de prefix prefix
en definieert een standaard namespace, gebonden met de afwezigheid van prefix.
<?xml version="1.0"?>
<document
xmlns="http://www.example.com/default-namespace"
xmlns:prefix="http://www.example.com/another-namespace">
<prefix:element/>
</document>
Meer details over naamruimten zijn te vinden in dit onderwerp