diff --git a/Frontend/src/assets/tooltips/xpath/xpathdiffs.json b/Frontend/src/assets/tooltips/xpath/xpathdiffs.json index d0f4daf..91e0030 100644 --- a/Frontend/src/assets/tooltips/xpath/xpathdiffs.json +++ b/Frontend/src/assets/tooltips/xpath/xpathdiffs.json @@ -4,6 +4,9 @@ { "category":"What is XPath", "description":"XPath is a query language used for selecting nodes from XML and processing them. It may perform operations on strings, numbers and boolean values." + }, + { + "category":"What's new in XPath?" } ], "VersionDiffs": @@ -34,12 +37,11 @@ "version":"3.1", "diffs": [ - "New operator for function chaining '=>' ", + "New operator for function chaining '=>'", "Introduced maps that store data in pair 'key:value' - 'map{ key : value, key : value }'", "Introduced arrays - they differ from sequences in that they can be nested 'array{1, 5, 7, (10 to 20)}'" ] } - ] diff --git a/Frontend/src/assets/tooltips/xslt/xslt1.json b/Frontend/src/assets/tooltips/xslt/xslt1.json new file mode 100644 index 0000000..edb41de --- /dev/null +++ b/Frontend/src/assets/tooltips/xslt/xslt1.json @@ -0,0 +1,845 @@ +[ + { + "name": "Templates", + "entries": [ + { + "name": "", + "description": "Defines an output producing template. This element must have either the match attribute or the name attribute set.", + "attributes": + [ + { + "type":"optional", + "name":"match", + "description":"Specifies a pattern that determines the elements for which this template should be used. It is a required attribute if there is no name attribute." + }, + { + "type":"optional", + "name":"name", + "description":"Specifies a name for this template" + }, + { + "type":"optional", + "name":"mode", + "description":"Specifies a particular mode for this template, which can be matched by an attribute of the element" + }, + { + "type":"optional", + "name":"priority", + "description":"Specifies a numeric priority for this template." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/template", + "output": "XML Tree" + },{ + "name": "", + "description": "Selects a set of nodes in the input tree and instructs the processor to apply the proper templates to them.", + "attributes": + [ + { + "type":"optional", + "name":"mode", + "description":"Specifies a particular mode for this template, which can be matched by an attribute of the element" + }, + { + "type":"optional", + "name":"select", + "description":"XPath expression that specifies the nodes to be processed. If this attribute is not set, all child nodes of the current node are selected." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/apply-templates", + "output": "XML Nodes" + },{ + "name": "", + "description": "Import precedence requires that template rules in main stylesheets have higher precedence than template rules in imported stylesheets", + "attributes": + [ + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/apply-imports", + "output": "Imported output from another XSLT" + },{ + "name": "", + "description": "Invokes a named template", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the name of the template you wish to invoke." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/call-template", + "output": "Called template XML" + } + ] + }, + { + "name":"Loops and conditional processing", + "entries": + [ + { + "name": "", + "description": "Selects a set of nodes and processes each of them in the same way", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"XPath expression that specifies the nodes to be processed." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/for-each", + "output": "Processed set of nodes" + }, + { + "name": "", + "description": "Element contains a test attribute and a template. If the test evaluates to true, the template is processed.", + "attributes": + [ + { + "type":"required", + "name":"test", + "description":"Contains an XPath expression that can be evaluated to a Boolean value." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/if", + "output": "Depending on test processed template or not." + }, + { + "name": "", + "description": "Element defines a choice among a number of alternatives. It behaves like a switch statement in procedural languages.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/choose", + "output": "Choosed XML template" + }, + { + "name": "", + "description": "Element always appears within an element, acting like a case statement.", + "attributes": + [ + { + "type":"required", + "name":"test", + "description":"Boolean expression to be evaluated. If true, the contents of the element are processed; if false, they are ignored." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/when", + "output": "Processed or not XML Template" + }, + { + "name": "", + "description": "Element is used to define the action that should be taken when none of the conditions apply.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/otherwise", + "output": "processed XML Template" + } + ] + }, + { + "name":"Creating Result Tree", + "entries": + [ + { + "name": "", + "description": "Creates an attribute in the output document, using any values that can be accessed from the stylesheet. The element must be defined before any other output document element inside the output document element for which it establishes attribute values", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the name of the attribute to be created in the output document." + } , + { + "type":"optional", + "name":"namespace", + "description":"Defines the namespace URI for this attribute in the output document." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/attribute", + "output": "XML Element with provided attribute" + },{ + "name": "", + "description": "Creates a named set of attributes, which can then be applied as whole to the output document, in a manner similar to named styles in CSS", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the name of the attribute set." + } , + { + "type":"optional", + "name":"use-attribute-sets", + "description":"Builds an attribute set from other attribute sets. The names of the contributing sets must be separated with whitespace characters" + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/attribute-set", + "output": "Named set of attributes" + },{ + "name": "", + "description": "Transfers a shallow copy (the node and any associated namespace node) of the current node to the output document.", + "attributes": + [ + { + "type":"optional", + "name":"use-attribute-sets", + "description":"Lists attribute sets that should be applied to the output node, if it is an element" + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/copy", + "output": "Copy of XML node" + },{ + "name": "", + "description": "Counts things sequentially. It can also be used to quickly format a number.", + "attributes": + [ + { + "type":"optional", + "name":"count", + "description":"Specifies what in the source tree should be numbered sequentially. It uses an XPath expression." + }, + { + "type":"optional", + "name":"level", + "description":"Defines how levels of the source tree should be considered in generating sequential numbers. It has three valid values: single, multiple, and any." + }, + { + "type":"optional", + "name":"from", + "description":"Specifies where the numbering should start or start over." + }, + { + "type":"optional", + "name":"value", + "description":"Applies a given format to a number." + }, + { + "type":"optional", + "name":"format", + "description":"Defines the format of the generated number." + }, + { + "type":"optional", + "name":"lang", + "description":"Specifies which language's alphabet should be used in letter-based numbering formats." + }, + { + "type":"optional", + "name":"letter-value", + "description":"Disambiguates between numbering sequences that use letters. Some languages have more than one numbering system that use letters." + }, + { + "type":"optional", + "name":"grouping-separator", + "description":"Specifies what character should be used as the group (e.g. thousands) separator." + }, + { + "type":"optional", + "name":"grouping-size", + "description":"Indicates the number of digits that make up a numeric group." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/number", + "output": "Formatted number" + },{ + "name": "", + "description": "Evaluates an XPath expression, converts it to a string, and writes that string to the result tree.", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"Specifies the XPath expression to be evaluated and written to the output tree." + }, + { + "type":"optional", + "name":"disable-output-escaping", + "description":"Specifies whether special characters are escaped when written to the output." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/value-of", + "output": "Value from XML nodes" + },{ + "name": "", + "description": "Writes literal text to the output tree.", + "attributes": + [ + { + "type":"optional", + "name":"disable-output-escaping", + "description":"Specifies whether special characters are escaped when written to the output." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/text", + "output": "XML Node with writed text" + },{ + "name": "", + "description": "Writes a comment to the output document. It must include only text.", + "attributes": + [ + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/comment", + "output": "XML Node with writed comment" + }, + { + "name": "", + "description": "Writes a processing instruction to the output document.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the name of this processing instruction." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/processing-instruction", + "output": "XML Node with output of processed instruction" + }, + { + "name": "", + "description": "Declares a named key which can be used elsewhere in the stylesheet with the key( ) function.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies a name for this key. Must be a QName." + }, + { + "type":"required", + "name":"match", + "description":"Defines the nodes for which this key is applicable." + }, + { + "type":"required", + "name":"use", + "description":"Specifies an XPath expression that will be used to determine the value of the key for each of the applicable nodes." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/key", + "output": "key to use in stylesheet" + }, + { + "name": "", + "description": "Declares a named key which can be used elsewhere in the stylesheet with the key( ) function.", + "attributes": + [ + { + "type":"optional", + "name":"name", + "description":"Specifies a name for this format." + }, + { + "type":"optional", + "name":"decimal-separator", + "description":"Specifies the decimal point character." + }, + { + "type":"optional", + "name":"grouping-separator", + "description":"Specifies the thousands separator character." + }, + { + "type":"optional", + "name":"infinity", + "description":"Specifies the string used to represent infinity." + }, + { + "type":"optional", + "name":"minus-sign", + "description":"Specifies the minus sign character." + }, + { + "type":"optional", + "name":"NaN", + "description":"Specifies the string used when the value is not a number." + }, + { + "type":"optional", + "name":"percent", + "description":"Specifies the percentage sign character." + }, + { + "type":"optional", + "name":"per-mille", + "description":"Specifies the per thousand character." + }, + { + "type":"optional", + "name":"zero-digit", + "description":"Specifies the digit zero character." + }, + { + "type":"optional", + "name":"digit", + "description":"Specifies the character used in the format pattern to stand for a digit." + }, + { + "type":"optional", + "name":"pattern-separator", + "description":"Specifies the character separating positive and negative subpatterns in a format pattern." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/decimal-format", + "output": "decimal format" + }, + { + "name": "", + "description": "Defines the elements in the source document for which whitespace should be preserved.", + "attributes": + [ + { + "type":"required", + "name":"elements", + "description":"Specifies the elements for which whitespace should be preserved." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/preserve-space", + "output": "preserved space" + }, + { + "name": "", + "description": "Defines the elements in the source document for which whitespace should be removed.", + "attributes": + [ + { + "type":"required", + "name":"elements", + "description":"Specifies the elements for which whitespace should be preserved." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/strip-space", + "output": "elements with removed whitespace" + }, + { + "name": "", + "description": "Defines a sort key for nodes selected by or and determines the order in which they are processed.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"Uses an XPath expression to specify the nodes to be sorted." + }, + { + "type":"optional", + "name":"order", + "description":"Specifies whether the nodes should be processed in \"ascending\" or \"descending\" order." + }, + { + "type":"optional", + "name":"case-order", + "description":"Indicates whether upper- or lowercase letters are to be ordered first." + }, + { + "type":"optional", + "name":"lang", + "description":"Specifies which language is to be used by the sort." + }, + { + "type":"optional", + "name":"data-type", + "description":"Defines whether items are to be ordered alphabetically or numerically." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/sort", + "output": "sorted elements" + }, + { + "name": "", + "description": "Controls the characteristics of the output document.", + "attributes": + [ + { + "type":"optional", + "name":"method", + "description":"Specifies output format." + }, + { + "type":"optional", + "name":"version", + "description":"Specifies the value of the version attribute of the XML or HTML declaration in the output document." + }, + { + "type":"optional", + "name":"encoding", + "description":"Specifies the value of the encoding attribute in the output document." + }, + { + "type":"optional", + "name":"omit-xml-declaration", + "description":"Indicates whether or not to include an XML declaration in the output." + }, + { + "type":"optional", + "name":"doctype-public", + "description":"Specifies the value of the PUBLIC attribute of the DOCTYPE declaration in the output document." + }, + { + "type":"optional", + "name":"doctype-system", + "description":"Specifies the value of the SYSTEM attribute of the DOCTYPE declaration in the output document." + }, + { + "type":"optional", + "name":"cdata-section-elements", + "description":"Lists elements whose text contents should be written as CDATA sections." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/output", + "output": "changed document prefix" + } + ] + }, + { + "name":"Stylesheet structure", + "entries": + [ + { + "name": "", + "description": "Is the outermost element of a stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"version", + "description":"Specifies the version of XSLT required by this stylesheet." + }, + { + "type":"optional", + "name":"exclude-result-prefixes", + "description":"Specifies any namespace used in this document that should not be sent to the output document." + }, + { + "type":"optional", + "name":"extension-element-prefixes", + "description":"Specifies a space-separated list of any namespace prefixes for extension elements in this document." + }, + { + "type":"optional", + "name":"default-collation", + "description":"Specifies the default collation used by all XPath expressions appearing in attributes or text value templates that have the element as an ancestor" + }, + { + "type":"optional", + "name":"default-mode", + "description":"Defines the default value for the mode attribute of all and elements within its scope." + }, + { + "type":"optional", + "name":"default-validation", + "description":"Defines the default value of the validation attribute of all relevant instructions appearing within its scope." + }, + { + "type":"optional", + "name":"expand-text", + "description":"Determines whether descendant text nodes of the element are treated as text value templates." + }, + { + "type":"optional", + "name":"id", + "description":"Specifies an id for this stylesheet. This is most often used when the stylesheet is embedded in another XML document." + }, + { + "type":"optional", + "name":"input-type-annotations", + "description":"Specifies whether type annotations are stripped from the element so the same results are produced whether the source documents have been validated against a schema or not." + }, + { + "type":"optional", + "name":"use-when", + "description":"Determines whether the element and all the nodes that have it as ancestor are excluded from the stylesheet." + }, + { + "type":"optional", + "name":"xpath-default-namespace", + "description":"Specifies the namespace that will be used if the element name is unprefixed or an unprefixed type name within an XPath expression." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/stylesheet", + "output": "XSLT Stylesheet" + }, + { + "name": "", + "description": "Exactly equivalent to the element.", + "attributes": + [ + { + "type":"required", + "name":"version", + "description":"Specifies the version of XSLT required by this stylesheet." + }, + { + "type":"optional", + "name":"exclude-result-prefixes", + "description":"Specifies any namespace used in this document that should not be sent to the output document." + }, + { + "type":"optional", + "name":"extension-element-prefixes", + "description":"Specifies a space-separated list of any namespace prefixes for extension elements in this document." + }, + { + "type":"optional", + "name":"default-collation", + "description":"Specifies the default collation used by all XPath expressions appearing in attributes or text value templates that have the element as an ancestor" + }, + { + "type":"optional", + "name":"default-mode", + "description":"Defines the default value for the mode attribute of all and elements within its scope." + }, + { + "type":"optional", + "name":"default-validation", + "description":"Defines the default value of the validation attribute of all relevant instructions appearing within its scope." + }, + { + "type":"optional", + "name":"expand-text", + "description":"Determines whether descendant text nodes of the element are treated as text value templates." + }, + { + "type":"optional", + "name":"id", + "description":"Specifies an id for this stylesheet. This is most often used when the stylesheet is embedded in another XML document." + }, + { + "type":"optional", + "name":"input-type-annotations", + "description":"Specifies whether type annotations are stripped from the element so the same results are produced whether the source documents have been validated against a schema or not." + }, + { + "type":"optional", + "name":"use-when", + "description":"Determines whether the element and all the nodes that have it as ancestor are excluded from the stylesheet." + }, + { + "type":"optional", + "name":"xpath-default-namespace", + "description":"Specifies the namespace that will be used if the element name is unprefixed or an unprefixed type name within an XPath expression." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/transform", + "output": "XSLT Stylesheet" + }, + { + "name": "", + "description": "Top-level element that serves to import the contents of one stylesheet into another stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"href", + "description":"Specifies the URI of the stylesheet to import." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/import", + "output": "XSLT Stylesheet from another file" + }, + { + "name": "", + "description": "Merges the contents of one stylesheet with another. Unlike the case of , the contents of an included stylesheet have exactly the same precedence as the contents of the including stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"href", + "description":"Specifies the URI of the stylesheet to import." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/include", + "output": "XSLT Stylesheet with XSLT from another file." + }, + { + "name": "", + "description": "Maps a namespace in the stylesheet to a different namespace in the output tree. The most common use for this element is in generating a stylesheet from another stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"stylesheet-prefix", + "description":"Specifies the temporary namespace." + }, + { + "type":"required", + "name":"result-prefix", + "description":"Specifies the desired namespace for the output tree." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/namespace-alias", + "output": "XML Tree with changed namespaces" + }, + { + "name": "", + "description": "Creates an element in the output document.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the desired name of the output element. The name must be a valid QName." + }, + { + "type":"optional", + "name":"namespace", + "description":"Specifies the namespace of the output element." + }, + { + "type":"optional", + "name":"use-attribute-sets", + "description":"A whitespace-separated list of attribute-set element names to be applied to the element element's output element." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/namespace-alias", + "output": "XML with provided element" + } + ] + }, + { + "name":"Variables and parameters", + "entries": + [ + { + "name": "", + "description": "Establishes a parameter by name and, optionally, a default value for that parameter. When used as a top-level element, the parameter is global. When used inside an element, the parameter is local to that template.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Names the parameter. This must be a QName." + }, + { + "type":"optional", + "name":"select", + "description":"Uses an XPath expression to provide a default value if none is specified." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/param", + "output": "XML parameter" + }, + { + "name": "", + "description": "Declares a global or local variable in a stylesheet and gives it a value.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Gives the variable a name." + }, + { + "type":"optional", + "name":"select", + "description":"Defines the value of the variable through an XPath expression. If the element contains a template, this attribute is ignored." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/variable", + "output": "XML Variable" + }, + { + "name": "", + "description": "Sets the value of a parameter to be passed into a template.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Gives this parameter a name." + }, + { + "type":"optional", + "name":"select", + "description":"Defines the value of the parameter through an XPath expression. If the element contains a template, this attribute is ignored." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/with-param", + "output": "XML Parameter" + }, + { + "name": "", + "description": "Makes a deep copy (including descendant nodes) of whatever the select attribute specifies to the output document.", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"Uses an XPath expression that specifies what is to be copied." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/copy-of", + "output": "Copy of Selected node" + } + ] + }, + { + "name":"Misc", + "entries": + [ + { + "name": "", + "description": "Outputs a message (to the JavaScript Console in NS) and optionally terminates execution of the stylesheet.", + "attributes": + [ + { + "type":"optional", + "name":"terminate", + "description":"Set to \"yes\", indicates that execution should be terminated. The default value is \"no\", in which case the message is output and execution continues." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/message", + "output": "Message in console" + }, + { + "name": "", + "description": "specifies what template to use if a given extension (or, eventually, newer version) element is not supported.", + "attributes": + [ + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/fallback", + "output": "Fallbacks" + } + ] + } +] \ No newline at end of file diff --git a/Frontend/src/assets/tooltips/xslt/xslt3.json b/Frontend/src/assets/tooltips/xslt/xslt3.json new file mode 100644 index 0000000..e532802 --- /dev/null +++ b/Frontend/src/assets/tooltips/xslt/xslt3.json @@ -0,0 +1,2064 @@ +[ + { + "name": "Templates", + "entries": [ + { + "name": "", + "description": "Defines an output producing template. This element must have either the match attribute or the name attribute set.", + "attributes": + [ + { + "type":"optional", + "name":"match", + "description":"Specifies a pattern that determines the elements for which this template should be used. It is a required attribute if there is no name attribute." + }, + { + "type":"optional", + "name":"name", + "description":"Specifies a name for this template" + }, + { + "type":"optional", + "name":"mode", + "description":"Specifies a particular mode for this template, which can be matched by an attribute of the element" + }, + { + "type":"optional", + "name":"priority", + "description":"Specifies a numeric priority for this template." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/template", + "output": "XML Tree" + },{ + "name": "", + "description": "Selects a set of nodes in the input tree and instructs the processor to apply the proper templates to them.", + "attributes": + [ + { + "type":"optional", + "name":"mode", + "description":"Specifies a particular mode for this template, which can be matched by an attribute of the element" + }, + { + "type":"optional", + "name":"select", + "description":"XPath expression that specifies the nodes to be processed. If this attribute is not set, all child nodes of the current node are selected." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/apply-templates", + "output": "XML Nodes" + },{ + "name": "", + "description": "Import precedence requires that template rules in main stylesheets have higher precedence than template rules in imported stylesheets", + "attributes": + [ + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/apply-imports", + "output": "Imported output from another XSLT" + },{ + "name": "", + "description": "Invokes a named template", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the name of the template you wish to invoke." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/call-template", + "output": "Called template XML" + },{ + "name": "", + "description": "Chooses the next template to execute.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/next-match.html", + "output": "Choosed XML template" + },{ + "name": "", + "description": "Allows properties of a mode to be defined.", + "attributes": + [ + { + "type":"optional", + "name":"name", + "description":"Identifies the name of this mode" + }, + { + "type":"optional", + "name":"streamable", + "description":"The value yes indicates that template rules using this mode must be capable of being evaluated in a streaming manner." + }, + { + "type":"optional", + "name":"use-accumulators", + "description":"Relevant only when this mode is the initial mode of the transformation." + }, + { + "type":"optional", + "name":"on-no-match", + "description":"Indicates what action is taken when a node being processed by xsl:apply-templates in this mode matches no template rule." + }, + { + "type":"optional", + "name":"on-no-match", + "description":"Indicates what action is taken when a node being processed by xsl:apply-templates in this mode matches no template rule." + }, + { + "type":"optional", + "name":"on-multiple-match", + "description":"Indicates what action is taken when a node being processed by xsl:apply-templates in this mode matches more than one template rule." + }, + { + "type":"optional", + "name":"warning-on-no-match", + "description":"The value yes causes a run-time warning when a node is matched by no template rules." + }, + { + "type":"optional", + "name":"warning-on-multiple-match", + "description":"The value yes causes a run-time warning when a node is matched by multiple template rules." + }, + { + "type":"optional", + "name":"typed", + "description":"Informs the processor whether the nodes to be processed by template rules in this mode are to be typed or untyped." + }, + { + "type":"optional", + "name":"visibility", + "description":"Informs the processor whether the nodes to be processed by template rules in this mode are to be typed or untyped." + }, + { + "type":"optional", + "name":"saxon:trace", + "description":"Causes tracing of all template rules executed in the mode, showing the nodes selected by xsl:apply-templates and the rules used to process them." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/mode.html", + "output": "Choosed XML template" + },{ + "name": "", + "description": "Allows a using package to override selected components from a used package.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/override.html", + "output": "Appears as a child of xsl:use-package." + },{ + "name": "", + "description": "Defines a set of stylesheet modules that can be compiled as a unit, independently of other packages.", + "attributes": + [ + { + "type":"required", + "name":"version", + "description":"Specifies the version of XSLT required by this stylesheet." + }, + { + "type":"optional", + "name":"id", + "description":"Optional identifier, not used by the XSLT processor; may be used to identify a package within a larger XML document." + }, + { + "type":"optional", + "name":"name", + "description":"The name of the package, as an absolute URI, to be used by xsl:use-package declarations." + }, + { + "type":"optional", + "name":"package-version", + "description":"Version identifier, used to distinguish between different versions of a package." + }, + { + "type":"optional", + "name":"input-type-annotations", + "description":"Used to request stripping of type annotations." + }, + { + "type":"optional", + "name":"declared-modes", + "description":"Determines whether of not modes that are referenced within the package must be explicitly declared." + }, + { + "type":"optional", + "name":"default-mode", + "description":"Defines the default value for the mode attribute of all xsl:template and xsl:apply-templates elements within its scope." + }, + { + "type":"optional", + "name":"default-validation", + "description":"Defines the default value for the validation attribute of all relevant instructions appearing within its scope." + }, + { + "type":"optional", + "name":"default-collation", + "description":"Specifies the default collation used by all XPath expressions" + }, + { + "type":"optional", + "name":"extension-element-prefixes", + "description":" Used to declare the use of extension instructions in a particular namespace." + }, + { + "type":"optional", + "name":"exclude-result-prefixes", + "description":"Used to designate namespaces as excluded." + }, + { + "type":"optional", + "name":"expand-text", + "description":"If set to yes, enables the use of text value templates - expressions enclosed in curly braces within text nodes, behaving the same way as attribute value templates in attribute nodes." + }, + { + "type":"optional", + "name":"use-when", + "description":"Used to conditionally include or exclude elements. The value is an XPath expression that can be evaluated statically." + }, + { + "type":"optional", + "name":"xpath-default-namespace", + "description":"Determines the namespace used for any unprefixed element name or type name within an XPath expression." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/package.html", + "output": "Appears as a child of xsl:use-package." + },{ + "name": "", + "description": "Defines a set of stylesheet modules that can be compiled as a unit, independently of other packages.", + "attributes": + [ + { + "type":"required", + "name":"component", + "description":"Identifies the kind of component selected." + }, + { + "type":"required", + "name":"names", + "description":"Identifies a subset of the specified components, by name." + }, + { + "type":"required", + "name":"visibility", + "description":"Determines the potential visibility of the selected components." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/accept.html", + "output": "Appears as a child of xsl:use-package." + },{ + "name": "", + "description": "Used to declare whether a global context item is required, and if so, to declare its required type.", + "attributes": + [ + { + "type":"optional", + "name":"as", + "description":"The required type of the global context item; the default is item()." + }, + { + "type":"optional", + "name":"use", + "description":"Specifies whether a stylesheet module requires a global context item; the default is optional." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/global-context-item.html", + "output": "Global context item" + } + ] + }, + { + "name":"Loops and conditional processing", + "entries": + [ + { + "name": "", + "description": "Selects a set of nodes and processes each of them in the same way", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"XPath expression that specifies the nodes to be processed." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/for-each", + "output": "Processed set of nodes" + }, + { + "name": "", + "description": "Element contains a test attribute and a template. If the test evaluates to true, the template is processed.", + "attributes": + [ + { + "type":"required", + "name":"test", + "description":"Contains an XPath expression that can be evaluated to a Boolean value." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/if", + "output": "Depending on test processed template or not." + }, + { + "name": "", + "description": "Element defines a choice among a number of alternatives. It behaves like a switch statement in procedural languages.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/choose", + "output": "Choosed XML template" + }, + { + "name": "", + "description": "Element always appears within an element, acting like a case statement.", + "attributes": + [ + { + "type":"required", + "name":"test", + "description":"Boolean expression to be evaluated. If true, the contents of the element are processed; if false, they are ignored." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/when", + "output": "Processed or not XML Template" + }, + { + "name": "", + "description": "Element is used to define the action that should be taken when none of the conditions apply.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/otherwise", + "output": "processed XML Template" + }, + { + "name": "", + "description": "Selects a sequence of nodes and/or atomic values and organizes them into subsets called groups.", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"Expression to select nodes/values." + }, + { + "type":"optional", + "name":"group-by", + "description":"Groups together all items having the same value for a grouping key." + }, + { + "type":"optional", + "name":"group-adjacent", + "description":"Groups together all items having the same value for a grouping key, provided that they are also adjacent in the input sequence." + }, + { + "type":"optional", + "name":"group-starting-with", + "description":"Processes the items in the supplied sequence in turn, starting a new group whenever one of the items matches a specified pattern." + }, + { + "type":"optional", + "name":"group-ending-with", + "description":"Processes the items in the supplied sequence in turn, closing the current group whenever one of the items matches a specified pattern." + }, + { + "type":"optional", + "name":"break-when", + "description":" The value of the attribute is an expression, which must return a boolean." + }, + { + "type":"optional", + "name":"composite", + "description":"Can be used when grouping using either group-by or group-adjacent. If set to yes, then the group-by and group-adjacent expressions may evaluate to a sequence, and grouping is done by comparing the entire sequence." + }, + { + "type":"optional", + "name":"collation", + "description":"The name of a collating sequence, used when comparing grouping keys. Can be used when grouping using either group-by or group-adjacent." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/for-each-group.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "Used to iterate over a sequence, with the option to set parameters for use in the next iteration.", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"Expression to select nodes/values." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/iterate.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "The xsl:break instruction is used within xsl:iterate, and causes premature completion before the entire input sequence has been processed.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"The effect of the instruction may be defined either by a select attribute, or by an enclosed sequence constructor. " + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/break.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "The xsl:next-iteration instruction occurs within xsl:iterate. The contents are a set of xsl:with-param elements defining the values of the iteration parameters to be used on the next iteration.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/next-iteration.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "Occurs within xsl:iterate to define processing to be carried out when the input sequence is exhausted.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"The effect of the instruction may be defined either by an expression within the optional select attribute, or by the enclosed sequence constructor." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/on-completion.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "The result of the xsl:fork instruction is the sequence formed by concatenating the results of evaluating each of its contained instructions, in order.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/fork.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "Used to allow conditional content construction to be made streamable. Outputs the enclosed content only if the containing sequence generates no \"ordinary\" content.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"The value to be output when the containing sequence constructor would otherwise deliver an empty result." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/on-empty.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "Used to allow conditional content construction to be made streamable. Outputs the enclosed content only if the containing sequence also generates \"ordinary\" content.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"The value to be output when the containing sequence constructor delivers a non-empty result." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/on-non-empty.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "Allows recovery from dynamic errors occurring within the expression it wraps.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"The expression to be evaluated by the instruction may be defined either by a select attribute, or by an enclosed sequence constructor. " + }, + { + "type":"optional", + "name":"rollback-output", + "description":"The value no is used to relax the requirement to recover result trees when failures occur in the course of evaluating the xsl:try instruction." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/try.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "In conjunction with xsl:try, the xsl:catch instruction allows recovery from dynamic errors.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"The expression to be evaluated by the instruction may be defined either by a select attribute, or by an enclosed sequence constructor. " + }, + { + "type":"optional", + "name":"rollback-output", + "description":"The value no is used to relax the requirement to recover result trees when failures occur in the course of evaluating the xsl:try instruction." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/try.html", + "output": "processed XML Template" + }, + { + "name": "", + "description": "Used to declare the initial context item for a template: whether the template requires a context item, and if so, what its expected type is.", + "attributes": + [ + { + "type":"optional", + "name":"as", + "description":"The required type of the context item; the default is item()." + }, + { + "type":"optional", + "name":"use", + "description":"Specifies whether a template requires a context item; the default is optional." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/context-item.html", + "output": "processed XML Template" + } + ] + }, + { + "name":"Creating Result Tree", + "entries": + [ + { + "name": "", + "description": "Creates an attribute in the output document, using any values that can be accessed from the stylesheet. The element must be defined before any other output document element inside the output document element for which it establishes attribute values", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the name of the attribute to be created in the output document." + } , + { + "type":"optional", + "name":"namespace", + "description":"Defines the namespace URI for this attribute in the output document." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/attribute", + "output": "XML Element with provided attribute" + },{ + "name": "", + "description": "Creates a named set of attributes, which can then be applied as whole to the output document, in a manner similar to named styles in CSS", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the name of the attribute set." + } , + { + "type":"optional", + "name":"use-attribute-sets", + "description":"Builds an attribute set from other attribute sets. The names of the contributing sets must be separated with whitespace characters" + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/attribute-set", + "output": "Named set of attributes" + },{ + "name": "", + "description": "Transfers a shallow copy (the node and any associated namespace node) of the current node to the output document.", + "attributes": + [ + { + "type":"optional", + "name":"use-attribute-sets", + "description":"Lists attribute sets that should be applied to the output node, if it is an element" + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/copy", + "output": "Copy of XML node" + },{ + "name": "", + "description": "Counts things sequentially. It can also be used to quickly format a number.", + "attributes": + [ + { + "type":"optional", + "name":"count", + "description":"Specifies what in the source tree should be numbered sequentially. It uses an XPath expression." + }, + { + "type":"optional", + "name":"level", + "description":"Defines how levels of the source tree should be considered in generating sequential numbers. It has three valid values: single, multiple, and any." + }, + { + "type":"optional", + "name":"from", + "description":"Specifies where the numbering should start or start over." + }, + { + "type":"optional", + "name":"value", + "description":"Applies a given format to a number." + }, + { + "type":"optional", + "name":"format", + "description":"Defines the format of the generated number." + }, + { + "type":"optional", + "name":"lang", + "description":"Specifies which language's alphabet should be used in letter-based numbering formats." + }, + { + "type":"optional", + "name":"letter-value", + "description":"Disambiguates between numbering sequences that use letters. Some languages have more than one numbering system that use letters." + }, + { + "type":"optional", + "name":"grouping-separator", + "description":"Specifies what character should be used as the group (e.g. thousands) separator." + }, + { + "type":"optional", + "name":"grouping-size", + "description":"Indicates the number of digits that make up a numeric group." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/number", + "output": "Formatted number" + },{ + "name": "", + "description": "Evaluates an XPath expression, converts it to a string, and writes that string to the result tree.", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"Specifies the XPath expression to be evaluated and written to the output tree." + }, + { + "type":"optional", + "name":"disable-output-escaping", + "description":"Specifies whether special characters are escaped when written to the output." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/value-of", + "output": "Value from XML nodes" + },{ + "name": "", + "description": "Writes literal text to the output tree.", + "attributes": + [ + { + "type":"optional", + "name":"disable-output-escaping", + "description":"Specifies whether special characters are escaped when written to the output." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/text", + "output": "XML Node with writed text" + },{ + "name": "", + "description": "Writes a comment to the output document. It must include only text.", + "attributes": + [ + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/comment", + "output": "XML Node with writed comment" + }, + { + "name": "", + "description": "Writes a processing instruction to the output document.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the name of this processing instruction." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/processing-instruction", + "output": "XML Node with output of processed instruction" + }, + { + "name": "", + "description": "Declares a named key which can be used elsewhere in the stylesheet with the key( ) function.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies a name for this key. Must be a QName." + }, + { + "type":"required", + "name":"match", + "description":"Defines the nodes for which this key is applicable." + }, + { + "type":"required", + "name":"use", + "description":"Specifies an XPath expression that will be used to determine the value of the key for each of the applicable nodes." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/key", + "output": "key to use in stylesheet" + }, + { + "name": "", + "description": "Declares a named key which can be used elsewhere in the stylesheet with the key( ) function.", + "attributes": + [ + { + "type":"optional", + "name":"name", + "description":"Specifies a name for this format." + }, + { + "type":"optional", + "name":"decimal-separator", + "description":"Specifies the decimal point character." + }, + { + "type":"optional", + "name":"grouping-separator", + "description":"Specifies the thousands separator character." + }, + { + "type":"optional", + "name":"infinity", + "description":"Specifies the string used to represent infinity." + }, + { + "type":"optional", + "name":"minus-sign", + "description":"Specifies the minus sign character." + }, + { + "type":"optional", + "name":"NaN", + "description":"Specifies the string used when the value is not a number." + }, + { + "type":"optional", + "name":"percent", + "description":"Specifies the percentage sign character." + }, + { + "type":"optional", + "name":"per-mille", + "description":"Specifies the per thousand character." + }, + { + "type":"optional", + "name":"zero-digit", + "description":"Specifies the digit zero character." + }, + { + "type":"optional", + "name":"digit", + "description":"Specifies the character used in the format pattern to stand for a digit." + }, + { + "type":"optional", + "name":"pattern-separator", + "description":"Specifies the character separating positive and negative subpatterns in a format pattern." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/decimal-format", + "output": "decimal format" + }, + { + "name": "", + "description": "Defines the elements in the source document for which whitespace should be preserved.", + "attributes": + [ + { + "type":"required", + "name":"elements", + "description":"Specifies the elements for which whitespace should be preserved." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/preserve-space", + "output": "preserved space" + }, + { + "name": "", + "description": "Defines the elements in the source document for which whitespace should be removed.", + "attributes": + [ + { + "type":"required", + "name":"elements", + "description":"Specifies the elements for which whitespace should be preserved." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/strip-space", + "output": "elements with removed whitespace" + }, + { + "name": "", + "description": "Defines a sort key for nodes selected by or and determines the order in which they are processed.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"Uses an XPath expression to specify the nodes to be sorted." + }, + { + "type":"optional", + "name":"order", + "description":"Specifies whether the nodes should be processed in \"ascending\" or \"descending\" order." + }, + { + "type":"optional", + "name":"case-order", + "description":"Indicates whether upper- or lowercase letters are to be ordered first." + }, + { + "type":"optional", + "name":"lang", + "description":"Specifies which language is to be used by the sort." + }, + { + "type":"optional", + "name":"data-type", + "description":"Defines whether items are to be ordered alphabetically or numerically." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/sort", + "output": "sorted elements" + }, + { + "name": "", + "description": "Controls the characteristics of the output document.", + "attributes": + [ + { + "type":"optional", + "name":"method", + "description":"Specifies output format." + }, + { + "type":"optional", + "name":"version", + "description":"Specifies the value of the version attribute of the XML or HTML declaration in the output document." + }, + { + "type":"optional", + "name":"encoding", + "description":"Specifies the value of the encoding attribute in the output document." + }, + { + "type":"optional", + "name":"omit-xml-declaration", + "description":"Indicates whether or not to include an XML declaration in the output." + }, + { + "type":"optional", + "name":"doctype-public", + "description":"Specifies the value of the PUBLIC attribute of the DOCTYPE declaration in the output document." + }, + { + "type":"optional", + "name":"doctype-system", + "description":"Specifies the value of the SYSTEM attribute of the DOCTYPE declaration in the output document." + }, + { + "type":"optional", + "name":"cdata-section-elements", + "description":"Lists elements whose text contents should be written as CDATA sections." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/output", + "output": "changed document prefix" + }, + { + "name": "", + "description": "Used to direct output to a secondary output destination.", + "attributes": + [ + { + "type":"optional", + "name":"format", + "description":"If present, it gives the name of an xsl:output element that describes the serialization format for this output document" + }, + { + "type":"optional", + "name":"href", + "description":"The URI for the result document. If this is a relative URI, it is interpreted relative to the base output URI." + }, + { + "type":"optional", + "name":"validation", + "description":"Requests strict or lax validation of the contents of the document against the element declaration of its top-level element" + }, + { + "type":"optional", + "name":"validation", + "description":"Requests strict or lax validation of the contents of the document against the element declaration of its top-level element; this also invokes document-level validation" + }, + { + "type":"optional", + "name":"validation", + "description":"Requests strict or lax validation of the contents of the document against the element declaration of its top-level element; this also invokes document-level validation" + }, + { + "type":"optional", + "name":"type", + "description":"Requests validation of the constructed document against a specified XSD type" + }, + { + "type":"optional", + "name":"method", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"allow-duplicate-names", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"build-tree", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"byte-order-mark", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"cdata-section-elements", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"doctype-public", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"doctype-system", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"encoding", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"escape-uri-attributes", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"html-version", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"include-content-type", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"indent", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"item-separator", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"json-node-output-method", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"media-type", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"normalization-form", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"omit-xml-declaration", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"parameter-document", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"standalone", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"suppress-indentation", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"undeclare-prefixes", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"use-character-maps", + "description":"Serialization attribute" + }, + { + "type":"optional", + "name":"output-version", + "description":"Overrides the version attribute specified on the output definition." + }, + { + "type":"optional", + "name":"saxon:asynchronous", + "description":"The default for Saxon-EE is yes, which causes the instruction to be evaluated in a separate thread" + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/result-document.html", + "output": "XML Document" + },{ + "name": "", + "description": "Used to direct output to a secondary output destination.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"The name of the character map, which can be referenced from the use-character-maps attribute of xsl:output." + }, + { + "type":"optional", + "name":"use-character-maps", + "description":"Character maps may be assembled from other character maps using the use-character-maps attribute." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/character-map.html", + "output": "named character map" + },{ + "name": "", + "description": "Used to define the output representation of a given Unicode character, in an xsl:character-map.", + "attributes": + [ + { + "type":"required", + "name":"character", + "description":"A single XML character, to be replaced during serialization." + }, + { + "type":"required", + "name":"string", + "description":"Any string, that replaces the specified character during serialization." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/output-character.html", + "output": "defined character" + },{ + "name": "", + "description": "The purpose of the instruction is to allow merging of two or more pre-sorted input files, optionally using streamed processing of any or all of the inputs.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/merge.html", + "output": "merged files" + },{ + "name": "", + "description": "Used within an xsl:merge instruction to define the processing to be carried out on each group of input items sharing a value for the merge key.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/merge-action.html", + "output": "merged files" + },{ + "name": "", + "description": "Used to define the merge keys on which the input sequences of a merging operation are sorted.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"The merge key can be defined either by a string expression in a select attribute, or by an enclosed sequence constructor." + }, + { + "type":"optional", + "name":"lang", + "description":"Declares the algorithm used for alphabetic collating." + }, + { + "type":"optional", + "name":"order", + "description":"Declares the sort order." + }, + { + "type":"optional", + "name":"collation", + "description":"Declares the collation, by the name of a collating sequence." + }, + { + "type":"optional", + "name":"case-order", + "description":"It declares whether uppercase letters are sorted before their lowercase equivalents, or vice-versa" + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/merge-key.html", + "output": "merged files" + },{ + "name": "", + "description": "Describes the input source for an xsl:merge instruction.", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"For each anchor node, this selects the descendant nodes that make up the stream of data to be merged." + }, + { + "type":"optional", + "name":"name", + "description":"Name of the merge source." + }, + { + "type":"optional", + "name":"for-each-item", + "description":"XPath expression returning a set of nodes." + }, + { + "type":"optional", + "name":"for-each-source", + "description":"XPath expression returning a set of URIs" + }, + { + "type":"optional", + "name":"streamable", + "description":"Streamed merging requires Saxon-EE." + }, + { + "type":"optional", + "name":"use-accumulators", + "description":"Defines the set of accumulators that are applicable to the streamed document." + }, + { + "type":"optional", + "name":"sort-before-merge", + "description":"Specifies whether each input sequence will first be sorted to ensure that it is in the correct order." + }, + { + "type":"optional", + "name":"validation", + "description":"Determines whether validation is applied to the input read from this merge source." + }, + { + "type":"optional", + "name":"type", + "description":"If specified, data read from this merge source is validated against the named schema type." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/merge-source.html", + "output": "merged files" + } + ] + }, + { + "name":"Stylesheet structure", + "entries": + [ + { + "name": "", + "description": "Is the outermost element of a stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"version", + "description":"Specifies the version of XSLT required by this stylesheet." + }, + { + "type":"optional", + "name":"exclude-result-prefixes", + "description":"Specifies any namespace used in this document that should not be sent to the output document." + }, + { + "type":"optional", + "name":"extension-element-prefixes", + "description":"Specifies a space-separated list of any namespace prefixes for extension elements in this document." + }, + { + "type":"optional", + "name":"default-collation", + "description":"Specifies the default collation used by all XPath expressions appearing in attributes or text value templates that have the element as an ancestor" + }, + { + "type":"optional", + "name":"default-mode", + "description":"Defines the default value for the mode attribute of all and elements within its scope." + }, + { + "type":"optional", + "name":"default-validation", + "description":"Defines the default value of the validation attribute of all relevant instructions appearing within its scope." + }, + { + "type":"optional", + "name":"expand-text", + "description":"Determines whether descendant text nodes of the element are treated as text value templates." + }, + { + "type":"optional", + "name":"id", + "description":"Specifies an id for this stylesheet. This is most often used when the stylesheet is embedded in another XML document." + }, + { + "type":"optional", + "name":"input-type-annotations", + "description":"Specifies whether type annotations are stripped from the element so the same results are produced whether the source documents have been validated against a schema or not." + }, + { + "type":"optional", + "name":"use-when", + "description":"Determines whether the element and all the nodes that have it as ancestor are excluded from the stylesheet." + }, + { + "type":"optional", + "name":"xpath-default-namespace", + "description":"Specifies the namespace that will be used if the element name is unprefixed or an unprefixed type name within an XPath expression." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/stylesheet", + "output": "XSLT Stylesheet" + }, + { + "name": "", + "description": "Exactly equivalent to the element.", + "attributes": + [ + { + "type":"required", + "name":"version", + "description":"Specifies the version of XSLT required by this stylesheet." + }, + { + "type":"optional", + "name":"exclude-result-prefixes", + "description":"Specifies any namespace used in this document that should not be sent to the output document." + }, + { + "type":"optional", + "name":"extension-element-prefixes", + "description":"Specifies a space-separated list of any namespace prefixes for extension elements in this document." + }, + { + "type":"optional", + "name":"default-collation", + "description":"Specifies the default collation used by all XPath expressions appearing in attributes or text value templates that have the element as an ancestor" + }, + { + "type":"optional", + "name":"default-mode", + "description":"Defines the default value for the mode attribute of all and elements within its scope." + }, + { + "type":"optional", + "name":"default-validation", + "description":"Defines the default value of the validation attribute of all relevant instructions appearing within its scope." + }, + { + "type":"optional", + "name":"expand-text", + "description":"Determines whether descendant text nodes of the element are treated as text value templates." + }, + { + "type":"optional", + "name":"id", + "description":"Specifies an id for this stylesheet. This is most often used when the stylesheet is embedded in another XML document." + }, + { + "type":"optional", + "name":"input-type-annotations", + "description":"Specifies whether type annotations are stripped from the element so the same results are produced whether the source documents have been validated against a schema or not." + }, + { + "type":"optional", + "name":"use-when", + "description":"Determines whether the element and all the nodes that have it as ancestor are excluded from the stylesheet." + }, + { + "type":"optional", + "name":"xpath-default-namespace", + "description":"Specifies the namespace that will be used if the element name is unprefixed or an unprefixed type name within an XPath expression." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/transform", + "output": "XSLT Stylesheet" + }, + { + "name": "", + "description": "Top-level element that serves to import the contents of one stylesheet into another stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"href", + "description":"Specifies the URI of the stylesheet to import." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/import", + "output": "XSLT Stylesheet from another file" + }, + { + "name": "", + "description": "Merges the contents of one stylesheet with another. Unlike the case of , the contents of an included stylesheet have exactly the same precedence as the contents of the including stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"href", + "description":"Specifies the URI of the stylesheet to import." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/include", + "output": "XSLT Stylesheet with XSLT from another file." + }, + { + "name": "", + "description": "Maps a namespace in the stylesheet to a different namespace in the output tree. The most common use for this element is in generating a stylesheet from another stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"stylesheet-prefix", + "description":"Specifies the temporary namespace." + }, + { + "type":"required", + "name":"result-prefix", + "description":"Specifies the desired namespace for the output tree." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/namespace-alias", + "output": "XML Tree with changed namespaces" + }, + { + "name": "", + "description": "Creates an element in the output document.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Specifies the desired name of the output element. The name must be a valid QName." + }, + { + "type":"optional", + "name":"namespace", + "description":"Specifies the namespace of the output element." + }, + { + "type":"optional", + "name":"use-attribute-sets", + "description":"A whitespace-separated list of attribute-set element names to be applied to the element element's output element." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/namespace-alias", + "output": "XML with provided element" + } + ] + }, + { + "name":"Variables and parameters", + "entries": + [ + { + "name": "", + "description": "Establishes a parameter by name and, optionally, a default value for that parameter. When used as a top-level element, the parameter is global. When used inside an element, the parameter is local to that template.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Names the parameter. This must be a QName." + }, + { + "type":"optional", + "name":"select", + "description":"Uses an XPath expression to provide a default value if none is specified." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/param", + "output": "XML parameter" + }, + { + "name": "", + "description": "Declares a global or local variable in a stylesheet and gives it a value.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Gives the variable a name." + }, + { + "type":"optional", + "name":"select", + "description":"Defines the value of the variable through an XPath expression. If the element contains a template, this attribute is ignored." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/variable", + "output": "XML Variable" + }, + { + "name": "", + "description": "Sets the value of a parameter to be passed into a template.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Gives this parameter a name." + }, + { + "type":"optional", + "name":"select", + "description":"Defines the value of the parameter through an XPath expression. If the element contains a template, this attribute is ignored." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/with-param", + "output": "XML Parameter" + }, + { + "name": "", + "description": "Makes a deep copy (including descendant nodes) of whatever the select attribute specifies to the output document.", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"Uses an XPath expression that specifies what is to be copied." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/copy-of", + "output": "Copy of Selected node" + }, + { + "name": "", + "description": "Creates a new document node.", + "attributes": + [ + { + "type":"optional", + "name":"validation", + "description":"Used to perform document-level validation." + }, + { + "type":"optional", + "name":"type", + "description":"Determines what happens to any type annotations on element or attribute nodes" + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/document.html", + "output": "Document Node" + }, + { + "name": "", + "description": "Creates a namespace node.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Defines the name of the namespace node (that is, the namespace prefix)." + }, + { + "type":"optional", + "name":"select", + "description":"The string value of the namespace node" + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/namespace.html", + "output": "Namespace Node" + }, + { + "name": "", + "description": "A top-level element used to control the mapping between a namespace URI used in the stylesheet and the corresponding namespace URI used in the result document.", + "attributes": + [ + { + "type":"required", + "name":"stylesheet-prefix", + "description":"The namespace prefix used in the stylesheet." + }, + { + "type":"required", + "name":"result-prefix", + "description":"The namespace prefix used in the result document." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/namespace-alias.html", + "output": "Document with changed namespaces" + }, + { + "name": "", + "description": "Used to construct arbitrary sequences. It may select any sequence of nodes and/or atomic values, and essentially adds these to the result sequence.", + "attributes": + [ + { + "type":"optional", + "name":"select", + "description":"Specifies the input." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/sequence.html", + "output": "Sequence" + } + ] + }, + { + "name":"Regular Expressions", + "entries": + [ + { + "name": "", + "description": "Applies a regular expression to a supplied string value.", + "attributes": + [ + { + "type":"required", + "name":"select", + "description":"XPath expression whose value is the string to be analyzed. " + }, + { + "type":"required", + "name":"regex", + "description":"The regular expression, which may be given as an attribute value template." + }, + { + "type":"optional", + "name":"flags", + "description":"One or more Perl-like flags to control the way in which regular expression matching is performed, for example the value m indicates multi-line mode." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/analyze-string.html", + "output": "XML Node" + }, + { + "name": "", + "description": "Used within an xsl:analyze-string element to indicate the default action to be taken with substrings that match a regular expression.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/matching-substring.html", + "output": "XML Node" + }, + { + "name": "", + "description": "Used within an xsl:analyze-string element to indicate the default action to be taken with substrings that do not match a regular expression.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/non-matching-substring.html", + "output": "XML Node" + } + ] + }, + { + "name":"Callable", + "entries": + [ + { + "name": "", + "description": "Defines a function within a stylesheet. The function is written in XSLT but it may be called from any XPath expression in the stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Name of the function" + }, + { + "type":"optional", + "name":"as", + "description":"Defines the return type of the function." + }, + { + "type":"optional", + "name":"visibility", + "description":"Determines the visibility of the function in other packages." + }, + { + "type":"optional", + "name":"streamability", + "description":"Defines whether (and in what way) the function is streamable" + }, + { + "type":"optional", + "name":"override-extension-function", + "description":"Determines what happens if this function has the same name and arity as another provided by the implementation or made available in the static context by an implementation-defined mechanism" + }, + { + "type":"optional", + "name":"new-each-time", + "description":"Assigns the function to one of three categories regarding the determinism of functions (relevant to optimization)." + }, + { + "type":"optional", + "name":"cache", + "description":"Indicates whether the function is to cache its results." + }, + { + "type":"optional", + "name":"saxon:as", + "description":"Allows additional type information to be supplied using Saxon extension syntax." + }, + { + "type":"optional", + "name":"saxon:memo-function", + "description":"Specifying yes indicates that Saxon should remember the results of calling the function in a cache, and if the function is called again with the same arguments, the result is retrieved from the cache rather than being recalculated." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/function.html", + "output": "Function" + }, + { + "name": "", + "description": "Defines a function within a stylesheet. The function is written in XSLT but it may be called from any XPath expression in the stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"xpath", + "description":"An XPath expression which is evaluated to return the target expression as a string." + }, + { + "type":"optional", + "name":"as", + "description":"Defines the required type of the result of the XPath expression. Defaults to item()*." + }, + { + "type":"optional", + "name":"base-uri", + "description":"The base URI for the target expression. Defaults to the base URI of the stylesheet instruction." + }, + { + "type":"optional", + "name":"with-params", + "description":"Defines whether (and in what way) the function is streamable" + }, + { + "type":"optional", + "name":"context-item", + "description":"An XPath expression which is evaluated to determine the context item, position, and size, for evaluation of the target expression." + }, + { + "type":"optional", + "name":"namespace-context", + "description":"An expression returning a node; the in-scope namespaces of this node define the namespace context for the XPath expression." + }, + { + "type":"optional", + "name":"schema-aware", + "description":"If yes, the XPath expression has access to the schema components imported into the stylesheet." + }, + { + "type":"optional", + "name":"saxon:options", + "description":"The value of the attribute is an expression that evaluates to a map." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/evaluate.html", + "output": "String" + }, + { + "name": "", + "description": "Defines a function within a stylesheet. The function is written in XSLT but it may be called from any XPath expression in the stylesheet.", + "attributes": + [ + { + "type":"required", + "name":"test", + "description":"XPath expression to be asserted. " + }, + { + "type":"optional", + "name":"select", + "description":"Can be used to specify (part of) the content of the error message produced when the assertion is false." + }, + { + "type":"optional", + "name":"error-code", + "description":"Specifies the error code associated with the error message produced when the assertion is false." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/assert.html", + "output": "Error or nothing" + } + ] + }, + { + "name":"Misc", + "entries": + [ + { + "name": "", + "description": "Outputs a message (to the JavaScript Console in NS) and optionally terminates execution of the stylesheet.", + "attributes": + [ + { + "type":"optional", + "name":"terminate", + "description":"Set to \"yes\", indicates that execution should be terminated. The default value is \"no\", in which case the message is output and execution continues." + } + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/message", + "output": "Message in console" + }, + { + "name": "", + "description": "specifies what template to use if a given extension (or, eventually, newer version) element is not supported.", + "attributes": + [ + ], + "examples": [], + "documentationReferenceURL": "https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/fallback", + "output": "Fallbacks" + }, + { + "name": "", + "description": "Used to construct a new map.", + "attributes": + [ + { + "type":"optional", + "name":"on-duplicates", + "description":" If the attribute is present, then when a duplicate key value is encountered, the function is called supplying the old and new values for the key, and the old value for the key is replaced with the result of the function call." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/map.html", + "output": "Map" + }, + { + "name": "", + "description": "Used to construct a singleton map (one key and one value).", + "attributes": + [ + { + "type":"required", + "name":"key", + "description":"Expression which defines the key of the entry in the new map." + }, + { + "type":"optional", + "name":"select", + "description":"The associated value can be defined either by a select attribute or by an enclosed sequence constructor." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/map-entry.html", + "output": "Singleton Map" + }, + { + "name": "", + "description": "Used to modify the visibility of selected components within a package.", + "attributes": + [ + { + "type":"required", + "name":"component", + "description":"Identifies the kind of component that is selected. " + }, + { + "type":"required", + "name":"names", + "description":"Identifies a subset of the specified components, by name. " + }, + { + "type":"required", + "name":"visibility", + "description":"Determines the external visibility of the selected components." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/expose.html", + "output": "Element with changed visibility" + }, + { + "name": "", + "description": "Used to modify the visibility of selected components within a package.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"Defines a name for the accumulator." + }, + { + "type":"required", + "name":"initial-value", + "description":"Defines the initial value of the accumulator." + }, + { + "type":"optional", + "name":"as", + "description":"Defines the type of the accumulator variable; default is item()*." + }, + { + "type":"optional", + "name":"streamable", + "description":"Requests streamed evaluation of the accumulator if set to yes." + }, + { + "type":"optional", + "name":"saxon:trace", + "description":"Causes a trace message to be output (to the Configuration's Logger) whenever the value of the accumulator changes." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/accumulator.html", + "output": "Accumulator" + }, + { + "name": "", + "description": "Defines a rule for an xsl:accumulator.", + "attributes": + [ + { + "type":"required", + "name":"match", + "description":"Pattern defining the set of nodes to which the accumulator rule applies. " + }, + { + "type":"optional", + "name":"phase", + "description":"Determines whether the rule fires before or after descendants are processed, by specifying phase=\"start\" (the default) or phase=\"end\" respectively. " + }, + { + "type":"optional", + "name":"select", + "description":"The expression to be evaluated by the rule may be given either by a select attribute, or by an enclosed sequence constructor. " + }, + { + "type":"optional", + "name":"saxon:capture", + "description":"The value \"yes|true|1\" on a phase=\"end\" rule for a streaming accumulator removes the requirement for the select attribute (or sequence constructor) to be motionless." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/accumulator-rule.html", + "output": "Accumulator" + }, + { + "name": "", + "description": "Used to initiate streamed or unstreamed processing of a source document.", + "attributes": + [ + { + "type":"required", + "name":"href", + "description":"The URI of a source document. It can be written as an attribute value template if the URI is not known statically." + }, + { + "type":"optional", + "name":"streamable", + "description":"Used to request streamed processing (the default is no)." + }, + { + "type":"optional", + "name":"use-accumulators", + "description":"Defines the set of accumulators that are applicable to the document." + }, + { + "type":"optional", + "name":"type", + "description":"Requests validation of the source document against a specified XSD type. The value will typically be a user-defined complex type defined in an imported schema." + }, + { + "type":"optional", + "name":"saxon:dtd-validation", + "description":"Controls whether DTD validation takes place." + }, + { + "type":"optional", + "name":"saxon:expand-attribute-defaults", + "description":"Controls whether attribute defaults defined in the schema or DTD are expanded." + }, + { + "type":"optional", + "name":"saxon:line-numbering", + "description":"Used to enable line numbering for the document being read." + }, + { + "type":"optional", + "name":"saxon:strip-space", + "description":"Used to specify whitespace stripping" + }, + { + "type":"optional", + "name":"saxon:xinclude", + "description":"Controls whether XInclude processing takes place." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/source-document.html", + "output": "Processed Document" + }, + { + "name": "", + "description": "Used to allow components of one package to be referenced within another.", + "attributes": + [ + { + "type":"required", + "name":"name", + "description":"The name of the package to be used, as an absolute URI." + }, + { + "type":"optional", + "name":"package-version", + "description":"The version of the named package to be used. The default is *, which matches any version. " + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/use-package.html", + "output": "Package" + }, + { + "name": "", + "description": "Used to allow conditional content construction to be made streamable. Used to avoid outputting a wrapper element if it would have no children.", + "attributes": + [ + + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/where-populated.html", + "output": "checks for children" + }, + { + "name": "", + "description": "Allows a package to restrict the visibility of components exposed by a package that it uses.", + "attributes": + [ + { + "type":"required", + "name":"component", + "description":"Identifies the kind of component selected" + }, + { + "type":"required", + "name":"names", + "description":"Identifies a subset of the specified components, by name. " + }, + { + "type":"required", + "name":"visibility", + "description":"Determines the potential visibility of the selected components." + } + ], + "examples": [], + "documentationReferenceURL": "https://www.saxonica.com/html/documentation12/xsl-elements/accept.html", + "output": "restricts visibility" + } + ] + } +] \ No newline at end of file diff --git a/Frontend/src/assets/tooltips/xslt/xsltdiffs.json b/Frontend/src/assets/tooltips/xslt/xsltdiffs.json new file mode 100644 index 0000000..a55215b --- /dev/null +++ b/Frontend/src/assets/tooltips/xslt/xsltdiffs.json @@ -0,0 +1,52 @@ +{ + "universalInfo": + [ + { + "category":"What is XSLT", + "description":"XSLT (Extensible Stylesheet Language Transformations) is a language for converting and manipulating XML data into various formats. It uses rules defined in stylesheets to transform XML documents into HTML, XML, or other text-based outputs." + }, + { + "category":"What's differences between XSLT versions" + } + ], + "VersionDiffs": + [ + { + "version":"2.0", + "diffs": + [ + "Introduced a richer data model with support for various data types and sequences, allowing more flexible handling of data.", + "Added native support for regular expressions, making text processing and pattern matching more powerful.", + "Introduced the concept of higher-order functions, enabling functions to be used as arguments and returned as results, enhancing the language's functional capabilities.", + "Expanded the set of built-in string functions, making string manipulation and formatting more versatile.", + "Introduced the concept of sequences, where nodes could be processed without relying solely on their order in the source document.", + "Provided improved error handling and reporting mechanisms, making it easier to diagnose and fix issues in transformations.", + "Allowed variable and function parameters to have type annotations, enhancing clarity and enabling better optimization.", + "Refined the handling of namespaces and introduced features for dealing with namespaces more effectively.", + "Introduced more advanced grouping capabilities, allowing grouping based on multiple criteria.", + "Expanded sorting options, making it possible to sort data based on multiple keys and in different directions." + ] + }, + { + "version":"3.0", + "diffs": + [ + "Extended the support for higher-order functions by introducing new functions like map and filter, enabling more functional programming patterns.", + "Introduced streaming capabilities, allowing processing of large documents without loading the entire document into memory, which improves performance and memory usage.", + "Introduced functions to parse and serialize JSON data, enabling transformations between XML and JSON formats.", + "Enhanced type annotations, allowing for more precise typing of variables and parameters, aiding both readability and optimization.", + "Introduced new standard functions, expanding the range of operations and calculations that can be performed within transformations.", + "Introduced a new data structure called maps, allowing for efficient key-value pair storage and manipulation.", + "Introduced tunnel parameters, which can pass data through templates without explicitly listing them in the template's parameter list", + "Introduced a try-catch construct for better error handling, allowing you to catch and handle errors more gracefully.", + "Introduced the ability to execute multiple templates concurrently, improving performance in multi-core environments.", + "Integrated new features from XPath 3.1, including support for higher-order functions and enhanced string manipulation functions.", + "Enhanced grouping capabilities, making it more powerful and flexible for complex grouping scenarios.", + "Allowed dynamic function calls using the xsl:evaluate element, enabling more dynamic transformations." + ] + } + + ] + + +} \ No newline at end of file diff --git a/Frontend/src/components/xml/tooltips/TooltipComponent.vue b/Frontend/src/components/xml/tooltips/TooltipComponent.vue index 25180f1..d25760f 100644 --- a/Frontend/src/components/xml/tooltips/TooltipComponent.vue +++ b/Frontend/src/components/xml/tooltips/TooltipComponent.vue @@ -7,6 +7,8 @@ import xpath1 from '@/assets/tooltips/xpath/xpath1.json'; import xpath2 from '@/assets/tooltips/xpath/xpath2.json'; import xpath3 from '@/assets/tooltips/xpath/xpath3.json'; import xpath31 from '@/assets/tooltips/xpath/xpath31.json'; +import xslt1 from '@/assets/tooltips/xslt/xslt1.json'; +import xslt3 from '@/assets/tooltips/xslt/xslt3.json' import TooltipDiffsComponent from './TooltipDiffsComponent.vue'; @@ -14,13 +16,18 @@ const props = defineProps({ version: { type: String, required: true + }, + toolType: { + type: String, + required: true } }) const areTooltipsHidden = ref(true) -function selectXPathVersion() { - switch(props.version) { +function selectTooltip() { + if(props.toolType == "xpath"){ + switch(props.version) { case "1.0": return xpath1; case "2.0": @@ -31,6 +38,17 @@ function selectXPathVersion() { default: return xpath31; } + } else { + switch(props.version){ + case "1.0":{ + return xslt1; + } + case "3.0":{ + return xslt3; + } + } + } + } function toggleTooltips() { @@ -45,10 +63,10 @@ function toggleTooltips() { T
o
o
l
t
i
p
s
- +
- - + +
diff --git a/Frontend/src/components/xml/tooltips/TooltipDiffsComponent.vue b/Frontend/src/components/xml/tooltips/TooltipDiffsComponent.vue index 73be964..bb07ed7 100644 --- a/Frontend/src/components/xml/tooltips/TooltipDiffsComponent.vue +++ b/Frontend/src/components/xml/tooltips/TooltipDiffsComponent.vue @@ -1,12 +1,17 @@ \ No newline at end of file diff --git a/Frontend/src/views/XSLTView.vue b/Frontend/src/views/XSLTView.vue index 44eb86d..f8f19b1 100644 --- a/Frontend/src/views/XSLTView.vue +++ b/Frontend/src/views/XSLTView.vue @@ -1,20 +1,28 @@ \ No newline at end of file