Escolar Documentos
Profissional Documentos
Cultura Documentos
O que é XML?
• XML é a Linguagem de Marcação Extensível. É
chamado de extensível porque a natureza
modular de sua estrutura permite que você
faça modificações facilmente alterando ou
adicionando recursos de dados. Mais
importante, XML é na verdade uma "meta-
linguagem". Ou seja, XML é realmente uma
especificação que dita como descrever
linguagens e dados.
• O design do XML nos oferece os seguintes recursos poderosos:
• O XML simplifica a comunicação porque é autodescritivo.
Quando um documento XML é criado, a estrutura também foi
criada. É esta estrutura que descreve os dados nela contidos.
Isso permite que os programas consultem facilmente um
documento XML para dados específicos sem ter que realizar
uma análise difícil. A natureza autodescritiva do XML simplifica
o compartilhamento de dados XML entre pessoas e aplicativos.
XML permite que você crie marcação personalizada (suas
próprias tags). Isso permite que o XML represente um número
ilimitado de documentos.
• NOTA
• Documento é o termo usado para uma única
coleção de dados XML. Um documento pode
ser armazenado como um arquivo, como um
objeto ou em um banco de dados. Não é onde
o documento está armazenado, mas sim a
coleção de dados que constituem o
documento que é a característica definidora
de um documento XML.
• Os dados podem ser armazenados e organizados de maneira personalizável para suas
necessidades. Os documentos podem ser organizados exatamente como você deseja.
• Unicode (um padrão internacional para texto) é o conjunto de caracteres padrão para XML e,
portanto, um imenso número de idiomas e caracteres são suportados. Os documentos podem
ser criados em praticamente qualquer idioma.
• O XML é baseado em texto de caracteres simples, o que facilita o transporte de um documento
XML entre sistemas ou pela Internet.
• A estrutura e a qualidade do documento podem ser verificadas. Isso significa que é possível
validar o documento geral, a sintaxe e os tipos de dados antes que os dados sejam processados
por um aplicativo. Portanto, é possível adicionar uma detecção de erros mais robusta e completa
dentro de uma aplicação.
• XML pode ser facilmente misturado com folhas de estilo para criar praticamente qualquer saída
desejada. Um documento XML deve consistir apenas em dados. Você pode reutilizar os dados de
muitas maneiras diferentes. É fácil reutilizar um único conjunto de dados e reformatá-los para
exibi-los de forma diferente apenas trocando as folhas de estilo . Além disso, uma vez que uma
folha de estilo é construída, ela pode ser reutilizada em muitos documentos XML diferentes,
desde que tenham a mesma estrutura. Mais adiante neste livro, mostraremos todo o poder das
folhas de estilo à medida que construímos alguns relatórios.
• Praticamente qualquer tipo de dado pode ser expresso como um documento XML. XML apenas
fornece as regras que dizem como descrever os dados. Os dados em si geralmente são facilmente
expressos usando as regras do XML.
• <?xml version="1.0"?>
• <!DOCTYPE SHOWS SYSTEM "shows.dtd">
<SHOWS> <PERFORMANCE>
• <TITLE>Princesa das Fadas</TITLE>
• <AUTOR/>
• <DESCRIÇÃO> Som de arranhões com ênfase na
cor, textura. </DESCRIÇÃO>
• <DATE status="canceled">09/11/2001</DATE>
</PERFORMANCE> </SHOWS>
• O conteúdo desta referência começa com o elemento raiz ao
qual o DTD se aplica; neste caso é SHOWS. Em seguida, a
palavra-chave SYSTEM é usada para indicar que o DTD não foi
publicado e que o local do arquivo a seguir é o DTD para este
documento XML. A outra opção é usar a palavra-chave PUBLIC
no lugar de SYSTEM e o Uniform Resource Identifier (URI) . A
palavra-chave PUBLIC significa que a DTD está disponível ao
público para validação de documentos. Essa opção geralmente
é usada quando os documentos XML estão sendo transmitidos
entre empresas - ela permite que elas tenham certeza de que
seus documentos XML têm a estrutura esperada.
Esquemas
• Muitos programadores acham que os DTDs não são
flexíveis o suficiente para as necessidades atuais de
programação. Felizmente, os esquemas substituirão
os DTDs na maioria dos aplicativos da Web. Os
esquemas são muito parecidos com os DTDs, pois
definem os blocos de construção legais de um
documento XML. Ao contrário dos DTDs, no entanto,
os esquemas são escritos em XML e, portanto, são
extensíveis a futuras adições. Eles também podem
lidar com namespaces e tipos de dados.
• Os esquemas têm as seguintes vantagens sobre os DTDs:
• Os esquemas são os próprios documentos XML; eles
podem ser validados e estendidos programaticamente.
• Os esquemas têm a capacidade de descrever o tipo de
dados dos dados de texto do elemento.
• Ao contrário dos DTDs, que descrevem um documento
XML inteiro, um esquema descreve elementos e
atributos. Isso significa que adicionar elementos ao
documento XML validado não interromperá a validação,
desde que sejam de um namespace diferente.
Comentários
• Os comentários podem ser colocados em qualquer lugar do documento,
exceto na primeira linha, que é sempre reservada para a declaração do
documento, e dentro de tags. Os comentários XML têm o mesmo formato
dos comentários HTML. Aqui está um exemplo de um comentário XML:
• <!-- comment goes here --> As seguintes regras se aplicam a comentários
XML:
• <!-- inicia um comentário e --> termina um comentário.
• Os comentários não podem ser aninhados.
• Travessões duplos (--) não podem ser usados em um comentário porque
esse é o delimitador que informa ao processador que o comentário foi
concluído.
• O exemplo a seguir causará um erro:
• <!-- --os traços extras neste comentário causarão um erro-- -->
Documentos bem formados e validados
• O XML oferece a você um imenso poder para criar linguagens e elementos de marcação
personalizados. Essa flexibilidade pode causar estragos nos analisadores de XML se não
houver regras sintáticas suficientes em relação à marcação. Documentos XML que seguem
todas as regras de sintaxe XML são chamados de documentos "bem formados". Seguir
todas as regras descritas nas seções anteriores deste capítulo garantirá que seu XML
esteja bem formado. Em resumo, um documento bem formado
• Um único elemento raiz
• Tags aninhadas corretamente
• Tags devidamente fechadas
• Atribua valores entre aspas
• Apenas um valor por atributo
• Nenhum personagem ofensivo
• Todos os documentos XML processados devem ser bem formados, mas também podem
ser válidos. Um documento XML válido é aquele que está em conformidade com a DTD ou
esquema escrito para descrever sua estrutura. Ou seja, o documento XML válido atende a
todos os requisitos declarados na DTD ou esquema.
Introdução concluída
XSL
• XSL significa Linguagem de Folha de Estilo Extensível . Essa
linguagem é o que usaremos para transformar uma fonte XML
no que queremos. Com os dados, poderíamos produzir
qualquer formato: HTML, mais XML ou qualquer outra coisa. É
importante notar que o XSL é baseado em XML. Isso significa
que o XSL deve seguir as mesmas regras bem formadas que o
XML: há aspas em todos os valores de atributo, todas as tags
diferenciam maiúsculas de minúsculas e devem ser aninhadas
adequadamente e os dados não devem conter os caracteres
de marcação listados na Tabela 2.1 . Nos exemplos a seguir,
vamos formatar alguns XML como HTML usando
Transformações XSL (XSLT).
Vinculação de folha de estilo
• Primeiro, vamos adicionar outra instrução do
processador ao topo do arquivo XML que
criamos. Adicione a seguinte linha após a
declaração do documento no arquivo
shows.xml e salve-o como shows2.xml. Esta se
tornará a segunda linha do documento XML.
• <?xml- stylesheet type='text/ xsl ' href
='shows.xsl'?>
• Vejamos isso mais de perto. Esta instrução de
processamento de folha de estilo informa ao
processador XML onde encontrar a folha de estilo
associada ao documento XML. Ele contém o tipo da
folha de estilo associada através do par nome/valor do
tipo (ou atributo). Se, por exemplo, a folha de estilo
fosse uma folha de estilo em cascata ( CSS), esse valor
seria text/ css . Em seguida, esta instrução de
processamento indica onde encontrar a folha de estilo
correspondente usando o atributo href . No nosso
caso, ele pode ser encontrado no mesmo diretório
que o arquivo XML, e o nome do arquivo será
shows.xsl. Essa associação faz com que o XML seja
transformado em relação às instruções de shows.xsl.
• 1 < xsl:stylesheet version="1.0"
• 2 xmlns:xsl ="http://www.w3.org/1999/XSL/Transform">
• 3 < xsl:template match="/">
• 4 <HTML>
• 5 <CHEFE>
• 6 <TITLE>Folha de estilo da primeira apresentação < /TITLE>
• 7 </HEAD>
• 8 <CORPO>
• 9 < xsl:for-each select="SHOWS/PERFORMANCE">
• 10 <FONT color="red">
• 11 <B>< xsl:value-of select="TITLE" /></B> -
• 12 <I>< xsl:value-of select="AUTHOR" /></I>
• 13 </FONT>
• 14 < xsl:value-of select="DATA" />
• 15 < xsl:value-of select="DESCRIPTION" />
• 16 <BR/>
• 17 </ xsl:para-cada >
• 18 </BODY>
• 19 </HTML>
• 20 </ xsl:modelo >
• 21 </ xsl:folha de estilo >
Namespaces
• Um namespace é um grupo de elementos e
atributos que são reconhecíveis por seu
prefixo. Um namespace é declarado para que
todos os elementos e atributos desse
namespace sejam validados em relação ao
DTD correto e possam ser distinguidos de tags
com o mesmo nome de uma fonte diferente.
Os namespaces se tornam muito importantes
quando o conteúdo de um documento XML
vem de várias fontes.
• Por exemplo, vamos supor que a empresa A tenha
um elemento de autor que requer um nome,
sobrenome e data de nascimento, e a empresa B
tenha um elemento de autor que não requer nada.
Se essas empresas combinarem seus dados
usando XML, podem ocorrer colisões na validação
desses elementos. O uso de namespaces com os
DTDs permitiria que cada empresa validasse
adequadamente seus próprios elementos de autor.
• Na Listagem 2.5 , observe como as tags são
prefixadas com espaços reservados como
coA :. Os prefixos são vinculados aos nomes
completos usando os nomes de atributos que
começam com xmlns : encontrados no
elemento autores. Observe que os
namespaces completos são URLs. Os URLs na
verdade não apontam para nada — eles são
usados para garantir que os namespaces
sejam exclusivos.
Listagem 2.5 Documento XML com dois
namespaces definidos
• <?xml version="1.0"?>
• < coB:autores xmlns:coA ="http://www.companyA.com/books"
• xmlns:coB ="http://www.companyB.com/">
• < coA:autor >
• < coA:fname ></ coA:fname >
• < coA:lname ></ coA:lname >
• < coA:dob ></ coA:dob >
• </ coA:autor >
• < coB:autor >
• < coB:ssn />
• </ coB:autor >
• </ coB:autores >