O que é XML?
XML é uma linguagem de marcação versátil para estruturar e transferir dados. Possui etiquetas personalizáveis, estrutura hierárquica e definições de esquema. Ao contrário do HTML, XML foca na representação de dados ao invés da exibição. É amplamente utilizado em várias aplicações, incluindo configurações de SSO, como a implementação SAML do Logto.
A Extensible Markup Language (XML) usa etiquetas para indicar como o texto em ficheiros de dados deve ser estruturado, armazenado e transmitido. O XML foi concebido para ser legível tanto por humanos quanto por máquinas, tornando-se uma poderosa e altamente personalizável ferramenta de marcação.
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 etiquetas personalizadas. O tipo de linguagem de marcação resultante permite definir como os dados numa página são marcados antes de partilhá-los como um ficheiro XML com outro sistema. Desde que dois sistemas usem a mesma linguagem XML (com etiquetas que ambos possam interpretar), ambos os sistemas podem "compreender" o formato do ficheiro XML. Quando o XML é devidamente implementado, isso garante que qualquer ficheiro de dados pode ser armazenado, transmitido e depois utilizado, reproduzindo exatamente os mesmos dados e estrutura cada vez que é acessado.
Exemplo de conteúdo XML
Os dados XML consistem em texto num ficheiro digital. Similar ao HTML, crias o "código" necessário para os ficheiros XML inserindo etiquetas 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 utilizador, email e nível de utilizador.
Isto cria um documento XML que pode ser partilhado e lido entre fornecedores de identidade e fornecedores 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 - Num documento XML, deve haver um elemento raiz, que neste exemplo é
<users>
- Todos os outros elementos contidos dentro do elemento raiz são chamados "elementos filhos"
- No exemplo acima, há 3 elementos filhos, marcados com a etiqueta
<user>
- Dentro dos elementos filhos
<user>
, há vários outros elementos filhos, como<name>
,<username>
,<email>
, e<level>
- Na etiqueta
<user>
, há também umid
, que é chamado de atributo XML. Um elemento não pode conter múltiplos atributos com o mesmo nome
As etiquetas usadas mostram o que cada tipo de dado é, com texto simples servindo como o dado propriamente dito. Note também como o conteúdo está indentado. Isto não é para ajudar os sistemas a processarem o ficheiro XML, mas para ajudar os humanos a navegarem mais facilmente pelo ficheiro XML e sua ordem hierárquica para descobrir e resolver quaisquer erros ou omissões.
O que é o esquema XML?
Um esquema atua como a "definição" para um documento XML. Isso significa que descreve as regras e restrições principais da estrutura do ficheiro XML, bem como controlo sobre o conteúdo e tipos de dados — controlando como interagem entre si no documento. Isso garante que a integridade dos dados do XML esteja 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 utilizado 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 XSD tratam de especificações detalhadas para documentos XML para garantir a sua validade, então a sintaxe XML fornece um conjunto de regras que governam e controlam a estrutura geral dos ficheiros XML. Por exemplo, a sintaxe XML pode abranger conteúdo de texto, como elementos auto-fechados (peças únicas de informação que não exigem conteúdo adicional) ou declarações XML (usadas no início de documentos para descrever informações chave, como codificação de caracteres), bem como a versão XML usada pelo documento.
XML vs HTML
Se estás familiarizado com HTML, a forma como os ficheiros XML implantam marcações parecerá muito familiar — mas há uma diferença chave entre estas 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 entenderem como exibir conteúdo na tela
- XML é uma linguagem de marcação usada para armazenar, exibir e transferir dados
Além disso, têm algumas outras diferenças:
- Porque HTML é para renderização de conteúdo de página para navegadores, seus tipos de etiquetas são predefinidos, enquanto as etiquetas XML podem ser personalizadas de acordo com situações reais
- HTML é frequentemente estático, já que é usado para exibir conteúdo; XML é dinâmico, pois é usado para transferir dados
- HTML não suporta espaços de nomes, enquanto XML pode usar espaços de nomes para distinguir etiquetas 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 espaço de nome, indicando que este elemento<title>
pertence ao espaço de nometech
bio:author
usa<http://www.example.com/bio>
como o espaço de nome, indicando que este elemento<author>
pertence ao espaço de nomebio
Como é o XML usado no Logto?
O Logto suporta o protocolo SAML para SSO. Ao configurar SSO, o fornecedor de identidade fornece um ficheiro de configuração em formato XML que inclui configurações importantes como certificados e URLs de single sign-on.
Ao configurar SAML SSO, o Logto permite a upload direta do ficheiro de configuração XML obtido do fornecedor de identidade, eliminando a necessidade de preencher manualmente cada item de configuração.