qu'est-ce que l'utilisation de xsi:schemaLocation?
Je vois que nous avons plusieurs url de la valeur de cet attribut comme au printemps:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
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">
Pourquoi est-il nécessaire et à quoi sert-il? N'Printemps va à l'url et le valider?
quelle est la différence entre xmlns et xsi:schemaLocation?
Vous devez vous connecter pour publier un commentaire.
La Java XML parser printemps utilisations lire la
schemaLocation
de valeurs et d'essayer de les charger à partir de l'internet, afin de valider le fichier XML. Printemps, à son tour, intercepte ces demandes de charge et sert des versions à l'intérieur de ses propres fichiers JAR.Si vous omettez le
schemaLocation
, alors l'analyseur XML ne savez pas où trouver le schéma afin de valider la config.Un
xmlns
est un identificateur unique au sein du document, il n'a pas à être un URI du schéma:xsi:schemaLocation
est censé donner un indice quant à l'actuel emplacement du schéma:Selon la spec pour la localisation des Schémas
(merci d'être sans ambiguïté, spec!)
et
Donc, fondamentalement, avec précisant simplement un espace de noms XML "pourraient" être une tentative de valider un xsd à cet endroit (même si il manque un
schemaLocation
attribut), en fonction de votre "communauté". Si vous spécifiez un spécifiqueschemaLocation
, alors il est fondamentalement ce qui implique que le document xml "devrait" être conforme à dit xsd, afin de "s'il vous plaît de le valider (comme je l'ai lu). Ma conjecture est que si vous ne faites pas unschemaLocation
ounoNamespaceSchemaLocation
attribut c'est juste "n'est pas validé" la plupart du temps (sur la base des autres réponses, apparaît java est-il de cette façon).Une autre petite question, ici, est que, normalement, avec validation xsd dans les bibliothèques java [ex: printemps config fichiers xml], si vos fichiers XML spécifie une
schemaLocation
xsd url dans un fichier XML, commexsi:schemaLocation="http://somewhere http://somewhere/something.xsd"
généralement dans un délai d'un de vos liens de dépendance pots il contenir une copie de ce fichier xsd, dans sa section des ressources, et le printemps a une "cartographie" de la capacité de dire à considérer que la fichier xsd comme si elle correspond à l'urlhttp://somewhere/something.xsd
(de sorte que vous ne jamais aller sur le web et télécharger le fichier, il existe juste en local). Voir aussi https://stackoverflow.com/a/41225329/32453 pour un peu plus d'info.Si vous allez dans un de ces endroits, alors vous trouverez ce qui est défini dans ceux de schéma. Par exemple, il vous indique quel est le type de données de l'ini-méthode des mots-clés de la valeur.