SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Linguagem para Organização e
Transferência de dados para Web.
Prof. Rudson Kiyoshi S. Carvalho
Anhanguera - 2015
Parte 4 - XSD
XML Schema (XSD)
XML Schema - XSD
• XSD - Xml Schema Definition
• Um XML Schema, descreve a estrutura de um arquivo
XML, assim como o DTD o XML Schema define um
XML válido.
• Define:
• define os elementos que podem aparecer no
documento.
• define os atributos que podem aparecer no
documento.
• define quais elementos serão elementos filhos.
• define a ordem dos elementos.
• define o número de elementos filhos.
• define onde um elemento é vazio ou pode conter
um texto.
• define tipos de dados para elementos e atributos.
• define valores padrões para elementos e atributos.
XML bem formado e válido
• Segundo Myer (2005) , existem dois tipo de
“legalidade” de documentos XML:
1. Documentos bem formado;
2. Documentos válidos;
DTD x XSD
• O XSD, escrito em XML, é mais poderoso e potente
que um DTD. Alguns exemplos desta capacidade
incluem suas definições para tipos de dados, que
lhe permite especificar quando um elemento deve
possuir um dado como um valor Inteiro, Data ou
String.
• Conforme o W3C, o XML Schema tem exatamente
o mesmo propósito que o DTD, porém, com o
intuito de ser o sucessor do DTD.
DTD x XSD
DTD XSD
Razões para o uso do XSD
• XML Schemas são extensíveis para adições
futuras.
• XML Schemas são mais ricos e mais úteis que os
DTDs.
• XML Schemas são escritos em XML.
• XML Schemas suportam tipos de dados.
• XML Schemas suportam namespaces.
XSD Referencia- Exemplo
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"?>	
  
<ordemCompra	
  ordemid="889923"	
  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-­‐instance"	
  
xsi:noNamespaceSchemaLocation="ordemCompra.xsd">	
  
	
  	
  <ordemFuncionario>Joao	
  Nunes</ordemFuncionario>	
  
	
  	
  <enviarPara>	
  
	
  	
  	
  	
  <nome>Cassio	
  Adriano</nome>	
  
	
  	
  	
  	
  <endereco>Rua	
  de	
  Teste</endereco>	
  
	
  	
  	
  	
  <cidade>Sao	
  Paulo</cidade>	
  
	
  	
  	
  	
  <pais>Brasil</pais>	
  
	
  	
  </enviarPara>	
  
	
  	
  <item>	
  
	
  	
  	
  	
  <descricao>Boneca	
  Barbie</descricao>	
  
	
  	
  	
  	
  <nota>Edição	
  Especial</nota>	
  
	
  	
  	
  	
  <quantidade>1</quantidade>	
  
	
  	
  	
  	
  <preco>180,90</preco>	
  
	
  	
  </item>	
  
</ordemCompra>
XSD Declaração - Passo 1
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"	
  ?>	
  
<xs:schema	
  xmlns:xs="http://www.w3.org/2001/XMLSchema">	
  
...	
  
</xs:schema>	
  
O Atributo xmlns indica que os elementos utilizados no documento
XSD como tipos de dados (schema, element, complexType,
sequence, string, boolean, etc…) vêm do namespace “http://
www.w3.org/2001/XMLSchema”.
Note também que o prefixo “xs" é adicionado de forma que todos os
elementos utilizados neste documento deveram ser prefixados com
“xs".
XSD Declaração - Passo 2
<xs:element	
  name="ordemCompra">	
  
	
  	
  <xs:complexType>	
  
	
  	
  	
  	
  <xs:sequence>	
  
	
  	
  	
  	
  	
  	
  ...	
  
	
  	
  	
  	
  </xs:sequence>	
  
	
  	
  </xs:complexType>	
  
</xs:element>
XSD Declaração - Passo 3
<xs:element	
  name="ordemFuncionario"	
  
type="xs:string"/>
XSD Declaração - Passo 4
<xs:element	
  name="enviarPara">	
  
	
  	
  <xs:complexType>	
  
	
  	
  	
  	
  <xs:sequence>	
  
	
  	
  	
  	
  	
  	
  <xs:element	
  name="nome"	
  type="xs:string"/>	
  
	
  	
  	
  	
  	
  	
  <xs:element	
  name="endereco"	
  type="xs:string"/>	
  
	
  	
  	
  	
  	
  	
  <xs:element	
  name="cidade"	
  type="xs:string"/>	
  
	
  	
  	
  	
  	
  	
  <xs:element	
  name="pais"	
  type="xs:string"/>	
  
	
  	
  	
  	
  </xs:sequence>	
  
	
  	
  </xs:complexType>	
  
