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 файл?
  2. Обобщение

1. Какво представлява един XML файл?

XML означава Extensible Markup Language (разширяем език за маркиране) и е специфициран от World Wide Web Consortium (W3C). За по-подробни спецификации, различни от "xmlns" и "xsi:schemaLocation", моля, вижте следните сайтове.

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

1-1. Какво представляват "xmlns" и "xsi:schemaLocation"?

Следващият пример е пример за първото описание в XML файл, когато се използва рамката Spring за разработка на Java приложения.

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

В заключение, '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 файлове.

Това са основните стъпки и ограничения, които трябва да имате предвид.