Aula Xml Schema - XSD

RudsonKiyoshi 1,521 views 27 slides May 15, 2015
Slide 1
Slide 1 of 27
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27

About This Presentation

Introdução ao XML Schema (XSD)


Slide Content

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="UTF98"?>&
<ordemCompra&ordemid="889923"&
xmlns:xsi="http://www.w3.org/2001/XMLSchema9instance" &
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="UTF98"&?>&
<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="UTF98"&?>&
<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="UTF98"?>&
<pessoa>&
&&<nome>Joao&Nunes</nome>&
</pessoa>

Exercício 2 - Criar um XSD
para a estrutura abaixo
<?xml&version="1.0"&encoding="UTF98"?>&
<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="UTF98"?>&
<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