2009-10-12 7 views
5

J'ai une entrée dans mon servlet.xml,Qu'est-ce que xmlns dans ce fichier XML particulier?

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

Maintenant, ce que je pense est, DWR est le préfixe que nous allons utiliser, comme

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

le problème est maintenant, si le site http://www.directwebremoting.org est en panne alors mon application est incapable de créer les beans.

  • Va-t-il fonctionner sur ce site chaque fois que beanfactory créera le bean?

  • Existe-t-il une alternative pour que je puisse utiliser dwr, sans passer par leur site web?


tête complète:

<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"> 

Répondre

8

Le problème est probablement pas directement lié à l'espace de noms en soi, mais à l'emplacement du schéma de cet espace de noms DWR.

par ces choses le URI utilisé comme l'identificateur d'espace de nom peut être « quelque chose » et n'a pas été activé pour traiter le fichier (nous utilisons ID espaces de noms basés sur un domaine Internet comme un moyen pratique d'avoir des espaces de noms uniques au monde), l'emplacement du schéma est efficacement accédé.

Pour résoudre le problème, vous pourrez peut-être télécharger le schéma, le publier sur un site fiable, et de modifier l'emplacement du schéma dans les XML fichiers qui font référence.

Le "schéma" est la DTD, ou plus généralement de nos jours, comme c'est le cas ici un fichier XSD. En termes pratiques, vous devez télécharger ce qui suit.

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

Vous pouvez ensuite publier le printemps-DWR-2.0.xsd sur un serveur de votre (ou vous pouvez le rendre disponible dans un répertoire, si ceux-ci ne sont pas des applications en ligne), et modifier la ligne correspondante l'en-tête XML à lire (où MyOwnDomain, etc. reflète votre site actuel bien sûr):

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

de cette façon, même si le site directwebremoting.org n'est pas disponible, il n'y aura aucun retard dans votre traitement XML logique. Attention, il est tout à fait possible que le XSD en question fasse référence à d'autres schémas, et si c'était le cas, vous voudriez aussi les télécharger et vous assurer que les XSD pointent également vers le nouvel emplacement.

+0

Merci MJV, je vais poster l'extrait complet ... et qu'est-ce que tu veux dire par Schema, est ce DTD ?? –

+0

Wow, merci MJV, dernière question. est-il poosible d'avoir cette xsd dans mon système, et donne le chemin comme ** c: /blahblah/dwr.xsd**. Si possible, comment faire cela? –

+0

@Rakesh J: Oui, [il est possible d'utiliser un chemin local plutôt qu'un URI basé sur http], à condition que partout où l'application ou le processeur XML peut être exécuté, il ait la visibilité et l'accès à ce chemin/fichier. Cela fonctionnera particulièrement bien si vous exécutez exclusivement l'application à partir de votre propre machine, ou si elle s'exécute à partir de machines qui ont également ce fichier copié sur leur disque local au même endroit (cas d'une application publiée, non en ligne). – mjv

12

C'est un XML namespace. Ceci est utilisé pour s'assurer que vos identifiants XML (tags, etc.) sont uniques - vous les enveloppez simplement dans un espace de noms (comme un espace de noms .NET).

L'espace de noms est juste un identifiant - il est PAS un vrai emplacement sur le web! L'espace de noms XML doit être unique - c'est pourquoi de nombreuses entreprises utilisent leur nom de domaine * .com dans l'espace de noms, car personne d'autre ne peut (ou devrait) l'utiliser.

Mais le "pseudo-URL" que vous avez là est PAS une URL physique, et votre code fonctionnera même si le domaine "www.directwebremoting.org" devrait être arrêté ou abandonné!

C'est juste un nom - rien qu'un nom - aucun fichier physique ne réside derrière cette "URL".

MISE À JOUR: D'accord, nous avons une autre question ici:

<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"> <== 

Ces xsi:schemaLocation entrées sont le coupable - ces bien sûr causer une dépendance sur ce site étant en place, puisque vous êtes référencer un fichier de schéma XML (spring-dwr-2.0.xsd) directement via une URL sur ce site.

Vous pouvez également télécharger ces fichiers * .xsd sur votre disque local et les utiliser à partir de là. L'espace de noms XML en tant que tel n'est rien d'autre qu'un nom, mais ce schemaLocation, http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd, est évidemment une véritable URL physique et ne fonctionnera pas si le site est en panne.

+0

* votre code fonctionnera même si le domaine "www.directwebremoting.org" doit être arrêté ou arrêté *, une chose est sûre Marc, une heure en arrière, directwebremoting est tombé et le beanfactory n'a pas pu créer de bean [essayé plusieurs fois], et puis le site était de retour, et je n'ai rien changé dans mon code, et ça a commencé à fonctionner ... quel est votre point de vue? –

+0

Merci! Génial de savoir que le xmlns n'est pas une véritable url et que je peux me rattraper. À votre santé! – Chris

0

DTD peut être un schéma (également XDR et quelques autres). Le schéma définit la structure de vos données XML d'entrée (éléments, attribut, type de données d'attribut, etc.).

Questions connexes