O que são 'xmlns' e 'xsi:schemaLocation' em ficheiros XML?
Data de Publicação:
Atualizado:
Artigos > O que são 'xmlns' e 'xsi:schemaLocation' em ficheiros XML?
status 2026 e uso seguro
Conclusão: xmlns vincula um prefixo ou namespace padrão a um URI para que os nomes dos elementos permaneçam inequívocos. xsi:schemaLocation é apenas uma dica que emparelha URIs de namespace com localizações de esquema; o comportamento de validação ainda depende do processador XML.
O que você aprenderá
- Como os namespaces padrão e prefixados alteram o nome expandido de um elemento.
- Por que um URI de namespace é um identificador e não precisa retornar uma página da web.
- Como
xsi:schemaLocationdifere dexsi:noNamespaceSchemaLocation.
A quem se destina: Desenvolvedores que leem Maven, Spring, SOAP ou outros arquivos de configuração XML.
Atualização para 2026: O namespace W3C e as regras do esquema XML continuam sendo a autoridade. Trate os locais do esquema remoto como entradas não confiáveis e evite depender da recuperação da rede durante a análise de produção.
Nota de segurança: os comandos e exemplos de configuração do artigo original não foram novamente executados num ambiente de produção atual. Antes de os aplicar, confirme as versões suportadas, as cópias de segurança, os controlos de acesso e o procedimento de reversão num ambiente de teste isolado.
Fontes primárias oficiais
Visão geral
Verá 'xmlns', 'xsi:schemaLocation', etc. em ficheiros XML, e eu esta secção explica o que estes significam.
Tabela de Conteúdos
1. O que é um ficheiro XML?
XML significa Extensible Markup Language e é especificado pelo World Wide Web Consortium (W3C). Para especificações mais detalhadas para além de "xmlns" e "xsi:schemaLocation", consulte por favor os seguintes sítios.
1-1. O que são "xmlns" e "xsi:schemaLocation"?
O exemplo seguinte é um exemplo da primeira descrição num ficheiro XML quando se utiliza a estrutura da Primavera para o desenvolvimento de aplicações 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">
Em conclusão, 'xmlns' e 'xsi:schemaLocation' são definições sobre a forma como o XML é escrito. No desenvolvimento de aplicações Java, a estrutura Spring realiza o processamento com base nos dados contidos neste ficheiro XML. Se não existe uma definição de como escrever XML, é difícil saber como escrevê-lo. Assim, por exemplo, definem que "pode definir o atributo id na tag do feijão" e "pode definir a tag do construtor-arg na tag interna da tag do feijão".
1-2. O que são xmlns?
xmlns refere-se ao "espaço de nomes XML". Em resumo, um namespace é um ID, ou seja, um valor de identificação único.
Tomando como exemplo o exemplo anterior de "xmlns="http://www.springframework.org/schema/beans", "http://www.springframework.org/schema/beans" é o namespace, ou seja, o valor que identifica de forma única O valor é.
Embora tenha a forma de um URL, o programa trata este valor como um identificador de namespace. O processador localiza o ficheiro XSD associado a "http://www.springframework.org/schema/beans" e valida o documento segundo essa definição. No Spring, o XSD também é distribuído dentro do ficheiro JAR correspondente.
1-3. O que é "xmlns:xsi"?
'xmlns', 'xmlns:xsi', etc., para evitar definições duplicadas. Por exemplo, se a mesma etiqueta de amostra for definida em "xmlns" e "xmlns:xsi", não é possível determinar qual a definição como é descrita. Portanto, é possível distinguir entre as definições "xmlns" e "xmlns:xsi" para "amostra" e "xsi:amostra" para "xmlns:xsi". Por outras palavras, aqueles com "xmlns="~"" são os valores por defeito, enquanto aqueles com "xmlns:xxxx="~"" devem ser definidos como "xxxx:tag name".
2. resumo
xmlns' e 'xsi:schemaLocation' são definições de ficheiros para escrever correctamente ficheiros XML.