Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as...

23
Tecnologias XML XML Schema

Transcript of Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as...

Page 1: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

Tecnologias XML

XML Schema

Page 2: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema Documento XML válido Um documento Schema especifica as regras para a

validação de um documento XML Um Schema especifica:

Os elementos e atributos que podem constar do documento

A ordem e número dos elementos filhos Tipos de dados para os elementos e atributos

Um Schema define uma classe de documentos. Documentos XML que referenciam esse Schema são

instâncias dessa classe

Page 3: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

XML

Page 4: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

<?xml version="1.0" ?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://your_namespace"elementFormDefault="qualified">

<xsd:element name="pessoas" > <xsd:complexType> <xsd:sequence> <xsd:element name="pessoa" maxOccurs="unbounded">

<xsd:complexType> <xsd:sequence> <xsd:element name="nome" type="xsd:string" /> <xsd:element name="data-nascimento" >

<xsd:complexType> <xsd:sequence> <xsd:element name="ano" type="xsd:int" /> <xsd:element name="mes" type="xsd:int" /> <xsd:element name="dia" type="xsd:int" /> </xsd:sequence></xsd:complexType>

</xsd:element> <xsd:element name="bi" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element></xsd:sequence></xsd:complexType></xsd:element></xsd:schema>

Page 5: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Estrutura de um Schema

<?xml version="1.0" ?>

<xsd:schema

xmlns:xsd=http://www.w3.org/2001/XMLSchema

targetNamespace=http://your_namespace

elementFormDefault="qualified">

<xsd:element ...

<!– definição de elementos e atributos -->

...

</xsd:schema>

Declaração XML

Root

namespaceprefixo xsd

Page 6: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Namespaces XML Schema <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> Especifica as entidades para definir um

Schema: element, schema,simpleType(XML Schema Schema)

URI -> http://www.w3.org/2001/XMLSchema Prefixo por convenção é xsd:

Page 7: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

XML Schema Instance Namespaces

xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

Deve ser referenciado por documentos instância (XML) que usam entidades definidas neste schema como:

xsi:schemaLocation

xsi:noNamespaceSchemaLocation

Page 8: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Referenciar um Schema no XML – (1) Atributo xsi:noNamespaceSchemaLocation

Documento

pessoas.xsd

<?xml version="1.0" encoding="ISO-8859-1"?>

<pessoas xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation=“pessoas.xsd" >

...

pessoas.xml

Page 9: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Referenciar um Schema no XML – (2) Atributo xsi:schemaLocation

pessoas.xml

pessoas.xsd

 <?xml version="1.0" encoding="ISO-8859-1"?><pessoas xmlns=http://your_namespacexmlns:xsi=http://www.w3.org/2001/XMLSchema-instancexsi:schemaLocation="http://your_namespace pessoas.xsd" >...

<?xml version="1.0" ?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"targetNamespace="http://your_namespace"elementFormDefault="qualified">…

Page 10: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema Definição de elementos

Elemento xsd:element O atributo name especifica o nome do

elemento no XML O atributo type define o tipo de dados do

elemento

<xsd:element name="montante" type="xsd:float">

<montante>123.56</montante>

Page 11: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Tipos simples primitivos<xsd:element name="ano" type="xsd:int" />

Tipos de dados para o conteúdo textual de um elemento ou atributo

String float date (ccyy-mm-dd)

anyURI decimal time (hh:mm:ss.sss)

....

Hierarquia de tipos de dados primitivosanySimpleType –> decimal –> integer -> long ...

Page 12: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:
Page 13: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Tipos simples derivados Derivação por restrição, lista ou união Elemento xsd:simpleType xsd:restriction define restrições

adicionais aos valores do elemento<xsd:element name="percentagem"><xsd:simpleType >

<xsd:restriction base="xsd:int"><xsd:minInclusive value="0" /><xsd:maxInclusive value="100" /></xsd:restriction>

