Ich möchte Bilder (base64 kodiert) in xml-Dokument einfügen und per xslt (Prozessor Xalan) das XML-Dokument nach HTML transformieren (und zugleich das in base64 kodierte
Bild in das ursprüngliche Format jpg, gif oder png). Ein Element, welches ein Bild beinhalten kann, ist wie folgt im Schema definiert:
<xsl:element name="beispiel">
<xs:complexType mixed="false">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="p"/>
<xs:element ref="div"/>
<xs:element ref="span"/>
<xs:element ref="ul" maxOccurs="unbounded"/>
<xs:element ref="ol" maxOccurs="unbounded"/>
<xs:element ref="table" maxOccurs="unbounded"/>
<xs:element ref="br"/>
<xs:element name="img">
xs:complexType
<xs:attribute name="src" type="xs:normalizedString" use="optional"/>
<xs:attribute name="align" type="alignType" use="optional"/>
<xs:attribute name="border" type="borderType" use="optional"/>
<xs:attribute name="height" type="heightType" use="optional"/>
<xs:attribute name="hspace" type="xs:normalizedString" use="optional"/>
<xs:attribute name="vspace" type="xs:normalizedString" use="optional"/>
<xs:attribute name="width" type="widthType" use="optional"/>
</xs:complexType>
</xsl:element>
</xs:choice>
</xs:complexType>
</xsl:element>
Da das Element "beispiel" nur Html-Element beinhaltet, habe ich sein Template im XSLT-Stylesheet wie folgt definiert:
<xsl:template match="beispiel">
xsl:textBeispiel: </xsl:text>
<xsl:for-each select="node() | @*">
xsl:copy
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:for-each>
</xsl:template>
Für die herkömmlichen Html-elemente wie p, ul, table etc.. wird das Ergebnis korrekt visualisiert.
Meine Frage: es geht um das Unterelement "img"... Es soll Bilder im jpg-, gif- oder png-Format im base64 codiert beinhalten.
Wie soll ich das Stylesheet anpassen, damit die Bilder auch korrekt visualisiert werden (in ihren ursprünglichen Formaten)?
Ich weiß erstmal nicht wie ich die Bilder ins base64 kodieren kann (mal gucken, ob ich Hilfe von Google bekommen; wahrscheinlich gibts ein Tool dafür).
Bezüglich der Anpassung des Stylesheets: ich frage mich, ob dieses Mechanismus (Umtransformieren von kodierten Bildern) in xslt-Prozessor nicht schon eingebaut ist?
Danke!