apresentação webservice e schema xml
Post on 16-Feb-2015
45 Views
Preview:
TRANSCRIPT
Schema XML Schema XML & &
Web ServicesWeb Services
Jeferson BitencourtRoberto Marini SteckXavier C Neto
HistóricoHistóricoDTD - Definição de Tipo de
Documento;DTD foi o primeiro padrão
fortemente utilizado para definição e validação de XMLs;
Utilizado para validações do SGML;
Em 2001 se iniciou a mudança para XSD;
DTD Exemplo DTD Exemplo <!DOCTYPE NEWSPAPER [
<!ELEMENT NEWSPAPER (ARTICLE+)><!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)><!ELEMENT HEADLINE (#PCDATA)><!ELEMENT BYLINE (#PCDATA)><!ELEMENT LEAD (#PCDATA)><!ELEMENT BODY (#PCDATA)><!ELEMENT NOTES (#PCDATA)>
<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED><!ATTLIST ARTICLE EDITOR CDATA #IMPLIED><!ATTLIST ARTICLE DATE CDATA #IMPLIED><!ATTLIST ARTICLE EDITION CDATA #IMPLIED>
<!ENTITY NEWSPAPER "Vervet Logic Times"><!ENTITY PUBLISHER "Vervet Logic Press"><!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press">
]>
XML ShemaXML ShemaÉ uma linguagem baseada no formato
XML para validar documentos XML;Foi recomendada e evoluída pelo
W3C;XSD (XML Schema Definition),
documento que descreve a estrutura de um documento XML;
Todas as linguagens de programação possuem APIs para trabalhar com XSD;
Suportam amplo tipo de dados;Suportam namespaces;Suportam criação de tipos derivados
dos tipos básicos;Suportam criação de estrutura
complexas para validação, como ranges de dados e limites;
Suportam relacionamentos entre tipos de dados no Schema(reaproveitamento);
XML ShemaXML Shema
XML Schema – Tipos ;XML Schema – Tipos ;Existem cinco conjuntos de tipos de
dados pré-definidos em XSD. Esses conjuntos de tipos de dados são:
I. Numéricos - xsd:float, xsd:double, xsd:decimal, xsd:integer, xsd:negativeInteger , entre outros;
II. Data/Hora - xsd:dateTime, xsd:time, xsd:gYear , entre outros
III.String - xsd:string, xsd:normalizedString, xsd:token
IV.Binários - xsd:hexBinary, xsd:base64BinaryV. Booleanos - xsd:boolean
A primeira linha é sempre a definição padrão de um XML;
Na segunda, a definição de no mínimo o namespace de tipos básicos, onde é possível adicionar outras definições de tipos, incluindo a sua;
<?xml version="1.0" encoding="ISO-8859-1" ?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">...</xs:schema>
XML Schema – EstruturaXML Schema – Estrutura
XML Schema – EstruturaXML Schema – Estrutura
Elementos do XML<xsd:element name="endereco"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
Atributos dos Elementos<xsd:attribute name="datacadastro"
type="xsd:dateTime" use="optional"/>
Elementos Complexos, para que esses elementos sejam declarados é necessário utilizar tag “complexType”;
Podemos ter elementos complexos ‘dentro’ de elementos complexos;
<xsd:element name="cliente"> <xsd:complexType> <xsd:element name="nome" type="xsd:string"/> <xsd:element name="endereco"
type="xsd:string"/> <xsd:element name="cep" type="xsd:integer"/> </xsd:complexType> </xsd:element>
XML Schema – EstruturaXML Schema – Estrutura
Posso criar Restrições para validação da definição do XML;
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType></xs:element>
<xs:element name="car“ ><xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction></xs:simpleType>
XML Schema – EstruturaXML Schema – Estrutura
XML Schema – EstruturaXML Schema – EstruturaGrupos sequence, all e choice. Define a ordem correta e obrigatória dos elementos.<xsd:sequence> <xsd:element name="nome" type="xsd:string"/> <xsd:element name="datanasc" type="xsd:date"/> </xsd:sequence>
Obriga apenas que os elementos constem no documento<xsd:all> <xsd:element name="nome" type="xsd:string"/> <xsd:element <xsd:element name="telefone"
type="xsd:string"/> </xsd:all>
Obriga que somente um dos elementos especificados conste no documento xml
<xsd:choice> <xsd:element name="CPF" type="xsd:string"/> <xsd:element name="RG" type="xsd:string"/> </xsd:choice>
XML Schema - ExemploXML Schema - Exemplo<?xml version="1.0" encoding="ISO-8859-1" ?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="shiporder"> <xs:complexType> <xs:sequence> <xs:element name="orderperson" type="xs:string"/> <xs:element name="shipto"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="item" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="note" type="xs:string" minOccurs="0"/> <xs:element name="quantity" type="xs:positiveInteger"/> <xs:element name="price" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="orderid" type="xs:string" use="required"/> </xs:complexType></xs:element></xs:schema>
SOASOASOA é uma arquitetura para
computação distribuída;SOA não é somente WebService;A arquitetura SOA pode possuir
vários componentes de integração e serviços:- Enterprise Service Bus- WebService- Business Process Mamagement- Legacy Services
Defining a Service More PreciselyIt is important to be clear about what we mean when we use the word "service" in the SOA context. Typically
we are thinking about a business service, such as making a hotel reservation or buying a computer online, but keep in mind that these services do not include a visible element. Services do not have a frontend-they expose either functionality or data with which other programs can interact through web browsers, desktop applications, or even other services.
These services might implement business functions like searchForAvailability or setShippingMethod. In this respect they are distinctly different from technical services, which might provide messaging or transactional functions such as updating data or monitoring transactions. By design, SOA deliberately decouples business services from technical services so that your implementation does not require a specific underlying infrastructure or system. In short, a SOA service is the encapsulation of a high-level business concept.
A SOA service is composed of three parts:A service class that implements the service to be providedA host environment to host the serviceOne or more endpoints to which clients will connectAll communication with a service happens through the endpoints. Each endpoint specifies a contract (which
we will discuss in greater detail later in this chapter) that defines which methods of the service class will be accessible to the client through that specific endpoint.
Because the endpoints have their own contracts, they may expose different (and perhaps overlapping) sets of methods. Each endpoint also defines a binding that specifies how a client will communicate with the service and the address where the endpoint is hosted.
You can think of SOA services in terms of four basic tenets:Boundaries are explicit.Services are autonomous.Schemas and contracts are shared, but not classes.Compatibility is based on policy.These fundamental tenets help drive the design of the services you'll create, so it's worth exploring each in
detail.
WebServiceWebServiceÉ uma solução padronizada utilizada
na integração de sistemas diferentes;Utiliza XMLs para troca de
informações;Permite integrar diferentes
plataformas;Pode ser implementada em qualquer
linguagem;Permite aplicação de segurança em
vários níveis;
How Does it Work?The basic Web services platform is XML + HTTP.XML provides a language which can be used
between different platforms and programming languages and still express complex messages and functions.
The HTTP protocol is the most used Internet protocol.Web services platform elements:SOAP (Simple Object Access Protocol)UDDI (Universal Description, Discovery and
Integration)WSDL (Web Services Description Language)We will explain these topics later in the tutorial.
SOAP - Simple Object Access SOAP - Simple Object Access Protocol Protocol O padrão W3C não determina o protocolo de
transporte dos dados para o WebService .... mas mensagens SOAP são documentos XML que aderem a uma especificação fornecida pelo órgão W3C.
É baseado em XML e possui XSD que o define;Permite Extensões do Protocolo para
evoluções;SOAP é independente do protocolo de
comunicação da rede, Http, TCP/IP, MQ, JMS ...SOAP é independente do plataforma e
lingugem de programação. Existem programas Cobol Mainframe que geram este protocolo para comunicação;
SOAP - Simple Object Access SOAP - Simple Object Access Protocol Protocol
SOAP Message;SOAP Envelope, que possui
informações de ‘entrega’ da mensagem para processamento;
SOAP Header, onde temos informações de como processar a mensagem e apliaçação de extensões;
SOAP Body, onde são adicionadas os dados(payloads) e as descrições de falhas(faults);
WSDL - Web Service Description WSDL - Web Service Description LanguageLanguageEspecificação desenvolvida pela
W3C para descrever Web Service em formato XML;
Também define a localização(end point) do Serviço;
Aceita que a definição dos dados das mensagens esteja em seu arquivo;
Permite extensões no modelo;
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:message name="somaRequest"> <wsdl:part name="valor1" type="xsd:int"/> <wsdl:part name="valor2" type="xsd:int"/> </wsdl:message> <wsdl:message name="somaResponse"> <wsdl:part name="somaReturn" type="xsd:int"/> </wsdl:message> <wsdl:portType name="Servico"> <wsdl:operation name="soma" parameterOrder="valor1 valor2"> <wsdl:input message="impl:somaRequest" name="somaRequest"/> <wsdl:output message="impl:somaResponse" name="somaResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="ServicoSoapBinding" type="impl:Servico"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="soma"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="somaRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/> </wsdl:input> <wsdl:output name="somaResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="ServicoService"> <wsdl:port binding="impl:ServicoSoapBinding" name="Servico"> <wsdlsoap:address location="http://localhost:8080/axis/Servico.jws"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
WSDL - ExemploWSDL - Exemplo
UDDIUDDI
Web Service – FuncionamentoWeb Service – Funcionamento
Referência do W3CReferência do W3C
ExemplosExemplosNota Fiscal EletronicaDDACorreios
Colcoar um WebService apontando para os correios
Até mainframe consegue responder ws exemplo IBM
Vantagens e Vantagens e desvantagensdesvantagens
Futuro Rest WebServiceBenefícos sobre o soapContras
top related