Por que os formatos de texto são necessários?
Os formatos de texto são convenientes para armazenar informações porque podem ser criados e processados por programas e humanos.
Arquivos de texto (arquivos em formato de texto) podem ser abertos, lidos e editados em uma ampla variedade de editores de texto.
Muitos programas usam arquivos de configuração baseados em texto, mesmo que o formato contenha números e valores binários (sim/não).
Isso torna os programas um pouco mais complicados devido à necessidade de converter de texto para um formato interno e vice-versa, mas permite editar a configuração manualmente sem usar uma ferramenta de configuração no próprio programa.
Onde o XML é usado agora?
XML é usado em várias áreas de TI. Podem ser arquivos de configuração (com configurações do programa) ou arquivos usados para transferir dados entre programas. Em Java, um dos casos de uso mais comuns é configurar o Maven, uma ferramenta de automação de construção.
Estrutura de um documento XML
As estruturas físicas e lógicas de um documento XML são mantidas separadas. Em termos de estrutura física, o documento é composto por entidades que podem referenciar outras entidades.
O único elemento raiz é a entidade do documento. Uma entidade é a menor parte de um documento. Todas as entidades têm um nome e contêm caracteres.
Por sua vez, os caracteres pertencem a uma de duas categorias: dados de caracteres ou marcações.
A marcação inclui:
- tags, que denotam os limites dos elementos;
- declarações e instruções de processamento, incluindo seus atributos;
- referências de entidades;
- comentários;
- sequências de caracteres envolvendo seções CDATA.
Logicamente, o documento consiste em elementos, comentários, declarações, referências a entidades e instruções de processamento. A marcação é usada para criar toda essa estrutura em um documento.
Todas as partes constituintes de um documento são divididas em um prólogo e um elemento raiz. O elemento raiz é a parte obrigatória e essencial de um documento XML, enquanto o prólogo pode não existir. O elemento raiz pode consistir em elementos aninhados, dados de caracteres e comentários. Os elementos de um documento devem ser aninhados corretamente: qualquer elemento que comece dentro de outro elemento também deve terminar dentro desse elemento.
Símbolos de marcação
A marcação sempre começa com < e termina com > .
Os símbolos < e > (colchetes angulares) e & (e comercial) desempenham um papel especial. Os colchetes angulares indicam os limites dos elementos, instruções de processamento e algumas outras sequências. E o e comercial nos ajuda a substituir texto por entidades.
declaração XML
Uma declaração XML especifica a versão da linguagem usada para escrever o documento. A especificação XML diz para iniciar um documento com uma declaração XML porque a interpretação adequada do conteúdo do documento depende da versão da linguagem.
Na primeira versão da linguagem (1.0), essa declaração era opcional, mas é obrigatória nas versões posteriores. Presume-se que uma declaração ausente signifique a versão 1.0. A declaração também pode conter informações sobre a codificação do documento.
Exemplo:
Tag
Uma tag é uma construção de marcação que contém o nome de um elemento. Existem tags iniciais e tags finais. Também existem tags de elemento vazio que combinam elementos iniciais e finais.
Exemplos:
-
Marca de início: <tag1>
-
Tag final: </tag1>
-
Tag de elemento vazio: <empty_tag1 />
Atributos
Outra parte dos elementos XML são os atributos. Um elemento pode ter vários atributos exclusivos. Os atributos nos permitem especificar mais informações sobre um elemento. Ou, mais precisamente, os atributos definem as propriedades dos elementos.
Um atributo é sempre um par nome-valor:
Exemplo de um atributo em uma tag:
O valor de um atributo deve ser colocado entre aspas duplas ( " ) ou aspas simples ( ' ). Os atributos são usados apenas em tags iniciais e nas tags de elemento vazio.
Escapando cinco caracteres especiais (<, >, ', ”, &)
Obviamente, os símbolos < , > e & não podem ser usados como tal em dados de caracteres e valores de atributos. Você precisa de sequências de escape especiais para representá-los. Sequências especiais também são usadas ao escrever apóstrofos e aspas dentro de valores de atributos:
Símbolo | Substituição |
---|---|
< | < |
> | > |
& | & |
' | ' |
" | " |
Além disso, para escrever o caractere \ , você precisa usar \\ .
Seção CDATA
Uma seção CDATA não é uma unidade lógica de texto. Este tipo de seção pode ocorrer onde a sintaxe XML nos permite colocar dados de caracteres no documento.
A seção começa com <![CDATA[ e termina com ]]> . Dados de caracteres são colocados entre esses bits de marcação e os símbolos < , > e & podem ser usados em sua forma direta.
Comentários
Comentários não são considerados dados de personagem. Um comentário começa com <!-- e termina com --> . A sequência de caracteres -- não pode ser usada dentro de um comentário. Além disso, dentro de um comentário, o caractere e comercial não denota marcação.
Exemplo:
nomes
Em XML, todos os nomes podem conter apenas letras na tabela de caracteres Unicode, algarismos arábicos, pontos, dois-pontos, hífens e sublinhados. Os nomes podem começar com uma letra, dois pontos ou sublinhado. Observe que um nome não pode começar com a string XML .
Exemplo
Vejamos uma classe Java e um objeto dessa classe. Em seguida, tentaremos serializar o objeto no formato XML. Código da classe:
public class Book {
private String title;
private String author;
private Integer pageCount;
private List<String> chapters;
public Book(String title, String author, Integer pageCount, List<String> chapters) {
this.title = title;
this.author = author;
this.pageCount = pageCount;
this.chapters = chapters;
}
// Getters/setters
}
e criação de objetos:
Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));
Aqui está um exemplo de uma representação XML válida de um objeto Java que contém 4 campos, um dos quais é uma coleção (veja o código Java acima):
<title>Meu livro favorito</title>
<author>Amigo</author>
<pageCount>999</pageCount>
<chapters>
<chapters>Capítulo 1</chapters>
<chapters>Capítulo 2</chapters>
<chapters>Capítulo 3</chapters>
<chapters>Capítulo 4</chapters>
<chapters>Capítulo 5</chapters>
<chapters>Capítulo 6</chapters>
</chapters>
</Livro>
esquema XML
Um esquema XML é a descrição da estrutura de um documento XML. A especificação correspondente (XML Schema Definition, ou XSD) é uma recomendação do W3C.
O XSD foi projetado para expressar as regras que um documento XML deve seguir. Mas o mais interessante para nós é que o XSD foi projetado para ser usado no desenvolvimento de software que processa documentos XML. Ele nos permite verificar a exatidão de um documento XML programaticamente.
Os arquivos que contêm um esquema XML têm a extensão .xsd. Projetar um esquema XML está além do escopo desta lição, portanto, por enquanto, esteja ciente de que existe essa possibilidade.
GO TO FULL VERSION