Согласно спецификации для определения Схемы
может быть или не быть схема, доступная через имя пространства имен ... Пользовательское сообщество и / или потребитель / соглашения поставщика могут устанавливать обстоятельства, при которых [попытка извлечь xsd из URL-адреса пространства имен] является разумной стратегией по умолчанию
blockquote>(спасибо за то, что вы недвусмыслен, spec!) [/ g5]
и
в случае, если автор документа (человек или нет) создал документ с определенной схемой, и гарантирует, что какой-либо или весь документ соответствует этой схеме, schemaLocation и noNamespaceSchemaLocation [ атрибуты].
blockquote>Таким образом, в основном с указанием только пространства имен ваш XML «может» быть попытан для проверки на xsd в этом месте (даже если ему не хватает атрибута
schemaLocation
), в зависимости от вашего «сообщества». Если вы укажете конкретныйschemaLocation
, то в основном это означает, что документ xml «должен» соответствовать указанному xsd, поэтому «пожалуйста, подтвердите его» (как я его прочитал). Я предполагаю, что если вы не выполняете атрибутschemaLocation
илиnoNamespaceSchemaLocation
, он просто «не проверяется» большую часть времени (на основе других ответов появляется java делает это таким образом).Еще одна морщина заключается в том, что обычно с проверкой xsd в java-библиотеках [ex: spring config xml files], если ваши XML-файлы указывают конкретный URL-адрес
schemaLocation
xsd в XML-файле, напримерxsi:schemaLocation="http://somewhere http://somewhere/something.xsd"
, как правило, в одном из в вашей секции зависимости будет содержаться копия этого xsd-файла в разделе ресурсов, а весна имеет функцию «сопоставления», говорящую, что она обрабатывает этот файл xsd, как если бы он сопоставлялся с URLhttp://somewhere/something.xsd
( поэтому вы никогда не попадаете в сеть и не загружаете файл, он просто существует локально). См. Также https://stackoverflow.com/a/41225329/32453 для получения дополнительной информации.