Escolar Documentos
Profissional Documentos
Cultura Documentos
br
Roteiro
Introduo
Definio Caractersticas
Modelo de Dados
Consultas Expresses Ambiente de Desenvolvimento Concluso
Introduo
Faz parte de um conjunto de ferramentas que tambm inclui:
Xpath
XSLT
Utilizado para transformar documentos XML em outros documentos XML, ou para tipos de documentos reconhecidos por um browser, como HTML.
Xlink
Definio
Feita pela W3C
Xquery uma linguagem para consulta em dados XML. Definida a partir de Quilt e influenciada por OQL, XQL,
XML-QL e Lorel
Surgiu na necessidade de generalizar consultas XML,
Caractersticas
Linguagem Funcional
Fortemente tipada Case-Sensitive Linguagem concisa e facilmente entendida Baseia-se no Modelo de rvore da informao contida no
XML
Modelo de Dados
Sequncias Conjunto ordenado de zero ou mais itens.
Item Valor Atmico ou N
Consultas
Definida atravs de uma expresso Recebe como entrada e produz como sada fragmentos de XML ou valores atmicos Processamento de Entrada: Anlise sinttica e validao transforma documento XML para o modelo de dados do Xquery
Processamento de Sada: Serializao transforma modelo de dados do Xquery em representao de XML
Consultas - Estrutura
Consulta = prlogo + corpo
Prlogo: Declaraes definindo o ambiente de processamento do corpo da consulta
Namespaces Esquemas Funes
Exemplos de Prlogo
Declarao de namespaces:
Declarao de funes:
Corpo - Expresses
Tipos de Expresses
Expresses Primrias Expresses de Caminho Construtores de Elementos Expresses FLWOR Expresses Condicionais Expresses Aritmticas e Lgicas Expresses de Sequncias Expresses Quantificadas Expresses de Tipo
Expresses
Expresses Primrias Literal
Ex.: 12 (integer)
Date(2010-10-05)
Sequncia Valores separados por vrgulas Ex.: 1,2,3 (1),(2,(3)) Referncia de Variveis Uso do $ $start, $stop
Expresses
Expresses Primrias Chamada de funo
Xquery Example
Substring(anticonstitucionalissimamente,1,3) Substring(anticonstitucionalissimamente,1,1) Substring(anticonstitucionalissimamente,1,0) Substring(anticonstitucionalissimamente,3,4) Substring(anticonstitucionalissimamente,2,800) Substring(anticonstitucionalissimamente,-2,6)
Outras Funes
Centenas de funes pr-definidas:
Strings concatenao, comparao, substrings, substituio. Nmeros clculos(soma, valor absoluto, mdia), arredondamento.
Entre outros...
Expresses
Expresso de Caminho Utiliza sintaxe do Xpath Tabela de smbolos para expressar o caminho desejado Uso de Predicados
Smbolo Significado
. .. /
Indica o N Atual Indica o pai do N Atual Indica o n raiz ou um separador entre os passos de um caminho Indica descendente do n atual Indica atributos do n atual Indica qualquer n Utilizado para expresses booleanas Utilizado para selecionar um elemento numa lista de elementos
//
Exemplos:
@ * []
[n]
doc("zoo.xml")/chapter[RANGE 2 TO 5]//figure
Expresses
Construtores de Elementos
Resultado:
<employee empid=1"> <name>Joo Carlos</name> $job <deptno>RH</deptno> <salary>12000</salary> </employee> <employee empid=2"> <name>Wilson</name> $job <deptno>Finances</deptno> <salary>13000</salary> </employee>
for $employee in doc(employees.xml")/employees let $id := $employee/id let $name:= $employee/name . . <employee empid="{$id}"> <name>{$name}</name> $job <deptno>{$deptno}</deptno> <salary>{$SGMLspecialist+100000}</salary> </employee> . .
Expresses
FLWOR (For-Let-Where-Order-Return)
Mltiplas clusulas FOR ou LET Uma clusula WHERE opcional Uma clusula ORDER opcional Uma clusula RETURN
for $d in doc("depts.xml")//deptno let $e := doc("emps.xml")//employee[deptno = $d] where count($e) >= 10 order by avg($e/salary) descending return <big-dept> { $d, <headcount>{count($e)}</headcount>, <avgsal>{avg($e/salary)}</avgsal> } </big-dept>
Expresses
Condicionais
Expresses
Operaes
Aritmticas +(soma) -(subtrao) *(multiplicao) div(divisao retornando decimal) idiv(divisao retornando inteiro) mod(resto da diviso) Comparaes Entre Valores (=,!=,<,>) Entre Ns(is, <<,>>)
Outras Operaes
Operaes Lgicas
And Or
Operaes de Quantificao
some $emp in /emps/employee satisfies ($emp/bonus > 0.25 * $emp/salary) every $part in /parts/part satisfies $part/@discounted
Expresses
Expresses de Tipo
Instance of
Retorna Verdadeiro se o primeiro operando do tipo do segundo operando. Ex.: 5 instance of xs:integer - TRUE
Typeswitch
Expresses
Expresses de Tipo (Cont.) Cast e Castable
Cast Transformao do tipo da expresso em outro tipo. Castable Retorna Verdadeiro se o tipo da expresso pode ser transformado em outro.
Treat
No muda valor, nem tipo dinamicamente. Objetivo de garantir que uma expresso tenha um tipo dinmico esperado. Ex.: $myaddress treat as element(*, USAddress)
Ambiente de Desenvolvimento
Existem ferramentas que auxiliam no uso do Xquery
Edio
XEditor
Ambiente de Desenvolvimento
Mapeamento
XMapping
Ambiente de Desenvolvimento
Debugador
XDebugger
Ambiente de Desenvolvimento
Performance
XProfiler
Concluso
Podemos ver que a linguagem Xquery nos fornece uma
Referncias
http://www.w3.org/TR/xquery/ http://en.wikipedia.org/wiki/XQuery http://www.brics.dk/~amoeller/XML/querying/ http://www.w3schools.com/xquery/xquery_intro.asp http://books.google.com.br/books?id=Q9t4StPhW9AC&pg=PA115&lpg=PA115& dq=xquery+modelo+de+dados&source=bl&ots=IbwkC1Yb8V&sig=1euGaP0Vp NEo78G8wfZAYWCdelw&hl=ptBR&ei=VbqjTLunBoWclgfbp8i5Cw&sa=X&oi=book_result&ct=result&resnum =7&ved=0CDMQ6AEwBg#v=onepage&q=xquery%20modelo%20de%20dados &f=false http://msdn.microsoft.com/pt-br/library/ms175178.aspx http://www.xqueryfunctions.com/ www.research.ibm.com/journal/sj/414/chamberlin.pdf http://www.datypic.com/books/xquery/chapter05.html http://msdn.microsoft.com/en-us/library/ms190451.aspx http://www.stylusstudio.com/xquery.html
Perguntas
???