</xs:element>
XSD Declaração - Passo 5
<xs:element	
  name="item"	
  maxOccurs="unbounded">	
  
	
  	
  <xs:complexType>	
  
	
  	
  	
  	
  <xs:sequence>	
  
	
  	
  	
  	
  	
  	
  <xs:element	
  name="descricao"	
  type="xs:string"/>	
  
	
  	
  	
  	
  <xs:element	
  name="nota"	
  type="xs:string"	
  minOccurs="0"/>	
  
	
  	
  	
  	
  <xs:element	
  name="quantidade"	
  type="xs:positiveInteger"/>	
  
	
  	
  	
  	
  	
  	
  <xs:element	
  name="preco"	
  type="xs:decimal"/>	
  
	
  	
  	
  	
  </xs:sequence>	
  
	
  	
  </xs:complexType>	
  
</xs:element>
XSD Declaração - Passo 6
<xs:attribute	
  name="ordemid"	
  type="xs:string"	
  	
  
use="required"/>
XSD Declaração - Passo 7
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"	
  ?>	
  
<xs:schema	
  xmlns:xs="http://www.w3.org/2001/XMLSchema">	
  
<xs:element	
  name="ordemCompra">	
  
	
  	
  <xs:complexType>	
  
	
  	
  	
  	
  <xs:sequence>	
  
	
  	
  	
  	
  	
  	
  <xs:element	
  name="ordemFuncionario"	
  type="xs:string"/>	
  
	
  	
  	
  	
  	
  	
  <xs:element	
  name="enviarPara">	
  
	
  	
  	
  	
  	
  	
  	
  	
  <xs:complexType>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:sequence>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:element	
  name="nome"	
  type="xs:string"/>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:element	
  name="endereco"	
  type="xs:string"/>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:element	
  name="cidade"	
  type="xs:string"/>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:element	
  name="pais"	
  type="xs:string"/>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  </xs:sequence>	
  
	
  	
  	
  	
  	
  	
  	
  	
  </xs:complexType>	
  
	
  	
  	
  	
  	
  	
  </xs:element>	
  
	
  	
  	
  	
  	
  	
  <xs:element	
  name="item"	
  maxOccurs="unbounded">	
  
	
  	
  	
  	
  	
  	
  	
  	
  <xs:complexType>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:sequence>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:element	
  name="descricao"	
  type="xs:string"/>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:element	
  name="nota"	
  type="xs:string"	
  minOccurs="0"/>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:element	
  name="quantidade"	
  type="xs:positiveInteger"/>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <xs:element	
  name="preco"	
  type="xs:decimal"/>	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  </xs:sequence>	
  
	
  	
  	
  	
  	
  	
  	
  	
  </xs:complexType>	
  
	
  	
  	
  	
  	
  	
  </xs:element>	
  
	
  	
  	
  	
  </xs:sequence>	
  
	
  	
  	
  	
  <xs:attribute	
  name="ordemid"	
  type="xs:string"	
  use="required"/>	
  
	
  	
  </xs:complexType>	
  
</xs:element>	
  
</xs:schema>
XSD Elementos Simples
• Um elemento complexo é uma
estrutura XML que contém mais de
um elemento dentro dele.
<xs:element name=“funcionario"
type=“xs:string” />
XSD Elementos Complexos
• Um elemento complexo é uma estrutura XML que contém mais de
um elemento dentro dele.
<xs:element name="funcionario">
<xs:complexType>
<xs:sequence>
<xs:element name="nome" type="xs:string"/>
<xs:element name="sobrenome" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
XSD Tipos de Dados
• XML Schema possuí vários tipos de dados, abaixo
estão a lista dos mais comuns:
• xs:string
• xs:date
• xs:time
• xs:integer
• xs:decimal
• xs:boolean
Exercício 1 - Criar um XSD
para a estrutura abaixo
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"?>	
  
<pessoa>	
  
	
  	
  <nome>Joao	
  Nunes</nome>	
  
</pessoa>
Exercício 2 - Criar um XSD
para a estrutura abaixo
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"?>	
  
