スキーマを見つけるための仕様によると
ネームスペース名を介して取得可能なスキーマがある場合とない場合があります...ユーザーコミュニティやコンシューマー/プロバイダーの合意により、[ネームスペースのURLからxsdを取得しようとする]が適切なデフォルトの戦略である状況が確立される場合があります。
(曖昧さをなくしてくれてありがとう、スペック!)
そして
ドキュメント作成者(人間かどうかに関係なく)が特定のスキーマを表示してドキュメントを作成し、ドキュメントの一部またはすべてがそのスキーマに準拠していることを保証する場合、schemaLocationおよびnoNamespaceSchemaLocation [属性]が提供されます。
したがって、基本的には名前空間のみを指定すると、schemaLocation
「コミュニティ」に応じて、XMLがその場所で(属性がなくても)xsdに対して検証される可能性があります。特定のを指定する場合schemaLocation
、それは基本的に、xmlドキュメントが上記のxsdに準拠している必要があることを意味しているため、「確認してください」(私が読んだとおり)。私の推測では、a schemaLocation
またはnoNamespaceSchemaLocation
属性を実行しない場合、ほとんどの場合「検証されない」だけです(他の回答に基づいて、javaはこの方法で実行するようです)。
あなたのXMLファイルは、特定の指定した場合、:[春の設定xmlファイルEX]ここでもう一つのシワが、それはJavaライブラリでXSD検証で、一般的であるschemaLocation
ように、XMLファイル内のXSD URLをxsi:schemaLocation="http://somewhere http://somewhere/something.xsd"
一般的に、あなたの依存関係のjarファイルの1つに、それがされます含まれているのコピーをそのxsdファイルは、そのリソースセクションにあり、Springには「マッピング」機能があり、そのxsdファイルをURLにマップするかのように処理しますhttp://somewhere/something.xsd
(Webにアクセスしてファイルをダウンロードすることはなく、ローカルに存在するだけです)。わずかに詳細については、https://stackoverflow.com/a/41225329/32453も参照してください。