Tecnologia XML
Prof. Antonio Geraldo Vidal
vidal@usp.br
FEA/USP
Tecnologia de Informática
O que é XML




XML tem como propósito fundamental a
descrição de informações.
Permite colocarmos em um mesmo
documento dados e metadados (a
descrição destes dados).
Estabelece um formato textual que pode
ser facilmente entendido quando lido por
uma pessoa ou software.
Ao contrário dos formatos tradicionais,
em XML os dados são armazenados com
a sua descrição.
Formato Tradicional



Uma maneira tradicional de se transmitir
dados de um sistema para outro é por
meio de arquivos texto delimitados.
Cada registro ocupa uma linha e cada
coluna de dados é separada das outras
por um delimitador.
Tanto o programa que gera, como o
programa que recebe e utiliza estes
dados precisam conhecer o formato exato
dos registros.
Formato Tradicional
Coluna
CPF
Nome
Endereço
Etc.
Posição
1-14
15-55
56-100
....
950.241.318-00Antonio Geraldo Vidal
100.231.342-60José da Silva Santos
234.123.123-34Maria Aparecida dos Santos Paiva
.
.
.
.
.
.
Neste formato,
o deslocamento
de uma única
posição muda
todo o conjunto
de dados que
será lido por
um programa.
Rua Bela Cintra
Rua Tiradentes
Av. Brasil, 231
.
.
.
Formato XML
<PESSOA>
<CPF>950.241.318-00</CPF>
<NOME>Antonio Geraldo Vidal</NOME>
<ENDEREÇO>Rua Bela Cintra, 2262</ENDEREÇO>
<CEP>01415-002</CEP>
</PESSOA>
<PESSOA>
<CPF>100.231.342-60</CPF>
<NOME>José da Silva Santos</NOME>
<ENDEREÇO>Rua Tiradentes, 2104</ENDEREÇO>
<CEP>05059-001</CEP>
</PESSOA>

Em XML a adição ou a remoção de elementos tem pequeno
impacto sobre o programa que estiver lendo as
informações contidas no documento XML.
Formato XML




Por ter uma estrutura simples e bem definida,
XML permite que um documento seja validado
antes de ser iniciado seu processamento.
XML é uma maneira simples, estruturada,
flexível e precisa para se descrever informações.
Na prática, XML habilita a comunicação com
parceiros de negócio, de um modo que não é
possível com qualquer outra tecnologia.
Em sistemas para transações eletrônicas, XML
permite a separação dos dados dos processos
que agem sobre esses dados.
eXtensible Markup Language



XML é uma linguagem padronizada,
originalmente direcionada para o
processamento de documentos.
Fornece uma sintaxe que permite definir
cada objeto de informação de um modo
não ambíguo.
Fazendo isso, pode-se capturar as
informações como sendo um objeto e
então processá-lo utilizando diferentes
aplicativos, dependendo dos requisitos de
cada contexto de negócio.
XML vs. HTML



A linguagem HTML pode ser considerada
um tipo ou caso particular de XML.
Um documento HTML é um documento
XML se ele aderir a algumas regras de
construção denominadas well-formedness
constraints.
Deveremos continuar a usar HTML para
exibir informações, enquanto usamos
XML para trocar e processar essas
informações.
XML vs. HTML



Ao contrário de HTML, que tem um
conjunto fixo de tags, XML fornece
flexibilidade para você criar suas próprias
tags.
Você pode chamar as informações a
serem trocadas e processadas de
qualquer nome que desejar.
As tags de XML normalmente
representam dados reais.
Aplicações em Negócios
Eletrônicos



O principal propósito de um site
empresarial é gerar negócios.
Para isso, freqüentemente constrói-se um
aplicativo de comércio eletrônico que faz
uma conexão com cadastros de produtos
e serviços que a nossa companhia
fornece.
Estes cadastros normalmente tomam a
forma de uma base de dados SQL.
Aplicativo Padrão para
Negócios Eletrônicos
Informações Externas




Dados externos podem ser uma rica fonte de
informações para os nossos clientes ou usuários.
Entretanto, as informações externas não estão
em bases de dados em nosso próprio servidor.
Podemos, porém, usar XML para solicitar e obter
informações como objetos XML, podendo
processá-los posteriormente.
O trabalho é, portanto, agregar certos tipos de
conteúdo de vários sites e disponibilizá-los em
nossas páginas, para fornecer ao nosso visitante
ou usuário toda informação que ele precisa.
Aplicativo XML para
Negócios Eletrônicos
Sites externos tornam-se parte
da camada de dados, e um
aplicativo de agregação é usado
para integrar estes novos dados
na camada de regras de negócio.
XML
Exemplo

Nosso site poderia enviar uma requisição de informações
sobre a previsão do tempo através de um pedido
eletrônico em XML, como abaixo:
<weather_request days="5" temp="celsius" wind="mph">
<zipcode>80112</zipcode>
</weather_request>
Exemplo

