Nou ben ik absoluut geen XML/XSD/XSLT guru ... so bear with me
Uit Systeem A ontvang ik XML bestanden met informatie over klanten. Wanneer iemand in dat systeem op "SAVE" drukt, vliegt er een XML bestand uit wat ik weer moet inlezen in een ander systeem.
Deze XML bestanden worden aangemaakt aan de hand van een XSD waarin 99% van de elementen OPTIONAL zijn, met MinOccurence 0 en Nullable is leeg. Het gevolg daarvan is dat ik in de output XML file alleen die elementen krijg welke gevuld zijn.
Ik krijg dus geen uniforme XML bestanden, elk bestand heeft meer of minder elementen - puur afhankelijk van de "vulling".
Aan de andere kant wordt een ETL gebruikt om al deze XML files in te lezen in een database. Deze tool gebruikt weliswaar hetzelfde XSD maar is helaas niet zo flexibel. De mappings van het ETL proces tussen de inkomende XML file en de tabellen in de database gaan hier problemen geven - omdat de input "column" soms wel en soms niet bestaat.
Nou was het mijn idee om dmv een XSLT transformatie die XML bestanden om te zetten in een XML bestand welke wel alle elementen bevat, ook al zijn ze leeg. Daarmee heb ik een vaste structuur waarmee de ETL tool wel overweg kan.
Dus heb ik een nieuwe XSD gemaakt waarin de MinOccurence van de elementen 1 is en Nillable is True. Met behulp van MapForce een XSLT aangemaakt door de oude XSD en de nieuwe XSD aan elkaar te koppelen..... en nou loop ik een beetje vast omdat ik niet echt weet hoe ik in de XSLT moet aangeven dat een missend element wel aangemaakt moet worden.
Wanneer ik de XSLT transformatie uitvoer (dmv nxslt bv) dan werkt alles prima, ik krijg een heel mooi nieuw xml bestand.. maar de ontbrekende elementen zijn niet opgenomen.
Iemand enig idee om mij hiermee een beetje op weg te helpen?
Uit Systeem A ontvang ik XML bestanden met informatie over klanten. Wanneer iemand in dat systeem op "SAVE" drukt, vliegt er een XML bestand uit wat ik weer moet inlezen in een ander systeem.
Deze XML bestanden worden aangemaakt aan de hand van een XSD waarin 99% van de elementen OPTIONAL zijn, met MinOccurence 0 en Nullable is leeg. Het gevolg daarvan is dat ik in de output XML file alleen die elementen krijg welke gevuld zijn.
Ik krijg dus geen uniforme XML bestanden, elk bestand heeft meer of minder elementen - puur afhankelijk van de "vulling".
Aan de andere kant wordt een ETL gebruikt om al deze XML files in te lezen in een database. Deze tool gebruikt weliswaar hetzelfde XSD maar is helaas niet zo flexibel. De mappings van het ETL proces tussen de inkomende XML file en de tabellen in de database gaan hier problemen geven - omdat de input "column" soms wel en soms niet bestaat.
Nou was het mijn idee om dmv een XSLT transformatie die XML bestanden om te zetten in een XML bestand welke wel alle elementen bevat, ook al zijn ze leeg. Daarmee heb ik een vaste structuur waarmee de ETL tool wel overweg kan.
Dus heb ik een nieuwe XSD gemaakt waarin de MinOccurence van de elementen 1 is en Nillable is True. Met behulp van MapForce een XSLT aangemaakt door de oude XSD en de nieuwe XSD aan elkaar te koppelen..... en nou loop ik een beetje vast omdat ik niet echt weet hoe ik in de XSLT moet aangeven dat een missend element wel aangemaakt moet worden.
Wanneer ik de XSLT transformatie uitvoer (dmv nxslt bv) dan werkt alles prima, ik krijg een heel mooi nieuw xml bestand.. maar de ontbrekende elementen zijn niet opgenomen.
Iemand enig idee om mij hiermee een beetje op weg te helpen?
Het nieuwe speelgoed: een Saab 9-3 Aero (absoluut, helemaal en compleet fantastisch....)