Відповідно до специфікації для розміщення схем
може бути, а може і не бути схеми, яку можна отримати через ім'я простору імен ... Спільнота користувачів та / або угоди споживача / постачальника можуть встановити обставини, в яких [спроба отримати xsd з URL-адреси простору імен] є розумною стратегією за замовчуванням
(дякую за те, що ви були однозначними, спец!)
і
у випадку, якщо автор документа (людина чи ні) створив документ із певною схемою для перегляду та гарантує, що деякі або всі документи відповідають цій схемі, надаються schemaLocation та noNamespaceSchemaLocation [атрибути].
Таким чином, в основному із зазначенням просто простої імен ваш XML "може" намагатися перевірити проти xsd у цьому місці (навіть якщо у нього відсутній schemaLocation
атрибут), залежно від вашої "спільноти". Якщо ви вказуєте конкретний schemaLocation
, то це, по суті, означає, що документ xml "повинен" відповідати вказаному xsd, тому "будь ласка, підтвердіть його" (як я його читав). Я здогадуюсь, що якщо ви не робите schemaLocation
або не noNamespaceSchemaLocation
приписуєте його, просто "не підтверджено" більшу частину часу (на основі інших відповідей, схоже, Java робить це так).
Ще одна зморшка тут полягає в тому, що, як правило, з валідацією xsd в бібліотеках Java [коли: файли XML весна config], якщо ваші XML-файли вказують певний schemaLocation
URL-адрес xsd у XML-файлі, як xsi:schemaLocation="http://somewhere http://somewhere/something.xsd"
правило, в одному з ваших залежностей залежностей, він буде містити копію цей файл xsd у розділі ресурсів та весна має можливість "картографування", що говорить про те, що цей xsd файл трактується так, ніби він відображає URL-адресу http://somewhere/something.xsd
(тому ви ніколи не переходите до Інтернету та завантажуєте файл, він просто існує локально). Дивіться також https://stackoverflow.com/a/41225329/32453 для отримання додаткової інформації.