XSL変換を処理するサーバーで名前空間のチェックが無効になっています(XSLを書き込んだユーザーが名前空間を認識しなかったため)。 XSLを変更する必要がありますが、名前空間が定義されていないため、テストできません。XSL変換中に名前空間を無視する方法はありますか?
代わりの
<xsl:template match="ns:element[position()=1]">...
それはすべて、彼らはすべての名前空間で修飾しているので、それがXMLの要素のいずれにも一致しない
<xsl:template match="element[position()=1]">...
を持っています。
アクセス権がないため、サーバーでテストできません。名前空間のチェックが有効にされなければならないため、他のすべての変換が破られるため、XSLを修正するのは無駄です。
私がする必要があることは、XSL変換中に名前空間を無視する方法を見つけることです。私はMSXML、XMLSpy(ここではオプションを見つけることができません)にアクセスできます。もし本当に必要なら、C#やそれに類する言語で何かをコード化することができます。詳細についてのコメントを受けて、私はいくつかの正規表現をコーディングすることができますが、私は本当に、特にXMLを扱うとき、そのルートを下るしたくない最後の手段として
...
:
これは、インスタンスのMethodeサーブレット(www.eidosmedia.com)を実行しているWindows 2003 Virtual Serverです。私は、このサーブレットがXSL変換を実行するためにどのような手法を使用するのか分かりません。彼らは、もともとXSLを書いた人がそれらを理解しておらず、それらをXSLに含めなかったので、名前空間を無視しています。したがって、すべてのXSLファイル(数百)には名前空間がありません。
これらのファイルをすべて一度に修正するのは興味深い課題かもしれませんが、それは私が今必要とするものではありません(そして、テストの量が関係しているので、私が知りたいのは、これらのXSLファイルをそのまま使用して、名前空間を考慮せずに対応するXML文書を変換するために使用できるツール(または技術)があるかどうかだけです。オリジナルのXSLを書いた人は、変身を自分自身でテストするために何か類似のものを使用していたに違いないので、ツールが存在しなければならないと私には思われます。
サーバー上で名前空間のチェックを無効にするにはどうすればよいですか?そんなことは聞いたことがない。 –
これは、変換を処理する第三者(MicrosoftまたはSunではない)の製品です。彼らは、開発者に無効にするオプションを与えるよう依頼しました。 – ilitirit
詳細を入手できますか?どのようなタイプのサーバーなど、また、どのような問題が名前空間を無視して対処したいのですか?名前空間を無視することは非常に難しいので、問題の背後にある問題を知っていれば、代わりにその問題に取り組むことができます。 –