Ich sehe, dass wir wie im Frühjahr mehrere URLs als Wert für dieses Attribut haben:
<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">
Warum wird es benötigt und wofür wird es verwendet? Geht Spring zur URL und validiert sie? Was ist der Unterschied zwischen xmlns und xsi: schemaLocation?
An
xmlns
ist eine eindeutige Kennung innerhalb des Dokuments - es muss kein URI für das Schema sein:xsi:schemaLocation
soll einen Hinweis auf den tatsächlichen Speicherort des Schemas geben:quelle
Gemäß der Spezifikation zum Auffinden von Schemata
(Danke, dass du eindeutig bist, spec!)
und
Wenn Sie also nur einen Namespace angeben, wird möglicherweise versucht, Ihr XML anhand einer xsd an diesem Speicherort zu validieren (auch wenn ihm ein
schemaLocation
Attribut fehlt ), abhängig von Ihrer "Community". Wenn Sie ein bestimmtes angebenschemaLocation
, bedeutet dies im Grunde, dass das XML-Dokument "konform" mit dem xsd sein sollte. "Bitte validieren Sie es" (während ich es lese). Ich vermute, wenn Sie einschemaLocation
oder einnoNamespaceSchemaLocation
Attribut nicht ausführen, wird es die meiste Zeit nur "nicht validiert" (basierend auf den anderen Antworten scheint Java dies so zu tun ).Ein weiterer Falte hier ist , dass typischerweise mit XSD - Validierung in Java - Bibliotheken [ex: spring Config XML - Dateien], wenn die XML - Dateien an einer bestimmte
schemaLocation
XSD - URL in einer XML - Datei, wiexsi:schemaLocation="http://somewhere http://somewhere/something.xsd"
normalerweise in einem Ihrer Abhängigkeit Gläser werden es enthält eine Kopie Diese XSD-Datei in ihrem Ressourcenbereich und Spring verfügt über eine "Zuordnungs" -Funktion, die besagt, dass diese XSD-Datei so behandelt wird, als ob sie der URL zugeordnet wärehttp://somewhere/something.xsd
(sodass Sie nie ins Internet gehen und die Datei herunterladen müssen, sie existiert nur lokal). Weitere Informationen finden Sie unter https://stackoverflow.com/a/41225329/32453 .quelle
Wenn Sie an einen dieser Speicherorte gehen, finden Sie, was in diesem Schema definiert ist. Beispielsweise erfahren Sie, welchen Datentyp der Schlüsselwortwert der ini-Methode hat.
quelle