xmlns:xsi = “http://www.w3.org/2001/XMLSchema-instance” особый случай в XML?

Когда мы используем пространство имен, мы должны также указать, где его связанный XSD расположен в, как видно в следующем примере:

<?xml version="1.0"?>
<Artist BirthYear="1958" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.webucator.com/Artist"
 xsi:schemaLocation="http://www.webucator.com/Artist Artist.xsd">
 <Name>
  <Title>Mr.</Title>
  <FirstName>Michael</FirstName>
  <LastName>Jackson</LastName>
 </Name>
</Artist>

Здесь, мы указали, что Artist.xsd должен использоваться для проверки http://www.webucator.com/Artist пространство имен. Однако мы также используем http://www.w3.org/2001/XMLSchema-instance пространство имен, но мы не указали, где его XSD расположен в. Как синтаксические анализаторы XML знают, как обработать это пространство имен?

Обновление (в ответ на первого комментатора)

Так, можем мы вместо использования:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:ehcache="http://www.springmodules.org/schema/ehcache"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
            http://www.springmodules.org/schema/ehcache
            http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd">
...
</beans>

использовать

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:ehcache="http://www.springmodules.org/schema/ehcache">
...
</beans>

?

10
задан John Saunders 7 August 2011 в 17:51
поделиться

2 ответа

Есть четыре встроенных объявления для схем Xml; type , nil , schemaLocation и noNamespaceSchemaLocation как «присутствуют в каждой схеме по определению». Вы можете прочитать о них в рекомендации по схеме XML .

2
ответ дан 3 December 2019 в 22:36
поделиться

Нет требования указывать, где находится схема. Вы можете сделать это, если хотите, но не обязаны.

В этом примере все платформы, скорее всего, поймут, где расположены схемы для xsi, xml, xsd и soap.


EDIT: Как я уже сказал, все платформы, скорее всего, знают, где находятся схемы для этих известных пространств имен. Вполне вероятно, что все они имеют копии схем. Я использую Visual Studio, и она хранит копии этих схем в Интернете и обращается к ним по мере необходимости.

2
ответ дан 3 December 2019 в 22:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: