Ответ 1
schemaLocation
должен содержать два значения, разделенные пробелом: URI пространства имен (это не изменяется) и url схемы.
Итак, в вашем случае
xsi:schemaLocation="http://www.w3schools.com ../relativepath/schemafolder/note.xsd">
Не обманывайтесь URI пространства имен, являющимся, по-видимому, действительным URL-адресом http, что только один из маленьких безумцев, изобретенных людьми XML.:)
На самом деле вы можете указать схемы для нескольких пространств имен в одном schemaLocation
:
xsi:schemaLocation="namespace1 schemaurl1 namespace2 schemaurl2 ..."
(Я также рекомендую вам относиться к относительным путям: в то время как они чрезвычайно полезны, когда вы перемещаете свои файлы, но все еще проверяете его с помощью того же кода (или инструмента), когда вы развертываете свой код проверки в приложении, "Рабочий каталог" может быть не таким, как вы ожидали. Это не значит, что вы не должны использовать относительные пути, просто чтобы быть в курсе этого, когда вы получите странное выглядящее исключение из схемы, которая не найдена.)