• +49-(0)721-402485-12
Ihre Experten für XML, XQuery und XML-Datenbanken

Nichtterminale Symbole (Teil 2)

[91]NodeTest::=KindTest | NameTest
[92]NameTest::=QName | Wildcard
[93]Wildcard::="*"
| < NCName ":" "*">
| <"*" ":" NCName >
[94]Literal::=NumericLiteral | StringLiteral
[95]NumericLiteral::=IntegerLiteral | DecimalLiteral | DoubleLiteral
[96]ParenthesizedExpr::="(" Expr ? ")"
[97]FunctionCall::=< QName "("> (ExprSingle ("," ExprSingle )*)? ")"
[98]DirElemConstructor::="<" QName AttributeList ("/>" | (">" ElementContent * "</" QName S? ">"))
[99]CompDocConstructor::=<"document" "{"> Expr "}"
[100]CompElemConstructor::=(<"element" QName "{"> | (<"element" "{"> Expr "}" "{")) Expr? "}"
[101]CompNSConstructor::=<"namespace" NCName "{"> Expr "}"
[102]CompAttrConstructor::=(<"attribute" QName "{"> | (<"attribute" "{"> Expr "}" "{")) Expr? "}"
[103]CompXmlPI::=(<"processing-instruction" NCName "{"> | (<"processing-instruction" "{"> Expr "}" "{")) Expr? "}"
[104]CompXmlComment::=<"comment" "{"> Expr "}"
[105]CompTextConstructor::=<"text" "{"> Expr? "}"
[106]CdataSection::="<![CDATA[" Char * "]]>"
[107]XmlPI::="<?" PITarget Char * "?>"
[108]XmlComment::="<!--" Char * "-->"
[109]ElementContent::=ElementContentChar
| "{{"
| "}}"
| DirElemConstructor
| EnclosedExpr
| CdataSection
| CharRef
| PredefinedEntityRef
| XmlComment
| XmlPI
[110]AttributeList::=(S (QName S? "=" S? AttributeValue)?)*
[111]AttributeValue::=('"' (EscapeQuot | QuotAttrValueContent)* '"')
| ("'" (EscapeApos | AposAttrValueContent)* "'")
[112]QuotAttrValueContent::=QuotAttContentChar
| CharRef
| "{{"
| "}}"
| EnclosedExpr
| PredefinedEntityRef
[113]AposAttrValueContent::=AposAttContentChar
| CharRef
| "{{"
| "}}"
| EnclosedExpr
| PredefinedEntityRef
[114]EnclosedExpr::="{" Expr "}"
[115]XMLSpaceDecl::=<"declare" "xmlspace"> ("preserve" | "strip")
[116]DefaultCollationDecl::=<"declare" "default" "collation"> StringLiteral
[117]BaseURIDecl::=<"declare" "base-uri"> StringLiteral
[118]NamespaceDecl::=<"declare" "namespace"> NCName "=" StringLiteral
[119]DefaultNamespaceDecl::=(<"declare" "default" "element"> | <"declare" "default" "function">) "namespace" StringLiteral
[120]FunctionDecl::=<"declare" "function"> < QName "("> ParamList? (")" | (<")" "as"> SequenceType )) (EnclosedExpr | "external")
[121]ParamList::=Param ("," Param)*
[122]Param::="$" VarName TypeDeclaration?
[123]TypeDeclaration::="as" SequenceType
[124]SingleType::=AtomicType "?"?
[125]SequenceType::=(ItemType OccurrenceIndicator?)
| <"empty" "(" ")">
[126]AtomicType::=QName
[127]ItemType::=AtomicType | KindTest | <"item" "(" ")">
[128]KindTest::=DocumentTest
| ElementTest
| AttributeTest
| PITest
| CommentTest
| TextTest
| AnyKindTest
[129]ElementTest::=<"element" "("> ((SchemaContextPath ElementName)
| (ElementNameOrWildcard ("," TypeNameOrWildcard "nillable"?)?))? ")"
[130]AttributeTest::=<"attribute" "("> ((SchemaContextPath AttributeName)
| (AttribNameOrWildcard ("," TypeNameOrWildcard )?))? ")"
[131]ElementName::=QName
[132]AttributeName::=QName
[133]TypeName::=QName
[134]ElementNameOrWildcard::=ElementName | "*"
[135]AttribNameOrWildcard::=AttributeName | "*"
[136]TypeNameOrWildcard::=TypeName | "*"
[137]PITest::=<"processing-instruction" "("> (NCName | StringLiteral)? ")"
[138]DocumentTest::=<"document-node" "("> ElementTest? ")"
[139]CommentTest::=<"comment" "("> ")"
[140]TextTest::=<"text" "("> ")"
[141]AnyKindTest::=<"node" "("> ")"
[142]SchemaContextPath::=< SchemaGlobalContext "/">< SchemaContextStep "/">*
[143]SchemaContextLoc::=(SchemaContextPath ? QName) | SchemaGlobalTypeName
[144]Occurrence Indicator::="?" | "*" | "+"
[145]ValidationDecl::=<"declare" "validation"> SchemaMode
[146]SchemaImport::=<"import" "schema"> SchemaPrefix ? StringLiteral <"at" StringLiteral >?
[147]SchemaPrefix::=("namespace" NCName "=") | (<"default" "element"> "namespace")

 

Die folgenden Bezeichner dürfen nicht als benutzerdefinierte Funktionsbezeichner verwendet werden:

  • if
  • typeswitch
  • node
  • comment
  • text
  • processing-instruction

Mit Bezug auf die Vorrangordnung gelten jeweils die in der Grammatik spezifizierten Reihenfolgen. Falls mehrere Varianten aus Sicht der Grammatik gültig sind, werden die Ausdrücke immer von links nach rechts ausgewertet.

   

Quelle: "XQuery – Grundlagen und fortgeschrittene Methoden", dpunkt-Verlag, Heidelberg (2004)

<< zurückvor >>