Ou seja ... xml version= " 1.0 "encoding=" utf-8"?>
sou novo em XML e estou a tentar compreender o básico. Eu li A linha abaixo em "Learning XML", mas ainda não estou claro. Alguém me pode indicar um livro ou site que explique claramente estes conceitos básicos?
de aprender XML:
O que significa isto?a declaração XML descreve algumas das propriedades mais gerais de o documento, dizendo ao processador XML que precisa de um analisador XML para interprete este documento.
entenda a parte "xml version" - tanto o doc quanto o usuário do doc devem "falar" na mesma versão do XML. Mas e a parte da codificação? Porque é que isso é necessário?
6 answers
Para compreender o atributo "codificação", tem de compreender a diferença entre bytes e caracteres.
Pense em bytes como números entre 0 e 255, enquanto os personagens são coisas como" a"," 1 "e"Ä". O conjunto de todos os caracteres disponíveis é chamado de conjunto de caracteres .
Cada carácter tem uma sequência de um ou mais bytes que são usados para o representar; no entanto, o número e o valor exactos dos bytes depende da codificação usada e existem muitas codificações diferentes.
A maioria das codificações são baseadas 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 um monte dos caracteres comuns usados em inglês americano.
Por exemplo, aqui estão 6 caracteres no conjunto de caracteres ASCII que são representados pelos valores 60 a 65.
Extract of ASCII Table 60-65
╔══════╦══════════════╗
║ Byte ║ Character ║
╠══════╬══════════════║
║ 60 ║ < ║
║ 61 ║ = ║
║ 62 ║ > ║
║ 63 ║ ? ║
║ 64 ║ @ ║
║ 65 ║ A ║
╚══════╩══════════════╝
No conjunto ASCII completo, o valor mais baixo utilizado é zero e o mais alto é 127 (ambos são Caracteres de controle ocultos).
No entanto, uma vez que você começa a precisar de mais caracteres do que o ASCII básico fornece (por exemplo, letras com sotaques, símbolos de moeda, Símbolos gráficos, etc.), ASCII não é adequado e você precisa de algo mais extenso. Você precisa de mais caracteres (um conjunto de caracteres diferente) e você precisa de uma codificação diferente, uma vez que 128 caracteres não é suficiente para caber todos os caracteres dentro. Algumas codificações oferecem um byte (256 caracteres) ou up a seis bytes.
Com o tempo, muitas codificações foram criadas. No mundo do Windows, há CP1252, ou ISO-8859-1, enquanto usuários Linux tendem a favorecer UTF-8. Java usa UTF-16 nativamente.Uma sequência de valores de byte para um carácter numa codificação pode significar um carácter completamente diferente noutra codificação, ou pode até ser inválido.
Por exemplo, em ISO 8859-1, â é representado por um byte de valor 226
, enquanto que em UTF-8 são dois bytes: 195, 162
. No entanto, em ISO 8859-1, 195, 162
seriam dois caracteres, Ã ¢.
Pense em 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 é que ele sabe que personagens são estas?
Para que o sistema interprete esses bytes como caracteres reais( e assim os mostre ou os converta para 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, tanto quanto os caracteres alfabéticos básicos e símbolos vão, nestes 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 que a declaração começa com <?xml
é muito mais fácil fazer isso.
Finalmente, o atributo version
especifica a versão XML, da qual existe são dois no momento (ver Wikipedia XML versions . 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 falantes de inglês de qualquer maneira), a versão 1.0 é suficiente.
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. Tal 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.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Virtual Library</title>
</head>
<body>
<p>Moved to <a href="http://example.org/">example.org</a>.</p>
</body>
</html>
Por favor consulte as normas W3 para XML .
Este é o preâmbulo do XML opcional.
-
version="1.0"
significa que este é o padrão XML que este ficheiro está em conformidade com -
encoding="utf-8"
significa que o ficheiro é codificado usando a codificação Unicode UTF-8
A declaração de codificação identifica a codificação A que é usada representar os caracteres do documento.
Mais na Declaração XML aqui: http://msdn.microsoft.com/en-us/library/ms256048.aspx
Alguém me pode indicar um livro ou um site que explique claramente estes conceitos básicos ?
Você pode verificar este Tutorial XML com exemplos.
Mas e a parte da codificação ? Porque é que isso é necessário ?
O W3C fornece explicação sobre a codificação :
" O conjunto de caracteres do documento para XML e HTML 4. 0 é Unicode (também conhecido por ISO 10646). Isto significa que os navegadores HTML e os processadores XML devem comportar-se como usaram o Unicode internamente. Mas isso não significa que os documentos tem de ser transmitido em Unicode. Desde que o cliente e o servidor concordem na codificação, eles podem usar qualquer codificação que pode ser convertida para Unicode..."
A declaração XML no mapa do documento consiste no seguinte:
Isto é obrigatório. Embora o número possa mudar para versões futuras de XML, 1.0 é a versão atual.The version number, ?xml version="1.0"?.
A declaração de codificação,
encoding="UTF-8"?
Isto é opcional. Se usado, a declaração de codificação deve aparecer imediatamente após a informação da versão na declaração XML, e deve conter um valor que represente uma codificação de caracteres existente.