<pessoa>	
  
	
  	
  <nome>Joao</nome>	
  
	
  <sobrenome>Nunes</sobrenome>	
  
</pessoa>
Exercício 3 - Criar um XSD
para a estrutura abaixo
Elementos XSD Simples
com Valor Padrão
• O valor padrão (default) é um valor aplicado ao
elemento, porém, o mesmo pode ser modificado.
<xs:element	
  name="pais"	
  type=“xs:string"	
  
default="Brasil"	
  />	
  
• O valor fixo (fixed) é um valor aplicado ao elemento,
porém, e o mesmo não poderá ser modificado, o
elemento poderá ser deixado em brando que o mesmo
receberá o valor padrão.
<xs:element	
  name="pais"	
  type=“xs:string"	
  
fixed=“Brasil"	
  />
Elementos XSD Simples
com atributos
<xs:element	
  name="pais">	
  	
  
<xs:complexType>	
  
<xs:simpleContent>	
  
<xs:extension	
  base=“xs:string”>	
  
<xs:attribute	
  name=“codigo"	
  
type=“xs:string”	
  />	
  
</xs:extension>	
  
</xs:simpleContent>	
  
</xs:complexType>	
  
</xs:element>
Exercício 4 - Criar um XSD
para a estrutura abaixo
<?xml	
  version="1.0"	
  encoding="UTF-­‐8"?>	
  
<pessoa>	
  
	
  	
  <nome	
  idade="18">Joao	
  Nunes</nome>	
  
</pessoa>
Exercício 5 - Criar um XSD
para a estrutura abaixo
<?xml version="1.0" encoding="UTF-8"?>
<!-- Aqui começa o email -->
<mensagem>
<!-- quem enviou a mensagem -->
<de id="1">algu&#233;m</de>
<para>uma pessoa</para>
<assunto>digite o assunto</assunto>
<texto>abcdefghijk</texto>
</mensagem>
Exercício 6- Criar um XSD para o XML
XSD para Organização e Transferência de Dados para Web

Más contenido relacionado

La actualidad más candente

Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Javaarmeniocardoso
 
Plano gerenciamento de projeto
Plano gerenciamento de projetoPlano gerenciamento de projeto
Plano gerenciamento de projetoMarjorie
 
proyectos informaticos
proyectos informaticosproyectos informaticos
proyectos informaticossopaipilla
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareEduardo Santos
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Análise de Plataformas de Gestão de Conteúdos
Análise de Plataformas de Gestão de ConteúdosAnálise de Plataformas de Gestão de Conteúdos
Análise de Plataformas de Gestão de ConteúdosRita Monteiro
 
Análise de Plataformas de Gestão de Conteúdos
Análise de Plataformas de Gestão de ConteúdosAnálise de Plataformas de Gestão de Conteúdos
Análise de Plataformas de Gestão de ConteúdosHenriqueta Sofia Djalo
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02thomasdacosta
 
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasLeinylson Fontinele
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLRildo (@rildosan) Santos
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 

La actualidad más candente (20)

Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
Plano gerenciamento de projeto
Plano gerenciamento de projetoPlano gerenciamento de projeto
Plano gerenciamento de projeto
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
proyectos informaticos
proyectos informaticosproyectos informaticos
proyectos informaticos
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de Software
 
Html full
Html fullHtml full
Html full
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Aula 7 banco de dados
Aula 7   banco de dadosAula 7   banco de dados
Aula 7 banco de dados
 
Aula 4 – Linguagem HTML - Imagens e links
Aula 4 – Linguagem HTML - Imagens e linksAula 4 – Linguagem HTML - Imagens e links
Aula 4 – Linguagem HTML - Imagens e links
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Análise de Plataformas de Gestão de Conteúdos
Análise de Plataformas de Gestão de ConteúdosAnálise de Plataformas de Gestão de Conteúdos
Análise de Plataformas de Gestão de Conteúdos
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
Análise de Plataformas de Gestão de Conteúdos
Análise de Plataformas de Gestão de ConteúdosAnálise de Plataformas de Gestão de Conteúdos
Análise de Plataformas de Gestão de Conteúdos
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Computação Forense
Computação ForenseComputação Forense
Computação Forense
 
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 

Similar a XSD para Organização e Transferência de Dados para Web

