別の名前空間から XSLT ファイルに XML 要素を追加するときに、問題が発生することを予期する必要がありますか? それとも、単に無視されますか (素晴らしいと思います)?
バックグラウンド: 大規模なプロジェクトでは、ユーザーはテキストの書式設定などにユーザー定義のタグを使用できます (たとえば\textbf{bold}
、最初に XML の特定の方言に変換され (最初に独自のツールを使用し、次に XSLT を使用)、その後で他の言語に変換される可能性があります)。ラテックス、フレームメーカー、BB コードなどの方言...
このため、現在、次のファイルがあります。
\textbf{bold}
に変換される専用ツールの構成ファイル<Cmd Name="strong"><param Nr="1">bold</param></Cmd>
- 上記の XML コードを次のように変換する XSLT ファイル
<myns:strong>bold</myns:strong>
- 許可されたタグとフォーマットを記述した XSD ファイル
- 異なる出力形式に変換するための複数の xsl ファイル
<myns:strong>bold</myns:strong>
(例: に戻す\textbf{bold}
)
実際には 1:1 のマッピングがなく、新しいコマンドを追加するには複数のファイルを正しい方法で変更する必要があるため、これらのファイルを維持することは非常に困難です。
したがって、私の考えはこれらをマージすることです。たとえば、単一の XML ファイルには次のものが含まれます。
<!-- config file for proprietary tool -->
<repl:Cmd Name="strong"><repl:Param Nr="1"/></repl:Cmd>
<!-- converting to XML dialect -->
<xsl:template mode="Text" match="Cmd[@Name = 'textbf']">
<myns:strong>
<xsl:apply-templates select="Param[@Nr='1']" mode="Text"/>
</myns:strong>
</xsl:template>
<!-- XSD schema for validating XML -->
<xsd:element name="strong" type="tns:GenericTextType">
</xsd:element>
<!-- converting XML dialect to latex code -->
<xsl:template match="myns:strong" mode="Text_toLatex">
<xsl:text disable-output-escaping="yes">\textbf{</xsl:text>
<xsl:apply-templates mode="Text_toLatex"/>
<xsl:text disable-output-escaping="yes">}</xsl:text>
</xsl:template>
これにより、メンテナンスがはるかに簡単になります。