</xsd:simpleType></xsd:element>

Page 14: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema Operadores de restrição – facets

xsd:minInclusive - >= xsd:maxInclusive - <= xsd:length – tamanho fixo (string, listas) xsd:totaldigits – o numero máximo de dígitos xsd:pattern – expressão regular xsd:fractionDigits - número de casas decimais. enumeration – valores numa enumeração

 

Page 15: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Novos tipos de dados simples

Atributo name de xsd:simpleType Usados para definir tipos de dados de elementos

<xsd:simpleType name="Toperador"><xsd:restriction base="xsd:string">

<xsd:enumeration value="91" /><xsd:enumeration value="93" /><xsd:enumeration value="96" />

</xsd:restriction></xsd:simpleType >

<xsd:element name="indicativo" type="Toperador">

Page 16: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Exemplos de restrições xsd:length

xsd:pattern

<xsd:simpleType name="Tcodigo"><xsd:restriction base="xsd:string">

<xsd:length value="7" /></xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="Tbi"><xsd:restriction base="xsd:string"><xsd:pattern value="[0-9]{7}"/></xsd:restriction>

</xsd:simpleType>

Page 17: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Derivação por união

Elemento xsd:union A instância pode conter um dos valores

especificados pelo atributo memberTypes

<xsd:simpleType name="Tmes" >

<xsd:union memberTypes="Tmesstr Tmesnum" />

</xsd:simpleType>

Page 18: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Derivação por lista

Elemento xsd:list Exemplo XML

<web>http://www.dei.isep.ipp.pt http://w2ks.dei.isep.ipp.pt</web>

<xsd:simpleType name="Tenderecosweb" ><xsd:list itemType="xsd:anyURI" /></xsd:simpleType>

Page 19: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Tipo Composto Os elementos de tipo composto podem conter

elementos filhos e atributos Um elemento com atributos é sempre do tipo

composto declarado usando o elemento complexType

<xsd:element name="data-nascimento" ><xsd:complexType><xsd:sequence><xsd:element name="ano" type="xsd:int" /><xsd:element name="mes" type="xsd:int" /><xsd:element name="dia" type="xsd:int" /></xsd:sequence></xsd:complexType>

</xsd:element>

Page 20: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Composição dos sub-elementos num tipo composto sequence – especifica uma sequência com

uma ordem fixa choice - especifica uma escolha de um

elemento, entre os elementos declarados all – elementos são opcionais (?) e não têm

ordem fixa

Page 21: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

XML Schema

Restrições de ocorrência definir o modo como os elementos ocorrem Atributos minOccurs e maxoccurs Usados nos operadores de composição ou na

declaração de elementos

<xsd:element name=“grupo” > <xsd:complexType>

<xsd:sequence maxOccurs=“2” > <element name=“aluno”

type=“Taluno”><xsd:element name="autor" type="xsd:string" minOccurs="1" maxOccurs="unbounded" />

Page 22: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

Declaração de atributosElemento xsd:attribute O atributo name especifica o nome e o atributo type

o tipo de dados o tipo de dados é do tipo simples primitivo ou

derivado declaração é feita dentro do elemento complexType

depois dos elementos Atributo use especifica a ocorrência

required - o atributo é obrigatório optional - o atributo é opcional (por omissão) prohibited - o atributo deve ser omitido

Page 23: Tecnologias XML XML Schema. XML Schema Documento XML válido Um documento Schema especifica as regras para a validação de um documento XML Um Schema especifica:

Exemplo Schema com atributos

<xsd:element name="pessoa" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="nome" type="xsd:string" /> <xsd:element name=“dnascimento" type="xsd:date" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:string"

use="required" /> </xsd:complexType></xsd:element>

Atributo depois dos elementos

<pessoa id=“P123"> <nome>António José Silva</nome> <dnascimento>2004-07-12</dnascimento></pessoa>