Tecnologia XML

102
Tecnologia XML Prof. Antonio Geraldo Vidal [email protected] FEA/USP Tecnologia de Informática

description

Tecnologia XML. Prof. Antonio Geraldo Vidal [email protected] 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). - PowerPoint PPT Presentation

Transcript of Tecnologia XML

Tecnologia XML

Prof. Antonio Geraldo [email protected]/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

950.241.318-00Antonio Geraldo Vidal Rua Bela Cintra100.231.342-60José da Silva Santos Rua Tiradentes234.123.123-34Maria Aparecida dos Santos Paiva Av. Brasil, 231 . . . . . . . . .

Coluna Posição

CPF 1-14

Nome 15-55

Endereço 56-100

Etc. ....

Neste formato, o deslocamento de uma única posição muda todo o conjunto de dados que será lido por um programa.

Formato XML

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.

<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>

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

XML

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.

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

XML/SOAP

XML/SOAP

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.

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 pro-vedor 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 infor-mação.

<?xml version="1.0"?>

<nitf>

<head>

<title>Technology Tools and Toys</title>

</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>

Exemplo

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.

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 infra-estrutura 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:

ebXML

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.

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

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.

DTDDocument 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 XML1. XML deve ser utilizável através da Internet.2. XML deve suportar uma ampla variedade aplicações.3. XML deve ser compatível com SGML.4. Deve ser fácil escrever programas que processam documentos

XML.5. O número de características opcionais em XML deve ser mantido

num mínimo absoluto, idealmente zero.6. Documentos XML devem ser razoavelmente claros e legíveis por

pessoas comuns.7. Um projeto de XML deve poder ser preparado depressa.8. Um projeto de XML deve ser formal e conciso.9. Documentos XML devem ser fáceis de serem criados.10. 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.

DOMDocument Object Model Conjunto completo de padrões publicados

pelo W3C que apóiam a XML.

O Modelo DOMDocument 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 XMLBem 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 XMLBem Formados1. Todo elemento deve ter uma tag de início e uma de fim.2. Deve ter um elemento raiz único.3. Nomes de elemento e atributo são sensíveis a letras

maiúsculas e minúsculas.4. Elementos devem ser corretamente intercalados; eles

não podem ter sobre-elos estruturais.5. Certos caracteres devem ser evitados, ou representados

por uma combinação de caracteres especiais.6. Valores de atributo devem estar sempre entre aspas.7. Elementos vazios têm um formato especial ao qual

devem estar aderentes.

Documentos XMLVá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

DocumentoHTML Apresentação

HTML

ProcessadorCSS

Folha de EstiloCSS

ProcessadorXSL

Folha de EstiloXSL

DocumentoXML

1

2

3

45

Formatação deDocumentos 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.

NamespacesExemploDocumento 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>

NamespacesExemplo 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.

NamespacesExemplo<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.

DTDDocument 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.

DTDDocument 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.

DTDDocument 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.

DTDExemplo<?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>

DTDExemplo 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 elementos-filhos.

DeclaraçõesDTD 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>

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.

XML Schemas - Datatypes

AlgumasTecnologias XML CSS – Folhas de Estilo em Cascata

É uma linguagem de descrição que define as regras pelas quais um navegador exibirá um documento HTML ou XML.

XPath – XML Path Language Permite o endereçamento de subconjuntos em um único

documento (intradocumento). XPointer – XML Pointer Language

Permite o endereçamento interdocumentos. XSL – Extensible Stylesheet Language

Definem regras para transformação de documento, associando uma saída com uma entrada.

XSLT – XSL Transformations 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.

XSLExtensible 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

Banco de

Dados

www.empresa.com.brwww.empresa.com.br

CatálogoCatálogoXMLXML

Navegador WEBNavegador WEBFornecedorFornecedor

Folha de Estilo XSL

CatálogoCatálogoXMLXML

EsquemaEsquemaXMLXML

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-to-business (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

FornecedorFabricante

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: XML

Padrão universal de comunicação: Internet

UDDI: Universal Description, Discovery and Integration

XML Web Services

ClientesClientes

Ferr

am

enta

s

Web Services

Servidores

Info

rmaçõ

es, S

olu

ções e

Negócio

s

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://www-3.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!