Eu sou novo em XML e estou tentando entender o básico. Li a linha abaixo em "Learning XML", mas ainda não está clara para mim. Alguém pode me indicar um livro ou site que explique esses princípios básicos claramente?
De XML Aprendizagem :
A declaração XML descreve algumas das propriedades mais gerais do documento, informando ao processador XML que ele precisa de um analisador XML para interpretar este documento.
O que isto significa?
Eu entendo a xml version
parte - tanto o doc quanto o usuário do doc devem "conversar" na mesma versão do XML. Mas e quanto ao encoding
papel? Por que isso é necessário?
Respostas:
Para entender o atributo "encoding", você precisa entender a diferença entre bytes e caracteres .
Pense nos bytes como números entre 0 e 255, enquanto os caracteres são coisas como "a", "1" e "Ä". O conjunto de todos os caracteres disponíveis é denominado conjunto de caracteres .
Cada caractere possui uma sequência de um ou mais bytes que são usados para representá-lo; no entanto, o número e valor exatos dos bytes dependem da codificação usada e existem muitas codificações diferentes.
A maioria das codificações é baseada em um antigo conjunto de caracteres e codificação chamado ASCII, que é um único byte por caractere (na verdade, apenas 7 bits) e contém 128 caracteres, incluindo muitos dos caracteres comuns usados no inglês dos Estados Unidos.
Por exemplo, aqui estão 6 caracteres no conjunto de caracteres ASCII que são representados pelos valores 60 a 65.
No conjunto ASCII completo, o valor mais baixo usado é zero e o mais alto é 127 (ambos são caracteres de controle ocultos).
No entanto, quando você começa a precisar de mais caracteres do que o ASCII básico fornece (por exemplo, letras com acentos, símbolos de moeda, símbolos gráficos, etc.), o ASCII não é adequado e você precisa de algo mais extenso. Você precisa de mais caracteres (um conjunto de caracteres diferente) e de uma codificação diferente, pois 128 caracteres não são suficientes para acomodar todos os caracteres. Algumas codificações oferecem um byte (256 caracteres) ou até seis bytes.
Com o tempo, muitas codificações foram criadas. No mundo do Windows, existe o CP1252 ou ISO-8859-1, enquanto os usuários do Linux tendem a preferir o UTF-8. Java usa UTF-16 nativamente.
Uma sequência de valores de byte para um caractere em uma codificação pode representar um caractere completamente diferente em outra codificação ou pode até ser inválida.
Por exemplo, na norma ISO 8859-1 , â é representado por um byte de valor
226
, ao passo que em UTF-8 é dois bytes:195, 162
. No entanto, no ISO 8859-1 ,195, 162
seriam dois caracteres, Ã, ¢ .Pense no XML não como uma sequência de caracteres, mas como uma sequência de bytes.
Imagine que o sistema que recebe o XML vê os bytes
195, 162
. Como ele sabe quais são esses personagens?Para que o sistema interprete esses bytes como caracteres reais (e assim exiba-os ou converta-os em outra codificação), ele precisa saber a codificação usada no XML.
Uma vez que as codificações mais comuns são compatíveis com ASCII, no que diz respeito a caracteres alfabéticos básicos e símbolos, nesses casos, a própria declaração pode escapar usando apenas os caracteres ASCII para dizer qual é a codificação. Em outros casos, o analisador deve tentar descobrir a codificação da declaração. Uma vez que sabe, a declaração começa com
<?xml
, é muito mais fácil fazer isso.Por fim, o
version
atributo especifica a versão XML, das quais existem duas no momento (consulte as versões XML da Wikipedia . Existem pequenas diferenças entre as versões, então um analisador XML precisa saber com o que está lidando. Na maioria dos casos (para inglês falantes de qualquer maneira), a versão 1.0 é suficiente.fonte
Uma declaração XML não é necessária em todos os documentos XML; no entanto, os autores de documentos XHTML são fortemente encorajados a usar declarações XML em todos os seus documentos. Essa declaração é necessária quando a codificação de caracteres do documento é diferente do UTF-8 ou UTF-16 padrão e nenhuma codificação foi determinada por um protocolo de nível superior. Aqui está um exemplo de um documento XHTML. Neste exemplo, a declaração XML está incluída.
Consulte os padrões W3 para XML .
fonte
Este é o preâmbulo opcional de XML .
version="1.0"
significa que este é o padrão XML com o qual este arquivo está em conformidadeencoding="utf-8"
significa que o arquivo é codificado usando a codificação UTF-8 Unicodefonte
Mais sobre a Declaração XML aqui: http://msdn.microsoft.com/en-us/library/ms256048.aspx
fonte
Você pode verificar este tutorial XML com exemplos.
W3C fornece explicação sobre codificação:
fonte
A declaração XML no mapa do documento consiste no seguinte:
Isso é obrigatório. Embora o número possa mudar para versões futuras do XML, 1.0 é a versão atual.
A declaração de codificação,
Isso é opcional. Se usada, a declaração de codificação deve aparecer imediatamente após as informações de versão na declaração XML e deve conter um valor que representa uma codificação de caractere existente.
fonte