XML nosaukumvietu skaidrojums: xmlns un xsi:schemaLocation
Publikācijas datums:
Atjaunināts:
Tehniskie raksti > XML nosaukumvietu skaidrojums: xmlns un xsi:schemaLocation
2026. gada statuss un droša lietošana
Secinājums: xmlns piesaista prefiksu vai noklusējuma nosaukumvietu URI, lai elementu nosaukumi būtu nepārprotami. xsi:schemaLocation ir tikai norāde, kas sasaista nosaukumvietu URI ar shēmu atrašanās vietām; validēšana joprojām ir atkarīga no XML procesora.
Ko jūs uzzināsiet
- Kā noklusējuma un prefiksu nosaukumvietas maina elementa izvērsto nosaukumu.
- Kāpēc nosaukumvietas URI ir identifikators, un tam nav jāatgriež tīmekļa lapa.
- Kā
xsi:schemaLocationatšķiras noxsi:noNamespaceSchemaLocation.
Kam tas ir paredzēts: izstrādātājiem, kas lasa Maven, Spring, SOAP vai citus XML konfigurācijas failus.
2026. gada konteksts: W3C nosaukumvietas un XML shēmas kārtulas joprojām ir autoritāte. Uztveriet attālās shēmas atrašanās vietas kā neuzticamu ievadi un izvairieties no tīkla izguves ražošanas parsēšanas laikā.
Drošības piezīme. Sākotnējā rakstā esošās komandas un konfigurācijas piemēri nav atkārtoti izpildīti pašreizējā ražošanas vidē. Pirms to lietošanas pārbaudiet atbalstītās versijas, dublējumus, piekļuves vadīklas un atcelšanas darbības atsevišķā testa vidē.
Galvenie oficiālie avoti
Pārskats
Šajā rakstā izskaidrots, ko XML failos nozīmē „xmlns” un „xsi:schemaLocation”.
Satura rādītājs
1. Kas ir XML fails?
XML ir paplašināmā iezīmēšanas valoda (Extensible Markup Language), kuras specifikāciju uztur World Wide Web Consortium (W3C). Dokumenta sintaksi nosaka https://www.w3.org/TR/xml/, bet tālāk aplūkotos jēdzienus — XML nosaukumvietu un XML Schema specifikācijas.
1-1. Kas ir "xmlns" un "xsi:schemaLocation"?
Nākamajā Spring konfigurācijas piemērā izmantota noklusējuma nosaukumvieta, vairākas nosaukumvietas ar prefiksiem un norāde uz shēmu atrašanās vietām.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">
Nosaukumvietu deklarācijas identificē katra elementa un atribūta vārdnīcu, savukārt xsi:schemaLocation savieno nosaukumvietu nosaukumus ar shēmu atrašanās vietu norādēm. XML procesors attiecīgo shēmu var izmantot, lai validētu, piemēram, atļautos atribūtus un bērnelementus. Spring izmanto nosaukumvietu informāciju arī tam, lai katram konfigurācijas elementam izvēlētos pareizo apstrādātāju.
1-2. Kas ir xmlns?
xmlns deklarē XML nosaukumvietu. Piemēra URI http://www.springframework.org/schema/beans identificē noklusējuma nosaukumvietu elementiem bez prefiksa attiecīgajā tvērumā.
Nosaukumvietas nosaukums izskatās pēc URL, taču tas ir identifikators, kas nav obligāti jāielādē tīklā. Konkrētajā piemērā šis identifikators ir http://www.springframework.org/schema/beans. Shēmas atrašana ir atsevišķs solis; tādi ietvari kā Spring nosaukumvietu http://www.springframework.org/schema/beans var sasaistīt ar resursiem, kas jau ir iekļauti to JAR failos.
1-3. Kas ir "xmlns:xsi"?
xmlns:xsi piesaista prefiksu xsi XML Schema Instance nosaukumvietai. Prefikss nošķir tādus nosaukumus kā xsi:schemaLocation no nosaukumiem noklusējuma nosaukumvietā. Vispārīgā gadījumā xmlns="…" deklarē noklusējuma nosaukumvietu, bet xmlns:prefikss="…" deklarē nosaukumvietu, ko izmanto formā prefikss:elements vai prefikss:atribūts.
2. Kopsavilkums
xmlns deklarācijas identificē XML vārdnīcas. xsi:schemaLocation sniedz neobligātas norādes no nosaukumvietām uz shēmām; tas pats nedefinē elementus, neuzspiež validēšanu un negarantē attālas shēmas lejupielādi.