Wat zijn 'xmlns' en 'xsi:schemaLocation' in XML-bestanden?


Datum van publicatie:18 januari 2021.



INFOMARTION > Wat zijn 'xmlns' en 'xsi:schemaLocation' in XML-bestanden?

Overzicht.

In XML-bestanden kom je "xmlns", "xsi:schemaLocation", enz. tegen, en ik wil graag uitleggen wat die betekenen.

Inhoudsopgave

  1. Wat is een XML-bestand?
  2. samenvatting

1. Wat is een XML-bestand?

XML staat voor Extensible Markup Language en is gespecificeerd door het World Wide Web Consortium (W3C). Voor meer gedetailleerde specificaties, anders dan "xmlns" en "xsi:schemaLocation", verwijzen wij u naar de volgende sites.

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

1-1. Wat zijn "xmlns" en "xsi:schemaLocation"?

Het volgende voorbeeld is een voorbeeld van de eerste beschrijving in een XML-bestand bij gebruik van het Spring framework voor Java applicatie-ontwikkeling.

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

Samenvattend, "xmlns" en "xsi:schemaLocation" zijn instellingen voor definities over hoe XML wordt geschreven. Bij de ontwikkeling van Java-toepassingen voert het Spring-framework bewerkingen uit op basis van de gegevens in dit XML-bestand. Als er geen definitie is van hoe XML moet worden geschreven, is het moeilijk te weten hoe het moet worden geschreven. Zo bepalen zij bijvoorbeeld dat "je het id attribuut in de bean tag kunt definiëren" en "je de constructor-arg tag in de inner tag van de bean tag kunt definiëren".

1-2. Wat is xmlns?

xmlns verwijst naar de "XML namespace". Kort gezegd is een namespace een ID, d.w.z. een uniek identificerende waarde.

Als we het vorige voorbeeld van "xmlns="http://www.springframework.org/schema/beans" als voorbeeld nemen, is "http://www.springframework.org/schema/beans" de namespace, d.w.z. de waarde die op unieke wijze identificeert De waarde is.

Het is een URL, maar wanneer het programma het verwerkt, wordt het niet verwerkt als een URL, maar als een ID. Daarom wordt het XSD-bestand (XML definition file) gezocht waarin "http://www.springframework.org/schema/beans" als ID is gedefinieerd en wordt nagegaan of het beschreven is zoals in het XSD-bestand is gedefinieerd. Het proces wordt uitgevoerd door te zoeken naar een XSD-bestand (XML-definitiebestand) met "" gedefinieerd als een ID en te controleren of het wordt beschreven zoals in het XSD-bestand is gedefinieerd. In het geval van Spring wordt het XSD-bestand ook als een set in het jar-bestand opgeslagen.

1-3. Wat is "xmlns:xsi"?

"xmlns", "xmlns:xsi", enz. om dubbele definities te vermijden. Als bijvoorbeeld dezelfde voorbeeldtag is gedefinieerd in "xmlns" en "xmlns:xsi", is het niet mogelijk te bepalen als welke definitie hij wordt beschreven. Daarom is het mogelijk onderscheid te maken tussen de definities "xmlns" en "xmlns:xsi" voor "sample" en "xsi:sample" voor "xmlns:xsi". Met andere woorden, die met "xmlns="~"" zijn de standaardwaarden, terwijl die met "xmlns:xxxx="~"" moeten worden gedefinieerd als "xxxx:tag name".

2. samenvatting

"xmlns" en "xsi:schemaLocation" zijn definitiebestandinstellingen voor het correct schrijven van XML-bestanden.

Bedankt voor het kijken tot het einde.