![07定位鏈接與查詢_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/aa654365-9ab0-4a38-8bac-0c043d62338d/aa654365-9ab0-4a38-8bac-0c043d62338d1.gif)
![07定位鏈接與查詢_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/aa654365-9ab0-4a38-8bac-0c043d62338d/aa654365-9ab0-4a38-8bac-0c043d62338d2.gif)
![07定位鏈接與查詢_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/aa654365-9ab0-4a38-8bac-0c043d62338d/aa654365-9ab0-4a38-8bac-0c043d62338d3.gif)
![07定位鏈接與查詢_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/aa654365-9ab0-4a38-8bac-0c043d62338d/aa654365-9ab0-4a38-8bac-0c043d62338d4.gif)
![07定位鏈接與查詢_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/aa654365-9ab0-4a38-8bac-0c043d62338d/aa654365-9ab0-4a38-8bac-0c043d62338d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、五、XQueryXQuery(XML Query Language,XML查詢語言)是查詢各類XML數(shù)據(jù)源中數(shù)據(jù)的一種語言,當前版本為XQuery 1.0推薦標準(Recommendation),由萬維網(wǎng)聯(lián)盟(W3C)于2007年1月23日推出。XQuery用于查詢(視作數(shù)據(jù)庫的)XML文檔中的數(shù)據(jù),類似于查詢關(guān)系數(shù)據(jù)庫的SQL和查詢面向?qū)ο髷?shù)據(jù)庫的OQL。1概述隨著采用XML存儲、交換和表示的信息的不斷增加,聰明地查詢XML數(shù)據(jù)源的能力變得越來越重要。XML的強大實力之一,是它在表示來自各式各樣數(shù)據(jù)源的許多不同種類信息時的靈活性。為了利用這種靈活性,XML查詢語言必須為檢索和解釋來自這些不同
2、數(shù)據(jù)源的信息提供所需的特性。XQuery是為滿足W3C的XML Query 1.0 Requirements和XML Query Use Cases推薦標準中所確定的需求而設(shè)計的,它被設(shè)計成一種查詢簡潔易懂的語言。它足夠靈活,可查詢范圍寬廣的XML信息源,包括數(shù)據(jù)庫和文檔。XQuery采用的是非XML查詢語法(采用XML語法的查詢語言,參見下面配套標準中 的XQueryX),源自Don Chamberlin等人于2000年底提出的一種XML查詢語言Quilt。XQuery在XML文檔的抽象的邏輯結(jié)構(gòu)上(而不是在其語法表面上)進行操作。該邏輯結(jié)構(gòu)稱為“數(shù)據(jù)模型”,被定義在W3C標準XDM中。XQ
3、uery 1.0是XPath 2.0的一種擴展。任何在語法上有效,并可成功執(zhí)行的表達式,在這兩種語言中都會返回同樣的結(jié)果。因為這兩個語言是如此密切相關(guān),所以它們的語法和語言描述,都來自同一個公共源,以確保一致性;而且這兩個規(guī)范的編輯們,也緊密地工作在一起。1)標準系列XQuery是一個標準系列,其主標準為:l XQuery 1.0(REC: 2007.1.23)XQuery 1.0: An XML Query Language, W3C Recommendation 23 January 2007(XQuery 1.0:一種XML查詢語言)。配套的標準有:l XQueryX(REC: 2007
4、.1.23)XML Syntax for XQuery 1.0 (XQueryX) , W3C Recommendation 23 January 2007(XQuery 1.0的XML語法(XQueryX))。XML查詢語言的語法綁定可能不止一個,XQueryX是XQuery的XML表示,它將XQuery語法的生成式(production)映射到XML生成式。XQueryX可用于分析器重用、對查詢進行查詢、生成查詢、在XML中嵌入查詢等。l XQueryReq(REQ: 2007.3.23)XML Query (XQuery) 1.0 Requirements, W3C Working Gr
5、oup Note 23 March 2007(XML查詢(XQuery) 1.0需求)。為W3C的XQuery數(shù)據(jù)模型和查詢語言規(guī)定目標、需求和使用方案。它還包含每一需求的對應(yīng)狀態(tài),以指明XQuery 1.0的系列W3C標準的狀態(tài)。l XQueryUC(Note: 2007.3.23)XML Query 1.0 Use Cases, W3C Working Group Note 23 March 2007(XML查詢1.0使用案例)。詳細說明XQuery 的使用方案。與XPath 2.0和XSLT 2.0的聯(lián)合標準有:l XDM(REC: 2007.1.23)XQuery 1.0 and XP
6、ath 2.0 Data Model (XDM), W3C Recommendation 23 January 2007(XQuery 1.0和XPath 2.0的數(shù)據(jù)模型(XDM))。定義聯(lián)合標準XDM(XQuery 1.0和XPath 2.0的數(shù)據(jù)模型),它是XPath 2.0、XSLT 2.0、XQuery和其他任意相關(guān)標準的數(shù)據(jù)模型。l XTQS(REC: 2007.1.23)XSLT 2.0 and XQuery 1.0 Serialization, W3C Recommendation 23 January 2007(XSLT 2.0與XQuery 1.0的序列化)。定義將XDM中
7、所定義的數(shù)據(jù)模型實例序列化為八比特組的字節(jié)序列的一種聯(lián)合標準。序列化是一種構(gòu)件,為可被諸如XSLT和XQuery的其他標準使用而設(shè)計的。l XQPFS(REC: 2007.1.23)XQuery 1.0 and XPath 2.0 Formal Semantics, W3C Recommendation 23 January 2007(XQuery 1.0 與XPath 2.0的形式語義)。定義XQuery 1.0 與XPath 2.0的形式(正式)語義的聯(lián)合標準。l XQPFO(REC: 2007.1.23)XQuery 1.0 and XPath 2.0 Functions and Ope
8、rators , W3C Recommendation 23 January 2007(XQuery 1.0與XPath 2.0的函數(shù)和算符)。定義面向XML Schema和XDM中所定義的數(shù)據(jù)類型的構(gòu)造函數(shù)、運算符和函數(shù)的聯(lián)合標準。也討論面向XDM中所定義的節(jié)點和節(jié)點序列的函數(shù)和算符。這些函數(shù)和算符用于XPath 2.0、XQuery 1.0、XSLT 2.0和其他有關(guān)XML標準。所定義的函數(shù)之特征和匯總見XQuery 1.0, XPath 2.0, and XSLT 2.0 Functions and Operators Namespace。正在制定中的與XPath的聯(lián)合標準有:l XQP
9、FTReq()XML Query and XPath Full-Text Requirements, W3C Working Draft 02 May 2003(XML查詢與XPath全文的需求)。規(guī)定在XQuery與XPath 中使用的全文搜索的需求。l XQPFTUC(WD: 2006.5.1)XML Query and XPath Full-Text Use Cases, W3C Working Draft 1 May 2006(XML查詢與XPath全文的使用案例)。l XQPFT(WD: 2006.5.1)XQuery 1.0 and XPath 2.0 Full-Text, W3C
10、 Working Draft 1 May 2006(XML查詢與XPath全文)。定義XQuery 1.0和XPath 2.0的全文之語法和形式語義,它是一種擴展XQuery 1.0和XPath 2.0,使其具有全文搜索能力的語言。正在開發(fā)的XQuery更新工具,讓你編寫的查詢表達式可以修改文檔和保存結(jié)果:l XQueryUF(WD: 2006.7.11)XQuery Update Facility, W3C Working Draft 11 July 2006(XQuery更新工具)。l XQueryUFReq()XQuery Update Facility Requirements, W3
11、C Working Draft 3 June 2005(XQuery更新工具需求)。l XQueryUFUC()XQuery Update Facility Use Cases, W3C Working Draft 8 May 2006(XQuery更新工具使用案例)。W3C已經(jīng)開始著手制訂XQuery標準的下一個版本1.1:l XQueryReq 1.1(WD: 2007.3.23)XML Query (XQuery) 1.1 Requirements, W3C Working Draft 23 March 2007(XML查詢 (XQuery) 1.1需求)。l XQuerySEReq 1
12、.0(WD: 2007.3.23)XQuery Scripting Extension 1.0 Requirements, W3C Working Draft 23 March 2007(XQuery腳本擴展)。由于篇幅和時間的限制,這里只簡單介紹主標準XQuery 1.0的一些基本內(nèi)容。2)語法生成式XQuery的語法采用與XML 1.0類似的EBNF(Extended Backus-Naur Form擴展巴克斯-諾爾范式)來描述,但是也有一些區(qū)別。例如,在XQuery的生成式中,白空符是無關(guān)緊要的。在XQuery 1.0中,共有140條語法生成式(grammar production)規(guī)則
13、,現(xiàn)羅列如下:1 Module := VersionDecl? (LibraryModule | MainModule) 2 VersionDecl := "xquery" "version" StringLiteral ("encoding" StringLiteral)? Separator 3 MainModule := Prolog QueryBody 4 LibraryModule := ModuleDecl Prolog 5 ModuleDecl := "module" "namespace&
14、quot; NCName "=" URILiteral Separator 6 Prolog := (DefaultNamespaceDecl | Setter | NamespaceDecl | Import) Separator)* (VarDecl | FunctionDecl | OptionDecl) Separator)* 7 Setter := BoundarySpaceDecl | DefaultCollationDecl | BaseURIDecl | ConstructionDecl | OrderingModeDecl | EmptyOrderDecl
15、 | CopyNamespacesDecl 8 Import := SchemaImport | ModuleImport 9 Separator := "" 10 NamespaceDecl := "declare" "namespace" NCName "=" URILiteral 11 BoundarySpaceDecl := "declare" "boundary-space" ("preserve" | "strip") 12
16、 DefaultNamespaceDecl := "declare" "default" ("element" | "function") "namespace" URILiteral13 OptionDecl := "declare" "option" QName StringLiteral 14 OrderingModeDecl := "declare" "ordering" ("ordered&quo
17、t; | "unordered") 15 EmptyOrderDecl := "declare" "default" "order" "empty" ("greatest" | "least") 16 CopyNamespacesDecl := "declare" "copy-namespaces" PreserveMode "," InheritMode 17 PreserveMode := &
18、quot;preserve" | "no-preserve" 18 InheritMode := "inherit" | "no-inherit" 19 DefaultCollationDecl := "declare" "default" "collation" URILiteral 20 BaseURIDecl := "declare" "base-uri" URILiteral 21 SchemaImport := &q
19、uot;import" "schema" SchemaPrefix? URILiteral ("at" URILiteral ("," URILiteral)*)? 22 SchemaPrefix := ("namespace" NCName "=") | ("default" "element" "namespace") 23 ModuleImport := "import" "module&q
20、uot; ("namespace" NCName "=")? URILiteral ("at" URILiteral ("," URILiteral)*)? 24 VarDecl := "declare" "variable" "$" QName TypeDeclaration? (":=" ExprSingle) | "external") 25 ConstructionDecl := "declare&
21、quot; "construction" ("strip" | "preserve") 26 FunctionDecl := "declare" "function" QName "(" ParamList? ")" ("as" SequenceType)? (EnclosedExpr | "external") 27 ParamList := Param ("," Param)* 28 Para
22、m := "$" QName TypeDeclaration? 29 EnclosedExpr := "" Expr "" 30 QueryBody := Expr 31 Expr := ExprSingle ("," ExprSingle)* 32 ExprSingle := FLWORExpr | QuantifiedExpr | TypeswitchExpr | IfExpr | OrExpr33 FLWORExpr := (ForClause | LetClause)+ WhereClause? Order
23、ByClause? "return" ExprSingle 34 ForClause := "for" "$" VarName TypeDeclaration? PositionalVar? "in" ExprSingle ("," "$" VarName TypeDeclaration? PositionalVar? "in" ExprSingle)* 35 PositionalVar := "at" "$" Va
24、rName 36 LetClause := "let" "$" VarName TypeDeclaration? ":=" ExprSingle ("," "$" VarName TypeDeclaration? ":=" ExprSingle)* 37 WhereClause := "where" ExprSingle 38 OrderByClause := ("order" "by") | ("stab
25、le" "order" "by") OrderSpecList 39 OrderSpecList := OrderSpec ("," OrderSpec)* 40 OrderSpec := ExprSingle OrderModifier 41 OrderModifier := ("ascending" | "descending")? ("empty" ("greatest" | "least")? ("colla
26、tion" URILiteral)? 42 QuantifiedExpr := ("some" | "every") "$" VarName TypeDeclaration? "in" ExprSingle ("," "$" VarName TypeDeclaration? "in" ExprSingle)* "satisfies" ExprSingle 43 TypeswitchExpr := "typeswitc
27、h" "(" Expr ")" CaseClause+ "default" ("$" VarName)? "return" ExprSingle 44 CaseClause := "case" ("$" VarName "as")? SequenceType "return" ExprSingle 45 IfExpr := "if" "(" Expr ")&
28、quot; "then" ExprSingle "else" ExprSingle 46 OrExpr := AndExpr ( "or" AndExpr )* 47 AndExpr := ComparisonExpr ( "and" ComparisonExpr )* 48 ComparisonExpr := RangeExpr ( (ValueComp | GeneralComp | NodeComp) RangeExpr )? 49 RangeExpr := AdditiveExpr ( "to&q
29、uot; AdditiveExpr )? 50 AdditiveExpr := MultiplicativeExpr ( ("+" | "-") MultiplicativeExpr )* 51 MultiplicativeExpr := UnionExpr ( ("*" | "div" | "idiv" | "mod") UnionExpr )* 52 UnionExpr := IntersectExceptExpr ( ("union" | "
30、;|") IntersectExceptExpr )* 53 IntersectExceptExpr := InstanceofExpr ( ("intersect" | "except") InstanceofExpr )* 54 InstanceofExpr := TreatExpr ( "instance" "of" SequenceType )? 55 TreatExpr := CastableExpr ( "treat" "as" SequenceType
31、 )? 56 CastableExpr := CastExpr ( "castable" "as" SingleType )? 57 CastExpr := UnaryExpr ( "cast" "as" SingleType )? 58 UnaryExpr := ("-" | "+")* ValueExpr 59 ValueExpr := ValidateExpr | PathExpr | ExtensionExpr 60 GeneralComp := "=&qu
32、ot; | "!=" | "<" | "<=" | ">" | ">=" 61 ValueComp := "eq" | "ne" | "lt" | "le" | "gt" | "ge" 62 NodeComp := "is" | "<<" | ">>" 63 Valida
33、teExpr := "validate" ValidationMode? "" Expr "" 64 ValidationMode := "lax" | "strict" 65 ExtensionExpr := Pragma+ "" Expr? "" 66 Pragma := "(#" S? QName (S PragmaContents)? "#)" /* ws: explicit */ 67 PragmaCont
34、ents := (Char* - (Char* '#)' Char*) 68 PathExpr := ("/" RelativePathExpr?) | ("/" RelativePathExpr) | RelativePathExpr /* xgs: leading-lone-slash */ 69 RelativePathExpr := StepExpr ("/" | "/") StepExpr)* 70 StepExpr := FilterExpr | AxisStep 71 AxisStep
35、 := (ReverseStep | ForwardStep) PredicateList 72 ForwardStep := (ForwardAxis NodeTest) | AbbrevForwardStep 73 ForwardAxis := ("child" ":") | ("descendant" ":") | ("attribute" ":") | ("self" ":") | ("descendant-or-se
36、lf" ":") | ("following-sibling" ":") | ("following" ":") 74 AbbrevForwardStep := ""? NodeTest 75 ReverseStep := (ReverseAxis NodeTest) | AbbrevReverseStep 76 ReverseAxis := ("parent" ":") | ("ancestor" &qu
37、ot;:") | ("preceding-sibling" ":") | ("preceding" ":") | ("ancestor-or-self" ":") 77 AbbrevReverseStep := "." 78 NodeTest := KindTest | NameTest 79 NameTest := QName | Wildcard 80 Wildcard := "*" | (NCName ":&q
38、uot; "*") | ("*" ":" NCName) /* ws: explicit */ 81 FilterExpr := PrimaryExpr PredicateList 82 PredicateList := Predicate* 83 Predicate := "" Expr "" 84 PrimaryExpr := Literal | VarRef | ParenthesizedExpr | ContextItemExpr | FunctionCall | OrderedExpr
39、 | UnorderedExpr | Constructor 85 Literal := NumericLiteral | StringLiteral 86 NumericLiteral := IntegerLiteral | DecimalLiteral | DoubleLiteral 87 VarRef := "$" VarName 88 VarName := QName 89 ParenthesizedExpr := "(" Expr? ")" 90 ContextItemExpr := "." 91 Ord
40、eredExpr := "ordered" "" Expr "" 92 UnorderedExpr := "unordered" "" Expr "" 93 FunctionCall := QName "(" (ExprSingle ("," ExprSingle)*)? ")"94 Constructor := DirectConstructor | ComputedConstructor 95 DirectCon
41、structor := DirElemConstructor | DirCommentConstructor | DirPIConstructor 96 DirElemConstructor := "<" QName DirAttributeList ("/>" | (">" DirElemContent* "</" QName S? ">") /* ws: explicit */ 97 DirAttributeList := (S (QName S? "
42、=" S? DirAttributeValue)?)* /* ws: explicit */ 98 DirAttributeValue := ('"' (EscapeQuot | QuotAttrValueContent)* '"') | ("'" (EscapeApos | AposAttrValueContent)* "'") /* ws: explicit */ 99 QuotAttrValueContent := QuotAttrContentChar | Common
43、Content 100 AposAttrValueContent := AposAttrContentChar | CommonContent 101 DirElemContent := DirectConstructor | CDataSection | CommonContent | ElementContentChar 102 CommonContent := PredefinedEntityRef | CharRef | "" | "" | EnclosedExpr 103 DirCommentConstructor := "<!
44、-" DirCommentContents "->" /* ws: explicit */ 104 DirCommentContents := (Char - '-') | ('-' (Char - '-')* /* ws: explicit */ 105 DirPIConstructor := "<?" PITarget (S DirPIContents)? "?>" /* ws: explicit */ 106 DirPIContents := (Char
45、* - (Char* '?>' Char*) /* ws: explicit */ 107 CDataSection := "<!CDATA" CDataSectionContents ">" /* ws: explicit */ 108 CDataSectionContents := (Char* - (Char* '>' Char*) /* ws: explicit */ 109 ComputedConstructor := CompDocConstructor | CompElemConstr
46、uctor | CompAttrConstructor | CompTextConstructor | CompCommentConstructor | CompPIConstructor 110 CompDocConstructor := "document" "" Expr "" 111 CompElemConstructor := "element" (QName | ("" Expr "") "" ContentExpr? ""
47、 112 ContentExpr := Expr 113 CompAttrConstructor := "attribute" (QName | ("" Expr "") "" Expr? "" 114 CompTextConstructor := "text" "" Expr "" 115 CompCommentConstructor := "comment" "" Expr "&qu
48、ot; 116 CompPIConstructor := "processing-instruction" (NCName | ("" Expr "") "" Expr? "" 117 SingleType := AtomicType "?"? 118 TypeDeclaration := "as" SequenceType 119 SequenceType := ("empty-sequence" "(" &quo
49、t;)") | (ItemType OccurrenceIndicator?) 120 OccurrenceIndicator := "?" | "*" | "+" /* xgs: occurrence-indicators */ 121 ItemType := KindTest | ("item" "(" ")") | AtomicType 122 AtomicType := QName 123 KindTest := DocumentTest | Element
50、Test | AttributeTest | SchemaElementTest | SchemaAttributeTest | PITest | CommentTest | TextTest | AnyKindTest 124 AnyKindTest := "node" "(" ")" 125 DocumentTest := "document-node" "(" (ElementTest | SchemaElementTest)? ")" 126 TextTest :=
51、"text" "(" ")" 127 CommentTest := "comment" "(" ")" 128 PITest := "processing-instruction" "(" (NCName | StringLiteral)? ")" 129 AttributeTest := "attribute" "(" (AttribNameOrWildcard ("
52、;," TypeName)?)? ")" 130 AttribNameOrWildcard := AttributeName | "*" 131 SchemaAttributeTest := "schema-attribute" "(" AttributeDeclaration ")" 132 AttributeDeclaration := AttributeName 133 ElementTest := "element" "(" (Eleme
53、ntNameOrWildcard ("," TypeName "?"?)?)? ")" 134 ElementNameOrWildcard := ElementName | "*" 135 SchemaElementTest := "schema-element" "(" ElementDeclaration ")" 136 ElementDeclaration := ElementName 137 AttributeName := QName 138 E
54、lementName := QName 139 TypeName := QName 140 URILiteral := StringLiteral 2基礎(chǔ)XQuery的基本組成模塊為表達式(expression)一個Unicode字符串。該語言提供了幾種表達式,可由關(guān)鍵字、符號和操作數(shù)構(gòu)成。通常,表達式的操作數(shù)是另一些表達式。XQuery允許表達式完全一般性地被嵌套。(但是,不像純功能語言,當在變量的聲明中包含新節(jié)點的構(gòu)造時,它不允許變量替換)似XML,XQuery是一種區(qū)分大小寫的語言。XQuery中的關(guān)鍵字使用小寫字符,而且不被保留,即在XQuery表達式中的名字,允許與關(guān)鍵字相同,但是下
55、列無前綴的函數(shù)名除外:attribute、comment、document-node、element、empty-sequence、if、item、node、processing-instruction、schema-attribute、schema-element、text、typeswitch。定義:在數(shù)據(jù)模型XDM中,值(value)始終是一個序列;序列(sequence)是零或多個項的有序集;項(item)是一個原子值或節(jié)點;原子值(atomic value)是定義在XML Schema中的原子類型(atomic type)值空間中的一個值;節(jié)點(node)是定義在XDM中的節(jié)點類型(
56、node kinds)之一的一個實例;每個節(jié)點都具有唯一的節(jié)點標識(node identity)、類型值和串值,此外,某些節(jié)點還具有名稱。節(jié)點的類型值(typed value)是零或多個原子值的序列;節(jié)點的串值(string value)是一個xs:string類型的值;節(jié)點的名稱(name)是一個 xs:QName類型的值。定義:恰好包含一個項的序列被稱為單元集(singleton);一個項等同于包含該項的單元集序列。序列是絕不嵌套的,例如1, (2, 3), ( )被組合成一個單一的結(jié)果序列(1, 2, 3)。包含零個項的序列被稱為空序列(empty sequence)。術(shù)語XDM實例(X
57、DM instance)被用作屬于值(value)的同義詞,表示該數(shù)據(jù)模型中的節(jié)點和/或原子值的無約束序列。XQuery中的名字(name)被稱為QNames(限定名),與XML命名空間標準中的語法一致(由可選的命名空間前綴與本地名組成,如果存在命名空間前綴,則在命名空間前綴與本地名之間用冒號分隔)。可以利用把命名空間前綴解析為命名空間URI的方法,將詞匯QNames轉(zhuǎn)換成擴展限定名(expanded QName)。命名空間URI,是按照XML Schema中的xs:anyURI類型的規(guī)則,進行了白空標準化的。如果兩個擴展限定名的命名空間URI相同且本地名相同(即使它們的命名空間前綴不同),則
58、它們是相等的。下列命名空間前綴已被XQuery預(yù)先聲明,并且被綁定到了固定的命名空間URI上:lllll local = /2005/xquery-local-functions元素節(jié)點具有域內(nèi)命名空間(in-scope namespaces)一種命名空間綁定(namespace bindings)的集合,其中的每個命名空間綁定,將命名空間前綴與其URI關(guān)聯(lián)在一起。從而定義了,可在元素的范圍內(nèi),解釋QNames的命名空間前綴集。對給定的元素,命名空間的綁定可以為空前綴。在此元素范圍內(nèi),該命名空間的URI綁定到缺省的命名空間。2.1表達式上下文給定表達式的表達式上
59、下文(expression context),由所有能影響表達式結(jié)果的信息組成。這些信息被分成被稱作靜態(tài)上下文(static context)和動態(tài)上下文(dynamic context)的兩類。2.1.1 靜態(tài)上下文表達式的靜態(tài)上下文(static context)是在(求值之前)靜態(tài)分析表達式期間的可用信息。這些信息可被用于確定表達式是否含有靜態(tài)錯誤。如果表達式的解析,依賴于靜態(tài)上下文中的某些沒有賦值的構(gòu)件,則會出現(xiàn)靜態(tài)錯誤。靜態(tài)上下文的各個構(gòu)件匯總?cè)缦拢簂 XPath 1.0兼容模式(XPath 1.0 compatibility mode)XQuery設(shè)置該構(gòu)件的值為假。l 靜態(tài)可知命
60、名空間(Statically known namespaces)定義所有在靜態(tài)處理給定表達式期間可知的命名空間的一個(前綴,URI)對偶集。這些URI,是按照XML Schema中的xs:anyURI類型的規(guī)則,進行了白空標準化的。與作為元素節(jié)點的動態(tài)特性的域內(nèi)命名空間不同,靜態(tài)可知命名空間是表達式的一種靜態(tài)特性。l 缺省元素/類型命名空間(Default element/type namespace)一個命名空間URI或"none"。l 缺省函數(shù)命名空間(Default function namespace)一個命名空間URI或"none"。l 域內(nèi)模
61、式定義(In-scope schema definitions)對在處理表達式期間,處于范圍內(nèi)的所有元素聲明、屬性聲明和schema類型定義的一種通用術(shù)語。包含下列三個部分:n 域內(nèi)模式類型(In-scope schema types)每個模式類型被一個擴展QName(對命名類型)或一個實現(xiàn)相關(guān)類型標識符(對匿名類型)所標識。域內(nèi)模式類型包括預(yù)定義的模式類型。如果支持模式輸入特征,域內(nèi)模式類型還包括輸入模式中的所有類型定義。n 域內(nèi)元素聲明(In-scope element declarations)每個模式類型被一個擴展QName(對頂層元素聲明)或一個實現(xiàn)相關(guān)元素標識符(對局部元素聲明)所
62、標識。如果支持模式輸入特征,域內(nèi)元素聲明還包括輸入模式中的所有元素聲明。元素聲明包含關(guān)于替換組關(guān)系的信息。替換組(substitution group)被定義在XML Schema的第一部分中,它由一個給定元素(稱為頭元素head element)牽頭,包含一個元素的集合,可用該集合中的元素來替換頭元素,而不會影響模式驗證的結(jié)果。n 域內(nèi)屬性聲明(In-scope attribute declarations)每個模式類型被一個擴展QName(對頂層屬性聲明)或一個實現(xiàn)相關(guān)屬性標識符(對局部屬性聲明)所標識。如果支持模式輸入特征,域內(nèi)屬性聲明還包括輸入模式中的所有屬性聲明。l 域內(nèi)變量(In-
63、scope variables)一個(擴展QName,類型)對的集合。它定義在表達式內(nèi)可引用變量的集合。其中,“擴展QName”為變量的名稱,“類型”為變量的靜態(tài)類型。序言(Prolog)中的變量聲明被添加到域內(nèi)變量中。綁定變量的表達式(如let、for、some或every表達式)利用新的綁定變量及其類型來擴展其子表達式中的域內(nèi)變量。在函數(shù)聲明(function declaration)中,域內(nèi)變量被函數(shù)參數(shù)(function parameters)的名稱和類型所擴展。變量的靜態(tài)類型可在查詢中聲明或(如果靜態(tài)類型特征被激活)被定義在XQuery 1.0 and XPath 2.0 Forma
64、l Semantics推薦標準中的靜態(tài)類型推理規(guī)則所推出。l 上下文項靜態(tài)類型(Context item static type)在給定表達式范圍內(nèi),定義上下文項的靜態(tài)類型之構(gòu)件。l 函數(shù)簽名(Function signatures)可在一表達式內(nèi)被調(diào)用的一個函數(shù)集合。每個函數(shù)被其擴展QName和參數(shù)數(shù)量(arity)所唯一標識。除了名稱和參數(shù)數(shù)量之外,每個函數(shù)簽名還指定函數(shù)參數(shù)和結(jié)果的靜態(tài)類型。函數(shù)簽名包括構(gòu)造函數(shù)的簽名。l 靜態(tài)可知對照(Statically known collations)一個由實現(xiàn)定義的(URI, 對照)對的集合。它定義可被用于處理查詢和表達式的對照的名稱。對照(co
65、llation)是一種方式規(guī)范,用于字符串和URI的比較和(被擴展后)排序。l 缺省對照(Default collation)l 構(gòu)造方式(Construction mode)l 排序方式(Ordering mode)l 空序列的缺省排序(Default order for empty sequences)l 邊空策略(Boundary-space policy)l 復(fù)制命名空間方式(Copy-namespaces mode)l 基URI(Base URI)l 靜態(tài)可知文檔(Statically known documents)l 靜態(tài)可知缺省對照類型(Statically known def
66、ault collection type)2.1.2 動態(tài)上下文表達式的動態(tài)上下文(dynamic context)被定義為在表達式被求值時可用的信息。如果表達式的求值,依賴于動態(tài)上下文中的某些沒有賦值的部分,則會出現(xiàn)動態(tài)錯誤。動態(tài)上下文的各個構(gòu)件匯總?cè)缦隆討B(tài)上下文包含靜態(tài)上下文中的所有構(gòu)件以及下面列出的額外構(gòu)件。動態(tài)上下文的開始三個構(gòu)件(上下文項、上下文位置和上下文大?。┍环Q為表達式的焦點(focus)。焦點使得處理程序可以知曉表達式正在被處理的是哪個項。某些語言結(jié)構(gòu),特別是路徑表達式E1/E2和謂詞E1E2,會為子表達式的求值創(chuàng)建一個新焦點。在這些結(jié)構(gòu)中,對求值E1的結(jié)果序列中的每一項,
67、E2都會被求值一次。每次E2被求值時,它被以不同的焦點來求值。E2的求值焦點在下面被稱為內(nèi)部焦點(inner focus),而E1的求值焦點在下面則被稱為外部焦點(outer focus)。內(nèi)部焦點只在E2被求值時才存在。當該求值完成后,包含表達式的求值,繼續(xù)保持原焦點不變。l 上下文項(context item)l 上下文位置(context position)l 上下文大?。╟ontext size)l 變量值(Variable values)l 函數(shù)實現(xiàn)(Function implementations)l 當前數(shù)據(jù)時(Current dateTime)l 隱含時區(qū)(Implicit timez
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 港口柴油罐車裝卸合同
- 二零二五年度寶石專家珠寶店品牌推廣合同
- 2025年度辦公用品店租賃與品牌授權(quán)合同
- 產(chǎn)品研發(fā)流程規(guī)范作業(yè)指導(dǎo)書
- 酒水購銷合同年
- 軟件公司保密協(xié)議書
- 委托房屋買賣合同
- 建筑裝飾工程門窗施工合同
- 虛擬現(xiàn)實技術(shù)專利申請合同
- 展覽會管理合同協(xié)議
- JJF 1905-2021磁通計校準規(guī)范
- GB 5009.76-2014食品安全國家標準食品添加劑中砷的測定
- 燃氣鍋爐安裝施工方案5
- 2023年湖北成人學(xué)位英語考試真題
- 睡眠中心課件
- SJG 112-2022 既有建筑幕墻安全性鑒定技術(shù)標準高清最新版
- 公共區(qū)管理部班組建設(shè)進度推進表
- 申論詳解(PPT課件)
- 封條模板A4直接打印版
- 立式加工中心說明書
- 唐太宗李世民
評論
0/150
提交評論