A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003

Apresentações semelhantes


Apresentação em tema: "Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003"— Transcrição da apresentação:

1 Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003
XML Schema Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003 Material elaborado por Lisandra Cazassa Fumagalli

2 XML Schema: O que é? (1/2) É uma Recomendação W3C (Maio/2001);
É uma alternativa para o DTD baseada em XML; Descreve a estrutura de um documento XML; A linguagem XML Schema é também referenciada como XML Schema Definition (XSD).

3 XML Schema: O que é? (2/2) É extensível para futuras adições;
É mais rico e mais útil que os DTD’s; É escrito em XML; Suporta tipos de dados; Suporta namespaces. Pelo fato de suportar tipos de dados é mais fácil: descrever o conteúdo permitido ao documento, validar a corretude dos dados, definir padrões de dados, converter dados entre diferentes tipos de dados. Pelo fato de ser escrito em XML não é necessário aprender uma outra linguagem, pode-se utilizar o editor XML para editar arquivos Schema, pode-se transformar o arquivo Schema com a XSLT.

4 Introdução (1/2) Um XML Schema define:
elementos que podem aparecer em um documento; atributos que podem aparecer em um documento; quais elementos são elementos filhos; o ordem dos elementos filhos; A proposta do XML Schema é definir blocos válidos de um documento XML, como um DTD.

5 Introdução (2/2) o número de elementos filhos;
se um elemento é vazio ou poder incluir algum texto; os tipos de dados para elementos e atributos; valores default e fixos para elementos e atributos.

6 Exemplo <?xml version=“1.0”?>
<xs:schema xmlns:xs=“ <xs:element name=“note”> <xs:complexType> <xs:sequence> <xs:element name=“to” type=“xs:string”/> <xs:element name=“from” type=“xs:string”/> <xs:element name=“heading” type=“xs:string”/> <xs:element name=“body” type=“xs:string”/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> O elemento note é de um tipo complexo porque contém outros elementos. Os outros elementos (to, from, heading, body) são tipos simples porque eles não contêm outros elementos.

7 Elemento <schema>
O elemento <schema> é o elemento raiz de todo XML Schema! <?xml version=“1.0”?> <xs:schema xmlns:xs=“ ... </xs:schema> O elemento <schema> pode conter alguns atributos. O fragmento destacado indica que os elementos e tipos de dados usados no Schema (schema, element, complexType, sequence, string, booleas, etc.) vêm do namespace “ Isto também significa que os elementos e tipos de dados que provêm desse namespace devem ser prefixados com xs:

8 Elemento Simples É um elemento XML que pode conter somente texto; não pode conter outros elementos ou atributos. O texto pode ser de vários tipos diferentes, incluindo tipos customizados. Sintaxe: <xs:element name=“title” type=“xs:string”/>

9 Elemento Simples - exemplo
Elementos XML: <lastname>Smith</lastname> <age>34</age> <dateborn> </dateborn> Definição em XML Schema: <xs:element name=“lastname” type=“xs:string”/> <xs:element name=“age” type=“xs:integer”/> <xs:element name=“dateborn” type=“xs:date”/>

10 Elemento Simples – valores default e fixed
<xs:element name=“color” type=“xs:string” default=“red”/> <xs:element name=“color” type=“xs:string” fixed=“red”/>

11 Tipos de dados comuns em XML Schema
xs:string xs:decimal xs:integer xs:boolean xs:date xs:time

12 Atributos XSD O atributo é declarado como sendo um tipo simples.
Sintaxe: <xs:attribute name=“id” type=“xs:integer”/> Elemento XML com atributo: <lastnane lang=“EN”>Smith</lastname> Definição em XML Schema: <xs:attribute name=“lang” type=“xs:string”/> Apenas elementos complexos possuem atributos, no entanto o atributo em si é declarado como um tipo simples.

13 Atributos – valores default e fixed
<xs:attribute name=“lang” type=“xs:string” default=“EN”/> <xs:attribute name=“lang” type=“xs:string” fixed=“EN”/>

14 Atributos – obrigatórios e opcionais
<xs:attribute name=“lang” type=“xs:string” use=“optional”/> <xs:attribute name=“lang” type=“xs:string” use=“required”/>

15 Restrições (1/5) Restrições são usadas para controlar valores aceitáveis para elementos XML ou atributos. <xs:element name=“age”> <xs:simpleType> <xs:restriction base=“xs:integer”> <xs:minInclusive value=“0”/> <xs:maxInclusive value=“100”/> </xs:restriction> </xs:simpleType> </xs:element> Restrições sobre elementos XML são chamadas de Facets. O exemplo acima define um elemento chamado age com uma restrição. O valor de age não pode ser menor que 0 nem maior que 100.

16 Restrições (2/5) Sobre um conjunto de valores – enumeration:
<xs:element name=“car”> <xs:simpleType> <xs:restriction base=“xs:string”> <xs:enumeration value=“Audi”/> <xs:enumeration value=“Ferrari”/> <xs:enumeration value=“BMW”/> </xs:restriction> </xs:simpleType> </xs:element> No exemplo acima, o elemento car é um tipo simples com uma restrição. Os valores aceitáveis são: Audi, Ferrari, BMW.

17 Restrições (3/5) O mesmo exemplo poderia ser:
<xs:element name="car“ type=“carType”/> <xs:simpleType name=“carType”> <xs:restriction base=“xs:string”> <xs:enumeration value=“Audi”/> <xs:enumeration value=“Ferrari”/> <xs:enumeration value=“BMW”/> </xs:restriction> </xs:simpleType> Neste caso o tipo carType poderia ser utilizado por outros elementos porque ele não é parte do elemento car.

