以下で説明するように、段落 ID に基づいて複数の XML ドキュメントをマージする必要があります。基本的に、これは文書同期の状況であり、マスター文書に追加された段落を二次文書から追加する必要があります。マスターから削除された段落は、セカンダリ ドキュメントから削除する必要があります。最後に、マスター ドキュメントの段落ノードの一部の属性 (「フォント」など) をセカンダリ ドキュメントに複製する必要がありますが、一部は保持する必要があります (「作成者」など)。私は、c# .net でかなり力ずくの醜いコードを書きました。それは半分は機能します (キープ/更新ロジックを処理する属性をコーディングしていません)。新しい「ラッシュ」プロジェクトに投入された XSLT の「処女」です...誰かが少なくとも 2 つのドキュメントをマージする方法を教えてくれませんか (i. e. マスターからセカンダリに段落を追加しますか?)
例えば
master.xml:
<paragraphs>
<paragraph id="intro" font="bold" author="JS">
<sentences>
<sentence>Bla bla bla bla</sentence>
<sentence>More Bla bla bla bla</sentence>
</sentence>
</Paragraph>
<paragraph id="main1" font="bold" author="FTG">
<sentences>
<sentence>any text here</sentence>
<sentence>More Bla bla bla bla</sentence>
</sentence>
</paragraph>
<paragraph id="main2" font="bold" author="FTG">
<sentences>
<sentence>Added to Master Doc</sentence>
</sentence>
</Paragraph>
およびSecondary.Xml
<paragraphs>
<paragraph id="intro" font="normal" author="ZZ">
<sentences>
<sentence>Bla bla bla bla</sentence>
<sentence>More Bla bla bla bla</sentence>
</sentence>
</paragraph>
<paragraph id="main1" font="normal" author="XYZ">
<sentences>
<sentence>main1 has been edited in secondary doc but needs to remain unchanged</sentence>
<sentence>More Bla bla bla bla</sentence>
</sentence>
</paragraph>
<paragraph id="conclusion" font="bold" author="FTG">
<sentences>
<sentence>In conclusion.....bla.../sentence>
</sentence>
</paragraph>
</paragraphs>
セカンダリ ドキュメントから結論段落を削除し、main2 ドキュメントをマスターからセカンダリに追加し、一致する段落のマスターからセカンダリにフォント属性を適用することによってマージする必要がありますが、一致する段落では作成者属性を変更しません。後半部分 (属性の複製/保存は非常に小さな問題です)。
<paragraphs>
<paragraph id="intro" font="bold" author="ZZ">
<sentences>
<sentence>Bla bla bla bla</sentence>
<sentence>More Bla bla bla bla</sentence>
</sentence>
</paragraph>
<paragraph id="main1" font="normal" author="FTG">
<sentences>
<sentence>main1 has been edited in secondary doc but meeds to remain unchanged</sentence>
<sentence>More Bla bla bla bla</sentence>
</sentence>
</Paragraph>
<paragraph id="main2" font="bold" author="FTG">
<sentences>
<sentence>Added to Master Doc</sentence>
</sentence>
</Paragraph>
</paragraphs>