O que é XML?
XML é uma linguagem de marcação versátil para estruturar e transferir dados. Possui tags personalizáveis, estrutura hierárquica e definições de esquema. Ao contrário do HTML, o XML foca na representação de dados em vez de exibição. É amplamente utilizado em várias aplicações, incluindo configurações de SSO como a implementação SAML do Logto.
Extensible Markup Language (XML) usa tags para indicar como o texto em arquivos de dados deve ser estruturado, armazenado e transmitido. XML é projetado para ser legível por humanos e máquinas, tornando-o uma ferramenta de marcação poderosa e altamente personalizável.
O XML foi criado pelo World Wide Web Consortium (W3C) em 1996. O objetivo do W3C era criar uma linguagem que pudesse ajudar a definir tipos de documentos e fornecer a capacidade de criar tags personalizadas. O tipo de linguagem de marcação resultante permite definir como os dados em uma página são marcados antes de compartilhá-los como um arquivo XML com outro sistema. Desde que dois sistemas usem a mesma linguagem XML (com tags que ambos possam interpretar), ambos os sistemas podem "entender" o formato de arquivo XML. Quando o XML é devidamente implementado, isso garante que qualquer arquivo de dados possa ser armazenado, transmitido e depois utilizado, reproduzindo exatamente os mesmos dados e estrutura cada vez que for acessado.
Exemplo de conteúdo XML
Os dados XML consistem em texto em um arquivo digital. Semelhante ao HTML, você cria o "código" necessário para arquivos XML inserindo tags para indicar como o texto deve ser interpretado. Por exemplo:
Este exemplo mostra três usuários. O conteúdo XML inclui nome, nome de usuário, email e nível de usuário.
Isso cria um documento XML que pode ser compartilhado e lido entre provedores de identidade e provedores de recursos.
Importante, o exemplo acima demonstra a natureza hierárquica dos documentos XML. Por exemplo:
- O conteúdo da primeira linha
<?xml version="1.0" encoding="UTF-8"?>
é a declaração XML, que especifica a versão e codificação - Em um documento XML, deve haver um elemento raiz, que neste exemplo é
<users>
- Todos os outros elementos contidos dentro do elemento raiz são chamados de "elementos filhos"
- No exemplo acima, há 3 elementos filhos, marcados com a tag
<user>
- Dentro dos elementos filhos
<user>
, há vários outros elementos filhos, como<name>
,<username>
,<email>
e<level>
- Na tag
<user>
, há também umid
, que é chamado de atributo XML. Um elemento não pode conter múltiplos atributos com o mesmo nome
As tags usadas mostram o que cada tipo de dado é, com texto simples servindo como os próprios dados. Observe também como o conteúdo está indentado. Isso não é para ajudar os sistemas a processar o arquivo XML, mas para ajudar os humanos a navegar mais facilmente pelo arquivo XML e sua ordem hierárquica para descobrir e resolver qualquer erro ou omissão.
O que é um esquema XML?
Um esquema atua como a "definição" para um documento XML. Isso significa que ele descreve as principais regras e restrições da estrutura do arquivo XML, bem como controles sobre o conteúdo e tipos de dados—controlando como eles interagem entre si no documento. Isso garante que a integridade dos dados do XML seja protegida em todos os momentos, mesmo quando manuseada entre diferentes aplicações ou até sistemas.
Os dois principais idiomas de esquema são Document Type Definition (DTD) e XML Schema Definition (XSD). XSD é o idioma mais comumente usado em documentos XML devido ao seu conjunto de recursos ricos, capacidades poderosas de tipos de dados e mais.
O que é a sintaxe XML?
Se os esquemas XML como o XSD são sobre especificações detalhadas para documentos XML para garantir sua validade, então a sintaxe XML fornece um conjunto de regras que governam e controlam a estrutura geral dos arquivos XML. Por exemplo, a sintaxe XML pode cobrir o conteúdo do texto, como elementos auto-fechados (pedaços únicos de informação que não exigem conteúdo adicional) ou declarações XML (usadas no início dos documentos para descrever informações chave, como codificação de caractere), bem como a versão XML usada pelo documento.
XML vs HTML
Se você está familiarizado com HTML, a forma como os arquivos XML utilizam marcação parecerá muito familiar—mas há uma diferença chave entre essas duas linguagens de marcação—seus casos de uso e propósitos diferem:
- HTML é uma Linguagem de Marcação usada para ajudar os navegadores a entender como exibir conteúdo na tela
- XML é uma Linguagem de Marcação usada para armazenar, exibir e transferir dados
Além disso, eles têm algumas outras diferenças:
- Porque o HTML é para renderizar o conteúdo da página para navegadores, seus tipos de tags são predefinidos, enquanto as tags XML podem ser personalizadas de acordo com situações reais
- HTML é frequentemente estático, pois é usado para exibir conteúdo; XML é dinâmico, pois é usado para transferir dados
- HTML não suporta namespaces, enquanto XML pode usar namespaces para distinguir tags que podem ter o mesmo nome, mas contextos diferentes para evitar confusões
Neste exemplo:
tech:title
usa<http://www.example.com/tech>
como o namespace, indicando que este elemento<title>
pertence ao namespacetech
bio:author
usa<http://www.example.com/bio>
como o namespace, indicando que este elemento<author>
pertence ao namespacebio
Como o XML é usado no Logto?
O Logto suporta o protocolo SAML para SSO. Ao configurar SSO, o provedor de identidade fornece um arquivo de configuração no formato XML que inclui configurações importantes, como certificados e URLs de single sign-on.
Ao configurar SAML SSO, o Logto permite o upload direto do arquivo de configuração XML obtido do provedor de identidade, eliminando a necessidade de preencher manualmente cada item de configuração.