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,25 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: select45 -->
5
+ <!-- Document: http://www.w3.org/TR/Xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.3 Node Sets -->
8
+ <!-- Purpose: test union operator using two paths with predicates. -->
9
+ <!-- Creator: Carmelo Montanez --><!-- Expression005 in NIST suite -->
10
+
11
+ <xsl:template match = "doc">
12
+ <out><xsl:text>
13
+ </xsl:text>
14
+ <xsl:for-each select = "book">
15
+ <xsl:apply-templates select= "author[name/@real='no']|author[name/@real='yes']"/>
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ <xsl:template match="*">
21
+ <xsl:value-of select="name"/><xsl:text>
22
+ </xsl:text>
23
+ </xsl:template>
24
+
25
+ </xsl:stylesheet>
@@ -0,0 +1,7 @@
1
+ # FileName: select51
2
+ # Document: http://www.w3.org/TR/Xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.3 Node Sets
5
+ # Purpose: test union operator using predicates testing element and attribute nodes.
6
+ # Creator: Carmelo Montanez # Expression011 in NIST suite
7
+ name
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <book>
4
+ <author>
5
+ <name real="no">Carmelo Montanez</name>
6
+ <chapters>Nine</chapters>
7
+ <bibliography></bibliography>
8
+ </author>
9
+ </book>
10
+ <book>
11
+ <author>
12
+ <name real="yes">David Marston</name>
13
+ <chapters>Seven</chapters>
14
+ <bibliography></bibliography>
15
+ </author>
16
+ </book>
17
+ <book>
18
+ <author>
19
+ <name real="yes">Mary Brady</name>
20
+ <chapters>Ten</chapters>
21
+ <bibliography></bibliography>
22
+ </author>
23
+ </book>
24
+ </doc>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: select51 -->
5
+ <!-- Document: http://www.w3.org/TR/Xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.3 Node Sets -->
8
+ <!-- Purpose: test union operator using predicates testing element and attribute nodes. -->
9
+ <!-- Creator: Carmelo Montanez --><!-- Expression011 in NIST suite -->
10
+
11
+ <xsl:template match = "doc">
12
+ <out><xsl:text>
13
+ </xsl:text>
14
+ <xsl:for-each select = "book">
15
+ <xsl:apply-templates select= "author[name='Mary Brady']|author[name/@real='no']"/>
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ <xsl:template match="*">
21
+ <xsl:value-of select="name"/><xsl:text>
22
+ </xsl:text>
23
+ </xsl:template>
24
+
25
+ </xsl:stylesheet>
@@ -0,0 +1,6 @@
1
+ # FileName: select52
2
+ # Document: http://www.w3.org/TR/Xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.3 Node Sets
5
+ # Purpose: test union operator where union yields empty set.
6
+ # Creator: Carmelo Montanez # Expression012 in NIST suite
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <child1>child number 1</child1>
4
+ <child2>child number 2</child2>
5
+ <child3>Selection of this child is an error.</child3>
6
+ </doc>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: select52 -->
5
+ <!-- Document: http://www.w3.org/TR/Xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.3 Node Sets -->
8
+ <!-- Purpose: test union operator where union yields empty set. -->
9
+ <!-- Creator: Carmelo Montanez --><!-- Expression012 in NIST suite -->
10
+
11
+ <xsl:template match = "doc">
12
+ <out><xsl:text>
13
+ </xsl:text>
14
+ <xsl:apply-templates select = "//noChild1|//noChild2"/>
15
+ </out>
16
+ </xsl:template>
17
+
18
+ <xsl:template match = "*">
19
+ <xsl:value-of select = "."/><xsl:text>
20
+ </xsl:text>
21
+ </xsl:template>
22
+
23
+ </xsl:stylesheet>
@@ -0,0 +1,7 @@
1
+ # FileName: select56
2
+ # Document: http://www.w3.org/TR/Xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.3 Node Sets
5
+ # Purpose: test union operator at different nesting levels (same element)
6
+ # Creator: Carmelo Montanez # Expression016 in NIST suite
7
+ .
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <book>
4
+ <author>
5
+ <name real="no">Carmelo Montanez</name>
6
+ <chapters>Nine</chapters>
7
+ <bibliography></bibliography>
8
+ </author>
9
+ </book>
10
+ <book>
11
+ <author>
12
+ <name real="yes">David Marston</name>
13
+ <chapters>Seven</chapters>
14
+ <bibliography></bibliography>
15
+ </author>
16
+ </book>
17
+ <book>
18
+ <author>
19
+ <name real="yes">Mary Brady</name>
20
+ <chapters>Ten</chapters>
21
+ <bibliography>
22
+ <author>
23
+ <name>Lynne Rosenthal</name>
24
+ <chapters>Five</chapters>
25
+ </author>
26
+ </bibliography>
27
+ </author>
28
+ </book>
29
+ </doc>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: select56 -->
5
+ <!-- Document: http://www.w3.org/TR/Xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.3 Node Sets -->
8
+ <!-- Purpose: test union operator at different nesting levels (same element) -->
9
+ <!-- Creator: Carmelo Montanez --><!-- Expression016 in NIST suite -->
10
+
11
+ <xsl:template match = "doc">
12
+ <out><xsl:text>
13
+ </xsl:text>
14
+ <xsl:for-each select = "book">
15
+ <xsl:apply-templates select= "author/name|author/bibliography/author/name"/>
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ <xsl:template match="*">
21
+ <xsl:value-of select="."/><xsl:text>
22
+ </xsl:text>
23
+ </xsl:template>
24
+
25
+ </xsl:stylesheet>
@@ -0,0 +1,7 @@
1
+ # FileName: select57
2
+ # Document: http://www.w3.org/TR/Xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.3 Node Sets
5
+ # Purpose: test union operator at different nesting levels (different elements)
6
+ # Creator: Carmelo Montanez # Expression017 in NIST suite
7
+ .
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <book>
4
+ <author>
5
+ <name real="no">Carmelo Montanez</name>
6
+ <chapters>Nine</chapters>
7
+ <bibliography></bibliography>
8
+ </author>
9
+ </book>
10
+ <book>
11
+ <author>
12
+ <name real="yes">David Marston</name>
13
+ <chapters>Seven</chapters>
14
+ <bibliography></bibliography>
15
+ </author>
16
+ </book>
17
+ <book>
18
+ <author>
19
+ <name real="yes">Mary Brady</name>
20
+ <chapters>Ten</chapters>
21
+ <bibliography>
22
+ <author>
23
+ <name>Lynne Rosenthal</name>
24
+ <chapters>Five</chapters>
25
+ </author>
26
+ </bibliography>
27
+ </author>
28
+ </book>
29
+ </doc>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: select57 -->
5
+ <!-- Document: http://www.w3.org/TR/Xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.3 Node Sets -->
8
+ <!-- Purpose: test union operator at different nesting levels (different elements) -->
9
+ <!-- Creator: Carmelo Montanez --><!-- Expression017 in NIST suite -->
10
+
11
+ <xsl:template match = "doc">
12
+ <out><xsl:text>
13
+ </xsl:text>
14
+ <xsl:for-each select = "book">
15
+ <xsl:apply-templates select= "author/name|author/bibliography/author/chapters"/>
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ <xsl:template match="*">
21
+ <xsl:value-of select="."/><xsl:text>
22
+ </xsl:text>
23
+ </xsl:template>
24
+
25
+ </xsl:stylesheet>
@@ -0,0 +1,7 @@
1
+ # FileName: select58
2
+ # Document: http://www.w3.org/TR/Xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.3 Node Sets
5
+ # Purpose: test union operator where one of the members is empty
6
+ # Creator: Carmelo Montanez # Expression018 in NIST suite
7
+ .
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <book>
4
+ <author>
5
+ <name real="na">David Marston</name>
6
+ <chapters>Seven</chapters>
7
+ <bibliography></bibliography>
8
+ </author>
9
+ </book>
10
+ <book>
11
+ <author>
12
+ <name real="yes">Mary Brady</name>
13
+ <chapters>Ten</chapters>
14
+ <bibliography></bibliography>
15
+ </author>
16
+ </book>
17
+ </doc>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: select58 -->
5
+ <!-- Document: http://www.w3.org/TR/Xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.3 Node Sets -->
8
+ <!-- Purpose: test union operator where one of the members is empty -->
9
+ <!-- Creator: Carmelo Montanez --><!-- Expression018 in NIST suite -->
10
+
11
+ <xsl:template match = "doc">
12
+ <out><xsl:text>
13
+ </xsl:text>
14
+ <xsl:for-each select = "book">
15
+ <xsl:apply-templates select= "author/name|author/noElement"/>
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ <xsl:template match="*">
21
+ <xsl:value-of select="."/><xsl:text>
22
+ </xsl:text>
23
+ </xsl:template>
24
+
25
+ </xsl:stylesheet>
@@ -0,0 +1,6 @@
1
+ # FileName: select60
2
+ # Document: http://www.w3.org/TR/Xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.3 Node Sets
5
+ # Purpose: NodeSet union using two relative location paths
6
+ # Creator: Carmelo Montanez # Expression020 in NIST suite
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <sub1>
4
+ <child1>child1</child1>
5
+ </sub1>
6
+ <sub2>
7
+ <child2>child2</child2>
8
+ </sub2>
9
+ </doc>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: select60 -->
5
+ <!-- Document: http://www.w3.org/TR/Xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.3 Node Sets -->
8
+ <!-- Purpose: NodeSet union using two relative location paths-->
9
+ <!-- Creator: Carmelo Montanez --><!-- Expression020 in NIST suite -->
10
+
11
+ <xsl:template match="/">
12
+ <out><xsl:text>
13
+ </xsl:text>
14
+ <xsl:for-each select = "doc">
15
+ <xsl:apply-templates select = "sub1/child1|sub2/child2"/>
16
+ </xsl:for-each>
17
+ </out>
18
+ </xsl:template>
19
+
20
+ <xsl:template match="*">
21
+ <xsl:value-of select = "."/><xsl:text>
22
+ </xsl:text>
23
+ </xsl:template>
24
+
25
+ </xsl:stylesheet>
@@ -0,0 +1,6 @@
1
+ # FileName: select62
2
+ # Document: http://www.w3.org/TR/Xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.3 Node Sets
5
+ # Purpose: union of two absolute (//) paths
6
+ # Creator: Carmelo Montanez # Expression022 in NIST suite
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <child1>1</child1>
4
+ <child2>2</child2>
5
+ </doc>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: select62 -->
5
+ <!-- Document: http://www.w3.org/TR/Xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.3 Node Sets -->
8
+ <!-- Purpose: union of two absolute (//) paths -->
9
+ <!-- Creator: Carmelo Montanez --><!-- Expression022 in NIST suite -->
10
+
11
+ <xsl:template match = "doc">
12
+ <out>
13
+ <xsl:apply-templates select = "//child1|//child2"/>
14
+ </out>
15
+ </xsl:template>
16
+
17
+ <xsl:template match = "*">
18
+ <xsl:value-of select = "."/>
19
+ </xsl:template>
20
+
21
+ </xsl:stylesheet>
22
+
@@ -0,0 +1,7 @@
1
+ # FileName: select63
2
+ # Document: http://www.w3.org/TR/Xpath
3
+ # DocVersion: 19991116
4
+ # Section: 3.3 Node Sets
5
+ # Purpose: test union operator used three times in an expression
6
+ # Creator: Carmelo Montanez # Expression023 in NIST suite
7
+ .
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0"?>
2
+ <doc>
3
+ <child1>1</child1>
4
+ <child2>2A</child2>
5
+ <child2>2B</child2>
6
+ <child3>3A</child3>
7
+ <child3>3B</child3>
8
+ <child4>4</child4>
9
+ <child5>5</child5>
10
+ </doc>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+
4
+ <!-- FileName: select63 -->
5
+ <!-- Document: http://www.w3.org/TR/Xpath -->
6
+ <!-- DocVersion: 19991116 -->
7
+ <!-- Section: 3.3 Node Sets -->
8
+ <!-- Purpose: test union operator used three times in an expression -->
9
+ <!-- Creator: Carmelo Montanez --><!-- Expression023 in NIST suite -->
10
+
11
+ <xsl:template match = "doc">
12
+ <out>
13
+ <xsl:for-each select = "//child5|//child2|//child4">
14
+ <xsl:value-of select="."/>
15
+ </xsl:for-each>
16
+ </out>
17
+ </xsl:template>
18
+
19
+ </xsl:stylesheet>
@@ -0,0 +1,7 @@
1
+ # FileName: select76
2
+ # Document: http://www.w3.org/TR/xslt
3
+ # DocVersion: 19991116
4
+ # Section: 5.2
5
+ # Creator: David Marston
6
+ # Purpose: Try /{name} to match the document element.
7
+ @level