Что такое xmlns в этом конкретном XML-файле? - PullRequest
5 голосов
/ 12 октября 2009

У меня есть запись в моем servlet.xml,

xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr

Теперь я думаю, dwr - это префикс, который мы будем использовать, например

<dwr:configuration>
    <dwr:convert type="bean" class="com.abc.bean.MyBean" />
</dwr:configuration>

Теперь проблема в том, что если сайт http://www.directwebremoting.org не работает, то мое приложение не может создать компоненты.

  • Будет ли этот сайт попадать каждый раз, когда beanfactory создает боб?

  • Есть ли альтернатива, чтобы я мог использовать dwr, не заходя на их сайт?


Полный заголовок:

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

Ответы [ 3 ]

12 голосов
/ 12 октября 2009

Это пространство имен XML . Это используется для того, чтобы убедиться, что ваши XML-идентификаторы (теги и т. Д.) Уникальны - вы просто заключаете их в пространство имен (например, в пространство имен .NET).

Пространство имен - это просто идентификатор - это НЕ реальное местоположение в сети!

Пространство имен XML должно быть уникальным, поэтому многие компании используют свое доменное имя * .com в пространстве имен, поскольку никто другой не может (или не должен) использовать это.

Но имеющийся у вас "псевдо-URL" НЕ физический URL, и ваш код все равно будет работать, даже если домен "www.directwebremoting.org" будет отключен или прекращен!

Это просто имя - ничего, кроме имени - никакой физический файл не находится за этим "URL".

UPDATE : Хорошо, у нас здесь другая проблема:

<beans xmlns="http://www.springframework.org/schema/beans"
       ...........
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd   
       http://www.directwebremoting.org/schema/spring-dwr 
     ==>  http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">   <==

Эти xsi:schemaLocation записи являются виновником - эти , конечно, вызывают зависимость от того, что этот сайт работает, так как вы ссылаетесь на файл схемы XML (spring-dwr-2.0.xsd) напрямую через URL на этом сайт.

Вы также можете загрузить эти * .xsd файлы на свой локальный диск и использовать их оттуда. Пространство имен XML как таковое - не что иное, как имя, но это расположение схемы http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd, очевидно, является реальным физическим URL-адресом и не будет работать, если сайт не работает.

8 голосов
/ 12 октября 2009

Проблема, вероятно, не связана непосредственно с пространством имен как таковым, а с расположением схемы этого пространства имен dwr.

При этом URI используемый в качестве идентификатора пространства имен может быть «что угодно», а не доступен для обработки файла (мы используем идентификаторы пространств имен на основе домена в Интернете для удобного способа иметь глобально уникальные пространства имен), расположение схемыэффективный доступ.

Чтобы решить проблему , вы можете загрузить схему, опубликовать ее на надежном сайте и изменить расположение схемы в XML файлы, которые ссылаются на него.

«Схема» - это DTD, или, как правило, в наши дни, как в случае с файлом XSD.В практическом плане вам необходимо загрузить следующее.

  http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd

Затем вы можете опубликовать spring-dwr-2.0.xsd на своем собственном сервере (или вы можете сделать его доступным в каталоге, еслиэто не онлайн-приложения), и измените соответствующую строку в заголовке XML, чтобы прочитать (где MyOwnDomain и т. д., конечно, отражает ваш фактический сайт):

   http://www.directwebremoting.org/schema/spring-dwr 
   http://www.MyOwnDomain.com/SomeDirectory/spring-dwr-2.0.xsd">

Таким образом, даже когда прямое веб-удаление.Сайт org недоступен, ваша логика обработки XML не будет задерживаться.

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

0 голосов
/ 12 октября 2009

DTD может быть схемой (также XDR и еще немного). Схема определяет структуру ваших входных данных XML (элементы, атрибут, тип данных атрибута и т. Д.).

...