Aplicando Transformação em XML usando XSLT e XSL-FO - 2
Aplicando Transformação em XML usando XSLT e XSL-FO - 2Aplicando Transformação em XML usando XSLT e XSL-FO - 2
Aplicando Transformação em XML usando XSLT e XSL-FO - 2Vivian Motti
 
XML e Banco de Dados XML Nativo
XML e Banco de Dados XML NativoXML e Banco de Dados XML Nativo
XML e Banco de Dados XML NativoGPrimola
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Vivian Motti
 
02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTML02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTMLCésar Augusto Pessôa
 
Pro php and xml web services xml canonical
Pro php and xml web services   xml canonicalPro php and xml web services   xml canonical
Pro php and xml web services xml canonicaldiogofranciscorocha
 
A e xtensible markup language (xml)
A e xtensible markup language (xml)A e xtensible markup language (xml)
A e xtensible markup language (xml)Liliana Costa
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Vivian Motti
 
Introdução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPIntrodução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPUniversidade de São Paulo
 

Similar a XSD para Organização e Transferência de Dados para Web (20)

Aplicando Transformação em XML usando XSLT e XSL-FO - 2
Aplicando Transformação em XML usando XSLT e XSL-FO - 2Aplicando Transformação em XML usando XSLT e XSL-FO - 2
Aplicando Transformação em XML usando XSLT e XSL-FO - 2
 
XML e Banco de Dados XML Nativo
XML e Banco de Dados XML NativoXML e Banco de Dados XML Nativo
XML e Banco de Dados XML Nativo
 
JustJava 2004: JAXB
JustJava 2004: JAXBJustJava 2004: JAXB
JustJava 2004: JAXB
 
Banco de Dados XML
Banco de Dados XMLBanco de Dados XML
Banco de Dados XML
 
12 sax
12 sax12 sax
12 sax
 
XML_WS.pdf
XML_WS.pdfXML_WS.pdf
XML_WS.pdf
 
Xml pucminas2013
Xml pucminas2013Xml pucminas2013
Xml pucminas2013
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
 
eXtensible Markup Language (XML)
eXtensible Markup Language (XML)eXtensible Markup Language (XML)
eXtensible Markup Language (XML)
 
02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTML02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTML
 
Xml
XmlXml
Xml
 
Tecnologias XML e XML no SQL Server 2016
Tecnologias XML eXML no SQL Server 2016Tecnologias XML eXML no SQL Server 2016
Tecnologias XML e XML no SQL Server 2016
 
Pro php and xml web services xml canonical
Pro php and xml web services   xml canonicalPro php and xml web services   xml canonical
Pro php and xml web services xml canonical
 
A e xtensible markup language (xml)
A e xtensible markup language (xml)A e xtensible markup language (xml)
A e xtensible markup language (xml)
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
 
XML - Parte 3
XML - Parte 3XML - Parte 3
XML - Parte 3
 
Parte5 xml
Parte5 xmlParte5 xml
Parte5 xml
 
Introdução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPIntrodução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USP
 
Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016
 
XML - Parte 2
XML - Parte 2XML - Parte 2
XML - Parte 2
 

Más de Rudson Kiyoshi Souza Carvalho

Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoRudson Kiyoshi Souza Carvalho
 
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. Carvalho
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. CarvalhoPalestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. Carvalho
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. CarvalhoRudson Kiyoshi Souza Carvalho
 

Más de Rudson Kiyoshi Souza Carvalho (16)

Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
Aula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de DocumentoAula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de Documento
 
Aula Introdução a Linguagem XML
Aula Introdução a Linguagem XMLAula Introdução a Linguagem XML
Aula Introdução a Linguagem XML
 
Aula MS Project Gestão de Projetos
Aula MS Project Gestão de ProjetosAula MS Project Gestão de Projetos
Aula MS Project Gestão de Projetos
 
Aula Gestão de Projetos Escopo, Tempo e Custo
Aula Gestão de Projetos Escopo, Tempo e CustoAula Gestão de Projetos Escopo, Tempo e Custo
Aula Gestão de Projetos Escopo, Tempo e Custo
 
Aula Gestão de Projetos
Aula Gestão de ProjetosAula Gestão de Projetos
Aula Gestão de Projetos
 
Marketing inteligente
Marketing inteligenteMarketing inteligente
Marketing inteligente
 
Data Warehouse - Modelagem
Data Warehouse - ModelagemData Warehouse - Modelagem
Data Warehouse - Modelagem
 
