コンテンツに名前空間がない XML ドキュメントを提供している顧客がいます。名前空間が割り当てられた公式スキーマに対してこれらのドキュメントを検証しようとしています。
1) 顧客から提供された XML ドキュメントは有効ですか?
2) XSD に対して XML ドキュメントを検証しようとすることは、技術的に正しくありませんか?
短い答え:
1)いいえ - 少なくともあなたが参照しているXSDによると。
2) いいえ。任意の XML に対して任意の XSD を検証することができます。
私の答えは「厳密に言えば」すぎるように聞こえるかもしれませんが、検証は適合性の指標を提供することを目的としていることを覚えておいてください。XML を XSD と一致させることが期待されているため、受け入れ可能/技術的に正しいです。
ここ SO で、有効なシナリオは、不足しているものを補う可能性のある XML に対して何らかの変換を適用することであると読むことができます。例: 問題が名前空間宣言の欠落で構成されており、XML の作成者に欠陥を修正するよう説得する試みが失敗した場合は、XSLT を実行して必要な形式にしてから、XSD を適用します。
私にとって、これは慎重に検討する必要があるアイデアです。すべての XML に対して XSLT を実行することは、多くの場合、大量の場合には許容できないオーバーヘッドです。私の意見: 回避策に必要なものを考慮して、XSD を単純に調整する方がはるかに優れています。このアプローチにより、実行時のオーバーヘッドがなくなり、XSLT を処理するよりも設計時間/メンテナンスの労力が少なくなります...