2016-03-23 11 views
1

XMLファイルを入力として受け取るデスクトップアプリケーションがあります。新しい機能がアプリケーションに導入されると、新しいXMLファイルを作成する必要があります。XML変換の自動化

新しいXMLの形式は、既存のXMLの形式と80%似ています。したがって、このXMLの自動化は、新しい拡張のために私の時間を80%削減します。

私はすでにXSDについて考えましたが、これが正しい方法であるかどうかわかりません。

また、XML変換の自動化には他に何か可能ですか?

答えて

1

XSLTは、宣言型プログラミング言語を学んでいるならば、自動的にXMLをに変換するのに最適です。同一のXMLをコピーします

新しいXMLは、既存のXMLと80%類似しているが、恒等変換で始まり、

<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

次に、新しいXMLと古いXMLとの違いをカバーするテンプレートを追加します。たとえば、恒等変換には、このテンプレートを追加、

<xsl:template match="not-needed"/> 

は、新しいXMLに変換されることnot-needed要素を防ぐことができます。

そして、このテンプレート

<xsl:template match="old-element"> 
    <new-element/> 
</xsl:template> 

new-elementold-element(およびその下のすべてのもの)を置き換えます。

それとも、このテンプレート、

<xsl:template match="old-element"> 
    <new-element> 
     <xsl:apply-templates select="@*|node()"/> 
    </new-element> 
    </xsl:template> 

new-elementold-element(しかしないその下のすべてのもの)を置き換えます。

この方法でIDベースの変換を数分で作成できるのは一般的です。幸運なことに、この種の力は、同様に高い結果対努力比で、より複雑な変換にも及んでいます。

も参照してください。How to get started with XSLT?

関連する問題