Business Intelligence - Data Warehouse
Business Intelligence - Data WarehouseBusiness Intelligence - Data Warehouse
Business Intelligence - Data Warehouse
 
Maven introdução Muito Rápida
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
 
Introdução ao banco de dados
Introdução ao banco de dadosIntrodução ao banco de dados
Introdução ao banco de dados
 
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. Carvalho
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. CarvalhoPalestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. Carvalho
Palestra Anhanguera de Business intelligence. Prof Rudson Kiyoshi S. Carvalho
 

XSD para Organização e Transferência de Dados para Web

  • 1. Linguagem para Organização e Transferência de dados para Web. Prof. Rudson Kiyoshi S. Carvalho Anhanguera - 2015 Parte 4 - XSD
  • 3. XML Schema - XSD • XSD - Xml Schema Definition • Um XML Schema, descreve a estrutura de um arquivo XML, assim como o DTD o XML Schema define um XML válido. • Define: • define os elementos que podem aparecer no documento. • define os atributos que podem aparecer no documento. • define quais elementos serão elementos filhos. • define a ordem dos elementos. • define o número de elementos filhos. • define onde um elemento é vazio ou pode conter um texto. • define tipos de dados para elementos e atributos. • define valores padrões para elementos e atributos.
  • 4. XML bem formado e válido • Segundo Myer (2005) , existem dois tipo de “legalidade” de documentos XML: 1. Documentos bem formado; 2. Documentos válidos;
  • 5. DTD x XSD • O XSD, escrito em XML, é mais poderoso e potente que um DTD. Alguns exemplos desta capacidade incluem suas definições para tipos de dados, que lhe permite especificar quando um elemento deve possuir um dado como um valor Inteiro, Data ou String. • Conforme o W3C, o XML Schema tem exatamente o mesmo propósito que o DTD, porém, com o intuito de ser o sucessor do DTD.
  • 7. Razões para o uso do XSD • XML Schemas são extensíveis para adições futuras. • XML Schemas são mais ricos e mais úteis que os DTDs. • XML Schemas são escritos em XML. • XML Schemas suportam tipos de dados. • XML Schemas suportam namespaces.
  • 8. XSD Referencia- Exemplo <?xml  version="1.0"  encoding="UTF-­‐8"?>   <ordemCompra  ordemid="889923"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-­‐instance"   xsi:noNamespaceSchemaLocation="ordemCompra.xsd">      <ordemFuncionario>Joao  Nunes</ordemFuncionario>      <enviarPara>          <nome>Cassio  Adriano</nome>          <endereco>Rua  de  Teste</endereco>          <cidade>Sao  Paulo</cidade>          <pais>Brasil</pais>      </enviarPara>      <item>          <descricao>Boneca  Barbie</descricao>          <nota>Edição  Especial</nota>          <quantidade>1</quantidade>          <preco>180,90</preco>      </item>   </ordemCompra>
  • 9. XSD Declaração - Passo 1 <?xml  version="1.0"  encoding="UTF-­‐8"  ?>   <xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema">   ...   </xs:schema>   O Atributo xmlns indica que os elementos utilizados no documento XSD como tipos de dados (schema, element, complexType, sequence, string, boolean, etc…) vêm do namespace “http:// www.w3.org/2001/XMLSchema”. Note também que o prefixo “xs" é adicionado de forma que todos os elementos utilizados neste documento deveram ser prefixados com “xs".
  • 10. XSD Declaração - Passo 2 <xs:element  name="ordemCompra">      <xs:complexType>          <xs:sequence>              ...          </xs:sequence>      </xs:complexType>   </xs:element>
  • 11. XSD Declaração - Passo 3 <xs:element  name="ordemFuncionario"   type="xs:string"/>
  • 12. XSD Declaração - Passo 4 <xs:element  name="enviarPara">      <xs:complexType>          <xs:sequence>              <xs:element  name="nome"  type="xs:string"/>              <xs:element  name="endereco"  type="xs:string"/>              <xs:element  name="cidade"  type="xs:string"/>              <xs:element  name="pais"  type="xs:string"/>          </xs:sequence>      </xs:complexType>   </xs:element>
  • 13. XSD Declaração - Passo 5 <xs:element  name="item"  maxOccurs="unbounded">      <xs:complexType>          <xs:sequence>              <xs:element  name="descricao"  type="xs:string"/>          <xs:element  name="nota"  type="xs:string"  minOccurs="0"/>          <xs:element  name="quantidade"  type="xs:positiveInteger"/>              <xs:element  name="preco"  type="xs:decimal"/>          </xs:sequence>      </xs:complexType>   </xs:element>
  • 14. XSD Declaração - Passo 6 <xs:attribute  name="ordemid"  type="xs:string"     use="required"/>
  • 15. XSD Declaração - Passo 7 <?xml  version="1.0"  encoding="UTF-­‐8"  ?>   <xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema">   <xs:element  name="ordemCompra">      <xs:complexType>          <xs:sequence>              <xs:element  name="ordemFuncionario"  type="xs:string"/>              <xs:element  name="enviarPara">                  <xs:complexType>                      <xs:sequence>                          <xs:element  name="nome"  type="xs:string"/>                          <xs:element  name="endereco"  type="xs:string"/>                          <xs:element  name="cidade"  type="xs:string"/>                          <xs:element  name="pais"  type="xs:string"/>                      </xs:sequence>                  </xs:complexType>              </xs:element>              <xs:element  name="item"  maxOccurs="unbounded">                  <xs:complexType>                      <xs:sequence>                          <xs:element  name="descricao"  type="xs:string"/>                          <xs:element  name="nota"  type="xs:string"  minOccurs="0"/>                          <xs:element  name="quantidade"  type="xs:positiveInteger"/>                          <xs:element  name="preco"  type="xs:decimal"/>                      </xs:sequence>                  </xs:complexType>              </xs:element>          </xs:sequence>          <xs:attribute  name="ordemid"  type="xs:string"  use="required"/>      </xs:complexType>   </xs:element>   </xs:schema>
  • 16. XSD Elementos Simples • Um elemento complexo é uma estrutura XML que contém mais de um elemento dentro dele. <xs:element name=“funcionario" type=“xs:string” />
  • 17. XSD Elementos Complexos • Um elemento complexo é uma estrutura XML que contém mais de um elemento dentro dele. <xs:element name="funcionario"> <xs:complexType> <xs:sequence> <xs:element name="nome" type="xs:string"/> <xs:element name="sobrenome" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
  • 18. XSD Tipos de Dados • XML Schema possuí vários tipos de dados, abaixo estão a lista dos mais comuns: • xs:string • xs:date • xs:time • xs:integer • xs:decimal • xs:boolean
  • 19. Exercício 1 - Criar um XSD para a estrutura abaixo <?xml  version="1.0"  encoding="UTF-­‐8"?>   <pessoa>      <nome>Joao  Nunes</nome>   </pessoa>
  • 20. Exercício 2 - Criar um XSD para a estrutura abaixo <?xml  version="1.0"  encoding="UTF-­‐8"?>   <pessoa>      <nome>Joao</nome>    <sobrenome>Nunes</sobrenome>   </pessoa>
  • 21. Exercício 3 - Criar um XSD para a estrutura abaixo
  • 22. Elementos XSD Simples com Valor Padrão • O valor padrão (default) é um valor aplicado ao elemento, porém, o mesmo pode ser modificado. <xs:element  name="pais"  type=“xs:string"   default="Brasil"  />   • O valor fixo (fixed) é um valor aplicado ao elemento, porém, e o mesmo não poderá ser modificado, o elemento poderá ser deixado em brando que o mesmo receberá o valor padrão. <xs:element  name="pais"  type=“xs:string"   fixed=“Brasil"  />
  • 23. Elementos XSD Simples com atributos <xs:element  name="pais">     <xs:complexType>   <xs:simpleContent>   <xs:extension  base=“xs:string”>   <xs:attribute  name=“codigo"   type=“xs:string”  />   </xs:extension>   </xs:simpleContent>   </xs:complexType>   </xs:element>
  • 24. Exercício 4 - Criar um XSD para a estrutura abaixo <?xml  version="1.0"  encoding="UTF-­‐8"?>   <pessoa>      <nome  idade="18">Joao  Nunes</nome>   </pessoa>
  • 25. Exercício 5 - Criar um XSD para a estrutura abaixo <?xml version="1.0" encoding="UTF-8"?> <!-- Aqui começa o email --> <mensagem> <!-- quem enviou a mensagem --> <de id="1">algu&#233;m</de> <para>uma pessoa</para> <assunto>digite o assunto</assunto> <texto>abcdefghijk</texto> </mensagem>
  • 26. Exercício 6- Criar um XSD para o XML