XML Schema Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003 Material elaborado por Lisandra Cazassa Fumagalli
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).
É extensível para futuras adições; É mais rico e mais útil que os DTDs; É escrito em XML; Suporta tipos de dados; Suporta namespaces. XML Schema: O que é? (2/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; Introdução (1/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. Introdução (2/2)
Exemplo
Elemento O elemento é o elemento raiz de todo XML Schema!...
É 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: Elemento Simples
Elementos XML: Smith Definição em XML Schema: Elemento Simples - exemplo
Elemento Simples – valores default e fixed
Tipos de dados comuns em XML Schema xs:string xs:decimal xs:integer xs:boolean xs:date xs:time
Atributos XSD O atributo é declarado como sendo um tipo simples. Sintaxe: Elemento XML com atributo: Smith Definição em XML Schema:
Atributos – valores default e fixed
Atributos – obrigatórios e opcionais
Restrições (1/5) Restrições são usadas para controlar valores aceitáveis para elementos XML ou atributos.
Sobre um conjunto de valores – enumeration: Restrições (2/5)
O mesmo exemplo poderia ser: Restrições (3/5)
Sobre uma série de valores – pattern: Restrições (4/5)
Sobre tamanho – lenght: Restrições (5/5)
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 Elemento Complexo
Elementos complexos XML: Smith John Elemento Complexo - Exemplo
Definição em XML Schema: <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> Elemento Complexo - Exemplo
<xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> Elemento Complexo – Outro exemplo
Elemento Complexo Vazio Pode conter atributos mas não pode ter qualquer conteúdo entre as tags de abertura e fechamento. Elemento XML vazio:
Definição em XML Schema: <xs:attribute name="prodid" type="xs:positiveInteger"/> Elemento Complexo Vazio
De forma mais compacta: <xs:attribute name="prodid" type="xs:positiveInteger"/> Elemento Complexo Vazio
Definição em XML Schema: <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> Elemento Complexo com apenas elementos
Declaração em XML Schema: <xs:attribute name="country" type="xs:string"/> Elemento Complexo com apenas texto 35
Um elemento complexo misto pode conter atributos, elementos e texto. Elemento XML: Dear Mr. John Smith. Your order 1032 will be shipped on Elemento Complexo com conteúdo misto
Definição em XML Schema: <xs:element name="name" type="xs:string"/> <xs:element name="orderid" type="xs:positiveInteger"/> <xs:element name="shipdate" type="xs:date"/> Elemento Complexo com conteúdo misto
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
Indicadores de Tipos Complexos Ordem: All Choice Sequence Ocorrência: maxOccurs minOccurs Grupo: Group name AttributeGroup name
All Especifica que os elementos filhos podem aparecer em qualquer ordem e devem ocorrer uma e apenas uma vez. <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/>
Choice Especifica que tanto um elemento filho quanto o outro podem ocorrer. <xs:element name="employee" type="employee"/> <xs:element name="member" type="member"/>
Sequence Especifica que os elementos filhos devem aparecer em um ordem espeçífica. <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/>
maxOccurs minOccurs Especificam o número máximo e mínimo, respectivamente, que um elemento pode ocorrer. <xs:element name="full_name" type="xs:string"/> <xs:element name="child_name" type="xs:string" maxOccurs="10" minOccurs="0" />
Group Indicadores de grupo são usados para definir conjuntos de elementos relacionados. Elementos:... Atributos:...
Element Group
Attribute Group