SlideShare uma empresa Scribd logo
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
Aula Xml Schema - XSD

Mais conteúdo relacionado

Mais procurados

Prototipagem
PrototipagemPrototipagem
Prototipagemjwainer
 
UML
UMLUML
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
Rademaker Siena
 
UML
UMLUML
Curso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTMLCurso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTML
Rodrigo Bueno Santa Maria, BS, MBA
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Aricelio Souza
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
Cloves da Rocha
 
Curso de css3 unidade 1 - introdução ao css
Curso de css3   unidade 1 - introdução ao cssCurso de css3   unidade 1 - introdução ao css
Curso de css3 unidade 1 - introdução ao css
Léo Dias
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Rodrigo Bueno Santa Maria, BS, MBA
 
Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
Rayol Neto
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
Rodrigo Cascarrolho
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1
Natanael Simões
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Leinylson Fontinele
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
Léo Dias
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
Gabriel Moura
 
Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)Carlos Alberto
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: Introdução
Jessyka Lage
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareelliando dias
 
Arquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introduçãoArquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introdução
Morvana Bonin
 

Mais procurados (20)

Prototipagem
PrototipagemPrototipagem
Prototipagem
 
UML
UMLUML
UML
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
UML
UMLUML
UML
 
Curso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTMLCurso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTML
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Curso de css3 unidade 1 - introdução ao css
Curso de css3   unidade 1 - introdução ao cssCurso de css3   unidade 1 - introdução ao css
Curso de css3 unidade 1 - introdução ao css
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)
 
Aula 2 banco de dados
Aula 2   banco de dadosAula 2   banco de dados
Aula 2 banco de dados
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: Introdução
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introduçãoArquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introdução
 

Semelhante a Aula Xml Schema - XSD

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
Vivian 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 Nativo
GPrimola
 
Banco de Dados XML
Banco de Dados XMLBanco de Dados XML
Banco de Dados XML
Tiago R. Sampaio
 
12 sax
12 sax12 sax
12 sax
ZdeLucas
 
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
Vivian Motti
 
eXtensible Markup Language (XML)
eXtensible Markup Language (XML)eXtensible Markup Language (XML)
eXtensible Markup Language (XML)
Carlos Henrique Martins da Silva
 
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
César Augusto Pessôa
 
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
Rogério Moraes de Carvalho
 
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
diogofranciscorocha
 
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 - 3
Vivian Motti
 
XML - Parte 3
XML - Parte 3XML - Parte 3
XML - Parte 3
Aldo de Queiroz Jr
 
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
Universidade de São Paulo
 
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
Rogério Moraes de Carvalho
 
XML - Parte 2
XML - Parte 2XML - Parte 2
XML - Parte 2
Aldo de Queiroz Jr
 

Semelhante a Aula Xml Schema - XSD (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
 

Mais de Rudson Kiyoshi Souza Carvalho

Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
Rudson Kiyoshi Souza Carvalho
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
Rudson Kiyoshi Souza Carvalho
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
Rudson Kiyoshi Souza Carvalho
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
Rudson Kiyoshi Souza Carvalho
 
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
Rudson Kiyoshi Souza Carvalho
 
Aula Introdução a Linguagem XML
Aula Introdução a Linguagem XMLAula Introdução a Linguagem XML
Aula Introdução a Linguagem XML
Rudson Kiyoshi Souza Carvalho
 
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
Rudson Kiyoshi Souza Carvalho
 
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
Rudson Kiyoshi Souza Carvalho
 
Aula Gestão de Projetos
Aula Gestão de ProjetosAula Gestão de Projetos
Aula Gestão de Projetos
Rudson Kiyoshi Souza Carvalho
 
Marketing inteligente
Marketing inteligenteMarketing inteligente
Marketing inteligente
Rudson Kiyoshi Souza Carvalho
 
Data Warehouse - Modelagem
Data Warehouse - ModelagemData Warehouse - Modelagem
Data Warehouse - Modelagem
Rudson Kiyoshi Souza Carvalho
 
Business Intelligence - Data Warehouse
Business Intelligence - Data WarehouseBusiness Intelligence - Data Warehouse
Business Intelligence - Data Warehouse
Rudson Kiyoshi Souza Carvalho
 
Maven introdução Muito Rápida
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
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. Carvalho
Rudson 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. Carvalho
Rudson Kiyoshi Souza Carvalho
 

Mais 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
 

Aula Xml Schema - XSD

  • 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