Em resposta, receberíamos um documento XML como a seguir:
<weather_response zipcode='80012' Updated='2000-01-07 21:49:06'>
<location>Aurora, CO</location>
<current>
<condition name='temp'>28</condition>
<condition name='wind chill'>12</condition>
<condition name='wind'>from the Southeast at 8 mph</condition>
<condition name='dewpoint'>18</condition>
<condition name='relative humidity'>66%</condition>
<condition name='visibility'>25 miles</condition>
<condition name='barometer'>30.02 inches</condition>
<condition name='Sunrise'>7:20 am MST</condition>
<condition name='Sunset'>4:50 pm MST</condition>
</current>
<forecast>
<day date='20000108 21:49:06'
High='49' Low='20' Sky='Partly Cloudy'/>
<day date='20000109 21:49:06'
High='46' Low='21' Sky='Partly Cloudy'/>
<day date='20000110 21:49:06'
High='51' Low='25' Sky='Partly Cloudy'/>
<day date='2000-01-11 21:49:06'
High='51' Low='19' Sky='Partly Cloudy'/>
<day date='2000-01-12 21:49:06'
High='53' Low='21' Sky='Partly Cloudy'/>
</forecast>
</weather_response>
Exemplo



Os documentos XML que a empresa fornecedora
de previsões do tempo enviar conterão apenas
os dados solicitados.
Poderemos processá-los de diferentes formas,
dependendo do tipo de saída desejada, em cada
situação.
Os dados poderão ser apresentados como
desejado, pois temos acesso aos dados brutos e
poderemos processá-los da maneira mais
apropriada às nossas necessidades.
Exemplo



SOAP - Simple Object Access Protocol é um
protocolo de comunicação padrão, via Internet,
proposto pelo IETF - Internet Engineering Task
Force (IETF), que permite invocar procedimentos
em sistemas remotos (RPC) usando um conjunto
padrão de tags XML.
O SOAP utiliza o HTTP como seu protocolo de
requisição e resposta de dados.
Portanto, utilizando-o pode-se obter dados
rápida e eficazmente de um provedor de
conteúdo, ou de parceiros de negócio.
SOAP – Simple Object Access Protocol
Aplicativos XML para
Negócios Eletrônicos
Vários parceiros de negócio (syndication
partners) fornecerão conteúdo baseado em
padrões, portanto, nós poderemos agregar
várias fontes de informações diferentes em uma
única base de assuntos correlatos.
XML/SOAP
XML/SOAP
Aplicativos XML para
Negócios Eletrônicos
Cada parceiro de negócio exige um
conversor especializado que transforma sua
estrutura particular de informações em uma
forma que nosso “site” pode usar.
Aplicativos XML para
Negócios Eletrônicos
Multiplique os
conversores
especializados pelo
número de “sites”
usando os
conteúdos
disponíveis.
Os problemas com
“sites” individuais
serão também
multiplicados.
Aplicativos XML para
Negócios Eletrônicos
Fornecendo dados em um
formato único e padronizado
elimina-se a necessidade de
software
de
conversão
proprietário para cada provedor de dados.
Cada provedor precisa criar
um só filtro, para converter
o conteúdo do formato do
provedor para o formato
padrão (no exemplo NITF).
A partir daí, cada site pode
utilizar a informação em seu
formato padrão nativo ou
convertê-la mais uma vez
para a forma exigida para
seus sistemas de informação.
<?xml version="1.0"?>
<nitf>
<head>
<title>Technology Tools and Toys</title>
Exemplo
</head>
<body>
<body.head>
<headline>
<hl1>Pac-Man chomps its way toward 20</hl1>
<hl2>Seminal video game rose from humble
beginnings</hl2>
</headline>
<byline>
By<person>Steven Kent</person>
<bytag>MSNBC CONTRIBUTOR</bytag>
</byline>
<dateline>
<location></location>
<story.date>1999-09-03</story.date>
</dateline>
</body.head>
<body.content>
<p>He may have been a fixture in bars for
most of the last two decades, but Pac-Man,
one of the video game industry's greatest
living legends, is still a bit shy of legal
age.</p>
...
</body.content>
<body.end></body.end>
</body>
</nitf>
XML como Padrão para
Negócios Eletrônicos
XML é um padrão criado pelo W3C World Wide Web Consortium.
 O W3C é um consórcio das
companhias dedicadas a criar e
manter tecnologias essenciais para a
Internet como o HTML e o XML.
 XML é uma sintaxe poderosa que
permite às organizações criar
estruturas para o intercâmbio de
eficiente de informações.

EDI vs. XML

EDI – Eletronic Data Interchange
(Troca Eletrônica de Dados):
Longos prazos para desenvolvimento;
 Requisitos variados das companhias;
 Alto custo;
 Dificuldades para implementar uma
especificação comum;
 Soluções proprietárias.

EDI vs. XML



Um grupo chamado XML/EDI está
trabalhando em uma versão mais aberta
das especificações de EDI.
Esperam que usuários tradicionais de EDI
adotem XML como sua sintaxe padrão
para intercâmbio de dados.
Muitos outros grupos estão trabalhando
para o mesmo fim:

Criar um modo universal de fazer negócios,
usando XML como a sintaxe de definição de
dados.
ebXML




