Что такое 'xmlns' и 'xsi:schemaLocation' в файлах XML?


Дата публикации:18 января 2021 года.



INFOMARTION > Что такое 'xmlns' и 'xsi:schemaLocation' в файлах XML?

Обзор.

Вы увидите 'xmlns', 'xsi:schemaLocation' и т.д. в XML-файлах, и я хотел бы объяснить, что они означают.

Оглавление

  1. Что такое XML-файл?
  2. резюме

1. Что такое XML-файл?

XML расшифровывается как Extensible Markup Language и определен Консорциумом Всемирной паутины (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" определен как идентификатор, и проверки, описан ли он так, как определено в XSD-файле. Процесс осуществляется путем поиска XSD-файла (файла определения XML) с "", определенным в качестве идентификатора, и проверки, описано ли оно так, как определено в 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:имя тега".

2. резюме

'xmlns' и 'xsi:schemaLocation' - это настройки файла определения для корректной записи XML-файлов.

Спасибо, что досмотрели до конца.