XML пространства от имена обяснени: xmlns и xsi:schemaLocation
Публикувано:
Актуализирано:
Статии › XML пространства от имена обяснени: xmlns и xsi:schemaLocation
Състояние през 2026 г. и безопасна употреба
Заключение: xmlns свързва префикс или имена по подразбиране с URI, така че имената на елементите остават недвусмислени. xsi:schemaLocation е само намек, че двойки имена пространство URIs със схема места; валидиране поведение все още зависи от XML процесор.
Какво ще научите
- Как по подразбиране и предварително фиксирани пространства име променят разширено име елемент.
- Защо пространство URI е идентификатор и не трябва да се връща уеб страница.
- Как?
xsi:schemaLocationсе различава отxsi:noNamespaceSchemaLocation.
За кого е статията: Разработчиците четат Maven, Spring, SOAP, или други XML конфигурационни файлове.
Актуално към 2026 г.: Правилата на W3C и XML Schema остават в сила. Третирайте отдалечени зони на схема като ненадежден вход и избягвайте в зависимост от извличането на мрежата по време на производството.
Бележка за безопасност: Командите и конфигурационните примери в първоначалната статия не са изпълнявани повторно в съвременна производствена среда. Преди прилагане проверете поддържаните версии, направете резервно копие и подгответе план за връщане в отделна тестова среда.
Официални източници
Преглед
В XML файловете можете да видите 'xmlns', 'xsi:schemaLocation' и т.н. и по-долу е обяснено какво означават те.
Съдържание
1. Какво представлява един XML файл?
XML означава Extensible Markup Language (разширяем език за маркиране) и е специфициран от World Wide Web Consortium (W3C). За по-подробни спецификации, различни от "xmlns" и "xsi:schemaLocation", моля, вижте следните сайтове.
1-1. Какво представляват "xmlns" и "xsi:schemaLocation"?
Следващият пример е пример за първото описание в XML файл, когато се използва рамката Spring за разработка на Java приложения.
<?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">
В заключение, 'xmlns' и 'xsi:schemaLocation' са настройки за дефиниции относно начина на записване на XML. При разработването на Java приложения рамката Spring извършва обработка въз основа на данните, съдържащи се в този XML файл. Ако няма определение за това как се пише XML, е трудно да се разбере как да се пише. Така например те определят, че "можете да дефинирате атрибута id в тага bean" и "можете да дефинирате тага constructor-arg във вътрешния таг на тага bean".
1-2. Какво е xmlns?
xmlns се отнася за "пространството от имена на XML". Накратко, пространството от имена е идентификатор, т.е. уникално идентифицираща стойност.
Ако вземем за пример предишния пример с "xmlns="http://www.springframework.org/schema/beans"", "http://www.springframework.org/schema/beans" е пространството от имена, т.е. стойността, която еднозначно идентифицира Стойността е.
Това е URL, но когато програмата го обработва, той не се обработва като URL, а като ID. Следователно процесът се извършва чрез намиране на XSD файла (XML дефиниционен файл), в който "http://www.springframework.org/schema/beans" е дефиниран като ID, и проверка дали е описан, както е дефиниран в XSD файла. Процесът се извършва, като се търси XSD файл (XML дефиниционен файл) с "", дефиниран като ID, и се проверява дали е описан, както е дефиниран в XSD файла. В случая на Spring XSD файлът също се съхранява като набор в JAR файла.
1-3. Какво е "xmlns:xsi"?
'xmlns', 'xmlns:xsi' и т.н., за да се избегнат дублиращи се дефиниции. Например, ако един и същ примерен таг е дефиниран в "xmlns" и "xmlns:xsi", не е възможно да се определи като коя дефиниция е описан. Следователно е възможно да се прави разлика между определенията "xmlns" и "xmlns:xsi" за "sample" и "xsi:sample" за "xmlns:xsi". С други думи, тези с "xmlns="~"" са стойностите по подразбиране, докато тези с "xmlns:xxxx="~"" трябва да бъдат дефинирани като "xxxx:tag name".
2. резюме
'xmlns' и 'xsi:schemaLocation' са настройки на файла за дефиниция за правилно записване на XML файлове.
Това са основните стъпки и ограничения, които трябва да имате предвид.