XMLファイルからXSLスタイルシートを生成するアプリケーションはありますか?非常に複雑なXMLファイルがあります。これは整形式のSVGファイルです。
XMLをXSLに変換するソフトウェアアプリケーションはありますか?
XSLファイルには、ソースXMLファイルを別の形式(XMLの場合もあります)に変換する方法の説明が含まれています。したがって、ソフトウェアがXMLファイルをXSLスタイルシートに変換する方法についての詳細情報がなければ、それを変換する可能性はありません。
これは、HTMLファイルからPHPスクリプトを作成したいようなものです。明確にするために:phpスクリプトはHTMLページを生成する可能性があります
<html><body>hello world</body></html>
元のスクリプトがどのようになっていたかを推測することはできません。これは、単純なecho()
呼び出しまたは複雑なデコード操作の結果などである可能性があります。
XMLからXSLへの変換についても同じです。ソフトウェアはXML結果をその基礎となるXSL変換シートに変換する方法を知ることができないため、自分で行う必要があります。
前の質問に基づいて、SVG イメージから XSL-FO ファイルを作成したいと考えています。
1 つのオプションは、SVG イメージを .xml にインラインで含めることfo:instream-foreign-object
です。完全な例 (このSVG 画像を使用):
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="master">
<fo:region-body />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="master">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:instream-foreign-object>
<svg xmlns="http://www.w3.org/2000/svg"
width="200" height="200">
<circle cx="100" cy="100" r="50" stroke="black"
stroke-width="5" fill="red" />
</svg>
</fo:instream-foreign-object>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
別のオプションは、から SVG イメージを参照することfo:external-graphic
です。
<fo:external-graphic src="Svg_example4.svg"/>
これを自動化したい場合は、SVG を SVG が埋め込まれた XSL-FO ドキュメントに変換する XSLT を記述できます。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="master">
<fo:region-body />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="master">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:instream-foreign-object>
<xsl:copy-of select="." />
</fo:instream-foreign-object>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
いいえ。ただし、XSL ファイルを簡単に作成するのに役立ついくつかのソリューションを使用できます。例: Altova XMLSpy
IntelliJは XML ファイルから XSD を生成でき、その逆も可能です。コミュニティ エディションにその機能があるかどうかはわかりませんが、ライセンス版にはあります。