XML en Excel

Pagina's in dit artikel

  1. Wat is XML
  2. Kenmerken van XML
  3. Opbouw van een XML bestand
  4. XML Schema's
  5. XML in Excel
  6. XML Validatie
  7. Conclusie

XML Validatie

Vreemd genoeg heeft Microsoft het valideren van XML gegevens in Excel standaard uitgeschakeld. Na inschakelen van deze optie zal Excel wanneer een XML bestand niet voldoet aan een XSD schema, bij het importeren of exporteren een foutmelding tonen.

Eerst moet een sjabloon gemaakt worden op basis van een XML bestand dat verwijst naar een geldig schema en moet de validatie worden ingeschakeld. Sluit alle open mappen in Excel en kies "Bestand, Openen-->". Kies het bestand test2.xml. Hieruit is de naam van de eerste medewerker weggelaten. Kies wederom de optie "het Taakvenster van de XML-gegevensbron gebruiken". Sleep de tak "Medewerker" naar en cel. Rechtsklik vervolgens in het bereik dat blauw omlijnd is (dit geeft aan dat het een zogeheten Lijst is) en kies de optie XML, Eigenschappen van XML-Toewijzing... Zie figuur 10 en 11.

keuzemenu XML bij rechtsklikken binnen een lijstbereik
Figuur 10: keuzemenu XML bij rechtsklikken binnen een lijstbereik

dialoogvenster Eigenschappen van XML-Toewijzing
Figuur 11: dialoogvenster "Eigenschappen van XML-Toewijzing"

Plaats een vinkje bij "Gegevens valideren volgens een schema bij importeren en exporteren".

Klik nu op de knop Gegevens vernieuwen. Excel toont een foutmelding (figuur 12).

Foutmelding bij importeren XML bestand dat niet aan het schema voldoet
Figuur 12: Foutmelding bij importeren XML bestand dat niet aan het schema voldoet

Door op de knop Details... te klikken geeft Excel detail informatie over de fout die is gevonden in het XML bestand (figuur 13). In dit geval geeft Excel aan, dat het het element "straat" nog niet verwacht, maar wel het element "Naam". Dit komt dus omdat het element Naam ontbreekt op de positie waar het volgens het schema zou moeten staan. Ondanks de foutmelding heeft Excel wél de gegevens ingelezen.

details bij foutmelding na importeren XML bestand dat niet aan het schema voldoet
Figuur 13: details bij foutmelding na importeren XML bestand dat niet aan het schema voldoet

Omgekeerd werkt de validatie ook. Open het bestand ExcelXML.xls (zie figuur 14) en verwijder de hele kolom D. Tracht nu de XML lijst te exporteren en de foutmelding getoond in figuur 15 wordt getoond (na klikken op de Details... knop). Er wordt overigens wél een XML bestand geproduceerd.

schermafdruk van het bestand ExcelXML.xls
Figuur 14: schermafdruk van het bestand ExcelXML.xls

foutmelding na verwijderen van een kolom en exporteren van de XML lijst
Figuur 15: foutmelding na verwijderen van een kolom en exporteren van de XML lijst.



Vragen, suggesties en opmerkingen

Al het commentaar over deze pagina:


Commentaar van: Jeu Kaus (22-3-2011 03:33:33) deeplink naar dit commentaar

Ik heb een csv bestand met datumvelden bijv. 01072010 en als daar een xml bericht van maak toont het xml mij 1072010 en ik wil de volledige datum in het xml zien.
Wat moet ik doen/aanpassen in excel?


Commentaar van: Jan Karel Pieterse (22-3-2011 07:12:42) deeplink naar dit commentaar

Hallo Jeu,

Dat ligt eraan hoe je het XML bericht maakt denk ik. Doe je het direct vanuit Excel? Zat er een schema bij het XML bestand waarmee je de mapping naar Excel hebt gemaakt? (daarmee geef je de formaten aan onder andere)?


Commentaar van: Tim (28-1-2015 20:58:19) deeplink naar dit commentaar

Hi, ik heb een goedgekeurde XML ingelezen in excel. Dit gaat zonder problemen. Zonder iets te wijzigen wil ik het nu exporteren. Vraag maar niet waarom, ben gewoon aan het spelen. Maar het vreemde is dat het exporteren een fout geeft: De XML-gegevens kunnen niet worden opgeslagen of geexporteerd. Ik weet inmiddels dat dit komt door de gelaagdheid van de excel (bv 1 klant met meerdere orders). Vreemd dat het inlezen wel zonder probleemn gaat. Maar mijn vraag is hoe ik dit exporteren toch voor elkaar krijg. Heeft u suggesties?

Mvg. Tim


Commentaar van: Jan Karel Pieterse (29-1-2015 11:16:55) deeplink naar dit commentaar

Hallo Tim,

De enige manier om een dieper geneste xml op te slaan is middels VBA code helaas, direct vanuit Excel is dat niet mogelijk.


Heeft u vragen, suggesties of opmerkingen? Gebruik dan dit formulier.

Mocht uw vraag niet direct relevant zijn voor deze pagina, maar een algemene Excel vraag betreffen, dan adviseer ik om deze hier te stellen: excelexperts.nl/forum/index.php.




Als u VBA code in uw commentaar plaatst, gebruik dan [VB] tags: [VB]Uw code[/VB].