XML-схемы / пространства имен - PullRequest
4 голосов
/ 09 мая 2011

Я часто вижу код, подобный приведенному ниже, в файлах схемы XML. Насколько я понял, xmlns - это определение нового пространства имен. Но действительно ли необходимы длинные URL-адреса, следующие за xmlns? Я имею в виду, действительно ли программа, парсер, делает то, что действительно делает вызов, например "http://www.springframework.org/schema/beans"? Или может быть строка вот так:

<beans xmlns="beansNamespace">

Вот один из

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:osgi="http://www.springframework.org/schema/osgi"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
    http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
"
>

1 Ответ

6 голосов
/ 09 мая 2011

Нет, анализатор не переходит на http://whatever,, когда видит
<element xmlns='http://whatever...'>

IETF рекомендует, чтобы пространства имен XML были URI , но этот URIне обязательно должен быть HTTP URI, и на самом деле к нему не нужно подключать никакой «сетевой протокол».Они используются только для идентификации.

В некоторых случаях люди проектируют URI пространства имен как HTTP URI, и они вставляют удобочитаемую документацию для пространства имен в этом URI.поэтому, если человек посетит это место, он узнает о схеме с этим пространством имен.Но это соглашение не получило широкого распространения.

См. Также, Что означает "xmlns" в XML?
и, Что вызывает разницу между URL-адресом веб-службы ипространство имен?

...