0

XMLファイルからXSLスタイルシートを生成するアプリケーションはありますか?非常に複雑なXMLファイルがあります。これは整形式のSVGファイルです。

XMLをXSLに変換するソフトウェアアプリケーションはありますか?

4

5 に答える 5

5

XSLファイルには、ソースXMLファイルを別の形式(XMLの場合もあります)に変換する方法の説明が含まれています。したがって、ソフトウェアがXMLファイルをXSLスタイルシートに変換する方法についての詳細情報がなければ、それを変換する可能性はありません。

これは、HTMLファイルからPHPスクリプトを作成したいようなものです。明確にするために:phpスクリプトはHTMLページを生成する可能性があります

<html><body>hello world</body></html>

元のスクリプトがどのようになっていたかを推測することはできません。これは、単純なecho()呼び出しまたは複雑なデコード操作の結果などである可能性があります。

XMLからXSLへの変換についても同じです。ソフトウェアはXML結果をその基礎となるXSL変換シートに変換する方法を知ることができないため、自分で行う必要があります。

于 2010-05-15T10:01:24.427 に答える
2

前の質問に基づいて、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>
于 2010-05-15T16:04:28.367 に答える
1

いいえ。ただし、XSL ファイルを簡単に作成するのに役立ついくつかのソリューションを使用できます。例: Altova XMLSpy

于 2010-05-15T10:32:33.827 に答える
1

XSL を使用して、XML から XSL を生成できます。しかし、XSLすでにXML であるため、この単純な事実だけではあまり具体的に理解できません。

ソース XML と目的の XSL を指定できますか? 何を達成しようとしているのかを知らなければ、それ以上のことは言えません。

の第 10 章 (コード生成) には、そのような興味深い例がいくつかあります。

XSLTクックブック

于 2010-05-15T11:16:26.540 に答える
0

IntelliJは XML ファイルから XSD を生成でき、その逆も可能です。コミュニティ エディションにその機能があるかどうかはわかりませんが、ライセンス版にはあります。

于 2010-05-15T10:17:17.870 に答える