আমার এক্সএমএল প্রক্রিয়া করার সময়, আমি href
নিম্নলিখিত লাইনটি দিয়ে আমার আউটপুট এইচটিএমএলে সরাসরি একটি গুণ থেকে রেফারেন্স থাকা একটি এসভিজি ফাইল অনুলিপি করার চেষ্টা করছি :
<xsl:copy-of copy-namespaces="yes" select="document(@href)"/>
copy-namespaces
প্রয়োজনীয় যেহেতু ডিফল্ট মান "হ্যাঁ" আসলে করা উচিত হবে না, কিন্তু আমি প্রায় কিনা বা না আমি এটা চেষ্টা করেছি প্রশ্ন প্রতিরোধ এটা জুড়েছি।
ফাইলগুলি এইচটিএমএলে অনুলিপি করা হয়েছে, তবে যেকোন নেমস্পিডের উপাদানগুলি হোজেড। উদাহরণস্বরূপ, একটি ফাইল যা অনুলিপি করার আগে এই জাতীয় দেখাচ্ছে:
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g transform="translate(-519.21143,-667.79077)" id="layer1">
<image xlink:href="data:image/png;base64
এর পরে দেখে মনে হচ্ছে:
<_0:RDF xmlns:_0="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<_0:Work xmlns:_0="http://creativecommons.org/ns#" about="">
<_0:format xmlns:_0="http://purl.org/dc/elements/1.1/">image/svg+xml</_0:format>
<_0:type xmlns:_0="http://purl.org/dc/elements/1.1/" resource="http://purl.org/dc/dcmitype/StillImage"/>
<_0:title xmlns:_0="http://purl.org/dc/elements/1.1/"/>
</_0:Work>
</_0:RDF>
</metadata>
<g id="layer1" transform="translate(-519.21143,-667.79077)">
<image href="data:image/png;base64
href
চিত্র উপাদানটির মানটির সাথে থাকা অনুপস্থিত xlink নেমস্পেসটি বিশেষত সমস্যাযুক্ত।
কোনও ব্যাখ্যা ছাড়াই এসভিজি ফাইলে পড়ার জন্য আমি কীভাবে এটি আলাদাভাবে করতে পারি সে সম্পর্কে কোনও চিন্তাভাবনা?
আমি একটি সমাধান খুঁজে পেয়েছি যা "কাজ করে" তবে এটি একটি হ্যাক এবং আমি আরও মার্জিত কিছু চাই:
<xsl:template name="topic-image-svg">
<!-- Generate tags to embed SWFs -->
<xsl:element name="div">
<xsl:if test="@width">
<xsl:attribute name="width">
<xsl:value-of select="@width"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@height">
<xsl:attribute name="height">
<xsl:value-of select="@height"/>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="document(@href)" mode="svg"/>
</xsl:element>
</xsl:template>
<xsl:template match="*" mode="svg">
<xsl:copy copy-namespaces="yes">
<xsl:for-each select="@*">
<xsl:choose>
<xsl:when test="self::node()[name() = 'xlink:href']">
<xsl:attribute name="xlink:href"><xsl:value-of select="."></xsl:value-of></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:copy></xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:apply-templates mode="svg"></xsl:apply-templates>
</xsl:copy>
</xsl:template>