scxml 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. data/README +0 -0
  2. data/lib/scxml.rb +86 -0
  3. data/lib/scxml/document.rb +165 -0
  4. data/lib/scxml/element.rb +219 -0
  5. data/lib/scxml/xpath.rb +142 -0
  6. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate01.out +2 -0
  7. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate02.out +2 -0
  8. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate03.out +2 -0
  9. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate04.out +2 -0
  10. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate12.out +4 -0
  11. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate13.out +2 -0
  12. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate41.out +2 -0
  13. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate42.out +2 -0
  14. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate45.out +2 -0
  15. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate51.out +2 -0
  16. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate52.out +2 -0
  17. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate56.out +2 -0
  18. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate57.out +5 -0
  19. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate58.out +11 -0
  20. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select01.out +2 -0
  21. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select02.out +4 -0
  22. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select03.out +2 -0
  23. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select04.out +14 -0
  24. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select12.out +2 -0
  25. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select13.out +13 -0
  26. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select41.out +5 -0
  27. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select42.out +5 -0
  28. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select45.out +5 -0
  29. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select51.out +5 -0
  30. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select52.out +3 -0
  31. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select56.out +7 -0
  32. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select57.out +7 -0
  33. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select58.out +5 -0
  34. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select60.out +5 -0
  35. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select62.out +2 -0
  36. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select63.out +2 -0
  37. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select76.out +2 -0
  38. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select81.out +10 -0
  39. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select82.out +2 -0
  40. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select83.out +7 -0
  41. data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select84.out +8 -0
  42. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate01.txt +8 -0
  43. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate01.xml +7 -0
  44. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate01.xsl +18 -0
  45. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate02.txt +8 -0
  46. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate02.xml +7 -0
  47. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate02.xsl +18 -0
  48. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate04.txt +8 -0
  49. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate04.xml +7 -0
  50. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate04.xsl +18 -0
  51. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate07.txt +9 -0
  52. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate07.xml +7 -0
  53. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate07.xsl +20 -0
  54. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate08.txt +9 -0
  55. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate08.xml +7 -0
  56. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate08.xsl +20 -0
  57. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate10.txt +8 -0
  58. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate10.xml +7 -0
  59. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate10.xsl +20 -0
  60. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate14.txt +9 -0
  61. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate14.xml +9 -0
  62. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate14.xsl +20 -0
  63. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate15.txt +9 -0
  64. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate15.xml +9 -0
  65. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate15.xsl +20 -0
  66. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate16.txt +9 -0
  67. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate16.xml +9 -0
  68. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate16.xsl +20 -0
  69. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate17.txt +9 -0
  70. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate17.xml +11 -0
  71. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate17.xsl +20 -0
  72. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate36.txt +8 -0
  73. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate36.xml +7 -0
  74. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate36.xsl +20 -0
  75. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate48.txt +8 -0
  76. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate48.xml +21 -0
  77. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate48.xsl +22 -0
  78. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate49.txt +8 -0
  79. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate49.xml +21 -0
  80. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate49.xsl +22 -0
  81. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate50.txt +8 -0
  82. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate50.xml +21 -0
  83. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate50.xsl +22 -0
  84. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate51.txt +8 -0
  85. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate51.xml +21 -0
  86. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate51.xsl +22 -0
  87. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate52.txt +8 -0
  88. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate52.xml +21 -0
  89. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate52.xsl +22 -0
  90. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate53.txt +8 -0
  91. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate53.xml +21 -0
  92. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate53.xsl +22 -0
  93. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate54.txt +7 -0
  94. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate54.xml +21 -0
  95. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate54.xsl +21 -0
  96. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate55.txt +8 -0
  97. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate55.xml +21 -0
  98. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate55.xsl +22 -0
  99. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate56.txt +8 -0
  100. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate56.xml +21 -0
  101. data/test/scxml/Xalan_Conformance_Tests/predicate/predicate56.xsl +22 -0
  102. data/test/scxml/Xalan_Conformance_Tests/predicate/prepare.rb +34 -0
  103. data/test/scxml/Xalan_Conformance_Tests/select/prepare.rb +34 -0
  104. data/test/scxml/Xalan_Conformance_Tests/select/select01.txt +7 -0
  105. data/test/scxml/Xalan_Conformance_Tests/select/select01.xml +9 -0
  106. data/test/scxml/Xalan_Conformance_Tests/select/select01.xsl +19 -0
  107. data/test/scxml/Xalan_Conformance_Tests/select/select02.txt +7 -0
  108. data/test/scxml/Xalan_Conformance_Tests/select/select02.xml +4 -0
  109. data/test/scxml/Xalan_Conformance_Tests/select/select02.xsl +17 -0
  110. data/test/scxml/Xalan_Conformance_Tests/select/select03.txt +8 -0
  111. data/test/scxml/Xalan_Conformance_Tests/select/select03.xml +13 -0
  112. data/test/scxml/Xalan_Conformance_Tests/select/select03.xsl +19 -0
  113. data/test/scxml/Xalan_Conformance_Tests/select/select04.txt +12 -0
  114. data/test/scxml/Xalan_Conformance_Tests/select/select04.xml +12 -0
  115. data/test/scxml/Xalan_Conformance_Tests/select/select04.xsl +35 -0
  116. data/test/scxml/Xalan_Conformance_Tests/select/select12.txt +7 -0
  117. data/test/scxml/Xalan_Conformance_Tests/select/select12.xml +9 -0
  118. data/test/scxml/Xalan_Conformance_Tests/select/select12.xsl +19 -0
  119. data/test/scxml/Xalan_Conformance_Tests/select/select13.txt +13 -0
  120. data/test/scxml/Xalan_Conformance_Tests/select/select13.xml +18 -0
  121. data/test/scxml/Xalan_Conformance_Tests/select/select13.xsl +33 -0
  122. data/test/scxml/Xalan_Conformance_Tests/select/select41.txt +7 -0
  123. data/test/scxml/Xalan_Conformance_Tests/select/select41.xml +9 -0
  124. data/test/scxml/Xalan_Conformance_Tests/select/select41.xsl +23 -0
  125. data/test/scxml/Xalan_Conformance_Tests/select/select42.txt +8 -0
  126. data/test/scxml/Xalan_Conformance_Tests/select/select42.xml +9 -0
  127. data/test/scxml/Xalan_Conformance_Tests/select/select42.xsl +26 -0
  128. data/test/scxml/Xalan_Conformance_Tests/select/select45.txt +7 -0
  129. data/test/scxml/Xalan_Conformance_Tests/select/select45.xml +24 -0
  130. data/test/scxml/Xalan_Conformance_Tests/select/select45.xsl +25 -0
  131. data/test/scxml/Xalan_Conformance_Tests/select/select51.txt +7 -0
  132. data/test/scxml/Xalan_Conformance_Tests/select/select51.xml +24 -0
  133. data/test/scxml/Xalan_Conformance_Tests/select/select51.xsl +25 -0
  134. data/test/scxml/Xalan_Conformance_Tests/select/select52.txt +6 -0
  135. data/test/scxml/Xalan_Conformance_Tests/select/select52.xml +6 -0
  136. data/test/scxml/Xalan_Conformance_Tests/select/select52.xsl +23 -0
  137. data/test/scxml/Xalan_Conformance_Tests/select/select56.txt +7 -0
  138. data/test/scxml/Xalan_Conformance_Tests/select/select56.xml +29 -0
  139. data/test/scxml/Xalan_Conformance_Tests/select/select56.xsl +25 -0
  140. data/test/scxml/Xalan_Conformance_Tests/select/select57.txt +7 -0
  141. data/test/scxml/Xalan_Conformance_Tests/select/select57.xml +29 -0
  142. data/test/scxml/Xalan_Conformance_Tests/select/select57.xsl +25 -0
  143. data/test/scxml/Xalan_Conformance_Tests/select/select58.txt +7 -0
  144. data/test/scxml/Xalan_Conformance_Tests/select/select58.xml +17 -0
  145. data/test/scxml/Xalan_Conformance_Tests/select/select58.xsl +25 -0
  146. data/test/scxml/Xalan_Conformance_Tests/select/select60.txt +6 -0
  147. data/test/scxml/Xalan_Conformance_Tests/select/select60.xml +9 -0
  148. data/test/scxml/Xalan_Conformance_Tests/select/select60.xsl +25 -0
  149. data/test/scxml/Xalan_Conformance_Tests/select/select62.txt +6 -0
  150. data/test/scxml/Xalan_Conformance_Tests/select/select62.xml +5 -0
  151. data/test/scxml/Xalan_Conformance_Tests/select/select62.xsl +22 -0
  152. data/test/scxml/Xalan_Conformance_Tests/select/select63.txt +7 -0
  153. data/test/scxml/Xalan_Conformance_Tests/select/select63.xml +10 -0
  154. data/test/scxml/Xalan_Conformance_Tests/select/select63.xsl +19 -0
  155. data/test/scxml/Xalan_Conformance_Tests/select/select76.txt +7 -0
  156. data/test/scxml/Xalan_Conformance_Tests/select/select76.xml +6 -0
  157. data/test/scxml/Xalan_Conformance_Tests/select/select76.xsl +17 -0
  158. data/test/scxml/Xalan_Conformance_Tests/select/select81.txt +9 -0
  159. data/test/scxml/Xalan_Conformance_Tests/select/select81.xml +6 -0
  160. data/test/scxml/Xalan_Conformance_Tests/select/select81.xsl +24 -0
  161. data/test/scxml/Xalan_Conformance_Tests/select/select82.txt +9 -0
  162. data/test/scxml/Xalan_Conformance_Tests/select/select82.xml +5 -0
  163. data/test/scxml/Xalan_Conformance_Tests/select/select82.xsl +28 -0
  164. data/test/scxml/Xalan_Conformance_Tests/select/select83.txt +10 -0
  165. data/test/scxml/Xalan_Conformance_Tests/select/select83.xml +10 -0
  166. data/test/scxml/Xalan_Conformance_Tests/select/select83.xsl +32 -0
  167. data/test/scxml/Xalan_Conformance_Tests/select/select84.txt +11 -0
  168. data/test/scxml/Xalan_Conformance_Tests/select/select84.xml +10 -0
  169. data/test/scxml/Xalan_Conformance_Tests/select/select84.xsl +33 -0
  170. data/test/scxml/document_test.rb +231 -0
  171. data/test/scxml/element_test.rb +552 -0
  172. data/test/scxml_test_helper.rb +73 -0
  173. data/test/scxml_test_suite.rb +2 -0
  174. metadata +241 -0
