Hallo,
Ik zit met een vraagstukje waar ik niet uit kom en hoop dat iemand hier mij in de goede richting kan duwen. Ik heb in het boek XSLT 2.0 van Michael Kay gezocht en op internet, maar mogelijk zoek ik niet op de juiste termen want ik vind geen oplossing.
De situatie is als volgt:
Ik heb één map met XML bestanden. De XML bestanden zijn onder te verdelen in 11 soorten XML bestanden, ze staan echter allemaal in één en dezelfde bronmap.
De XML bestanden zijn heel plat qua structuur, maar bevatten wel allemaal andere elementnamen.
De structuur ziet er globaal als volgt uit:
<document>
<element1 />
<element2 />
<element3 />
<element4 />
enz.
</document>
De namen van de elementen verschillen dus per soort XML bestand.
Ik heb nu voor elk van de 11 type XML bestanden een apart XSL bestand gemaakt waarmee ze kunnen worden vertaald.
De structuur van het doel XML bestand is dusdanig anders, dat ik meteen vanaf de root moet gaan vertalen.
Mogelijk dat de 11 XSL bestanden zijn samen te voegen tot 1 bestand, maar dat wil ik uit beheer oogpunt liever niet...ik hou het liever simpel.
Nu zit ik toch met een probleem: <element1 /> heeft altijd een waarde op basis waarvan ik kan bepalen om welk type XML bestand het in dat specifieke geval gaat én welke XSL file gebruikt zou moeten worden om te vertalen.
Nu vraag ik mij af: hoe kan ik een "overkoepelend" XSL bestand maken die de juiste "sub-XSL" aanspreekt op basis van de waarde van <element1 />.
Ik roep nu nl. via een VBscript de Saxon XML parser aan. Daarbij geef ik aan wat de input en output map is en welke XSL gebruikt moet worden. Zoals gezegd bevat de input map meerdere soorten XML bestanden. Ik wil Saxon verwijzen naar de "overkoepelende" XSL file...
Heeft iemand enig idee hoe ik dit kan aanpakken?
P.S.
<xsl:import> en <xsl:include> zijn geen opties omdat ik niet delen van de XSL in een module wil opslaan, maar een compleet aparte XSL wil aanspreken op basis van een waarde van een element in het bron XML bestand.
Ik zit met een vraagstukje waar ik niet uit kom en hoop dat iemand hier mij in de goede richting kan duwen. Ik heb in het boek XSLT 2.0 van Michael Kay gezocht en op internet, maar mogelijk zoek ik niet op de juiste termen want ik vind geen oplossing.
De situatie is als volgt:
Ik heb één map met XML bestanden. De XML bestanden zijn onder te verdelen in 11 soorten XML bestanden, ze staan echter allemaal in één en dezelfde bronmap.
De XML bestanden zijn heel plat qua structuur, maar bevatten wel allemaal andere elementnamen.
De structuur ziet er globaal als volgt uit:
<document>
<element1 />
<element2 />
<element3 />
<element4 />
enz.
</document>
De namen van de elementen verschillen dus per soort XML bestand.
Ik heb nu voor elk van de 11 type XML bestanden een apart XSL bestand gemaakt waarmee ze kunnen worden vertaald.
De structuur van het doel XML bestand is dusdanig anders, dat ik meteen vanaf de root moet gaan vertalen.
Mogelijk dat de 11 XSL bestanden zijn samen te voegen tot 1 bestand, maar dat wil ik uit beheer oogpunt liever niet...ik hou het liever simpel.
Nu zit ik toch met een probleem: <element1 /> heeft altijd een waarde op basis waarvan ik kan bepalen om welk type XML bestand het in dat specifieke geval gaat én welke XSL file gebruikt zou moeten worden om te vertalen.
Nu vraag ik mij af: hoe kan ik een "overkoepelend" XSL bestand maken die de juiste "sub-XSL" aanspreekt op basis van de waarde van <element1 />.
Ik roep nu nl. via een VBscript de Saxon XML parser aan. Daarbij geef ik aan wat de input en output map is en welke XSL gebruikt moet worden. Zoals gezegd bevat de input map meerdere soorten XML bestanden. Ik wil Saxon verwijzen naar de "overkoepelende" XSL file...
Heeft iemand enig idee hoe ik dit kan aanpakken?
P.S.
<xsl:import> en <xsl:include> zijn geen opties omdat ik niet delen van de XSL in een module wil opslaan, maar een compleet aparte XSL wil aanspreken op basis van een waarde van een element in het bron XML bestand.
[ Voor 5% gewijzigd door timothee op 19-12-2007 16:26 ]