Need to get the data in random order instead of sequential order of input.
Below is the xml source:
<?xml version='1.0' encoding='UTF-8'?>
<wd:Report_Data
xmlns:wd="urn:com.workday/bsvc">
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>PS 1 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>PS 1 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>9</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>9</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>10</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>10</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>PS 1 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>PS 2 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>5</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>5</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>7</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>7</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>PS 2 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>PS 2 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>7</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>7</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>10</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>10</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>DR 1 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>DR 1 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>8</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>8</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>6</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>6</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>PS 2 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>PS 2 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>6</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>6</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>7</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>7</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>PS 3 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>PS 3 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>Not enough information</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>8</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>8</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>DR2 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>DR2 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>6</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>6</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>6</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>6</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>DR3 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>DR3 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>Not enough information</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>10</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>10</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Manager</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>M response Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Manager</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>M response Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Manager</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>7</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>7</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Manager</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>6</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>6</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>PS 3 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>PS 3 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>8</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>8</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>7</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>7</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>DR4 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>DR4 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>8</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>8</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>4</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>4</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>PS 4 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>PS 4 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>7</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>7</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Peer/Stakeholder</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>8</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>8</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Manager</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>M response Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Manager</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>M response Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Manager</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>6</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>6</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Manager</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>4</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>4</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>DR5 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>DR5 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>6</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>6</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>456</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>7</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>7</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>DR1 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>DR1 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>Not enough information</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>6</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>6</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>1</wd:questionno>
<wd:response><p>DR2 Q1</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>2</wd:questionno>
<wd:response><p>DR2 Q2</p></wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>0</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>3</wd:questionno>
<wd:response>9</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>9</wd:score>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:empid>123</wd:empid>
<wd:category>Direct Report</wd:category>
<wd:questionno>4</wd:questionno>
<wd:response>10</wd:response>
<wd:date>2023-12-01</wd:date>
<wd:score>10</wd:score>
</wd:Report_Entry>
</wd:Report_Data>
Here is the xslt 3.0 that I am using it but need the data in any random order (but not the same order):
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:map="http://www.w3.org/2005/xpath-functions/map"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wd="urn:com.workday/bsvc"
exclude-result-prefixes="xs"
version="3.0">
<xsl:template match="/">
<Report_Data>
<xsl:apply-templates select="wd:Report_Data"/>
</Report_Data>
</xsl:template>
<xsl:function name="wd:formatPSQ">
<xsl:param name="psqValue"/>
<xsl:param name="lastElement"/>
<xsl:value-of select="concat('{\"Response\":{\"', $psqValue, '\"}')"/>
<xsl:if test="$lastElement = false()">
<xsl:value-of select="','"/>
</xsl:if>
</xsl:function>
<xsl:template match="wd:Report_Data">
<xsl:for-each-group select="wd:Report_Entry" group-by="wd:empid">
<Report_Entry>
<empid>
<xsl:value-of select="wd:empid"/>
</empid>
<DRPSQ1>
<xsl:if test="(current-group()[(wd:category ='Peer/Stakeholder' or wd:category = 'Direct Report') and wd:questionno='1']/wd:response)">
<xsl:text>[</xsl:text>
<xsl:for-each
select="current-group()[(wd:category ='Peer/Stakeholder' or wd:category = 'Direct Report') and wd:questionno='1']">
<xsl:text>{\"Response\":\"</xsl:text>
<xsl:value-of select="parse-xml-fragment(wd:response)/p"/>
<xsl:text>\"}</xsl:text>
<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each>
<xsl:text>]</xsl:text>
</xsl:if>
</DRPSQ1>
</Report_Entry>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
I need the output similar to this for DRPSQ1 (not on the same order but randomized needed: Expected result:
<?xml version="1.0" encoding="UTF-8"?>
<Report_Data xmlns:map="http://www.w3.org/2005/xpath-functions/map" xmlns:wd="urn:com.workday/bsvc">
<Report_Entry>
<empid>123</empid>
<DRPSQ1>[{\"Response\":\"PS 2 Q1\"},{\"Response\":\"PS 3
Q1\"},{\"Response\":\"PS 1 Q1\"},{\"Response\":\"DR2 Q1\"},{\"Response\":\"DR1 Q1\"}]</DRPSQ1>
</Report_Entry>
<Report_Entry>
<empid>456</empid>
<DRPSQ1>[{\"Response\":\"PS 3
Q1\"},{\"Response\":\"DR4 Q1\"},{\"Response\":\"PS 1 Q1\"},{\"Response\":\"DR5
Q1\"},{\"Response\":\"PS 2
Q1\"},{\"Response\":\"DR2 Q1\"},{\"Response\":\"DR3 Q1\"},{\"Response\":\"PS 4 Q1\"},{\"Response\":\"DR 1 Q1\"}]</DRPSQ1>
</Report_Entry>
</Report_Data>
As you populate the element DRPSQ1
with e.g.
<xsl:for-each select="current-group()[(wd:category ='Peer/Stakeholder' or wd:category = 'Direct Report') and wd:questionno='1']">
I suppose you want to use
<xsl:for-each select="random-number-generator(current-dateTime())?permute(current-group()[(wd:category ='Peer/Stakeholder' or wd:category = 'Direct Report') and wd:questionno='1'])">