4

プログラムのデータから xml を作成するために、何年も NativeXml を使用してきました。これは非常にうまく機能しましたが、今は問題が発生しています。

ここで、xml の標準形式から作成された xml にハッシュを挿入する必要があります。見てみたところ、Native Xmlには「Canonicalize」機能がありますが、適切に使用していない(可能性が高い)か、(実験的とラベル付けされているため)必要なことを実行していません。

私はこのように使用しています(私が見つけた唯一の例で示唆されているように)

MyXmlFile.Canonicalize;

xml を問題なくテスト サービスに送信してきたので、すべて問題ないと思いました。受信者は、xml 送信とハッシュ コードを受け入れていました。Canonicalize は xml の開始タグ<?xml version="1.0"?>を取り除きますが、とにかく xml はかなり適切に形成されており、その形式をxfReadableに設定していないため、大きな違いは見つかりませんでした。

今、私は問題に遭遇しました。あるデータは、すべてが正常に機能していないことを示しています。

たとえば、O'Reilly など、データにアポストロフィを含む名前がある場合、xml では次のように (正しく) 書き込まれます。

<Surname>O&apos;Reilly</Surname>

いつ正規化されたかを知る限り、これは次のように表示されるはずです

<Surname>O'Reilly</Surname>

これは発生していないため、ハッシュが一致しないため、受信者は私の xml 送信を拒否しています。

過去 2 日間、NativeXml のコードとドキュメント、およびオンラインを調べましたが、答えが見つかりません。悲しいことに、NativeXml フォーラムにも活気がないようです。

NativeXml でやるべきことはありますか? NativeXml ではない場合、他に何か機能がありますか? XMLを適切に正規化するためにxmlを渡すことができるものはありますか?

4

1 に答える 1

2

NativeXML (4.07) の現在のバージョンは、名前付きの文字エンティティを DTD から取得して展開します。もちろん、定義済みの 4 つの名前付き文字エンティティはどの DTD にも含まれていないため、処理されません。数字エンティティも正規化されていないようで、他にもまだ実装されていない変換がいくつかあります。NativeXML は、現在の状態では、この仕事に適したツールではありません。

于 2013-03-06T17:41:47.373 に答える