Vad betyder "xmlns" och "xsi:schemaLocation" i XML-filer?


Publicerad:

Uppdaterad:


Tekniska artiklar > Vad betyder "xmlns" och "xsi:schemaLocation" i XML-filer?

Status 2026 och säker användning

Slutsats: xmlns kopplar ett prefix eller ett standardnamnområde till en URI så att elementnamn kan skiljas åt. xsi:schemaLocation är en anvisning som parar ihop namnrymds-URI:er med schemaplatser; XML-processorn avgör hur valideringen utförs.

Det här går artikeln igenom

  • Hur ett standardnamnområde och prefix påverkar ett elements fullständiga namn.
  • Varför en namnrymds-URI är en identifierare och inte behöver leda till en webbsida.
  • Hur xsi:schemaLocation skiljer sig från xsi:noNamespaceSchemaLocation.

Målgrupp: Utvecklare som läser XML-konfiguration för Maven, Spring, SOAP eller liknande teknik.

Läge 2026: W3C:s regler för XML-namnrymder och XML Schema är fortfarande normerande. Betrakta externa schemaplatser som osäkra indata och undvik att produktionstolkning blir beroende av nätverkshämtningar.

Säkerhetsinformation: Kommandona och konfigurationsexemplen i originalartikeln har inte testats på nytt i en aktuell produktionsmiljö. Kontrollera versioner med support, säkerhetskopior, åtkomstkontroller och återställningssteg i en separat testmiljö innan de används.

Viktiga officiella källor

Översikt

XML-filer innehåller ofta "xmlns" och "xsi:schemaLocation". Det här avsnittet förklarar vad deklarationerna betyder.

Innehållsförteckning

  1. Vad är en XML-fil?
  2. Sammanfattning

1. Vad är en XML-fil?

XML står för Extensible Markup Language och standardiseras av World Wide Web Consortium (W3C). Den fullständiga specifikationen finns på följande webbplats.

https://www.w3.org/TR/xml/

1-1. Vad är "xmlns" och "xsi:schemaLocation"?

Följande exempel visar inledningen till en XML-konfigurationsfil för en Java-applikation som använder Spring Framework.

applicationContext.xml


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

Namnrymdsdeklarationerna identifierar den vokabulär som varje element och attribut tillhör, medan "xsi:schemaLocation" parar ihop namnrymder med ledtrådar till scheman. En processor kan använda ett sådant schema för att validera exempelvis att elementet "bean" får ha attributet "id" och att "constructor-arg" får förekomma inuti "bean". Spring använder dessutom namnrymdsmedveten tolkning för att välja hanterare för konfigurationselementen.

1-2. Vad är xmlns?

xmlns deklarerar en XML-namnrymd. Namnrymden fungerar som en unik identifierare som skiljer element med samma lokala namn från varandra.

I exemplet "xmlns="http://www.springframework.org/schema/beans"" är "http://www.springframework.org/schema/beans" namnrymdens identifierare.

Identifieraren ser ut som en webbadress, men är en identifierare och behöver inte hämtas via nätverket. Schemaresolution är ett separat steg. Ramverk som Spring kan mappa kända schemaplatser till XSD-resurser som medföljer i ramverkets JAR-filer.

1-3. Vad är "xmlns:xsi"?

Deklarationer som "xmlns" och "xmlns:xsi" hindrar att namn från olika definitioner blandas ihop. Ett element som skrivs "sample" tillhör standardnamnrymden, medan "xsi:sample" tillhör namnrymden som prefixet "xsi" pekar på. Formen "xmlns=..." anger standardnamnrymden; formen "xmlns:xxxx=..." deklarerar ett prefix som sedan används i exempelvis "xxxx:elementnamn".

2. Sammanfattning

"xmlns" deklarerar XML-namnrymder, medan "xsi:schemaLocation" ger processorn information om tillhörande scheman. Tillsammans gör de det möjligt att tolka och validera XML-dokumentets element entydigt.

Namnrymden identifierar elementens vokabulär, medan schemaplatsen hjälper en validator att hitta den tillhörande definitionen.