2011-10-25 9 views
0

XMLファイルを別のXMLファイルに変換するためにXSLTを記述する必要があります。元の入力ファイルは、DTDに対して有効でなければなりません。変換する前にXSLTがDTDに対して入力XMLファイルを検証できる方法はありますか?入力ファイルがDTDに準拠していない場合は、入力ファイルも拒否します。XSLT変換前のDTD検証

また、Oxygen XML EditorのようなツールでXSLTを実行します。

ありがとうございます。 JK

+2

"トピック以外"のためにこれを閉じる理由はありません –

答えて

1

XSLTプロセッサでこれを行う必要があります。私はXSLT自体でこれを行う方法はないと思う。

oXygenでは、環境設定で「XML/XSLT-FO-XQuery/XSLT/Saxon/Saxon-HE/PE/EE」に移動し、DTD検証を有効または無効にすることができます(コンボボックスがあります)。

+0

ありがとう、それは機能します。しかし、私は何かXSLT組み込み関数を好むだろう:) – Jay

+0

あなたは大歓迎です。 –

1

組み込みのXSLT-1.0関数では(クリーンな方法で非整形式を検出することはできません)。あなたの環境は、DOM Buildersのような他のツールを通じてこれを提供することができます。

+0

XSLT 2.0はどうですか? – Jay

+0

@jkcool - ザクセン(XSLT 2.0)のoXygenの設定についての私の答えを参照してください。 –

0

これは、使用しているツールによって異なります。この場合、これは酸素エディタに関する質問です。 XSLTの仕様には、XMLを読み取るときにプロセッサがDTD検証を実行する必要があります。

+0

しかし、XMLに関連付けられたXSDがあった場合は、それを使って入力XMLを検証することができます。私は正しい? – Jay

+0

使用しているツールがXSDの検証を実装して有効にする場合にのみ選択します。それはXSLT自体とは関係ありません。 – bmargulies

+1

@jkcool XSLTプロセッサは、整形式かどうかチェックするだけです。それらのうちのいくつかは、整形式でない入力にひどくクラッシュするかもしれません(つまり、何が間違っているか分かりません)。 –