@@ -0,0 +1,8 @@
1
+ # FileName: PREDICATE04
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Creator: David Marston
6
+ # Purpose: Test of implied conversion to number.
7
+ a[3.0='3.0']
8
+ # Always true; strings convert to the numbers they look like.
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <a>1</a>
4
+ <a>2</a>
5
+ <a>3</a>
6
+ <a>4</a>
7
+ </doc>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: PREDICATE04 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Creator: David Marston -->
9
+ <!-- Purpose: Test of implied conversion to number. -->
10
+
11
+ <xsl:template match="doc">
12
+ <out>
13
+ <xsl:value-of select="a[3.0='3.0']"/>
14
+ <!-- Always true; strings convert to the numbers they look like. -->
15
+ </out>
16
+ </xsl:template>
17
+
18
+ </xsl:stylesheet>
@@ -0,0 +1,9 @@
1
+ # FileName: PREDICATE07
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Creator: David Marston
6
+ # Purpose: Test of implied conversion to number for an inequality test.
7
+ a[0 &lt; true()]
8
+ # Always true; true converts to 1.
9
+ .
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <a>1</a>
4
+ <a>2</a>
5
+ <a>3</a>
6
+ <a>4</a>
7
+ </doc>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: PREDICATE07 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Creator: David Marston -->
9
+ <!-- Purpose: Test of implied conversion to number for an inequality test. -->
10
+
11
+ <xsl:template match="doc">
12
+ <out>
13
+ <xsl:for-each select="a[0 &lt; true()]">
14
+ <!-- Always true; true converts to 1. -->
15
+ <xsl:value-of select="."/>
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ </xsl:stylesheet>
@@ -0,0 +1,9 @@
1
+ # FileName: PREDICATE08
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Creator: David Marston
6
+ # Purpose: Test of implied conversion to number for an inequality test.
7
+ a['3.5' &lt; 4]
8
+ # Always true; strings convert to the numbers they look like.
9
+ .
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <a>1</a>
4
+ <a>2</a>
5
+ <a>3</a>
6
+ <a>4</a>
7
+ </doc>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: PREDICATE08 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Creator: David Marston -->
9
+ <!-- Purpose: Test of implied conversion to number for an inequality test. -->
10
+
11
+ <xsl:template match="doc">
12
+ <out>
13
+ <xsl:for-each select="a['3.5' &lt; 4]">
14
+ <!-- Always true; strings convert to the numbers they look like. -->
15
+ <xsl:value-of select="."/>
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ </xsl:stylesheet>
@@ -0,0 +1,8 @@
1
+ # FileName: PREDICATE10
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Creator: David Marston
6
+ # Purpose: Test of association of inequality symbols.
7
+ .
8
+ # Always true; (1 &lt; 2 ) converts to true; true converts to 1; and (1 &lt; 3) is true.
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <a>1</a>
4
+ <a>2</a>
5
+ <a>3</a>
6
+ <a>4</a>
7
+ </doc>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: PREDICATE10 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Creator: David Marston -->
9
+ <!-- Purpose: Test of association of inequality symbols. -->
10
+
11
+ <xsl:template match="doc">
12
+ <out>
13
+ <xsl:for-each select = "a[1 &lt; 2 &lt; 3]">
14
+ <xsl:value-of select="."/>
15
+ <!-- Always true; (1 &lt; 2 ) converts to true; true converts to 1; and (1 &lt; 3) is true. -->
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ </xsl:stylesheet>
@@ -0,0 +1,9 @@
1
+ # FileName: PREDICATE14
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Creator: David Marston
6
+ # Purpose: Test of boolean and, or with parens retaining usual precedence.
7
+ a[@squeesh or (@squish and @squash)]
8
+ .
9
+ # Should match 1, 2, 3, 5.
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <a squish="heavy" squash="butternut">1</a>
4
+ <a squish="heavy" squeesh="virus">2</a>
5
+ <a squash="butternut" squeesh="virus">3</a>
6
+ <a squish="heavy">4</a>
7
+ <a squeesh="virus">5</a>
8
+ <a squash="butternut">6</a>
9
+ </doc>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: PREDICATE14 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Creator: David Marston -->
9
+ <!-- Purpose: Test of boolean and, or with parens retaining usual precedence. -->
10
+
11
+ <xsl:template match="doc">
12
+ <out>
13
+ <xsl:for-each select="a[@squeesh or (@squish and @squash)]">
14
+ <xsl:value-of select="."/>
15
+ <!-- Should match 1, 2, 3, 5. -->
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ </xsl:stylesheet>
@@ -0,0 +1,9 @@
1
+ # FileName: PREDICATE15
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Creator: David Marston
6
+ # Purpose: Test of boolean and, or with parens overriding precedence.
7
+ a[(@squeesh or @squish) and @squash]
8
+ .
9
+ # Should match 1, 3.
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <a squish="heavy" squash="butternut">1</a>
4
+ <a squish="heavy" squeesh="virus">2</a>
5
+ <a squash="butternut" squeesh="virus">3</a>
6
+ <a squish="heavy">4</a>
7
+ <a squeesh="virus">5</a>
8
+ <a squash="butternut">6</a>
9
+ </doc>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: PREDICATE15 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Creator: David Marston -->
9
+ <!-- Purpose: Test of boolean and, or with parens overriding precedence. -->
10
+
11
+ <xsl:template match="doc">
12
+ <out>
13
+ <xsl:for-each select="a[(@squeesh or @squish) and @squash]">
14
+ <xsl:value-of select="."/>
15
+ <!-- Should match 1, 3. -->
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ </xsl:stylesheet>
@@ -0,0 +1,9 @@
1
+ # FileName: PREDICATE16
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Creator: David Marston
6
+ # Purpose: Test of boolean and, or without parens.
7
+ a[@squeesh or @squish and @squash]
8
+ .
9
+ # Should match 1, 2, 3, 5.
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <a squish="heavy" squash="butternut">1</a>
4
+ <a squish="heavy" squeesh="virus">2</a>
5
+ <a squash="butternut" squeesh="virus">3</a>
6
+ <a squish="heavy">4</a>
7
+ <a squeesh="virus">5</a>
8
+ <a squash="butternut">6</a>
9
+ </doc>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: PREDICATE16 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Creator: David Marston -->
9
+ <!-- Purpose: Test of boolean and, or without parens. -->
10
+
11
+ <xsl:template match="doc">
12
+ <out>
13
+ <xsl:for-each select="a[@squeesh or @squish and @squash]">
14
+ <xsl:value-of select="."/>
15
+ <!-- Should match 1, 2, 3, 5. -->
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ </xsl:stylesheet>
@@ -0,0 +1,9 @@
1
+ # FileName: PREDICATE17
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Creator: David Marston
6
+ # Purpose: Test of boolean not with @* to test for lack of attributes.
7
+ a[not(@*)]
8
+ .
9
+ # Should output 2, child2, 3.
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <a squish="heavy">1</a>
4
+ <a>2
5
+ <achild size="large">child2</achild>
6
+ </a>
7
+ <a>3</a>
8
+ <a attrib="present">4
9
+ <achild>child4</achild>
10
+ </a>
11
+ </doc>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: PREDICATE17 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Creator: David Marston -->
9
+ <!-- Purpose: Test of boolean not with @* to test for lack of attributes. -->
10
+
11
+ <xsl:template match="doc">
12
+ <out>
13
+ <xsl:for-each select="a[not(@*)]">
14
+ <xsl:value-of select="."/>
15
+ </xsl:for-each>
16
+ <!-- Should output 2, child2, 3. -->
17
+ </out>
18
+ </xsl:template>
19
+
20
+ </xsl:stylesheet>
@@ -0,0 +1,8 @@
1
+ # FileName: PREDICATE36
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Creator: David Marston
6
+ # Purpose: Test of association of inequality symbols.
7
+ .
8
+ # Always true; (1 &lt; 3 ) converts to true; true converts to 1; and (1 &lt; 2) is true.
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <a>1</a>
4
+ <a>2</a>
5
+ <a>3</a>
6
+ <a>4</a>
7
+ </doc>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: PREDICATE36 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Creator: David Marston -->
9
+ <!-- Purpose: Test of association of inequality symbols. -->
10
+
11
+ <xsl:template match="doc">
12
+ <out>
13
+ <xsl:for-each select = "a[1 &lt; 3 &lt; 2]">
14
+ <xsl:value-of select="."/>
15
+ <!-- Always true; (1 &lt; 3 ) converts to true; true converts to 1; and (1 &lt; 2) is true. -->
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ </xsl:stylesheet>
@@ -0,0 +1,8 @@
1
+ # FileName: predicate48
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Purpose: Test (a and b) combination of logical expressions in a predicate.
6
+ # Author: Morten Jorgensen
7
+ bar[@a='1' and @b='1']
8
+ @seq
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0"?>
2
+ <foo>
3
+
4
+ <bar a="0" b="0" c="0" d="0" seq="0"/>
5
+ <bar a="0" b="0" c="0" d="1" seq="1"/>
6
+ <bar a="0" b="0" c="1" d="0" seq="2"/>
7
+ <bar a="0" b="0" c="1" d="1" seq="3"/>
8
+ <bar a="0" b="1" c="0" d="0" seq="4"/>
9
+ <bar a="0" b="1" c="0" d="1" seq="5"/>
10
+ <bar a="0" b="1" c="1" d="0" seq="6"/>
11
+ <bar a="0" b="1" c="1" d="1" seq="7"/>
12
+ <bar a="1" b="0" c="0" d="0" seq="8"/>
13
+ <bar a="1" b="0" c="0" d="1" seq="9"/>
14
+ <bar a="1" b="0" c="1" d="0" seq="a"/>
15
+ <bar a="1" b="0" c="1" d="1" seq="b"/>
16
+ <bar a="1" b="1" c="0" d="0" seq="c"/>
17
+ <bar a="1" b="1" c="0" d="1" seq="d"/>
18
+ <bar a="1" b="1" c="1" d="0" seq="e"/>
19
+ <bar a="1" b="1" c="1" d="1" seq="f"/>
20
+
21
+ </foo>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet version="1.0"
3
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4
+ <!-- FileName: predicate48 -->
5
+ <!-- Document: http://www.w3.org/TR/xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.4 -->
8
+ <!-- Purpose: Test (a and b) combination of logical expressions in a predicate. -->
9
+ <!-- Author: Morten Jorgensen -->
10
+
11
+ <xsl:template match="foo">
12
+ <out>
13
+ <test-info>(a and b)</test-info>
14
+ <test-output>
15
+ <xsl:for-each select="bar[@a='1' and @b='1']">
16
+ <xsl:value-of select="@seq"/><xsl:text> </xsl:text>
17
+ </xsl:for-each>
18
+ </test-output>
19
+ </out>
20
+ </xsl:template>
21
+
22
+ </xsl:stylesheet>
@@ -0,0 +1,8 @@
1
+ # FileName: predicate49
2
+ # Document: http://www.w3.org/TR/xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.4
5
+ # Purpose: Test ((a or b) and c) combination of logical expressions in a predicate
6
+ # Author: Morten Jorgensen
7
+ bar[(@a='1' or @b='1') and @c='1']
8
+ @seq
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0"?>
2
+ <foo>
3
+
4
+ <bar a="0" b="0" c="0" d="0" seq="0"/>
5
+ <bar a="0" b="0" c="0" d="1" seq="1"/>
6
+ <bar a="0" b="0" c="1" d="0" seq="2"/>
7
+ <bar a="0" b="0" c="1" d="1" seq="3"/>
8
+ <bar a="0" b="1" c="0" d="0" seq="4"/>
9
+ <bar a="0" b="1" c="0" d="1" seq="5"/>
10
+ <bar a="0" b="1" c="1" d="0" seq="6"/>
11
+ <bar a="0" b="1" c="1" d="1" seq="7"/>
12
+ <bar a="1" b="0" c="0" d="0" seq="8"/>
13
+ <bar a="1" b="0" c="0" d="1" seq="9"/>
14
+ <bar a="1" b="0" c="1" d="0" seq="a"/>
15
+ <bar a="1" b="0" c="1" d="1" seq="b"/>
16
+ <bar a="1" b="1" c="0" d="0" seq="c"/>
17
+ <bar a="1" b="1" c="0" d="1" seq="d"/>
18
+ <bar a="1" b="1" c="1" d="0" seq="e"/>
19
+ <bar a="1" b="1" c="1" d="1" seq="f"/>
20
+
21
+ </foo>