scxml 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +0 -0
- data/lib/scxml.rb +86 -0
- data/lib/scxml/document.rb +165 -0
- data/lib/scxml/element.rb +219 -0
- data/lib/scxml/xpath.rb +142 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate01.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate02.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate03.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate04.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate12.out +4 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate13.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate41.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate42.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate45.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate51.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate52.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate56.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate57.out +5 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/predicate/predicate58.out +11 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select01.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select02.out +4 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select03.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select04.out +14 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select12.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select13.out +13 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select41.out +5 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select42.out +5 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select45.out +5 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select51.out +5 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select52.out +3 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select56.out +7 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select57.out +7 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select58.out +5 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select60.out +5 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select62.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select63.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select76.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select81.out +10 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select82.out +2 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select83.out +7 -0
- data/test/scxml/Xalan_Conformance_Tests/REF_OUT/select/select84.out +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate01.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate01.xml +7 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate01.xsl +18 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate02.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate02.xml +7 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate02.xsl +18 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate04.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate04.xml +7 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate04.xsl +18 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate07.txt +9 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate07.xml +7 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate07.xsl +20 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate08.txt +9 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate08.xml +7 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate08.xsl +20 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate10.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate10.xml +7 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate10.xsl +20 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate14.txt +9 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate14.xml +9 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate14.xsl +20 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate15.txt +9 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate15.xml +9 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate15.xsl +20 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate16.txt +9 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate16.xml +9 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate16.xsl +20 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate17.txt +9 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate17.xml +11 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate17.xsl +20 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate36.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate36.xml +7 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate36.xsl +20 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate48.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate48.xml +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate48.xsl +22 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate49.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate49.xml +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate49.xsl +22 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate50.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate50.xml +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate50.xsl +22 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate51.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate51.xml +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate51.xsl +22 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate52.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate52.xml +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate52.xsl +22 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate53.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate53.xml +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate53.xsl +22 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate54.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate54.xml +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate54.xsl +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate55.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate55.xml +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate55.xsl +22 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate56.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate56.xml +21 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/predicate56.xsl +22 -0
- data/test/scxml/Xalan_Conformance_Tests/predicate/prepare.rb +34 -0
- data/test/scxml/Xalan_Conformance_Tests/select/prepare.rb +34 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select01.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select01.xml +9 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select01.xsl +19 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select02.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select02.xml +4 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select02.xsl +17 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select03.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select03.xml +13 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select03.xsl +19 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select04.txt +12 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select04.xml +12 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select04.xsl +35 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select12.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select12.xml +9 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select12.xsl +19 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select13.txt +13 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select13.xml +18 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select13.xsl +33 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select41.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select41.xml +9 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select41.xsl +23 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select42.txt +8 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select42.xml +9 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select42.xsl +26 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select45.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select45.xml +24 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select45.xsl +25 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select51.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select51.xml +24 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select51.xsl +25 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select52.txt +6 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select52.xml +6 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select52.xsl +23 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select56.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select56.xml +29 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select56.xsl +25 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select57.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select57.xml +29 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select57.xsl +25 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select58.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select58.xml +17 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select58.xsl +25 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select60.txt +6 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select60.xml +9 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select60.xsl +25 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select62.txt +6 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select62.xml +5 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select62.xsl +22 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select63.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select63.xml +10 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select63.xsl +19 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select76.txt +7 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select76.xml +6 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select76.xsl +17 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select81.txt +9 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select81.xml +6 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select81.xsl +24 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select82.txt +9 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select82.xml +5 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select82.xsl +28 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select83.txt +10 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select83.xml +10 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select83.xsl +32 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select84.txt +11 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select84.xml +10 -0
- data/test/scxml/Xalan_Conformance_Tests/select/select84.xsl +33 -0
- data/test/scxml/document_test.rb +231 -0
- data/test/scxml/element_test.rb +552 -0
- data/test/scxml_test_helper.rb +73 -0
- data/test/scxml_test_suite.rb +2 -0
- 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,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,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,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,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,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,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,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,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>
|