ホームページ  >  記事  >  ファイルとしてロードされた XSD を使用した XML 検証と入力ストリーミング

ファイルとしてロードされた XSD を使用した XML 検証と入力ストリーミング

WBOY
WBOY転載
2024-02-09 15:09:091000ブラウズ

php エディターのいちごの指導の下、ファイルとしてロードされた XSD を使用した XML 検証と入力フローの方法を検討します。 XML データを扱う場合、検証はデータの正確さと完全性を保証するための非常に重要な手順です。 XSD (XML スキーマ定義) ファイルを使用すると、XML ドキュメントの構造と制約を定義できます。 XSD ファイルをロードし、それを使用して受信 XML ストリームを検証することにより、不適合データを簡単に検出して処理できるため、アプリケーションの信頼性とセキュリティが向上します。次に、XML 検証と入力ストリーム処理に XSD ファイルを使用する方法を詳しく説明します。

質問の内容

xsd がファイルまたはリソースとして読み込まれている場合、xml 検証で異なる動作が発生します。

xsd をファイルとしてロードすると、すべてが正常に動作し、検証も正常に動作します。 リーリー

代わりに、xsd ファイルを jar に含めることにしたので、それをリソースとしてロードしましたが、動作が異なります。スキーマを構築すると、

saxparseException でスタックし、エラーが発生します。これらの問題は、xsd ファイル内の名前を型定義に解決します。 xsd ファイルは完全に正しいです リーリー

xsd をリソースとしてストリームとしてロードすると、異なる動作が発生する理由が本当にわかりません。

XML 検証には jaxb を使用します

回避策

私の推測では、xsd が他の xsd を参照しており、バリデーターがそれらの参照を解決する方法を知りません。

lsresourceresolvervalidator に提供する必要がある場合があります。 リーリー

また、

streamsource の 2 引数コンストラクターを呼び出して、inputsourcesystemid を設定する必要があります。 リーリー

streamsource(inputstream, string)を参照してください

以上がファイルとしてロードされた XSD を使用した XML 検証と入力ストリーミングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。