Я нашел пример в w3schools, который показывает, как обращаться к XML-схеме.
Для следующего XSD (note.xsd)...:
<?xml version = "1.0"?>
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema"
targetNamespace = "https://www.w3schools.com"
xmlns = "https://www.w3schools.com"
elementFormDefault = "qualified">
<xs:element name = "note">
<xs:complexType>
<xs:sequence>
<xs:element name = "to" type = "xs:string"/>
<xs:element name = "from" type = "xs:string"/>
<xs:element name = "heading" type = "xs:string"/>
<xs:element name = "body" type = "xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
...Предлагается экземпляр XML:
<?xml version = "1.0"?>
<note
xmlns = "https://www.w3schools.com"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "https://www.w3schools.com/xml note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Обратите внимание, что xmlns и xsi:schemaLocation в документе XML имеют разные URI пространств имен. Я знаю, что URI не анализируются и не запускают сетевую активность, но правильно ли в этом случае определять разные URI (даже если доменные имена одинаковы)?





Похоже, это не правильно. Эти пространства имен должны совпадать, иначе валидатор не свяжет пространство имен XML-документа (в данном случае — пространство имен по умолчанию, https://www.w3schools.com) с соответствующими объявлениями элементов/определениями типа в схеме из note.xsd.
Давайте допустим данный XML против схемы выше:
А теперь проверьте XML-документ с пространствами имен совпало:
На мой взгляд, это просто опечатка, потому что тот же фрагмент XML (но с совпадающими пространствами имен) представлен в файле следующий раздел.