“ Unexpected element:CDATA”のメッセージでorg.apache.xmlbeans.XmlExceptionを実行します平均?

StackOverflow https://stackoverflow.com/questions/1407101

質問

XMLドキュメントを解析およびロードしようとしていますが、XmlObjectを拡張するクラスで解析メソッドを呼び出すと、この例外が発生します。残念ながら、どの要素が予期しないものであるかはわかりません。これが私の問題です。

このためのコードを共有することはできませんが、必要に応じてより多くの情報を提供しようとすることができます。

役に立ちましたか?

解決

コードや入力データを共有できない場合、次のアプローチを検討できます。それは非常に一般的な診断への二分法です、私は恐れています、そして実際、あなたはすぐにそれを始めたかもしれません...

入力XMLの一部を削除することにより、入力XMLのサイズを試して縮小し、基礎となるXMLドキュメントが整形式であり、おそらく有効であることを確認します(パーサーのセットアップで有効性が必要な場合)。有効性を維持する場合、カットアンドトライアプローチ中に必須要素が削除される可能性があるため、スキーマ(DTDまたはその他)の変更が必要になる場合があります...ところで、エラーメッセージは、基本的な整形式アサーションの問題である検証の問題。

パーサーの苦情を引き起こす領域に関して特別な予感がない限り、通常、以前にカットまたは再追加されたものの約半分を削除(または、動作が開始したときに再追加)します。

また、パーサーがまったく機能しないことを断言するために、ほとんど空のファイルを試すことから始めることもできます...再び「分割して勝つ」という考えがあります:XML入力またはパーサーの問題です? (入力に1つ、パーサーに1つという2つの問題が存在する可能性があり、そのような問題は無関係である可能性があることを思い出してください...)

あなたが流fluentかもしれない基本的な診断技術を怠るのはごめんなさい...

他のヒント

メソッドparse()に渡す引数を確認する必要があります。 文字列を直接解析またはファイルまたは入力ストリームに直接渡す場合(File / InputStream / String)など。

例外は、XMLファイルの長さが原因です。ファイルに1文字追加または削除すると、パーサーは成功します。

この問題は、XMLBeansが依存するサードパーティのPiccoloLexerライブラリ内で発生します。リビジョン959082で修正されましたが、xbean 2.5 jarには適用されていません。

XMLBeans-長さが正確に8193バイトの場合のXMLファイルの問題

XMLBean Jiraで報告された問題

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top