Última Atualização: 25 Mar, 2025

O que é XML?
XML (Extensible Markup Language) é uma linguagem de marcação e um formato de arquivo usado para armazenar, transmitir e reconstruir dados. Ele fornece uma abordagem estruturada para codificação de informações, tornando-as legíveis tanto para humanos quanto para máquinas.
Características Principais do XML
1. Definido por Padrões Abertos
- Estabelecido pelo World Wide Web Consortium (W3C) em 1998 sob a Especificação XML 1.0.
- Segue regras estritas para garantir que os dados sejam estruturados e fáceis de interpretar.
2. Objetivos de Design
- O XML é projetado com simplicidade, generalidade e usabilidade em diferentes plataformas.
- Usa um formato baseado em texto, tornando-o fácil de ler e editar.
3. Suporte a Unicode
- XML suporta Unicode, permitindo armazenar e processar texto em múltiplas línguas.
4. Versatilidade
- Inicialmente criado para documentos, o XML é agora amplamente utilizado para representação de dados em vários domínios, incluindo serviços web, APIs e arquivos de configuração.
5. Esquema e APIs
- Estruturas XML podem ser definidas usando Definição de Tipo de Documento (DTD), Esquema XML (XSD) ou Relax NG.
- Várias APIs, como DOM (Document Object Model) e SAX (Simple API for XML), permitem o processamento XML.
6. Usos Comuns do XML
- Intercâmbio de dados entre diferentes sistemas (ex.: serviços web, APIs).
- Arquivos de configuração em aplicativos de software.
- Armazenamento de informações estruturadas (ex.: Feeds RSS, gráficos SVG, formatos de documentos como DOCX).
- Desenvolvimento web (ex.: XHTML, SOAP, aplicações baseadas em AJAX).
Visão Geral do XML
1. Principal Propósito do XML: Serialização
Serialização em XML significa:
- Armazenar dados em um formato estruturado.
- Transmitir dados entre diferentes sistemas.
- Reconstruir dados em uma forma utilizável.
Quando dois sistemas precisam trocar informações, o XML fornece um formato de arquivo padronizado para a interoperabilidade. Ele atua como uma “língua franca” para troca estruturada de dados.
2. XML como uma Linguagem de Marcação
XML é uma linguagem de marcação, o que significa que:
- Etiqueta dados com tags para estrutura clara.
- Organiza informações hierarquicamente.
- Classifica dados com metadados.
Exemplo:
<book>
<title>Noções Básicas do XML</title>
<author>John Doe</author>
</book>
Aqui, <book>
, <title>
e <author>
são tags que definem elementos de dados.
3. Esquema XML (XSD) e Validação
Um Esquema XML (XSD) define regras estruturais para documentos XML.
Documentos XML podem ser:
- Bem-formados → Seguem regras básicas de sintaxe (aninhamento correto, tags de fechamento apropriadas).
- Válidos → Conformidade com regras do esquema (elementos obrigatórios, tipos de dados corretos).
Exemplo de uma Regra XSD:
<xs:element name="title" type="xs:string"/>
Isso garante que <title>
deve conter um valor de string.
4. Tipos de Mídia XML (RFC 7303)
O IETF RFC 7303 define tipos de mídia XML para transmissão de dados:
- application/xml → Dados XML padrão.
- application/xml-external-parsed-entity → Entidades XML analisadas.
- application/xml-dtd → Documentos DTD XML.
Para formatos baseados em XML, é utilizado o sufixo +xml (ex.: image/svg+xml
para imagens SVG).
5. XML em Aplicações em Rede (RFC 3470 / IETF BCP 70)
O IETF BCP 70 (RFC 3470) delineia as melhores práticas para o uso do XML em aplicações baseadas em rede, garantindo interoperabilidade de dados sem problemas nos sistemas.
1. Aplicações do XML
O XML é uma linguagem de marcação flexível projetada para troca de dados pela Internet. Sua sintaxe influenciou numerosos formatos de documentos e protocolos de comunicação, tornando-o uma tecnologia fundamental em muitos setores.
Formatos Comuns Baseados em XML:
- Feeds Web: RSS, Atom
- Documentos de Escritório: Office Open XML, OpenDocument
- Gráficos e Modelos 3D: SVG, COLLADA
- Tecnologias Web: XHTML
- Protocolos de Troca de Dados: SOAP, XMPP
- AJAX: Usa XML para troca assíncrona de dados
Padrões da Indústria Utilizando XML:
- Saúde: HL7 (Health Level 7)
- Indústria de Viagens: OpenTravel Alliance
- Finanças: FpML (Financial products Markup Language)
- Imobiliário e Hipoteca: MISMO
- Intercâmbio de Dados Governamentais: National Information Exchange Model
XML na Ciência:
Em meteorologia, o XML é utilizado para representação de dados operacionais do tempo seguindo os padrões IWXXM. Da mesma forma, a Darwin Information Typing Architecture (DITA) é um padrão XML amplamente usado em publicações.
2. Terminologia Chave em XML
Compreender a terminologia básica em XML é crucial para trabalhar com documentos XML de maneira eficaz.
Caractere
Um documento XML é uma sequência de caracteres Unicode. O XML 1.1 permite quase todos os caracteres Unicode, exceto o caractere Nulo (U+0000
), que é estritamente proibido.
Processador e Aplicação
- O processador (ou analisador) XML lê e analisa a marcação XML.
- A aplicação recebe dados estruturados do processador e age sobre eles.
Marcação e Conteúdo
XML divide caracteres em marcação e conteúdo:
- Marcação: Inclui elementos, atributos e entidades (ex.:
<tag>
e&
). - Conteúdo: Os dados reais dentro dos elementos.
- Seções CDATA: Permitem texto que não deve ser interpretado como marcação, delimitado por
<![CDATA[ ... ]]>
.
Tags e Elementos
- Tags: Construções de marcação delimitadas por
< >
.<section>
(Tag de início)</section>
(Tag de fim)<line-break />
(Tag de elemento vazio)
- Elementos: Componentes lógicos definidos por tags.
- Exemplo:
<greeting>Hello, world!</greeting>
- Exemplo:
Atributos
Os atributos fornecem metadados para os elementos usando pares nome-valor. Exemplo:
<img src="image.jpg" alt="Descrição" />
src="image.jpg"
ealt="Descrição"
são atributos do elemento<img>
.
3. Caracteres e Escape em XML
Caracteres Unicode Válidos em XML
Documentos XML só permitem caracteres Unicode específicos para garantir uma análise adequada.
Caracteres Permitidos em XML 1.0:
- Caracteres de controle:
U+0009
(Tabulação)U+000A
(Alimentação de Linha)U+000D
(Retorno de Carro)
- Caracteres de texto:
U+0020–U+D7FF
U+E000–U+FFFD
U+10000–U+10FFFF
Aprimoramentos do XML 1.1:
- Permite todos os caracteres de controle U+0001–U+001F, mas exige que sejam substituídos por escape.
- U+0000 (Caractere Nulo) continua proibido.
4. Codificação em XML
Codificações Comuns do XML:
O XML suporta codificações baseadas em Unicode, incluindo:
- UTF-8 (Padrão recomendado)
- UTF-16 (Deve ser suportado por todos os analisadores XML)
- ASCII, ISO-8859-X (Codificações legadas)
Declaração de Codificação em XML:
O cabeçalho XML pode especificar a codificação:
<?xml version="1.0" encoding="UTF-8"?>
- Se nenhuma codificação for especificada, UTF-8 é assumido.
- UTF-16 requer um BOM (Marca de Ordem de Bytes) para detecção adequada.
5. Escapar Caracteres Especiais em XML
Como a sintaxe XML reserva certos caracteres, eles devem ser esquivados para evitar conflitos.
Entidades XML Pré-definidas:
Caractere | Forma Escapada | Exemplo |
---|---|---|
< (Menor que) | < | I <3 XML → I <3 XML |
> (Maior que) | > | x > y → x > y |
& (E comercial) | & | AT&T → AT&T |
' (Aspa simples) | ' | "O'Reilly" → O’Reilly |
" (Aspas duplas) | " | She said "hello" → She said “hello” |
Referências a Caracteres Numéricos:
Para caracteres especiais que não podem ser digitados, use referências numéricas:
- Decimal:
中 <!-- Caractere chinês "中" -->
- Hexadecimal:
中 <!-- Caractere chinês "中" -->
- Exemplo:Exibido como: I <3 Jörg
<message>I <3 Jörg</message>
Lidando com Dados Binários:
O XML não suporta dados binários brutos. Em vez disso, use a codificação Base64.
6. Comentários em XML
Sintaxe do Comentário XML:
<!-- Este é um comentário XML válido -->
Regras para Comentários XML:
- Não pode aparecer antes da declaração XML.
- Não pode conter
--
(hífen duplo) dentro do comentário. - Referências a entidades são ignoradas em comentários.
Exemplo:
<!-- Este é um comentário com símbolos < e & -->
Conclusão
XML é uma tecnologia essencial para troca estruturada de dados, alimentando feeds web, documentos de escritório, dados científicos, e padrões da indústria. Compreender a terminologia chave do XML, regras de codificação e mecanismos de escape garante documentos XML bem-formados que funcionam corretamente em diferentes sistemas.
Ao seguir as melhores práticas em codificação de caracteres e escape, os desenvolvedores podem evitar erros de análise e garantir a compatibilidade em aplicativos baseados em XML.