Escolar Documentos
Profissional Documentos
Cultura Documentos
Web
Extended
Markup
Semântica
Language (XML)
Texto O
Texto O
DECLARAÇÃO DO PROFESSOR:
O presente material e todos os recursos didáticos que o acompanham – textos,
videos, audios, etc – foram produzidos no âmbito do Programa de Ensino
Emergencial (2020) da Universidade Federal de Minas Gerais, com apoio do Centro
de Ensino a Distância (CaED-UFMG), para uso pelos alunos da universidade em suas
atividades enquanto discentes.
V.1.1- HISTÓRIA
fornecer mais conteúdo semântico na Web. Em 1996, o W3C criou um grupo de trabalho
para desenvolver uma nova versão do SGML. Essa nova versão deveria ser mais refinada
que o SGML e mais adequada para marcação de conteúdo que o HTML. Em 1998, esses
esforços de simplificação resultaram em uma recomendação do W3C para o XML. Uma
edição, corrigindo pequenos erros, surgiu em 2006, quando também se lançou a
recomendação XML 1.1. Embora a versão 1.1 não contivesse tantas mudanças, as
alterações recomendadas eram incompatíveis com a versão 1.0. Com a perda de
compatibilidade e sem ganho prático correspondente, o XML 1.1 nunca foi totalmente
adotado pela comunidade da Web Semântica.
Em aplicações da Web, o XML é usado para marcação, manipulação,
armazenamento e transmissão de dados. A etapa final do processo geralmente é a
transformação de dados marcados em XML em HTML para apresentação. Isso pode ser
realizado por meio de outro padrão baseado em XML, o Extensible Stylesheet Language
(XSLT), que recebe um documento XML como entrada e o retorna com marcação
diferente. Há uma série de padrões relacionados ao XML que permitem transformação,
links, estilo, consulta e manipulação de dados marcados. Em geral, esses padrões são
usados no lado do servidor no desenvolvimento de aplicativos Web. No momento da
criação do XML, isso era visto como uma melhoria em relação ao SGML, mas existem
críticos do XML já que existem melhores opções. O candidato mais elogiado ao XML é o
JavaScript Object Notation (JSON). Trata-se de um formato simples e leve de intercâmbio
de dados, que resolve duas usuais reclamações sobre XML: i) o XML seria muito cheio
de detalhes; e ii) o XML seria muito difícil de entender. Embora o JSON funcione bem,
parece improvável uma substituição do XML como sintaxe de marcação de dados.
Na maioria dos casos, os documentos XML contêm uma declaração que identifica
o como XML. A “declaração XML” especifica informações úteis para o parser XML, ainda
que não sejam exigidas. Se não existir uma declaração XML, o parser usa suposições.
Embora a declaração não seja necessária, a declaração XML é uma boa prática, uma vez
que deixa explícito o que deve ser feito para que as pessoas possam ter informações
adicionais sobre os dados. Uma amostra de declaração XML é:
A declaração possui vários componentes: começa “<?xml” e termina com “?>”. A string
“xml” na marcação deve ser minúscula e distingue a declaração XML de uma outra de
instrução XML genérica de processamento (vide adiante). Além da marcação inicial e
final da declaração, existem outras partes obrigatórias e opcionais que ocorrem na
declaração. Uma parte necessária é a versão: trata-se de um par de chave-valor: o nome
ou chave é version e seu valor é a versão da especificação XML à qual o documento está
em conformidade. Como o XML 1.1 nunca foi totalmente adotada, o uso mais comum da
versão será indicar a conformidade com a especificação XML 1.0. Se surgir a versão XML
2.0, as declarações XML vão conter versão = '2.0'.
A primeira parte opcional da declaração XML é a codificação, a qual indica o tipo
de codificação de caracteres usada no documento. Há uma grande variedade de
codificações de caracteres como a ISO-8859-1, também chamada de Latin-1, usada no
Windows e na maioria dos países ocidentais. Porém, essa codificação não é usada na
versão ocidental do Mac-OS e não funciona para a maioria dos países não ocidentais.
Outro exemplo são as codificações EUC-JP e SHIFT-JIS usadas no Japão. O ANSEL é um
conjunto de caracteres usado em muitos aplicativos de bibliotecas, mas não é suportado
6
V.1.2.2- ELEMENTOS
<lastname>Clarke</lastname>
<firstName>Caitlin</firstName>
<Middle_Name>Lassiter</Middle_Name>
Esses elementos XML não são bem formados, não atendem regras sintáticas:
<100_Field>Clarke, Caitlin</100_Field>
<lastName>Clarke</LastName>
<first>Kylie</first>
<middle>Harrison</middle>
<last>Clarke</last>
Neste exemplo, os elementos XML são “irmãos”, ou seja, estão no mesmo nível.
Existe uma relação entre os elementos que é indicada por sua co-ocorrência. O XML
também pode marcar outros tipos de relacionamentos, por exemplo, a hierarquia dá um
sentido de subsunção (é-um). Considere os elementos de exemplo em um contexto mais
completo:
<name>
<first>Kylie</first>
<middle>Harrison</middle>
<last>Clarke</last>
</name>
Neste exemplo, verifica-se uma relação entre irmãos, além de uma relação pai-filho entre
os elementos das linhas 2,3 e 4 e o elemento name. O XML modela a hierarquia de usando
elementos container, os quais são elementos que contêm outros elementos. No caso do exemplo
acima, o elemento name é um elemento de contêiner para o primeiro, o meio e o último
elementos. Quanto mais containers de elemento, ou níveis de aninhamento de elemento, em um
documento, mais complexo ele se torna. Ao criar documentos XML não triviais, é importante
lembrar que as regras sintáticas exigem um formato estrito para o aninhamento. Para que o seja
considerado bem formado, todas as marcas de início e de fim dos elementos devem estar
aninhadas corretamente. Quando a marca inicial de um elemento está dentro de outro elemento,
sua marcar final também deve estar dentro desse mesmo elemento. Considere, por exemplo, o
seguinte fragmento XML e observe que todas as marcas – inicial e final – abrem e fecham dentro
de seu próprio escopo, não há sobreposição:
<person>
<name>
<first> Sullivan </first>
<middle> Ryan </middle>
</last> Clarke </last>
</name>
9
</person>
<person>
<name>
<first> Sullivan </first>
<middle> Ryan </middle>
<last> Clarke </name>
</last>
</person>
Outro tipo de elemento encontrado nos documentos XML é o elemento raiz. Cada
documento XML tem um único elemento raiz, o qual contém todos os outros elementos
do documento. Usando a analogia de uma árvore invertida, o elemento raiz é o elemento
de nível superior e todos os outros elementos são hierarquicamente subordinados a ele.
Se um documento contiver dois elementos de nível superior, não se trata documento
bem formado. O elemento raiz estabelece os limites do conteúdo do documento. Para
fins de ilustração, um documento bem formado é o seguinte:
<person>
<name> Kylie Harrison Clarke </name>
</person>
<person>
<name> Caitlin Lassiter Clarke </name>
</person>
<emptyElement> </emptyElement>
<emptyElement />
O conteúdo misto não é tanto um tipo diferente de elemento, mas uma maneira
de usar elementos para marcar dados centrado em documentos. O XML pode ser usado
para marcar metadados e para marcar texto completo. Metadados, ao contrário do
documentos textos completos, têm uma estrutura consistente e por isso as vezes
recebem o nome de marcação centrada em dados. Geralmente são gerados ou
processados pelas máquinas. A marcação centrada em documentos, por outro lado, é
uma marcação com probabilidade de ser lida por humanos, embora também possa ser
processada mecanicamente. Um exemplo de marcação centrada no documento pode ser
uma página HTML com corpo, parágrafos e palavras individuais marcadas nesses
parágrafos:
<body>
<p> Este é um parágrafo com palavras <strong> significativas </strong> que precisam ser <strong> distintas umas
</strong> das outras. </p>
</body>
11
A marcação acima difere da usada até aqui porque os elementos contêm além de
texto, também outros elementos. A inclusão tanto de elementos de texto e elementos
filho em um outro elemento é conhecida como conteúdo misto. O conteúdo misto é
comum quando se trabalha com material destinado ao consumo humano. É menos
provável que se encontre esse tipo ao trabalhar com dados provenientes de um banco
de dados, embora às vezes as os bancos armazenem grandes fragmentos de texto
marcado por pessoas.
V.1.1.3- ATRIBUTOS
atributo, usa-se um sinal de igual seguido por duas aspas. As aspas podem ser aspas
duplas ou podem ser aspas simples, uma em cada lado do valor, ainda que não se possa
misturar os dois tipos de aspas. Assim, o valor do atributo precisar ser quebrado por
aspas do tipo oposto, por exemplo:
Não há regras claras para quando usar atributos ou elementos filho. Alguns
preferem não usar atributos e outros que os veem como parte essencial do XML.
Algumas diretrizes podem ser úteis, por exemplo, atributos são considerados
modificadores dos elementos XML nos quais ocorrem. Além disso, em uma estrutura
adicional, um atributo não seria uma boa escolha porque, diferentemente dos
elementos, atributos não têm filhos.
V.2.5- Comentários
V.1.2.4- ENTIDADES
' ’ apostrofe
" ” aspas
Embora o XML possa ser usado em um único ambiente de dados, na maioria das vezes é
usado para compartilhamento de dados entre pessoas. Quando isso acontece, é desejável
combinar elementos de duas ou mais estruturas em um único documento. No entanto, existe a
possibilidade de ambiguidade uma vez que cada estrutura pode ser definida de forma
independente. Um elemento nome em um contexto pode significar algo diferente do elemento
nome em outro contexto.
Os namespaces XML são projetados para lidar com essa situação. Definem um escopo
exclusivo para nomes de elementos de forma que os nomes se mantenham únicos, mesmo se os
elementos de um documento são misturados a elementos de outro. Os namespaces são
declarados usando uma Uniform Resource Identifier (URI), exclusiva, um tipo de Uniform Resource
Locator (URL) usado na Web para identificar sites. A URL é associada aos nomes dos elementos
de forma a criar um nome exclusivo mesmo que em diferentes contextos. Ao pensar em
namespaces, é útil pensar na URI como um anexo do nome do elemento local. Exemplos de nomes
de elementos com seus namespaces são:
{http://www.loc.gov/mods/v3}title
{http://www.tei-c.org/ns/1.0}title
Essa sintaxe para representar a associação entre URIs e nomes de elementos não
é oficial, mas é fornecida para ilustrar o relacionamento entre os dois componentes de
um nome de elemento qualificado. Um nome de elemento qualificado é um nome
16
O ponto forte do XML é fornecer uma sintaxe a partir da qual outras linguagens
de marcação, mais específicas, possam ser criadas. Os bibliotecários aproveitaram-se
disso para marcar estruturas de dados exclusivas para suas necessidades. A
disponibilidade de uma sintaxe de marcação genérica também gerou iniciativas para
promover a cooperação entre instituições de conhecimento e culturais, como por
exemplo, museus, bibliotecas e arquivos.
A partir desses esforços, surgiram vários padrões baseados em XML. Dentre os
mais notáveis estão o Metadata Object Description Schema (MODS); o Metadata Encoding
and Transmission Standard (METS), o Visual Resources Association’s Core Element Set
(VRA Core); o Metadata for Images in XML standard (MIX); o Library of Congresses’
Preservation Metadata Implementation Strategies Schema (PREMIS).
O METS é um tipo de extrator de uso geral para instituições culturais que
descreve a estrutura de objetos que podem ser intercambiados via Web, além de um
extrator de metadados para outros formatos XML relacionados aos objetos digitais. Por
exemplo, um extrator METS pode conter um registro MODS que fornece a descrição
bibliográfica para uma imagem digital; também pode conter um registro MIX que marca
os metadados técnicos associados à imagem. Embora detalhes de padrões XML
específicos para biblioteca estejam além do escopo dessa seção, um exemplo de
registro MODS é útil para fins de ilustração:
18
<topic>Directories</topic>
</subject>
<subject authority=“lcsh”>
<topic>Musicology</topic>
<topic>Data processing</topic>
<topic>Directories</topic>
</subject>
<classification authority=“lcc”>ML73 .D57</classification>
<classification edition=“19” authority=“ddc”>780/.01/02584</ classification>
<relatedItem type=“succeeding”>
<titleInfo>
<title>Computing in musicology</title>
</titleInfo>
</relatedItem>
<recordInfo>
<recordContentSource>DLC</recordContentSource>
<recordCreationDate encoding=“marc”>861202</ recordCreationDate>
<recordChangeDate>20020320050438.0</recordChangeDate>
<recordIdentifier>11315879</recordIdentifier>
</recordInfo>
</mods>