Ik ben weer eens goed in xslt verder gegaan en voorheen transformeerde ik de uiteindelijke resulttree in xml altijd naar HTML 4. Nu wij natuurlijk allemaal keurig aan het overstappen zijn naar (well-formed) xhtml dacht ik daar ook eens een draai aan te geven. 
Maar dan kom ik een probleem tegen waar volgens mij geen nette oplossing voor is:
Het afsluiten van tags die content mogen hebben moet nog steeds op de HTML wijze, anders snapt IE het niet meer. Denk bijvoorbeeld aan een script-tag in de volgende context:
Daarbij moet je je dus voorstellen dat http/root even een probeerseltje is waarin de http(document-)root in staat. Gevolg is dan (natuurlijk) een keurig "empty" element:
Maar, om de browsers nog even tevreden te stellen zou dit eigenlijk:
moet worden.
Wanneer je dit echter met een html-output method doet, krijg je wel een keurig (html-like) afgesloten <script> element, maar dan krijg je ook weer empty elements zoals <br /> die niet op de xml maar op de html wijze (<br>) worden weergegeven. Als je dat gaat doen kun je dus net zo goed bij html 4 blijven, ajbwib
Ik wil eigenlijk gewoon een lijst op kunnen geven van elementen die op de html-wijze afgesloten worden en een lijst van element die wel op de xml wijze afgesloten mogen worden... Ik vermoed dat dat vanuit xslt zonder work-around niet ondersteund wordt, maar misschien is er iemand die er een nette oplossing voor gevonden heeft?
Ik heb al geprobeerd bijvoorbeeld het script-element als cdata-element op te geven in <xsl:output />, maar dat heeft niet dat resultaat (logischerwijs ...)
Eveneens kun je die zaken natuurlijk gaan coderen (in de zin dat je met < en > gaat werken enzo), maar dan ga je natuurlijk een beetje voorbij aan de functie van xslt
Oh ja: het gaat natuurlijk niet zo zeer om het probleem van het 'src' attribuut, want hetzelfde probleem treedt op wanneer je bijvoorbeeld lege div of p elementen hebt
Maar dan kom ik een probleem tegen waar volgens mij geen nette oplossing voor is:
Het afsluiten van tags die content mogen hebben moet nog steeds op de HTML wijze, anders snapt IE het niet meer. Denk bijvoorbeeld aan een script-tag in de volgende context:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <xsl:transform
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output
method="xml"
doctype-etcetera="even weggeknipt"
/>
<drm:snip />
<script type="text/javascript">
<xsl:attribute name="src">
<xsl:value-of select="path" />hetscript.js
</xsl:attribute>
</script>
<drm:snip />
</xsl:transform> |
Daarbij moet je je dus voorstellen dat http/root even een probeerseltje is waarin de http(document-)root in staat. Gevolg is dan (natuurlijk) een keurig "empty" element:
HTML:
1
| <script type="text/javascript" src="js/resizer.js"/> |
Maar, om de browsers nog even tevreden te stellen zou dit eigenlijk:
HTML:
1
| <script type="text/javascript" src="js/resizer.js"></script> |
moet worden.
Wanneer je dit echter met een html-output method doet, krijg je wel een keurig (html-like) afgesloten <script> element, maar dan krijg je ook weer empty elements zoals <br /> die niet op de xml maar op de html wijze (<br>) worden weergegeven. Als je dat gaat doen kun je dus net zo goed bij html 4 blijven, ajbwib
Ik wil eigenlijk gewoon een lijst op kunnen geven van elementen die op de html-wijze afgesloten worden en een lijst van element die wel op de xml wijze afgesloten mogen worden... Ik vermoed dat dat vanuit xslt zonder work-around niet ondersteund wordt, maar misschien is er iemand die er een nette oplossing voor gevonden heeft?
Ik heb al geprobeerd bijvoorbeeld het script-element als cdata-element op te geven in <xsl:output />, maar dat heeft niet dat resultaat (logischerwijs ...)
Eveneens kun je die zaken natuurlijk gaan coderen (in de zin dat je met < en > gaat werken enzo), maar dan ga je natuurlijk een beetje voorbij aan de functie van xslt
Oh ja: het gaat natuurlijk niet zo zeer om het probleem van het 'src' attribuut, want hetzelfde probleem treedt op wanneer je bijvoorbeeld lege div of p elementen hebt
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz