You are on page 1of 10

Wat is een XSD

Een XSD beschrijft de structuur van een XML. Het bevat kenmerken zoals
-

De namen van de tags


De nesting van de elementen
Het toegestane type van de elementen
Of een element vaker mag/kan voorkomen
Of een element verplicht is of niet

Uitgebreide informatie is te vinden op:


http://www.w3schools.com/xml/schema_intro.asp

Hoe genereer je een XSD obv een


voorbeeld XML
Type in google XML 2 XSD in, en bekijk en gevonden resultaten.

Ik heb de bovenste gepakt.


Daar plak je de inhoud van je xml-bestand en klik je op generate.

Het resultaat kun je vervolgens opslaan in een bestand met xsd extensie.

Hoe koppel je een XSD aan je project


In windev kies je via de Project Explorer Import an XSD into the project en vervolgens selecteer je de
gewenste xsd-file.

Het resultaat (de structuur en gebruikte variabelen is te zien

Hoe lees je een XML in


Zie code knop Inlezen van het voorbeeld-project.
Je kunt de inhoud van een XML via een globale variabele koppelen aan een xsd beschrijving

Deze variabele kun je ook gebruiken om de inhoud van een XML te tonen in een tabel

Het inlezen en tonen van de XML gebeurt in de knop Inlezen

Na uitvoer is de tabel gevuld met de inhoud

Hoe schrijf je een XML weg


Pas een waarde aan in de tabel (bv. prijs) en zie knop Opslaan.

Hoe bewerk je een XML


Bovenstaand voorbeeld word op basis van de gui de wijzigingen in het xml-object gemaakt. Dit kan
ook rechtstreeks via code. Twee voorbeelden hiervan staan in de knoppen Prijsverhoging en 5
Boeken toevoegen.
Met de knop prijsverhoging worden automatisch alle prijzen met een opgegeven percentage
verhoogd. Te zien valt dat men door de array van boeken kan lopen en members rechtstreeks van
een nieuwe waarde kan voorzien.

Na uitvoer worden de prijzen aangepast en opgeslagen en getoond.

Met de 5 Boeken Toevoegen knop, kun je nieuwe members aan de array van boeken laten
toevoegen.

Het lukt me helaas niet om dit via het ArrayAdd-commando te doen. Ik weet niet waarom, vandaar
dat ik het via een kunstmatige teller.
Eveneens lukt het me nog niet om een attribuut van een waarde te voorzien. De code in commentaar
zijn probeersels.
Na de uitvoer zijn er 5 nieuwe boeken toegevoegd.

Waar moet je op letten


Bij het toewijzen van inhoud aan de xsd-variabelen MOET je DEZELFDE volgorde gebruiken als die in
de xsd is gespecificeerd. Anders krijg je bij de xmlvalidate een foutmelding.

Een voorbeeld hiervan kun je zien door onderstaande regels om te wisselen. Je krijgt dan een
melding dat de tag Description unexpected is, en title verwacht wordt. (voor ieder element)

Ik sluit niet uit dat dit komt door de gebruikte XSD. Misschien is dit een eigenschap van de
gegeneerde XSD vanuit de webpagina. Ik kan me ook voorstellen, dat er ook xsds zijn, waarbij dit
niet speelt.

Als je string met een verkeerde numerieke inhoud toewijst aan een xsd-variabele die van een
numeriek type is (float int, decimal), dan knalt je programma er on run-time keihard uit!
Een voorbeeld hiervan kun je zien door onderstaande twee regels uit commentaar te halen. Vanwege
de komma in de prijs, gaat het mis. (Had punt moeten zijn)

Hoe wijzig je een XSD


Wanneer je een XSD hebt toegevoegd aan een windev project, dan maakt deze een nieuw bestand
aan met de extensie *.wdxsd.

De consequentie is dus, dat wijzigingen die je daarna in je oorspronkelijke xsd doorvoert, niet
meegenomen worden. Bv. het aanpassen van een type van een variabele, of het optioneel maken
van een element.
Het makkelijkste is dus, om de toegevoegde XSD eerst uit het project te verwijderen. Dan de wdxsd
te verwijderen, en tot slot de gewijzigde XSD opnieuw toe te voegen.

You might also like