Saya melihat bahwa kami memiliki beberapa url sebagai nilai atribut ini seperti di musim semi:
<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">
Mengapa itu dibutuhkan dan untuk apa ini digunakan? Apakah Spring membuka url dan memvalidasi? apa perbedaan antara xmlns dan xsi: schemaLocation?
An
xmlns
adalah pengidentifikasi unik di dalam dokumen - itu tidak harus menjadi URI untuk skema:xsi:schemaLocation
seharusnya memberikan petunjuk tentang lokasi skema aktual:sumber
Menurut spesifikasi untuk menemukan Skema
(Terima kasih karena tidak ambigu, spek!)
dan
Jadi pada dasarnya dengan menetapkan hanya namespace, XML Anda "mungkin" diupayakan divalidasi terhadap xsd di lokasi itu (bahkan jika tidak memiliki
schemaLocation
atribut), tergantung pada "komunitas" Anda. Jika Anda menentukan spesifikschemaLocation
, maka pada dasarnya ini menyiratkan bahwa dokumen xml "harus" sesuai dengan kata xsd, jadi "tolong validasi" (seperti yang saya baca). Dugaan saya adalah bahwa jika Anda tidak melakukanschemaLocation
ataunoNamespaceSchemaLocation
atribut itu hanya "tidak divalidasi" sebagian besar waktu (berdasarkan jawaban lain, tampaknya java melakukannya dengan cara ini).Kerut lain di sini adalah bahwa biasanya, dengan validasi xsd di pustaka java [mis: spring config xml files], jika file XML Anda menentukan
schemaLocation
url xsd tertentu dalam file XML, sepertixsi:schemaLocation="http://somewhere http://somewhere/something.xsd"
biasanya dalam salah satu toples ketergantungan Anda, ia akan berisi salinan dari file xsd itu, di bagian sumber dayanya, dan pegas memiliki kemampuan "pemetaan" yang mengatakan untuk memperlakukan file xsd itu seolah-olah memetakan ke urlhttp://somewhere/something.xsd
(jadi Anda tidak akan pernah pergi ke web dan mengunduh file, itu hanya ada secara lokal). Lihat juga https://stackoverflow.com/a/41225329/32453 untuk info lebih lanjut.sumber
Jika Anda pergi ke salah satu lokasi tersebut, maka Anda akan menemukan apa yang didefinisikan dalam skema tersebut. Misalnya, ini memberi tahu Anda apa tipe data dari nilai kata kunci metode-awal ini.
sumber