0

さまざまなプレーン XML 変換に ServingXML (1.1.2) を使用しています。ServingXML で使用される Saxon ライブラリを最新の Saxon 9.6 ライン (現在は Saxon-HE 9.6.0.6J) にアップグレードする必要があります。

その理由は次のとおりです。私は最近の Saxon ラインを使用することを余儀なくされており、Saxon と ServingXML の両方をプリロード アプリ コンテナーと共に使用しています。悲しいことに、複数の lib バージョンを同時に使用することを制限しています。

とにかく、Saxon ライブラリを置き換え、Saxon API の違いに合わせて ServingXML コードに小さな変更を加えました。

それはうまくいくようです。ただし、アップグレードされた Saxon を 1 回 ServingXML で実行すると、数十行が出力されます。

 XML Parser does not recognize the feature http://xml.org/sax/features/validation

ServingXML ソース内で、Saxon に対する間違った機能設定が発生する場所を見つけることができないので、私には奇妙に思えます。

4

2 に答える 2

1

調査に役立つかもしれないちょっとした情報。

まず、警告です。警告を出力した後、Saxon は通常どおり続行します。実際には、パーサーでこの機能を設定する要求は無視されます。

次に、Saxon が指定されたフィーチャー名で parser.setFeature() を呼び出した後にメッセージが発生し、パーサーが SAXNotRecognizedException をスローします。機能がオンまたはオフに設定されているかどうかに関係なく発生する可能性があります。

第 3 に、Saxon は、たとえば Configuration.setValidation() を呼び出して、DTD 検証が要求された場合にこの機能を設定しようとします。ただし、この要求を引き起こす可能性のある他の多くのパスがあります。

したがって、ここでは 2 つのことが起こっています。(A) アプリケーションが (何らかの方法で) ソース ドキュメントの DTD 検証を要求しており、(B) アプリケーションが何らかの方法で DTD 検証をサポートしない (または要求を認識しない) XML パーサーを構成している。

于 2015-07-27T16:50:56.237 に答える
0

ServingXML のソース コードを調べてみました。これには、機能http://xml.org/sax/features/validationを認識できない XMLReader (パッケージ com.servingxml.util.xml.AbstractXMLReader) の実装が含まれています。

これがあなたが使用しているパーサーだと思います。しかし、あなたの問題を解決する方法がわかりません。ServingXML の作成者は、ヘルプのリクエストに対応していますか?

于 2015-08-04T16:05:33.470 に答える