Initial commit

This commit is contained in:
Wojciech Czop
2021-04-26 16:16:04 +02:00
commit 3e7daea3ac
57 changed files with 8173 additions and 0 deletions

540
Frontend/xslt (copy).html Normal file
View File

@@ -0,0 +1,540 @@
<!DOCTYPE html>
<html>
<head>
<!-- <link rel="stylesheet" href="styles.css"> -->
<link rel="stylesheet" href="new_css/r11form.css">
<script src="scripts.js"></script>
</head>
<body onload="init();">
<div class="container">
<div id="tool" class="tool">
<div class="tool-context">
<div class="headline">
<h1>Online XSLT tester <span class="versionInfo"><span class="version-span">v0.4</span></span></h1>
</div>
<label for="processors">Select XSLT processor:</label>
<select name="processors" id="processors">
<option value="saxon">Saxon</option>
<option value="xalan">Xalan</option>
</select>
<span id="processorTooltipInfo">procInfo</span><br>
<br>
<label for="xmlArea"><b>Insert your XML:</b></label>
<textarea id="xmlArea" name="xmlArea" rows="15"
class="textarea-300 bordered-field vertically-resizeable max-width"
onblur="setDefaultContent(this, 'Insert XML here');"
onfocus="clearDefaultContent(this, 'Insert XML here');"></textarea>
<br><br>
<label for="transformArea"><b>Insert your XSLT:</b></label>
<textarea id="transformArea" name="transformArea" rows="15"
class="textarea-300 bordered-field vertically-resizeable max-width"
onblur="setDefaultContent(this, 'Insert XSLT here');"
onfocus="clearDefaultContent(this, 'Insert XSLT here');"></textarea>
<br>
<button id="requestButton" class="max-width block-label action-button active"
onclick="performRequest('xsltpost', true, true)">Execute XSLT transform</button>
<br><br>
<label for="resultArea"><b>Transform result:<span id="procinfo"></span></b></label>
<textarea id="resultArea" name="resultArea" rows="10"
class="textarea-300 bordered-field vertically-resizeable max-width"></textarea>
</div>
</div>
<div class="tooltip tooltip-window">
<h2>What is XSLT?</h2>
<p>XSLT is a language for transforming XML documents into other documents such as XML, HTML and many
other.<br></p>
<span id="collapsible-lists">
<div class="collapsible">
<button class="section-button collapseTrigger" style="border: none" style="border: none">XSLT 1.0 vs
2.0
vs 3.0</button>
<div class="content">
<p><b>XSLT 2.0 introduced a host of new features:</b><br>
- Strong typing and all XSD types<br>
- The ability to define and write own functions<br>
- node-set() - replaces XSLT's 1.0 Result Tree Fragment, creating fully functional tree<br>
- New functions and operators:<br>
- - XPath 2.0<br>
- - String processing and regular expressions<br>
- - Grouping (for-each-group function)
- - String processing<br>
- - Sequence type<br>
</p>
<p><b>XSLT 3.0 further improved the formula:</b><br>
- Streaming tranformations (previously file had to be loaded to memory to be processed)<br>
- Packages - improve the modularity of large stylesheets<br>
- Improved error handling (for example <code>&lt;xsl:try&gt;</code>)<br>
- Support for maps and arrays, enabling XSLT to handle JSON as well as XML<br>
- Functions can now be arguments to other (higher-order) functions
</p>
</div>
</div>
<h2><span id="tooltipFunctionInfo">XSLT 1.0, 2.0 & 3.0 functions</span></h2>
<div class="collapsible">
<button class="section-button collapseTrigger" style="border: none">Templates</button>
<div class="content">
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Defining-Template-Rules"
target="_blank"><code>&lt;xsl:template&gt;</code></a> - defines a set of rules to be
applied to
specified node.<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Applying-Template-Rules"
target="_blank"><code>&lt;xsl:apply-templates&gt;</code></a> - applies a template rule to
the
current element or to element's child nodes.<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#apply-imports"
target="_blank"><code>&lt;xsl:apply-imports&gt;</code></a> - Applies a template rule from
an
imported style sheet<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Applying-Template-Rules"
target="_blank"><code>&lt;xsl:apply-templates&gt;</code></a> - Applies a template rule to
the
current element or to the current element's child nodes<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#named-templates"
target="_blank"><code>&lt;xsl:call-template&gt;</code></a> - Calls a named template
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-next-match"
target="_blank"><code>&lt;xsl:next-match&gt;</code></a> - overrides another template
rule
(considers all other template rules of lower import precedence/priority)<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-mode"
target="_blank"><code>&lt;xsl:mode&gt;</code></a> - Allows properties of a mode to be
defined<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-override"
target="_blank"><code>&lt;xsl:override&gt;</code></a> - Allows using package to
override
selected components from a used package<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-package"
target="_blank"><code>&lt;xsl:package&gt;</code></a> - Defines a set of stylesheet
modules
that can be compiled as a unit<br></span>
<span name="collapse2">[v3.0] <a href="https://www.w3.org/TR/xslt-30/#element-accept"
target="_blank"><code>&lt;xsl:accept&gt;</code></a> - Allows a package to restrict the
visibility of components exposed by a package<br></span>
<span name="collapse2">[v3.0] <a
href="http://www.w3.org/TR/xslt-30/#element-global-context-item"
target="_blank"><code>&lt;xsl:global-context-item&gt;</code></a> - Declares whether a
global context item is required, and if so, to declare its required type</span>
</div>
</div>
<div class="collapsible">
<button class="section-button collapseTrigger" style="border: none">Repetition and Conditional
processing</button>
<div class="content">
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#for-each"
target="_blank"><code>&lt;xsl:for-each&gt;</code></a> - Loops through each node in a
specified
node set<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Conditional-Processing"
target="_blank"><code>&lt;xsl:if&gt;</code></a> - Contains a template that will be applied
only if a specified condition is true<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Conditional-Processing-with-xsl:choose"
target="_blank"><code>&lt;xsl:choose&gt;</code></a> - Used in conjunction with &lt;when&gt;
and
&lt;otherwise&gt; to express multiple conditional tests<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Conditional-Processing-with-xsl:choose"
target="_blank"><code>&lt;xsl:when&gt;</code></a> - Specifies an action for the
&lt;choose&gt; element<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Conditional-Processing-with-xsl:choose"
target="_blank"><code>&lt;xsl:otherwise&gt;</code></a> - Specifies a default
action for the &lt;choose&gt; element<br>
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-for-each-group"
target="_blank"><code>&lt;xsl:for-each-group&gt;</code></a> - Groups
elements and performs operations once for each group<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-iterate"
target="_blank"><code>&lt;xsl:iterate&gt;</code></a> - Used to iterate
over a sequence, with the option to set parameters for use in the next
iteration<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-break"
target="_blank"><code>&lt;xsl:break&gt;</code></a> - Causes premature
completion before the entire input sequence has been processed<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-next-iteration"
target="_blank"><code>&lt;xsl:next-iteration&gt;</code></a> - The
contents
are a set of xsl:with-param elements defining the values of the iteration
parameters to be used on the next iteration<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-on-completion"
target="_blank"><code>&lt;xsl:on-completion&gt;</code></a> - Defines
processing to be carried out when the input sequence is exhausted<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-fork"
target="_blank"><code>&lt;xsl:fork&gt;</code></a> - The result of the
xsl:fork instruction is the sequence formed by concatenating the results of
evaluating each of its contained instructions, in order<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-on-empty"
target="_blank"><code>&lt;xsl:on-empty&gt;</code></a> - Outputs the
enclosed content only if the containing sequence generates no "ordinary"
content<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-on-non-empty"
target="_blank"><code>&lt;xsl:on-non-empty&gt;</code></a> - Outputs the
enclosed content only if the containing sequence also generates "ordinary"
content<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-try"
target="_blank"><code>&lt;xsl:try&gt;</code></a> - Allows recovery from
dynamic errors occurring within the expression it wraps<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-catch"
target="_blank"><code>&lt;xsl:catch&gt;</code></a> - In conjunction
with
xsl:try, handles dynamic errors<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-context-item"
target="_blank"><code>&lt;xsl:context-item&gt;</code></a> - Used to
declare
the initial context item for a template<br></span>
</div>
</div>
<div class="collapsible">
<button class="section-button collapseTrigger" style="border: none">Creating result tree</button>
<div class="content">
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#creating-attributes"
target="_blank"><code>&lt;xsl:attribute&gt;</code></a> - Adds an attribute<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#attribute-sets"
target="_blank"><code>&lt;xsl:attribute-set&gt;</code></a> - Defines a named set of
attributes<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#copying"
target="_blank"><code>&lt;xsl:copy&gt;</code></a> - Creates a copy of the current node
(without
child nodes and attributes)<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#number"
target="_blank"><code>&lt;xsl:number&gt;</code></a> - Determines the integer position of
the
current node and formats a number<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#value-of"
target="_blank"><code>&lt;xsl:value-of&gt;</code></a> - Extracts the value of a selected
node<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Creating-Text"
target="_blank"><code>&lt;xsl:text&gt;</code></a> - Writes literal text to the output<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Creating-Comments"
target="_blank"><code>&lt;xsl:comment&gt;</code></a> - Creates a comment node in the result
tree<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Creating-Processing-Instructions"
target="_blank"><code>&lt;xsl:processing-instruction&gt;</code></a> - Writes a processing
instruction to the output<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#key"
target="_blank"><code>&lt;xsl:key&gt;</code></a> -
Declares a named key that can be used in the
style sheet with the key() function<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#format-number"
target="_blank"><code>&lt;xsl:decimal-format&gt;</code></a> - Defines the characters and
symbols to be used when converting numbers into strings, with the format-number() function<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#strip"
target="_blank"><code>&lt;xsl:preserve-space&gt;</code></a> - Defines the elements for
which
white space should be preserved<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#strip"
target="_blank"><code>&lt;xsl:strip-space&gt;</code></a> - Defines the elements for which
white
space should be removed<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#sorting"
target="_blank"><code>&lt;xsl:sort&gt;</code></a> - Sorts the output<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#output"
target="_blank"><code>&lt;xsl:output&gt;</code></a> - Defines the format of the output
document<br>
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-perform-sort"
target="_blank"><code>&lt;xsl:for-each-group&gt;</code></a> - Sorts given
sequence<br></span>
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-result-document"
target="_blank"><code>&lt;xsl:result-document&gt;</code></a> - Creates a final result
tree<br></span>
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-character-map"
target="_blank"><code>&lt;xsl:character-map&gt;</code></a> - Allows a specific
character
appearing in the final result tree to be substituted by a specified string of
characters<br></span>
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-character-map"
target="_blank"><code>&lt;xsl:output-character&gt;</code></a> - Defines characters and
their replacements to be used by character-map<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-merge"
target="_blank"><code>&lt;xsl:merge&gt;</code></a> - Merges two or more pre-sorted
input
files<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-merge-action"
target="_blank"><code>&lt;xsl:merge-action&gt;</code></a> - Defines action to be
carried
out on each merged group<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-merge-key"
target="_blank"><code>&lt;xsl:merge-key&gt;</code></a> - Used to define the merge keys
on
which the input sequences are sorted<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-merge-source"
target="_blank"><code>&lt;xsl:merge-source&gt;</code></a> - Describes the input source
for
an xsl:merge instruction<br></span>
<!-- <span name="collapse2">[v3.0] <a href=" " target="_blank"><code>&lt; &gt;</code></a> - <br></span>
<span name="collapse2">[v3.0] <a href=" " target="_blank"><code>&lt; &gt;</code></a> - <br></span>
<span name="collapse2">[v3.0] <a href=" " target="_blank"><code>&lt; &gt;</code></a> - <br></span> -->
</div>
</div>
<div class="collapsible">
<button class="section-button collapseTrigger" style="border: none">Stylesheet structure</button>
<div class="content">
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#stylesheet-element"
target="_blank"><code>&lt;xsl:stylesheet&gt;</code></a> - Defines the root element of a
style
sheet<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#stylesheet-element"
target="_blank"><code>&lt;xsl:transform&gt;</code></a> - Defines the root element of a
style
sheet<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#import"
target="_blank"><code>&lt;xsl:import&gt;</code></a> - Imports the contents of one style
sheet
into another. Note: An imported style sheet has lower precedence than the importing style
sheet<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#include"
target="_blank"><code>&lt;xsl:include&gt;</code></a> - Includes the contents of one style
sheet
into another. Note: An included style sheet has the same precedence as the including style
sheet<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#literal-result-element"
target="_blank"><code>&lt;xsl:namespace-alias&gt;</code></a> - Replaces a namespace in the
style sheet to a different namespace in the output<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Creating-Elements-with-xsl:element"
target="_blank"><code>&lt;xsl:element&gt;</code></a> - Creates an element node in the
output
document<br>
</div>
</div>
<div class="collapsible">
<button class="section-button collapseTrigger" style="border: none">Variables and
Parameters</button>
<div class="content">
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#variables"
target="_blank"><code>&lt;xsl:param&gt;</code></a> - Declares a local or global
parameter<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#variables"
target="_blank"><code>&lt;xsl:variable&gt;</code></a> - Declares a local or global
variable<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Passing-Parameters-to-Templates"
target="_blank"><code>&lt;xsl:with-param&gt;</code></a> - Defines the value of a parameter
to
be passed into a template<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#copy-of"
target="_blank"><code>&lt;xsl:copy-of&gt;</code></a> - Creates a copy of the current node
(with
child nodes and attributes)<br>
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-document"
target="_blank"><code>&lt;xsl:document&gt;</code></a> - Creates a new document
node<br></span>
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-namespace"
target="_blank"><code>&lt;xsl:namespace&gt;</code></a> - Creates a namespace
node<br></span>
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-namespace-alias"
target="_blank"><code>&lt;xsl:namespace-alias&gt;</code></a> - Declares that a literal
namespace URI is being used as an alias for a target namespace URI<br></span>
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-sequence"
target="_blank"><code>&lt;xsl:sequence&gt;</code></a> - Constructs a sequence of nodes
and/or atomic values<br></span>
</div>
</div>
<span name="collapse30">
<div class="collapsible">
<button class="section-button collapseTrigger" style="border: none" name="collapse2">[v2.0]
Regular
Expressions</button>
<div class="content" name="collapse2data">
[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-analyze-string"
target="_blank"><code>&lt;xsl:analyze-string&gt;</code></a> - Identifies substrings
that
match
given regex<br>
[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-analyze-string"
target="_blank"><code>&lt;xsl:matching-substring&gt;</code></a> - Used in conjunction
with
analize-string, returns matching substrings<br>
[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-analyze-string"
target="_blank"><code>&lt;xsl:non-matching-substring&gt;</code></a> - Used in
conjunction
with
analize-string, returns substrings that didn't match the regex
</div>
</div>
</span>
<span name="collapse30">
<div class="collapsible">
<button class="section-button collapseTrigger" style="border: none" name="collapse2">[v2.0 -
3.0]
Callable</button>
<div class="content" name="collapse2data">
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-function"
target="_blank"><code>&lt;xsl:function&gt;</code></a> - Declares a function that
can be
called from any XPath expression in the stylesheet<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-evaluate"
target="_blank"><code>&lt;xsl:evaluate&gt;</code></a> - Allows dynamic evaluation
of
XPath
expressions from a string<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-assert"
target="_blank"><code>&lt;xsl:assert&gt;</code></a> - Asserts a XPath expression,
optionally throwing a dynamic error<br></span>
<!-- <span name="collapse2">[v3.0] <a href=" " target="_blank"><code>&lt; &gt;</code></a> - <br></span> -->
</div>
</div>
</span>
<div class="collapsible">
<button class="section-button collapseTrigger" style="border: none" style="border: none">Other
elements</button>
<div class="content">
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#message"
target="_blank"><code>&lt;xsl:message&gt;</code></a> - Writes a message to the output (used
to
report errors)<br>
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#fallback"
target="_blank"><code>&lt;xsl:fallback&gt;</code></a> - Specifies an alternate code to run
if
the processor does not support an XSLT element<br>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-map"
target="_blank"><code>&lt;xsl:map&gt;</code></a> - Used to construct a new
map<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-map-entry"
target="_blank"><code>&lt;xsl:map-entry&gt;</code></a> - Used to construct a singleton
map
(one key and one value)<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-expose"
target="_blank"><code>&lt;xsl:expose&gt;</code></a> - Used to modify the visibility of
selected components within a package<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-accumulator"
target="_blank"><code>&lt;xsl:accumulator&gt;</code></a> - Defines a rule that is to be
applied while the document is being sequentially processed<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-accumulator-rule"
target="_blank"><code>&lt;xsl:accumulator-rule&gt;</code></a> - Defines a rule for an
xsl:accumulator<br></span>
<span name="collapse2"><b>Streaming: (not usable on this website!)</b></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-source-document"
target="_blank"><code>&lt;xsl:source-document&gt;</code></a> - Initiates streamed or
unstreamed processing of a source document<br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-use-package"
target="_blank"><code>&lt;xsl:use-package&gt;</code></a> - <br></span>
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-where-populated"
target="_blank"><code>&lt;xsl:where-populated&gt;</code></a> - Allows conditional
content
construction to be made streamable<br></span>
<span name="collapse2"><b>Packages: (not usable on this website!)</b></span>
<span name="collapse2">[v3.0] <a href="https://www.w3.org/TR/xslt-30/#element-accept"
target="_blank"><code>&lt;xsl:accept&gt;</code></a> - Allows a package to restrict the
visibility of components exposed by a package that it uses<br></span>
<!-- <span name="collapse2">[v3.0] <a href=" " target="_blank"><code>&lt; &gt;</code></a> - <br></span> -->
</div>
</div>
</span>
</div>
</div>
<!-- <script>
function getVersion() {
return document.getElementById("versions").value;
}
</script> -->
<script>
function processTooltip() {
console.log("processTooltip");
if (getProcInfo() == "xalan") {
document.getElementById("tooltipFunctionInfo").innerText = "XSLT 1.0 functions";
document.getElementById("processorTooltipInfo").innerText = "Supports XSLT 1.0";
hideList(document.getElementsByName("collapse30"));
} else {
document.getElementById("tooltipFunctionInfo").innerText = "XSLT 1.0, 2.0 & 3.0 functions";
document.getElementById("processorTooltipInfo").innerText = "Supports XSLT up to 3.0";
showList(document.getElementsByName("collapse30"));
}
}
</script>
<script>
function getProcessor() {
return document.getElementById("processors").value;
}
</script>
<script>
function getVersion() {
if (getProcInfo() == "xalan") {
return "1.0";
} else {
return "3.0";
}
}
</script>
<script>
function getProcInfo() {
var processVariables = document.getElementById("processors").value;// + "&version=" + document.getElementById("versions").value;
return processVariables;
}
</script>
<script>
var triggerList = document.getElementsByClassName("collapseTrigger");
for (i = 0; i < triggerList.length; i++) {
console.log("trigger connected");
triggerList[i].addEventListener("click", function () {
console.log("click");
var collapsible = this.parentElement;
var collapsibleData = this.nextElementSibling;
if (collapsibleData.style.maxHeight > "0px") {
collapsibleData.style.maxHeight = "0px";
this.classList.toggle("active", false);
if (!this.classList.contains("collapsibleMini")) {
collapsible.classList.toggle("active", false);
}
var subLists1 = collapsibleData.getElementsByClassName("content");
var subLists2 = collapsibleData.getElementsByClassName("active");
for (j = 0; j < subLists1.length; j++) {
subLists1[j].style.maxHeight = "0px";
}
for (j = 0; j < subLists2.length; j++) {
subLists2[j].classList.toggle("active", false);
}
} else {
collapsibleData.style.maxHeight = (collapsibleData.scrollHeight) + "px";
this.classList.toggle("active", true);
if (!this.classList.contains("collapsibleMini")) {
collapsible.classList.toggle("active", true);
} else {
var parentContent = this.closest(".content");
parentContent.style.maxHeight = (parentContent.scrollHeight + collapsibleData.scrollHeight) + "px";
}
}
});
}
</script>
<script>
function init() {
//Handle clicks in whole form and set info in tooltip
setDefaultContent(document.getElementById("xmlArea"), 'Insert XML here');
setDefaultContent(document.getElementById("transformArea"), 'Insert XSLT here');
console.log("init");
// refreshTooltip();
processTooltip();
tool.addEventListener('click', event => {
//Check if script was called from textarea or selector
var targetID = event.target.getAttribute('id');
if (targetID !== "processors" && targetID !== "xmlArea" && targetID !== "transformArea" && targetID !== "versions") {
return;
}
processTooltip();
// console.log("clock");
})
}
</script>
</body>
</html>