1 / 39

XML Schema

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;

alesia
Télécharger la présentation

XML Schema

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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.

  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;

  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=“http://www.w3.org/2001/XMLSchema”> <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>

  7. Elemento <schema> O elemento <schema> é o elemento raiz de todo XML Schema! <?xml version=“1.0”?> <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”> ... </xs:schema>

  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>1970-05-26</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”/>

  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>

  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>

  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>

  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=“[A-Z][A-Z][A-Z]”/> <xs:pattern value=“[xyz]”/> <xs:pattern value=“[0-9][0-9][0-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> <employee>

  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" type="xs:string"/> </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" type="xs:string"/> </xs:sequence> </xs:complexType>

  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" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>

  28. Elemento Complexo com apenas texto <shoesize country="france">35</shoesize> • 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>

  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>2001-07-13</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>

  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. Ordem: All Choice Sequence Ocorrência: maxOccurs minOccurs Grupo: Group name AttributeGroup name Indicadores de Tipos Complexos

  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" type="xs:string"/> </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" type="xs:string"/> </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

  39. Attribute Group

More Related