09.07.2015 Views

NameSpaces e XML Schema

NameSpaces e XML Schema

NameSpaces e XML Schema

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Usando Namespaces• São definidas através do atributo“xmlns:” o qual declara o namespace eo prefixo para elementos e atributos...... Um paragrafo HTML.......Usando Namespaces• Um elemento pode declarar mais deum namespace...Um paragrafo do livro...Um paragrafo de código HTML...5


Usando Namespaces• A definição pode ser feita em qualquerelemento– Desde que o vocabulário de nomes seja usadosomente na subárvore do elemento


Namespace• Um atributo que pertence a mesma namespace doelemento.... .... ....... .... ...Namespace e a DTD• Exemplo:


Limitações do DTD• Impõe ordem– É ruim para representar elementosdesordenados• Um único tipo atômico (PCDATA)– Não tem integer, float, data etc• Tipos de elemento são globais– Não pode haver um nome de livro e umnome de pessoa com estruturas diferentes• Não mantém regras de associação– Não se pode dizer que o autor de um livro sópode ser uma referência a uma instância deelemento do tipo pessoa<strong>XML</strong> <strong>Schema</strong>• Da mesma forma que a DTD– Utilizado para descrever a estrutura de umdocumento <strong>XML</strong>• Utiliza sintaxe <strong>XML</strong>• Sintaxe simples: fácil compreensão humana• Introduz tipos de dados– data, string, números, etc.8


<strong>XML</strong> <strong>Schema</strong>• Como em DTD, define:– Elementos e atributos que aparecem em um documento– Aninhamento de elementos– Ordem dos elementos– Número de elementos (“cardinalidade”)– Se um elemento é vazio ou pode incluir texto• Novidades:– Define tipos de dados (data types) para elementos eatributos– Define valores default e fixos para atributos e elementos– Suporta namespaces– Escrito em <strong>XML</strong><strong>XML</strong> <strong>Schema</strong> como sucessor daDTD• Algumas razões para isso:– É extensível• Estender/derivar tipos a partir já existentes– É mais rico e mais útil do que DTD– É escrita em <strong>XML</strong>– Suporta tipos de dados– Suporta namespaces9


Os tipos• Suporte a tipos facilita– Descrever o que é ou não permitido noconteúdo de um elemento– Validar se um dado está correto– Trabalhar com dados vindos de um banco dedados– Definir facetas (restrições) aos dados– Definir padrões de dados (ou formatos)– Converter dados de tipos diferentes• Todos os elementos são associados atipos!!Sintaxe <strong>XML</strong>• Facilita...– Não é necessário aprender outralinguagem– Mesmo editor de texto– Mesmo parser• DOM• SAX– O esquema pode ser alterado usandoXSLT10


Declaração• Ao contrário de DTD– Em <strong>XML</strong><strong>Schema</strong>• Todas as declarações (elementos, atributos,etc.) são feitas externamente ao documento<strong>XML</strong>– Não existe declaração interna (ou subconjuntointerno)• No documento .xsdDeclaração• DTD• <strong>XML</strong> <strong>Schema</strong><strong>XML</strong> <strong>Schema</strong>11


Chamada da DTD ... ... ... ... Declaração de chamadaChamada do <strong>XML</strong> <strong>Schema</strong>


Alguns atributos de 13


Alguns atributos de


Definição de Atributo• Uso da tag –Cria um elemento• Através do atributo name–Associa o elemento a um tipo• Através do atributo type• <strong>XML</strong>:Exemplodorneles@upf.brundisclosed-recipients@...reuniaoNão esquecam da reuniao de amanha15


• <strong>XML</strong> <strong>Schema</strong>:ExemploFaltou o elemento email!!!!Tipos Complexos• Descreve estruturas complexas, comsubelementos e atributos16


Definição de Elemento complexo• Definição de elemento complexo:– Uso de Sintaxe 1:


Definição de atributo de um tipocomplexoO atributo deve ser colocado DEPOIS do sequenceDeclarações locais vs. globais• Pode-se declarar tipos, elementos e atributosglobais ou locais• Declarações globais:– Declarados como filhos do elemento – Declarações podem ser reusadas• Declarações locais– Não são declarados como filhos de 18


Exemplo de declaração localTipo pode ser usado apenas parao elemento endereçoTipo pode ser usado como tipo de outros elementosElemento pode usado como conteúdo de outroselementos19


Referência• Pode-se referenciar um elemento, ou atributo, quetenha sido declarado anteriormente• Elemento, ou atributo, referenciado deve ser global– declarado no nível logo abaixo de schema…Referência20


complexType• Define restrições para o modelo de conteúdode um determinado elemento• Especificação de cardinalidade– xs:minOccurs– xs:maxOccurs• Delimitadores de grupos de elementos– – – Cardinalidade•xs:minOccurs– número mínimo de vezes que umsubelemento pode aparecer.• Default = 1•xs:maxOccurs– número máximo de vezes que umsubelemento pode aparecer.• Default = 1.• Max = unbounded21


Cardinalidade• No <strong>XML</strong>:esta é uma secao com texto e elementoseste eh um paragrafo destro da secaoe esta eh uma referencia dentro da secao22


Delimitadores de grupo•– subelementos devem aparecer na instância <strong>XML</strong>na mesma ordem em que foram declarados noesquema•– somente um dos elementos declarados no grupopode aparecer na instância•– os elementos do grupo podem aparecer uma vezJUNTOS ou nenhuma vez e podem aparecer emqualquer ordem• No <strong>XML</strong> <strong>Schema</strong>:Sequence - exemplo


Sequence – comparando com DTD• No <strong>XML</strong> <strong>Schema</strong>:• Na instancia <strong>XML</strong>:Projeto de Banco de dados989898989SQL Magazine924


Choice – comparando com aDTD• No <strong>XML</strong> <strong>Schema</strong>:


All – comparando com a DTD• No <strong>XML</strong> <strong>Schema</strong>:• Na DTD:Elementos vazios• Declarar elemento somente com atributo:• Instancia <strong>XML</strong>:26


Derivação de Tipos Simples• Tipos simples– Derivados de tipos simples através de•restrição.• Processo:– Um tipo simples é usado com base• sobre ele são aplicadas– facetas ou– expressões regulares.Facetas• Faceta “exclusive”–Limita um tipo simples a valoresmínimo e máximo


Facetas• A faceta “enumeration”– Limita um tipo simples a um conjunto devalores distintos** DTD (só é possível delimitar valores para atributos)28


Facetas• Faceta “pattern”– Possibilita a criação de máscaras para os valores....Os tipos de dados primitivos• xs:string• xs:boolean• xs:decimal• xs:float• xs:double• xs:duration• xs:dateTime• xs:time• xs:date• xs:gYearMonth• xs:gYear• xs:gMonthDay• xs:gDay• xs:gMonth• xs:hexBinary• xs:base64Binary• xs:anyURI• xs:QName• xs:NOTATION29

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!