XSL match for HRNs
authorSapan Bhatia <sapanb@cs.princeton.edu>
Fri, 14 Aug 2009 02:36:15 +0000 (02:36 +0000)
committerSapan Bhatia <sapanb@cs.princeton.edu>
Fri, 14 Aug 2009 02:36:15 +0000 (02:36 +0000)
sfatables/matches/hrn.xml [deleted file]
sfatables/matches/hrn.xsl [new file with mode: 0644]

diff --git a/sfatables/matches/hrn.xml b/sfatables/matches/hrn.xml
deleted file mode 100644 (file)
index a4473c8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<!-- 
-"sfa-input" specifies the subset of the requestor context that this match needs to see. It is specified as an xpath expression.
-For this simple match, we just need to look at sfa-input. 
-
-"rule" specifies an xpath/xquery expression that evaluates the match. In this case, we just check if the requestor's HRN is the same
-as the one matched by this rule.
-
--->
-
-<match xmlns="http://www.planet-lab.org/sfa/sfatables/match/2009/8">
-    <sfa-input>
-        //request/user/hrn
-    </sfa-input>
-
-    <rule>
-        (//request/user/hrn eq //current/usr/hrn)
-    </rule>
-</match>
diff --git a/sfatables/matches/hrn.xsl b/sfatables/matches/hrn.xsl
new file mode 100644 (file)
index 0000000..3781b43
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:template match="//rspec-match">
+        <xsl:variable name="result">
+            <xsl:for-each select="//rspec-match/context-input//user">
+                <xsl:variable name="context-hrn" select="hrn"/>
+                <xsl:for-each select="//rspec-match/rule-input//user">
+                    <xsl:choose>
+                    <xsl:when test="starts-with($context-hrn, hrn)">
+                        True
+                    </xsl:when>
+                    <xsl:otherwise>
+                        False
+                    </xsl:otherwise>
+                </xsl:choose>
+                </xsl:for-each>
+            </xsl:for-each>
+        </xsl:variable>
+        <xsl:value-of select="$result"/>
+    </xsl:template>
+</xsl:stylesheet>