18 Restrições (4/5) Sobre uma série de valores – pattern:
<xs:element name=“letter”> <xs:simpleType> <xs:restriction base=“xs:string”> <xs:pattern value=“[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:pattern value=“[0-9][0-9][0-9]”/> <xs:pattern value=“[A-Z][A-Z][A-Z]”/> <xs:pattern value=“[xyz]”/> No exemplo 1, o elemento letter é um tipo simples com uma restrição. O único valor aceitável é uma das letras minúsculas de a-z. No exemplo 2, o único valor aceitável é uma seqüência de três letras maiúsculas de A-Z. No exemplo 3, o único valor aceitável é uma das letras x ou y ou z. No exemplo 4, o único valor aceitável é uma seqüência com três dígitos de 0 a 9.

19 Restrições (5/5) Sobre tamanho – lenght:
<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>

20 Elemento Complexo Um elemento complexo é um elemento XML que contém outros elementos e/ou atributos. Há quatro tipos: Elementos vazios (empty) Elementos que contêm somente outros elementos Elementos que contêm somente texto Elementos que contêm tanto outros elementos quanto texto

21 Elemento Complexo - Exemplo
Elementos complexos XML: <employee> <firstname>Smith</firstname> <lastname> John </lastname>

22 Elemento Complexo - Exemplo
Definição em XML Schema: <xs:element name=“employee”> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" </xs:sequence> </xs:complexType> </xs:element>

23 Elemento Complexo – Outro exemplo
<xs:element name="employee" type="personinfo"/> <xs:element name="student" type="personinfo"/> <xs:element name="member“ type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" </xs:sequence> </xs:complexType> No exemplo acima, vários elementos podem se referir ao mesmo tipo complexo.

24 Elemento Complexo Vazio
Pode conter atributos mas não pode ter qualquer conteúdo entre as tags de abertura e fechamento. Elemento XML vazio: <product prodid = “1345” />

25 Elemento Complexo Vazio
Definição em XML Schema: <xs:element name="product"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:integer"> <xs:attribute name="prodid" type="xs:positiveInteger"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element>

26 Elemento Complexo Vazio
De forma mais compacta: <xs:element name="product"> <xs:complexType> <xs:attribute name="prodid" type="xs:positiveInteger"/> </xs:complexType> </xs:element>

27 Elemento Complexo com apenas elementos
Definição em XML Schema: <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" </xs:sequence> </xs:complexType> </xs:element> Deve-se notar que a tag <xs:sequence> significa que os elementos definidos firstname e lastname devem aparecer nessa ordem dentro do elemento person.

28 Elemento Complexo com apenas texto
Declaração em XML Schema: <xs:element name="shoesize"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:integer"> <xs:attribute name="country" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <shoesize country="france">35</shoesize>

29 Elemento Complexo com conteúdo misto
Um elemento complexo misto pode conter atributos, elementos e texto. Elemento XML: <letter> Dear Mr.<name>John Smith</name>. Your order <orderid>1032</orderid> will be shipped on <shipdate> </shipdate>. </letter>

30 Elemento Complexo com conteúdo misto
Definição em XML Schema: <xs:element name="letter"> <xs:complexType mixed="true"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="orderid" type="xs:positiveInteger"/> <xs:element name="shipdate" type="xs:date"/> </xs:sequence> </xs:complexType> </xs:element> Para permitir que o caracter do tipo data apareça entre os elementos filhos de letter o atributo mixed deve ser setado para true. A tag <xs:sequence> significa que os elementos definidos (name, orderid e shipdate) devem aparecer nesta ordem dentro do elemento letter.

31 Indicadores de Tipos Complexos
Pode-se controlar como os elementos serão usados nos documentos com indicadores. Há sete tipos de indicadores: 3 de Ordem 2 de Ocorrência 2 de Grupos

32 Indicadores de Tipos Complexos
Ordem: All Choice Sequence Ocorrência: maxOccurs minOccurs Grupo: Group name AttributeGroup name

33 All Especifica que os elementos filhos podem aparecer em qualquer ordem e devem ocorrer uma e apenas uma vez. <xs:element name="person"> <xs:complexType> <xs:all> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" </xs:all> </xs:complexType> </xs:element>

34 Choice Especifica que tanto um elemento filho quanto o outro podem ocorrer. <xs:element name="person"> <xs:complexType> <xs:choice> <xs:element name="employee" type="employee"/> <xs:element name="member" type="member"/> </xs:choice> </xs:complexType> </xs:element>

35 Sequence Especifica que os elementos filhos devem aparecer em um ordem espeçífica. <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" </xs:sequence> </xs:complexType> </xs:element>

36 maxOccurs minOccurs Especificam o número máximo e mínimo, respectivamente, que um elemento pode ocorrer. <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="full_name" type="xs:string"/> <xs:element name="child_name" type="xs:string" maxOccurs="10" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element>

37 Group Indicadores de grupo são usados para definir conjuntos de elementos relacionados. Elementos: <xs:group name=“groupname”> ... </xs:group> Atributos: <xs:attributeGroup name=“groupname”> </xs:attributeGroup>

38 Element Group Deve-se definir um all, choice ou sequence dentro de uma declaração de grupo. Depois de definido um grupo, pode-se o referenciar em outra definição de grupo ou de tipo complexo.

39 Attribute Group O exemplo define um atributo denominado personattrgroup. Depois de definido um atributo, pode-se o referenciar em outra definição de grupo ou de tipo complexo.


Carregar ppt "Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003"

Apresentações semelhantes


Anúncios Google