2010-12-08 26 views
5

私はXSLとそのXML出力を持っています。これらを使用してサンプル入力ファイルを作成できますか?私は、入力XMLの構造がどのように必要であるかを知る必要があります。逆XSL出力

+0

はい、できますが、未熟ではありません。 f(a1)= bとf(a2)= bを持つことができます。 –

+0

良い質問、+は、 1。なぜこれが一般的に行えないのかの詳細な説明については私の答えを見てください。 –

+0

良い質問ですが、私はあなたがXSLTと出力を持っているが入力にアクセスできない位置に自分自身を見つける方法にもっと興味があります。 XSLTを反転させることによる再構成は実際にサンプル入力を得るための唯一の方法ですか? –

答えて

1

の元の形式のアイデアを得ることができますが、完全なオリジナルを再構成することはできません。

出力を構成するためにXSLTが元のXMLの一部を使用しない場合は、元の構造を再構築することはできません。

また、XSLTがテンプレートを正しく使用している場合、どのテンプレートが呼び出されたか(特に元のXMLがどのように処理されたか)を判別するのが難しい場合があります。

+0

あなたの返信ありがとう。元の構造の一部が失われても問題ありません。サンプルの入力ファイルが必要です。これを行うために私がどのツールを使用できるか知っていますか? – Michael

+0

@Michael - 私はそのようなツールについて知らない。おそらく、流れが逆転(出力→入力)し、元のものが確実に再構成できないためです。 – Oded

3

私はXSLとそのXML出力を持っています。 Can を使ってサンプル入力ファイルを作成できますか?逆を持つ任意の関数f()について

f()が双方向1であることが必要である:1マッピング。

すべての機能が双方向1:1マッピングであるとは限りません。最も簡単な例は次のとおりです。

f(x) = x^2 

したがって、二乗は双方向1:1マッピングではありません。 9に二乗の逆を適用すると、2つの値、すなわち-33を生成する必要がありますが、定義によって関数は単一の値しか生成できません。

一般に、関数が双方向の1:1マッピングでない場合、それは損失があり、入力上のすべての情報が結果に存在する(または、そこから差し引かれる)わけではありません。

二乗の場合、失われた情報は、引数が正か負かを示します。

f(x) = 1 

は、一般的にXSLT変換は、いくつかの出力結果にソースXML文書を変換機能である:

は定数のように、100%のすべてを失うの機能があります。一般的に、そのような変換は損失です(たとえば、いくつかの属性や要素を破棄/無視することがよくあります)。

したがって、変換への入力を出力から復元できるかどうかの答えは、一般的には負の値です。

正確な入力ではなく "サンプル入力"が必要な場合でも、これは常に生成することはできず、変換によって失われたデータは決して含まれません。

+2

ありがとう。私は同じ入力を生成するために逆を必要としません。ファイルAから始まり、変換後にファイルBを取得すると、逆変換はファイルBを取り込み、ファイルC(Aとは異なる)を生成します。しかし、ファイルAまたはCのいずれかからの順方向変換ではBが生成されますが、それを行うツールはないと仮定しており、書き込む時間がありません。 – Michael

関連する問題