<!--
Maak een functie mf:xor()  exclusive or  die van twee sequences alleen de nodes teruggeeft die in slechts ꨮ van beide sequences voorkomen.
 Dit kan op de volgende manier worden gegenereerd: neem alle elementen van beide sequences samen, en haal daar de intersectie tussen beide sequences vanaf. 
 Test de functie door die werknemers te laten zien die als functie MANAGER hebben, of in kantoor 10 werken, dus zonder de manager HEUVEL, die ook in kantoor 10 werkt.
 
 
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:mf="www.vijfhart.nl/functies" extension-element-prefixes="mf">
  <xsl:output indent="yes"/>
 
   <xsl:function name="mf:xor">
     <xsl:param name="set1"></xsl:param>
     <xsl:param name="set2"></xsl:param>
<xsl:sequence select="($set1 | $set2) except ($set1 intersect $set2)"></xsl:sequence>
   </xsl:function>
 
  <xsl:template match="/">
<xsl:sequence select="mf:xor((//werknemer[functie='MANAGER']),(//werknemer[kantnr=10]))">
</xsl:sequence>   
  </xsl:template>
</xsl:stylesheet>
-->

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:mf="www.vijfhart.nl/functies" extension-element-prefixes="mf">
  <xsl:output indent="yes"/>
 
   <xsl:function name="mf:xor">
     <xsl:param name="set1"></xsl:param>
     <xsl:param name="set2"></xsl:param>
<xsl:sequence select="($set1 | $set2) except ($set1 intersect $set2)"></xsl:sequence>
   </xsl:function>
 
  <xsl:template match="/">
<xsl:sequence select="mf:xor((//werknemer[functie='MANAGER']),(//werknemer[kantnr=10]))">
</xsl:sequence>   
  </xsl:template>
</xsl:stylesheet>
