1. Trang chủ >
  2. Công Nghệ Thông Tin >
  3. Cơ sở dữ liệu >

Example 30.7 - XML Query Data Model

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.7 MB, 156 trang )


Example 30.7 - XML Query Data Model



© Pearson Education Limited 1995, 2005



119



Example 30.7 - XML Query Data Model



© Pearson Education Limited 1995, 2005



120



Example 30.7 - XML Query Data Model



121



© Pearson Education Limited

1995, 2005



Example 30.7 - XML Query Data Model



© Pearson Education Limited 1995, 2005



122



Example 30.7 - XML Query Data Model



123



© Pearson Education Limited

1995, 2005



XQuery Formal Semantics



x



‘goal is to complement XPath/XQuery spec, by

defining

meaning

of

expressions

with

mathematical

rigor.

A

rigorous

formal

semantics clarifies intended meaning of the

English specification, ensures that no corner

cases are left out, and provides reference for

implementation’.

Provides implementors with a processing

model and a complete description of the

language’s static and dynamic semantics.

© Pearson Education Limited 1995, 2005



124



XQuery Formal Semantics – Main Phases

x



x

x



x



Parsing, ensures input expression is instance of

language defined by the grammar rules and then

builds an internal parse tree.

Normaliz ation, converts expression into an XQuery

Core expression.

Static ty pe analy sis (optional), checks whether each

(core) expression is type safe and, if so, determines

its static type. If expression is not type-safe, type

error is raised; otherwise, parse tree built with each

subexpression annotated with its static type.

Dy namic ev aluation, computes value of the

expression from parse tree. May result in a dynamic

error, either a type error (if static type analysis has

done) or a non-type error.

125

© Pearson Education Limited 1995, 2005



XQuery Formal Semantics – Main Phases



© Pearson Education Limited 1995, 2005



126



XQuery Formal Semantics – Normalization

x



x



x



Takes full XQuery expression and transforms it into

an equivalent expression in the core XQuery.

Written as follows:

[Expr]Expr

==

CoreExpr

States that Expr is normalized to CoreExpr (Expr

subscript indicates an expression; other values

possible; e.g. Axis).



© Pearson Education Limited 1995, 2005



127



XQuery Formal Semantics – Normalization

x



FLWOR expression covered by two sets of rules; first

splits expression at clause level then applies further

normalization to each clause:



[(ForClause | LetClause | W hereClause | OrderBy Clause ) FLW ORExpr] Expr

==

[(ForClause | LetClause | W hereClause | OrderBy Clause )] FLWOR

([FLW ORExpr] Expr)

[(ForClause | LetClause | W hereClause | OrderBy Clause ) RETURN

Expr] Expr

==

[(ForClause | LetClause | W hereClause | OrderBy Clause )] FLWOR ([Expr] Expr)



© Pearson Education Limited 1995, 2005



128



XQuery Formal Semantics – Normalization

x



Second set applies to FOR and LET clauses

and transforms each into series of nested

clauses, each of which binds one variable.

For example, for the FOR clause we have:



[FOR varRef 1 TypeDec 1 ? PositionalVar1 ? IN Expr1 , …,

varRef n TypeDec n? PositionalVarn? IN Exprn] FLWOR(Expr)

==

FOR varRef 1 TypeDec 1 ? PositionalVar1 ? IN [Expr1 ] Expr RETURN



FOR varRef n TypeDec n? PositionalVarn? IN [Exprn] Expr RETURN

Expr

© Pearson Education Limited 1995, 2005



129



Xem Thêm
Tải bản đầy đủ (.ppt) (156 trang)

×