XQuery IntelliJ Plugin 1.8 XSLT

This document includes material copied from or derived from the XPath and XSLT specifications. Copyright © 1999-2017 W3C® (MIT, ERCIM, Keio, Beihang).

Abstract

This document defines the syntax and semantics for vendor and plugin specific functionality that extends XSLT and associated W3C extensions.

Table of Contents

1 Introduction

This document defines the syntax and semantics for vendor and plugin specific functionality that extends XSLT 2.0 and 3.0. The syntax described here is the syntax that is supported by the XQuery IntelliJ Plugin.

A XQuery IntelliJ Plugin Grammar

A.1 EBNF Start Symbol for Schema Types

The EBNF symbol used to start parsing from is dependent on the schema type of the attribute or text node. This is determined by the following table, which includes schema types from XSLT 1.0, 2.0, and 3.0:

Schema Type Start Symbol
xsl:accumulator-names AccumulatorNameListOrAll
xsl:avt ValueTemplate
xsl:default-mode-type DefaultModeType
xsl:element-names NameTestList
xsl:EQName EQName
xsl:EQName-in-namespace EQName
xsl:EQNames EQNames
xsl:expr-avt ValueTemplate
xsl:expression XPath
xsl:item-type ItemType
xsl:method QName
xsl:mode ModeOrCurrent
xsl:modes ModeListOrAll
xsl:nametests NameTestList
xsl:pattern XPath
xsl:prefix PrefixOrDefault
xsl:prefix-list PrefixList
xsl:prefix-list-or-all PrefixListOrAll
xsl:prefix-or-default PrefixOrDefault
xsl:prefixes NCNameList
xsl:QName QName
xsl:QNames QNameList
xsl:sequence-type SequenceType
xsl:streamability-type EQName
xsl:tokens NCNameList

A.2 EBNF for XSLT Schema Types

The EBNF symbols here define the syntax for the schema types not covered by the XPath and XSLT pattern syntax grammars. This is a formal definition of the syntax described in the XML schema files.

Ref Symbol   Expression Options
[1] ValueTemplate ::= ValueContentChar | " | " | EnclosedExpr  
[2] ValueContentChar ::= (Char - [{}])  
[3] NCNameList ::= S? NCName (S NCName)* S?  
[4] QNameList ::= S? QName (S QName)* S?  
[5] EQNameList ::= S? EQName (S EQName)* S?  
[6] NameTestList ::= S? NameTest (S NameTest)* S?  
[7] PrefixOrDefault ::= NCName | "#default"  
[8] PrefixList ::= S? PrefixOrDefault (S PrefixOrDefault)* S?  
[9] PrefixListOrAll ::= PrefixList | "#all"  
[10] Mode ::= EQName | "#default"  
[11] ModeList ::= S? Mode (S Mode)* S?  
[12] ModeOrCurrent ::= Mode | "#current"  
[13] ModeListOrAll ::= ModeList | "#all"  
[14] AccumulatorNameListOrAll ::= EQNameList | "#all"  
[15] DefaultModeType ::= EQName | "#unnamed"  

A.3 EBNF External Symbols

Extensible Markup Language (XML) 1.0 (Fifth Edition)

| Ref | Symbol | | Expression | Options | |———-|——————————–|—–|————————————-|———————–| | | Char | ::= | [https://www.w3.org/TR/REC-xml/#NT-Char] | | | | S | ::= | [https://www.w3.org/TR/REC-xml/#NT-S] | |

XML Path Language (XPath) 3.1

| Ref | Symbol | | Expression | Options | |———-|——————————–|—–|————————————-|———————–| | | EnclosedExpr | ::= | [https://www.w3.org/TR/xpath-31/#prod-xpath31-EnclosedExpr] | | | | EQName | ::= | [https://www.w3.org/TR/xpath-31/#prod-xpath31-EQName] | | | | ItemType | ::= | [https://www.w3.org/TR/xpath-31/#prod-xpath31-ItemType] | | | | NameTest | ::= | [https://www.w3.org/TR/xpath-31/#prod-xpath31-NameTest] | | | | NCName | ::= | [https://www.w3.org/TR/xpath-31/#prod-xpath31-NCName] | | | | QName | ::= | [https://www.w3.org/TR/xpath-31/#prod-xpath31-QName] | | | | SequenceType | ::= | [https://www.w3.org/TR/xpath-31/#prod-xpath31-SequenceType] | | | | XPath | ::= | [https://www.w3.org/TR/xpath-31/#prod-xpath31-XPath] | |

B References

B.1 W3C References

Core Specifications

XML Schema