Um destes esforços é a iniciativa ebXML
("eb" significa "electronic business“).
As Nações Unidas/CEFACT e a OASIS Organization for the Advancement of Structured
Information Standards - um grupo de indústrias
XML - estão trabalhando sobre o ebXML.
A meta do ebXML é usar um conjunto padrão de
objetos XML para facilitar o comércio
internacional.
A iniciativa ebXML deve desenvolver uma infraestrutura técnica que habilitará o uso de XML de
uma maneira consistente para a troca de todo
tipo de dados de negócios de eletrônicos.
ebXML

A lista parcial de participantes deste
grupo parece a lista do quem é quem no
comércio eletrônico internacional:

Ariba
Amazon.com
Bank of America
Boeing
CommerceNet
Dunn and
Bradstreet










IBM
Microsoft
Oracle
Sun
E muitas outras
companhias ao
redor do mundo
XML como Padrão para
Negócios Eletrônicos



Assim como o ebXML, existem muitas outras
especificações e padrões sendo desenvolvidos
por outros grupos neste ambiente.
Estas especificações provavelmente resultarão
em um conjunto de padrões chamados
esquemas, que descreverão determinados
documentos de negócio como faturas, ordens de
compra, registros médicos e transações
financeiras.
Neste ambiente, os esquemas serão
componentes críticos da solução de comércio
eletrônico.
Onde XML se encaixa nos
Negócios Eletrônicos?





Em todo lugar!
XML é apenas um conjunto de regras - uma
sintaxe - para marcar dados.
É uma sintaxe simples, padronizada e compacta,
porém, são exatamente estas qualidades que a
valorizam.
Para participar de qualquer transação de
negócios, uma empresa deve comunicar-se
claramente com seus parceiros de negócio.
XML, portanto, fornece uma sintaxe para se
comunicar de modo direto e preciso,
identificando cada pedaço de informação exigida
para completar uma transação.
XML e Negócios Eletrônicos



Outro aspecto comum entre XML e
negócios eletrônicos é a confiabilidade.
Se você não confiar em uma empresa ou
pessoa, você não vai fazer negócios com
ela, quer esteja face a face numa loja real
ou na Internet numa loja virtual.
XML pode fornecer um grande nível
confiabilidade porque informações sobre
sua transação podem ser transmitidas
com segurança e verificadas.
XML e Negócios Eletrônicos



Assim como HTML se tornou a linguagem padrão
de apresentação de informações na Web, XML
será, provavelmente, a linguagem padrão para
transações eletrônicas através da Web.
XML propriamente não define o vocabulário das
transações, este é o trabalho do esquema.
XML será apenas a sintaxe usada para permutar
os dados e fazer as transações se realizarem
entre diferentes sistemas de diferentes
organizações ao redor do planeta.
O padrão XML




XML é um padrão aberto.
Não pertence a uma única organização
Foi definida por um consórcio de
organizações altamente competitivas de
diversos setores.
Elas perceberam o grande benefício para
todos na utilização de uma sintaxe
simples e padronizada para trocar
informações.
O padrão XML



Por ser um padrão aberto, XML trabalha
sob qualquer plataforma computacional
com qualquer linguagem de
programação.
XML realmente não faz nada; ela é
somente uma sintaxe que fornece um
modo estruturar e representar dados e
informações.
O benefício chave da XML é que ela
permite separar os dados dos processos
que agem sobre estes dados.
XML & Java

Você provavelmente já ouviu muito sobre
a dupla XML e Java:




XML para representar dados e
Java para processá-los
Esta dupla faz muita sensação por serem
padrões abertos, independentes de
plataformas computacionais.
Os desenvolvedores podem criar
aplicativos multi-plataforma em Java e
usar XML para trocar dados entre eles.
Origem de XML



Está na SGML - Standard Generalized
Markup Language.
SGML é um padrão, pertencente à ISO,
que foi criado para permitir o
compartilhamento de informações entre
as companhias que poderiam possuir
sistemas diferentes.
A IBM, a DEC, a Receita Federal (IRS) e o
Departamento de Defesa (DoD) dos EUA
são (ou eram) grandes usuários da SGML.
SGML e XML



SGML foi a primeira tecnologia padrão que
permitiu que usuários separassem dados dos
processos que agiam sobre eles.
Usando SGML, pode-se executar um processo,
chamado análise de informações, para descobrir
a estrutura e o conteúdo dos dados.
Um vocabulário chamado Document Type
Definition – DTD – ou definição de tipo de
documento, pode ser então desenvolvido a partir
daquela análise.
DTD
Document Type Definition



Um DTD define uma classe de informações,
portanto, cada DTD é específico para cada
conjunto de dados.
Um DTD indica o conteúdo de objetos no
conjunto de informações usando uma sintaxe
precisa chamada modelo de conteúdo.
Uma vez que cada conjunto de informações tem
requisitos e objetos diferentes, o DTD para
descrever cada conjunto é diferente.
SGML e XML





Um documento SGML consiste em caracteres
ASCII com tags (marcações) e conteúdo.
Um interpretador (parser) lê o documento e
determina a estrutura das informações
identificando as tags e extraindo os dados nelas
contidos.
Uma vez que um documento SGML é escrito em
formato texto ASCII simples, ele é portável e
executável em qualquer plataforma que possua
um interpretador.
XML possui estas mesmas características.
SGML porém, não pôde acompanhar o
desenvolvimento da Web, pois foi projetada em
1980, uma era de computadores lentos e caros.
Surgimento da XML

Precisava-se, portanto, de algo:




Portável, barato, rápido e fácil como HTML;
Extensível como SGML;
Compatível com que já era conhecido, de
forma que pudéssemos usar as técnicas e
ferramentas já existentes.
Com esse objetivo, um grupo do W3C
trabalhou entre 1996 e 1997 até
apresentar a primeira definição de XML
em 1998.
10 Objetivos da XML
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
XML deve ser utilizável através da Internet.
XML deve suportar uma ampla variedade aplicações.
XML deve ser compatível com SGML.
Deve ser fácil escrever programas que processam documentos
XML.
O número de características opcionais em XML deve ser mantido
num mínimo absoluto, idealmente zero.
Documentos XML devem ser razoavelmente claros e legíveis por
pessoas comuns.
Um projeto de XML deve poder ser preparado depressa.
Um projeto de XML deve ser formal e conciso.
Documentos XML devem ser fáceis de serem criados.
A concisão nas marcações ou tags de XML é de importância
mínima.
Essência da XML




XML é uma sintaxe que permite que
usuários criem linguagens de marcação.
As linguagens que são usadas para criar
linguagens de marcação são comumente
conhecidas como meta linguagens de
marcação.
XML é uma recomendação técnica do
W3C (http://www.w3c.org).
XML é um padrão multi-plataforma,
aberto, não-proprietário e gratuito.
Mitos da XML

Há uma série de mitos sobre XML
que não são verdadeiros, entre eles:
XML é uma linguagem de marcação
(markup language) como HTML;
 XML é apenas para a Web;
 HTML é um subconjunto da XML;
 XML é a solução perfeita para
transações em negócios eletrônicos.

Padronizadores da XML

Organismos que de certa forma regulam
os padrões da XML:






International Organization for Standardization
(ISO)
American National Standards Institute (ANSI)
Organization for the Advancement of
Structured Information Systems (OASIS)
World Wide Web Consortium (W3C)
Internet Engineering Task Force (IETF)
Indústrias que definem esquemas XML
Padrões Derivados da XML




Namespaces: especifica como qualificadores
nomes de elementos e atributos com
identificadores de espaços de nomes únicos.
DOM: conjunto de interfaces de programação
abstratas para percorrer, manipular e criar
documentos XML.
XML Schema – Structures e Datatypes:
linguagem para descrever elementos, atributos
e notações em termos de tipos hierárquicos e
tipos de dados.
XML Information Set: descrição de um
documento XML abstrato, sem preocupação com
sintaxe.
Padrões Derivados da XML





XML Base (XBase): especifica como determinar
a URI a utilizar.
XML Inclusions (XInclude): uma alternativa a
DTDs para acessar entidades externas.
XML Path Language (XPath): permite
selecionar um conjunto de nós em um
documento XML.
XML Pointer Language: usa expressões XPath
como identificadores URI, para permitir a
referência de elementos em documentos
externos.
XML Linking Language: representa ligações
entre documentos XML.
DOM
Document Object Model

Conjunto completo de padrões publicados
pelo W3C que apóiam a XML.
O Modelo DOM
Document Object Model



Expõe um documento XML como uma estrutura
em árvore na memória do computador e fornece
um ambiente fácil de se programar para o
desenvolvedor de aplicações.
Fornece um objeto acessível pode ser consultado
e manipulado como qualquer outro objeto em
linguagens de programação orientadas para
objeto.
Define um conjunto padrão de objetos e
interfaces que podem ser usados para manipular
a linguagem XML, fornecendo acesso a
documentos, elementos e atributos.
DOM
Documentos XML





Um documento XML é estruturado em forma de
árvore.
Possui sempre um elemento raiz, a partir do
qual outros elementos vão se ramificar.
Essa estrutura de árvore estabelece como
documentos XML vão ser definidos e tratados.
O tratamento envolve principalmente encontrar
um determinado elemento, ou grupo de
elementos a serem processados.
Duas relações entre os elementos são
importantes: hierarquia e seqüência.
Hierarquia e Seqüência

Hierarquia:


Estabelece relações pai/filho e
ancestral/descendente entre os
elementos.
Seqüência:

Estabelece a seqüência em que as
informações aparecem.
Exemplo
<?xml version=“’=1.0”?>
<Instruções>
<Titulo>
Lavar os Cabelos
</Titulo>
<Seqüência>
<Passo> Molhar os cabelos</Passo>
<Passo> Colocar xampu</Passo>
<Passo> Fazer espuma com as mãos</Passo>
<Passo> Esfregar bem</Passo>
<Passo> Enxaguar bem</Passo>
</Seqüência>
</Instruções>
Documentos XML
Bem Formados e Válidos

Um documento XML pode estar em dois estados:




Bem formado
Válido
Um documento bem formado adere a várias
regras ou restrições de formação, detalhadas na
especificação da XML.
Um documento XML é válido se possuir uma
declaração de tipo de documento associada (DTD
ou esquema) e se o documento estiver de
acordo com as regras e restrições nela
expressas.
Documentos XML
Bem Formados
1.
2.
3.
4.
5.
6.
7.
Todo elemento deve ter uma tag de início e uma de fim.
Deve ter um elemento raiz único.
Nomes de elemento e atributo são sensíveis a letras
maiúsculas e minúsculas.
Elementos devem ser corretamente intercalados; eles
não podem ter sobre-elos estruturais.
Certos caracteres devem ser evitados, ou representados
por uma combinação de caracteres especiais.
Valores de atributo devem estar sempre entre aspas.
Elementos vazios têm um formato especial ao qual
devem estar aderentes.
Documentos XML
Válidos




Um documento XML é válido se ele tem uma
declaração de tipo de documento associada –
DTD Document Type Definition – e se o
documento estiver de acordo com as regras nela
expressas.
A declaração de tipo de documento diz ao
interpretador XML onde achar um conjunto de
regras contra as quais um documento pode ser
conferido e validado.
De onde vem este conjunto de regras?
Alguém precisa determinar a estrutura dos
membros de uma classe particular de
documentos e tornar esta descrição de estrutura
disponível para o interpretador XML.
Dados e Marcações em
Documentos XML


Um documento XML é formado por uma combinação de
dados textuais e marcações (tags).
As tags podem ser:










De início e de fim
Elementos vazios
Referências a entidades
Referências a caracteres
Comentários
Delimitadores de seções CDATA (valores ignorados pela XML)
Declaração de tipo de documento
Instruções de processamento
Declarações XML
Declarações textuais
Exemplo
<?xml version=“1.0”?>
<!DOCTYPE PRECOS [
<!ELEMENT PRECOS (LIVRO+)>
<!ELEMENT LIVRO (TITULO,DISTRIBUIDOR?)>
<!ATTLIST TITULO VALOR CDATA #REQUIRED>
<!ELEMENT TITULO (#PCDATA)>
<!ELEMENT DISTRIBUIDOR (#PCDATA)>
]>
<PRECOS>
<LIVRO>
<TITULO VALOR=“120”>Manual de Comercio Eletrônico</TITULO>
<DISTRIBUIDOR>Editora Choque</DISTRIBUIDOR>
</LIVRO>
<LIVRO>
<TITULO VALOR=“78”>Tudo sobre Negócios na Web</TITULO>
<DISTRIBUIDOR>Editora Teia</DISTRIBUIDOR>
</LIVRO>
</PRECOS>
Atributos




Cada item de elemento de informação pode ter
uma ou mais propriedades ou atributos.
Cada atributo tem um nome único e possui
possui uma propriedade consistindo de zero ou
mais caracteres.
Em HTML é normal o uso de atributos para
qualificar elementos: par nome+valor.
Em XML atributos podem ser usados para
descrever ou fornecer informações sobre um
elemento.
<TITULO VALOR=“120”>Manual de Comércio Eletrônico</TITULO>
Visualização de
Documentos HTML e XML




Documentos XML que não precisam ser
transformados podem usar folhas de estilo em
cascata – CSS – usadas em HTML.
Documentos XML que precisam de algum tipo de
transformação precisam usar XSL.
Esta transformação cria um conteúdo HTML por
meio de um processador XSL, que pode residir
no navegador do cliente ou no servidor Web.
XSL é uma linguagem de transformação
declarativa, que busca encontrar determinadas
tags para aplicar determinado tipo de estilo de
formatação visual HTML sobre elas.
Opções de Visualização de
um Documento XML
1
Documento
HTML
Apresentação
HTML
2
Processador
CSS
3
Documento
XML
Folha de Estilo
CSS
5
4
Processador
XSL
Folha de Estilo
XSL
Formatação de
Documentos XML




CSS se limita a percorrer o documento XML
aplicando formatos HTML.
XSL processa o documento de maneira
programável, através de tags especiais que
localizam determinados elementos e neles efetua
as transformações definidas.
Por exemplo, aplicar determinadas tags HTML
sobre estes elementos.
Alteração de documentos XML:


Se a alteração for só nos dados, não temos que nos
preocupar com tags HTML, pois são definidas no XSL.
Se a alteração for só na apresentação, basta modificar
o documento XSL.
Ferramentas para XML





Navegadores: Internet Explorer 5.0 ou
posterior.
Editores: programas que permitem a criação e
edição de documentos XML.
Parsers: programas que verificam a sintaxe
XML e possibilitam o desenvolvimento de
aplicações para tratar documentos XML.
Processadores XSL: transformam documentos
XML em documentos HTML.
Banco de Dados XML: armazenam dados ou
retornam resultados de consultas como
documentos XML.
XML Namespaces



Namespaces possuem dois propósitos básicos:
1.
Habilitar o compartilhamento de esquemas
de estruturas e tipos de dados e
2.
Qualificar exclusivamente nomes de
elementos em um ambiente de múltiplos
esquemas.
Namespaces são projetados para resolver o
problema de fontes de dados que possuem
elementos com o mesmo nome mas com
significados diferentes.
Namespaces apontam para esquemas que
contém informações sobre o documento que
você está usando.
Namespaces





Permitem a qualificação de nomes de maneira
única na Internet, evitando conflitos entre
elementos que tenham o mesmo nome.
Esse risco existe uma vez que XML permite a
criação de tags.
Diferentes pessoas em diferente lugares podem
criar os mesmos nomes de tag em contextos
diferentes.
Namespace é uma tecnologia que permite
declarar os nomes que estamos utilizando, como
pertencentes à um vocabulário.
Dessa forma, os nomes podem ser especificados
de maneira não ambígua no documento XML.
Namespaces
Exemplo
Documento Livro
<LIVRO>
<TITULO>Tudo Sobre Negócios Eletrônicos</TITULO>
<PRECO moeda=“BR Reais”>73.50</PRECO>
<LIVRO>
Documento Autor
<AUTOR>
<TITULO>Professor Doutor</TITULO>
<NOME>Antonio Geraldo da Rocha Vidal</NOME>
</AUTOR>
Namespaces
Exemplo
Enquanto uma pessoa pode diferenciar os dois
tipos de TITULO, um programa de computador
não possui contexto suficiente para distingui-los.
 Namespaces resolvem este problema por meio
da associação de um vocabulário a uma tag.
<Livros:TITULO>E-Commerce Manual</TITULO>
<Autor:TITULO>Mr.</TITULO>
 O nome que precede a tag é um namespace,
também conhecido como URI – Universal
Resource Identifier.
 Um URI garante que haverá unicidade quando
dois ou mais documentos XML forem
combinados.

Namespaces
Exemplo
<lv:LIVRO xmlns:lv=“urn:Biblioteca:InformacaoLivros”
xmlns:dinheiro=“urn:Financas:Dinheiro”>
<lv:TITULO>E-Commerce Manual</lv:TITULO>
<dinheiro:PRECO dinheiro:moeda=“BR Real”
59.80</dinheiro:PRECO>
</lv:LIVRO>


A declaração do namespace vai definir uma
abreviação, ou prefixo, para substituir o nome
completo do namespace.
Em geral se usa uma declaração explícita para
referenciar um elemento que esteja declarado
em um namespace diferente do atual.
DTD
Document Type Definition






A descrição da estrutura de um documento é
chamada esquema.
Em XML 1.0, o único tipo de esquema permitido
é o DTD – Document Type Definition.
O DTD foi herdado diretamente da SGML e
define as tags possíveis para uma classe de
documentos.
Tendo-se um DTD, um documento XML pode ser
validado.
Pode-se confirmar que o documento segue certa
definição ou estrutura.
Uma vez validado, a aplicação que irá processar
esse documento não precisa se preocupar com
erros de estrutura.
DTD
Document Type Definition





Usando-se um DTD assegura-se que diferentes
pessoas e programas podem tratar informações
uns dos outros.
DTDs são usados para definir os assim
chamados vocabulários.
Cada vocabulário estabelece que elementos são
aplicáveis em um determinado contexto.
Cada setor de atividade que está envolvido na
transferência de um determinado tipo de
informação ou tipo de documento, tem um
grande potencial para o uso de vocabulários
próprios ou DTDs.
Alguns exemplos de vocabulários padronizados:
XMLNews, SMIL, CDF.
DTD
Document Type Definition


A declaração do DTD aparece no prólogo do
documento XML, antes do elemento-raiz. Pode
ser:
 DTD local (interno ao documento): descreve
estruturas específicas de um dado documento.
 DTD externo (externo ao documento):
descreve estruturas gerais de uma classe de
documentos.
Processadores XML dão prioridade ao DTD
interno, ou seja, pode-se redefinir estruturas
gerais em DTDs internos.
DTD
Exemplo
<?xmlversion=“1.0”?standalone=‘yes’>
<!DOCTYPE nota [
<!ELEMENT nota (de,para,assunto,conteudo)>
<!ELEMENT de
(#PCDATA)>
<!ELEMENT from
(#PCDATA)>
<!ELEMENT assunto (#PCDATA)>
<!ELEMENT conteudo (#PCDATA)>
]>
<nota>
<para>Turma MBA Informatica e Tecnologia Internet</para>
<de>Prof. Vidal</de>
<assunto>Paper para Avaliacao</assunto>
<conteudo>Cada aluno devera elaborar um trabalho
descrevendo um plano de negocio com a aplicacao de
tecnologias Internet</conteudo>
</nota>
DTD
Exemplo

O DTD do exemplo pode ser interpretado da
seguinte maneira:




!DOCTYPE nota: é o elemento de nível mais alto que
estabelece um nome para o tipo de documento, neste
caso “nota”.
!ELEMENT nota: define o elemento raiz, determinando
que o elemento nota possui quatro elementos: de,
para, assunto e conteudo; que devem aparecer nesta
ordem.
!ELEMENT para: define que o elemento para é do tipo
#PCDATA. E assim por diante...
#PCDATA estabelece que o conteúdo dados
textuais, isto é, não pode conter elementosfilhos.
Declarações
DTD


DTDs descrevem informações vitais sobre a
estrutura de um documento.
Podemos especificar os seguintes tipos de
declarações num DTD:





Elementos permitidos no documento, bem como os
tipos de dados que podem apresentar;
Atributos que podem ser associados com cada
elemento;
Entidades que são permitidas no documento;
Notações que são permitidas para uso com entidades
externas.
Qualquer coisa que não for declarada no DTD não será
permitida no documento XML.
DTD

Declaração de Elementos <!ELEMENT
>:
ANY: dados textuais ou elementos-filhos.
 #PCDATA: apenas dados textuais.
<!ELEMENT AUTOMOVEL (modelo,marca,ano)>
<!ELEMENT MODELO (#PCDATA)>
<!ELEMENT MARCA (#PCDATA)>
<!ELEMENT ANO (#PCDATA)>


Número de ocorrências de elementos-filhos:







+: podem aparecer um ou mais elementos-filhos;
*: podem aparecer zero ou mais elementos-filhos;
?: podem aparecer zero ou um elemento-filho;
|: escolha de um elemento-filho alternativo;
( | ): grupos de elementos-filhos.
Elementos vazios
Comentários
DTD

Atributos: são usados para especificar
informações adicionais sobre um dado elemento:



Formados por um par: NOME/VALOR;
<!ATTLIST elemento atributo tipo valor_padrão>
Tipo: determina os valores aceitáveis para o atributo:
• CDATA: cadeia de caracteres;
• Enumeração: lista de valores possíveis para escolha de
apenas um;
• NMTOKEN ou NMTOKENS: valores que seguem as regras
de nomenclatura XML;
• ID: identifica elementos no documento de maneira única;
• IDREF: elemento que tem um atributo que faz referência
ao ID de outro; permite conectar elementos;
• ENTITY/ENTITIES: associa dados externos ao documento;
• NOTATION: notação para identificar formato de dados
não-XML.
DTD



xml:space: descreve como espaços em branco
são tratados no elemento.
xml:lang: indica a linguagem com a qual o
conteúdo do elemento é escrito.
Valores padrão (default) do atributo:




#REQUIRED: atributo obrigatório;
#IMPLIED: atributo opcional;
#FIXED: atributo com valor fixo que não pode ser
alterado.
Entidades:

Podem ser um arquivo, um registro num banco de
dados, o resultado de um processamento ou qualquer
item que contenha dados externos ao documento.
DTD vs. XML Schemas
Encontra-se em desenvolvimento no
W3C um padrão denominado XML
Schemas que deve substituir o DTD.
 Ou contrário do DTD, no XML
Schemas a definição do documento
segue as mesmas regras de XML.

XML Schemas


Desde que a recomendação XML 1.0 foi finalizada em
fevereiro de 1998, o W3C tem trabalhado em uma
especificação alternativa para substituir o DTD para
descrever esquemas.
O grupo de trabalho “W3C XML Schema” está focando em
três áreas de melhoria:



Os esquemas devem ser escritos usando a sintaxe XML,
assim nos permitindo usar as mesmas ferramentas que
costumamos usar para processar documentos XML.
Deve ser definido um novo padrão de esquemas para
suportar tipos de dados comuns, como numérico, data e
moeda; como também tipos de dados definidos pelo usuário.
Este novo tipo de esquema moveria a tarefa de validação dos
dados do aplicativo para o interpretador XML, onde os dados
são acessíveis por todos os programas que lêem documentos
XML.
O novo padrão de esquemas deve suportar modelos de
conteúdo aberto.
Esquemas
<Schema name=“bookSchema_v_1.2”>
<ElementType name=“book”>
<element type=“id”/>
<element type=“price”/>
<element type=“author”/>
<element type=“title”/>
<element type=“grade.level”/>
</ElementType>
<ElementType name=“price”
dt:type=“float” required=“yes”/>
<ElementType name=“id”
dt:type=“string” required=“yes”/>
...
</Schema>
XML Schemas - Datatypes



O W3C está trabalhando em uma
especificação chamada Datatypes para
DTDs (DT4DTD), o que adicionará suporte
a tipos de dados para o DTD.
Esta é uma correção para a sintaxe do
DTD, mas permitirá aos usuários que
queiram continuar a usar o DTD ter
acesso a tipos de dados mais complexos.
Os interpretadores XML deverão suportar
este padrão para que ele possa ser útil.
Algumas
Tecnologias XML

CSS – Folhas de Estilo em Cascata


XPath – XML Path Language


Definem regras para transformação de documento,
associando uma saída com uma entrada.
XSLT – XSL Transformations


Permite o endereçamento interdocumentos.
XSL – Extensible Stylesheet Language


Permite o endereçamento de subconjuntos em um único
documento (intradocumento).
XPointer – XML Pointer Language


É uma linguagem de descrição que define as regras pelas
quais um navegador exibirá um documento HTML ou XML.
Define uma linguagem de programação baseada em XML
para expressar regras de transformação de uma classe de
documentos XML para outra.
BizTalk Server – Servidor para Transformação XML.
XSL
Extensible Stylesheet Language





XSL é um recurso de propósito geral usado para
transformar e formatar documentos XML.
A transformação se refere a mudar um
documento XML para outro documento XML ou
outro tipo de documento (p.ex. HTML).
A formatação se refere à exibição visual do
documento XML.
A transformação é útil se a sua empresa usa um
esquema para documentos XML e seus
fornecedores usam esquemas diferentes.
Você pode empregar XSL para traduzir um
documento XML que usa um esquema em outro
que usa outro esquema.
XSL
XSLT
Trocando Informações
Fornecedor
www.empresa.com.br
Navegador WEB
Catálogo
XML
Catálogo
XML
Folha de Estilo
XSL
Esquema
XML
Banco
de
Dados
BizTalk




O que acontecerá se centenas de companhias
diferentes criarem seus próprios esquemas para
descrever uma fatura?
Os esquemas poderiam conter os mesmos
elementos, mas cada esquema poderá usar
nomes diferentes para os elementos.
Cada documento teria uma estrutura diferente,
tornando difícil o compartilhamento de
informações entre as empresas que desejam
realizar negócios.
Se cada parceiro de negócio usar seu próprio
esquema, você precisaria escrever um programa
diferente para trabalhar com cada documento
XML, de cada parceiro de negócio.
BizTalk




A estrutura do BizTalk fornece um conjunto de
regras e um conjunto de tags para criar
esquemas para negócios eletrônicos business-tobusiness (B2B).
BizTalk foi criado para facilitar o uso de XML
construindo esquemas que parceiros de negócio
podem compartilhar.
Um conjunto comum de regras para criar
esquemas promoverá a criação de mais
esquemas.
Com isso, torna-se mais fácil para os parceiros
de negócio concordar com um esquema comum
para usar em suas transações.
BizTalk



Para processar documentos BizTalk, você
precisa de um servidor BizTalk (BFC).
BizTalk permite que vendedores de
software independentes (ISVs) e
desenvolvedores criem facilmente um
mapa do processo de negócio.
Desta forma torna-se possível a adoção
mais rápida do intercâmbio eletrônico de
informações por uma larga variedade de
indústrias que já estão usando XML.
BizTalk


Especificação de documento independente:
BizTalk é um conjunto de tags XML que fornece
uma definição para trocar documentos entre dois
sites e invocar um processo de cada lado.
BizTalk se parece com um envelope virtual para
enviar documentos comerciais entre parceiros de
negócio.
BizTalk.org: é um Web Site que fornece
informações para se aprender sobre tecnologias
de comércio eletrônico em geral, com ênfase
particular sobre XML e BizTalk.
BizTalk Server



Para processar seus documentos BizTalk,
você precisará de um servidor BizTalk,
que é o software que lê documentos
BizTalk e então faz algo inteligente com
eles.
Um servidor BizTalk pode ser escrito em
qualquer linguagem em qualquer
plataforma computacional.
Várias companhias estão trabalhando em
servidores que processam documentos
BizTalk e os integram com sistemas
corporativos legados ou ERPs.
Projeto de Fluxo de Informações
Inter-organizacionais
Negócios Eletrônicos via
XML e BizTalk
Fabricante
Fornecedor
XML Web Services

Evolução das Aplicações Web:
Acessíveis por outros computadores,
não só por pessoas como os Web Sites;
 Transformam “páginas Web” em
componentes reutilizáveis ou serviços;
 Podem ser fornecidos e/ou consumidos;
 Permitem transações seguras através
de parceiros de negócio.

XML Web Services

Nova metodologia de integração:





Utiliza interações XML entre sistemas;
Baseados em padrões abertos, nativos da
Internet;
Trabalham sob qualquer sistema operacional,
linguagem de programação ou rede de
comunicação;
É possível expor o sofware existente como um
Web Service.
Sistemas aplicativos distintos podem
realmente trocar dados entre si de forma
automática.
XML Web Services




As informações da Web tradicional só
podem ser acessadas por usuários
humanos;
XML Web Services são uma evolução para
o acesso a serviços e informações na
Web, de forma automática e programada;
XML Web Services trabalham como
componentes de software;
XML Web Services tornam possível que
um sistema aplicativo “converse” com
qualquer outro sistema aplicativo, sem
requerer nenhuma intervenção humana.
XML Web Services

Padrão simples, aberto e largamente
suportado pela indústria:
Publicar, Localizar e Usar Serviços:
UDDI
Interações entre serviços:
SOAP
Formato universal de dados:
Padrão universal de comunicação:
XML
Internet
UDDI: Universal Description, Discovery and Integration
Ferramentas
Clientes
Web Services
Servidores
Informações, Soluções e Negócios
XML Web Services
Endereços Interessantes









Site do W3C: http://www.w3c.org/
Site sobre XML: http://www.xml.com/
Site sobre BizTalk: http://www.biztalk.org/
Site MS BizTalk: http://www.microsoft.com/biztalk/
Demo MS BizTalkServer 2000:
http://www.microsoft.com/biztalk/code/demo2002/frame.
html
Demo IBM WebSphere: http://www3.ibm.com/software/webservers/studio/wsaddemo.html
Demos Oracle (vários, inclusive Web Services):
http://www.oracle.com/ip/index.html?think9i_appdev.html
Site da Sun: http://www.sun.com
Banco Central do Brasil – Sistema Brasileiro de
Pagamentos - http://www.bancocentral.gov.br
Fim
Obrigado!