Przestrzenie nazw XML wyjaśnione: xmlns i xsi:schemaLocation


Data publikacji:

Aktualizacja:


Artykuły > Przestrzenie nazw XML wyjaśnione: xmlns i xsi:schemaLocation

Stan na rok 2026 i bezpieczne użytkowanie

Wniosek: xmlns wiąże prefiks lub domyślną przestrzeń nazw z identyfikatorem URI, dzięki czemu nazwy elementów pozostają jednoznaczne. xsi:schemaLocation to tylko wskazówka, która łączy identyfikatory URI przestrzeni nazw z lokalizacjami schematu; zachowanie podczas sprawdzania poprawności nadal zależy od procesora XML.

Czego się nauczysz

  • Jak domyślne i poprzedzone przestrzenie nazw zmieniają rozszerzoną nazwę elementu.
  • Dlaczego identyfikator URI przestrzeni nazw jest identyfikatorem i nie musi zwracać strony internetowej.
  • Czym xsi:schemaLocation różni się od xsi:noNamespaceSchemaLocation.

Dla kogo: programistów czytających Maven, Spring, SOAP lub inne pliki konfiguracyjne XML.

Stanowisko na rok 2026: Przestrzeń nazw W3C i reguły schematu XML pozostają autorytetem. Traktuj zdalne lokalizacje schematów jako niezaufane dane wejściowe i unikaj polegania na pobieraniu sieci podczas analizowania produkcyjnego.

Uwaga dotycząca bezpieczeństwa: polecenia i przykłady konfiguracji z pierwotnego artykułu nie zostały ponownie uruchomione we współczesnym środowisku produkcyjnym. Przed użyciem sprawdź wspierane wersje, kopie zapasowe, kontrolę dostępu i procedurę wycofania w oddzielnym środowisku testowym.

Oficjalne źródła pierwotne

Przegląd

W plikach XML można spotkać oznaczenia "xmlns", "xsi:schemaLocation" itp. i w tej sekcji wyjaśniono, co one oznaczają.

Spis treści

  1. Co to jest plik XML?
  2. streszczenie

1. Co to jest plik XML?

XML jest skrótem od Extensible Markup Language (Rozszerzalny Język Znaczników) i został opracowany przez World Wide Web Consortium (W3C). Bardziej szczegółowe specyfikacje, inne niż "xmlns" i "xsi:schemaLocation", można znaleźć na następujących stronach.

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

1-1. Co to są "xmlns" i "xsi:schemaLocation"?

Poniższy przykład jest przykładem pierwszego opisu w pliku XML podczas korzystania z frameworka Spring do tworzenia aplikacji w Javie.

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

Podsumowując, "xmlns" i "xsi:schemaLocation" to ustawienia określające, w jaki sposób zapisywany jest XML. Podczas tworzenia aplikacji w Javie framework Spring wykonuje przetwarzanie na podstawie danych zawartych w tym pliku XML. Jeśli nie ma definicji, jak pisać XML, trudno jest wiedzieć, jak go pisać. Tak więc na przykład definiują one, że "można zdefiniować atrybut id w znaczniku bean" oraz "można zdefiniować znacznik constructor-arg w wewnętrznym znaczniku znacznika bean".

1-2. Co to jest xmlns?

xmlns odnosi się do "przestrzeni nazw XML". Krótko mówiąc, przestrzeń nazw to identyfikator, czyli wartość jednoznacznie identyfikująca.

Biorąc za przykład poprzedni przykład "xmlns="http://www.springframework.org/schema/beans"", "http://www.springframework.org/schema/beans" jest przestrzenią nazw, czyli wartością, która jednoznacznie identyfikuje Wartość ta wynosi.

Jest to adres URL, ale gdy program go przetwarza, nie jest on przetwarzany jako adres URL, lecz jako identyfikator. Dlatego proces ten polega na znalezieniu pliku XSD (plik definicji XML), w którym "http://www.springframework.org/schema/beans" jest zdefiniowany jako identyfikator, i sprawdzeniu, czy jest on opisany zgodnie z definicją w pliku XSD. Proces jest realizowany poprzez wyszukanie pliku XSD (plik definicji XML) z "" zdefiniowanym jako identyfikator i sprawdzenie, czy jest on opisany zgodnie z definicją w pliku XSD. W przypadku Springa plik XSD jest również przechowywany jako zestaw w pliku jar.

1-3. Co to jest "xmlns:xsi"?

'xmlns', 'xmlns:xsi' itp., aby uniknąć powielania definicji. Na przykład, jeśli ten sam przykładowy znacznik jest zdefiniowany w "xmlns" i "xmlns:xsi", nie można określić, w której definicji jest on opisany. Dlatego można rozróżnić definicje "xmlns" i "xmlns:xsi" dla "sample" oraz "xsi:sample" dla "xmlns:xsi". Innymi słowy, te z "xmlns="~"" są wartościami domyślnymi, natomiast te z "xmlns:xxxx="~"" muszą być zdefiniowane jako "xxxx:nazwa tagu".

2. streszczenie

xmlns" i "xsi:schemaLocation" są ustawieniami pliku definicji umożliwiającymi prawidłowy zapis plików XML.

■INFORMATION

Artykuły


■PROFILE

Profil


■Kontakt

Kontakt