Omdat disable-output-escaping (d-o-e) kan veroorzaken dat de resulttree niet meer wellformed is wordt er in de pipeline door de transformer een processinginstructie ingevoegd:
resulteert in (ik gebruik Saxon 7.9.1 of Saxon 8.0):
Michael Kay schrijft: "In 90% van de gevallen heb je d-o-e helemaal niet nodig, daarom wordt het in Cocoon niet ondersteund".
Het lijkt er echter op dat ik het wezenlijk nodig heb hier! Wat is namelijk het geval? Ik wil in het resultaat een resulttree in commentaar genereren:
Als ik echter in xslt het volgende specificeer:
heeft dat als resultaat:
De starttag en endtag <boom> zijn er niet meer! Dit komt omdat een copy-of-bewerking terugvalt op het gedrag van value-of als het resultaat niet in een element wegschreven wordt, maar bijv. in een comment-node.
Dus moet ik wel d-o-e gebruiken om een resulttree weg te schrijven binnen commentaar!
Hoe krijg ik in Cocoon voor elkaar dat de processing-instructions tijdens serialisatie daadwerkelijk opgevolgd worden en dat < en > inderdaad zullen resulteren in < en >?
De gemakkelijkste oplossing lijkt mij een serializer te vinden die die processing instructions begrijpt en verwerkt. Kan ik Saxon inzetten om te serialiseren, zo ja, hoe? En heeft dat het gewenste effect?
code:
1
2
3
4
| <xsl:text disable-output-escaping="yes"><</xsl:text>
<xsl:text>!--</xsl:text>
<xsl:text>[if gte mso 9]</xsl:text>
<xsl:text disable-output-escaping="yes">></xsl:text> |
resulteert in (ik gebruik Saxon 7.9.1 of Saxon 8.0):
code:
1
2
3
4
| <?javax.xml.transform.disable-output-escaping ><
<?javax.xml.transform.enable-output-escaping >
!--[if gte mso 9]<?javax.xml.transform.disable-output-escaping >>
<?javax.xml.transform.enable-output-escaping > |
Michael Kay schrijft: "In 90% van de gevallen heb je d-o-e helemaal niet nodig, daarom wordt het in Cocoon niet ondersteund".
Het lijkt er echter op dat ik het wezenlijk nodig heb hier! Wat is namelijk het geval? Ik wil in het resultaat een resulttree in commentaar genereren:
code:
1
2
3
4
5
| <!--
<boom>
... content ...
</boom>
--> |
Als ik echter in xslt het volgende specificeer:
code:
1
2
3
4
5
| <xsl:comment>
<boom>
... content ...
</boom>
</xsl:comment> |
heeft dat als resultaat:
code:
1
| <!--... content ...--> |
De starttag en endtag <boom> zijn er niet meer! Dit komt omdat een copy-of-bewerking terugvalt op het gedrag van value-of als het resultaat niet in een element wegschreven wordt, maar bijv. in een comment-node.
Dus moet ik wel d-o-e gebruiken om een resulttree weg te schrijven binnen commentaar!
Hoe krijg ik in Cocoon voor elkaar dat de processing-instructions tijdens serialisatie daadwerkelijk opgevolgd worden en dat < en > inderdaad zullen resulteren in < en >?
De gemakkelijkste oplossing lijkt mij een serializer te vinden die die processing instructions begrijpt en verwerkt. Kan ik Saxon inzetten om te serialiseren, zo ja, hoe? En heeft dat het gewenste effect?
Kennistechnoloog