You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2020/05/19 20:10:56 UTC
svn commit: r1877931 [9/9] - in /xmlbeans:
site/src/documentation/content/xdocs/ trunk/ trunk/lib/
trunk/src/jamsupport/ trunk/src/store/org/apache/xmlbeans/impl/store/
trunk/src/xmlconfig/org/apache/xmlbeans/impl/config/
trunk/src/xpath_xquery/org/apa...
Modified: xmlbeans/trunk/test/src/xmlcursor/xpath/complex/detailed/XPathTest.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/xmlcursor/xpath/complex/detailed/XPathTest.java?rev=1877931&r1=1877930&r2=1877931&view=diff
==============================================================================
--- xmlbeans/trunk/test/src/xmlcursor/xpath/complex/detailed/XPathTest.java (original)
+++ xmlbeans/trunk/test/src/xmlcursor/xpath/complex/detailed/XPathTest.java Tue May 19 20:10:55 2020
@@ -16,1180 +16,206 @@
package xmlcursor.xpath.complex.detailed;
import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
import tools.util.JarUtil;
import xmlcursor.common.BasicCursorTestCase;
import xmlcursor.xpath.common.XPathCommon;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
/**
* Verifies XPath impl using examples from
* http://www.zvon.org/xxl/XPathTutorial/Output/example1.html
* includes expanded notations as well
*
*/
+@RunWith(Parameterized.class)
public class XPathTest extends BasicCursorTestCase {
- static String fixPath(String path)
- {
- // return "$this" + path;
- return path;
- }
-
- @Test
- public void testZvonExample1() throws Exception {
- System.out.println("====== Example-1 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon1.xml"));
-
- String ex1Simple = "/AAA";
- String ex1Expanded = "";
-
- String ex1R1 = "<AAA><BBB/><CCC/><BBB/><BBB/><DDD><BBB/></DDD><CCC/></AAA>";
- XmlObject[] exXml1 = new XmlObject[]{XmlObject.Factory.parse(ex1R1)};
-
- String ex2Simple = "/AAA/CCC";
- String ex2Expanded = "";
-
- String ex2R1 = "<CCC/>";
-
- XmlObject[] exXml2 = new XmlObject[]{XmlObject.Factory.parse(ex2R1),
- XmlObject.Factory.parse(ex2R1)};
-
-
- String ex3Simple = "/AAA/DDD/BBB";
- String ex3Expanded = "";
-
- //<BBB/><CCC/></AAA>
- String ex3R1 = "<BBB/>";
- XmlObject[] exXml3 = new XmlObject[]{XmlObject.Factory.parse(ex3R1)};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- XPathCommon.compare(x1, exXml1);
- x1.dispose();
-
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- XPathCommon.compare(x2, exXml2);
- x2.dispose();
-
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- XPathCommon.compare(x3, exXml3);
- x3.dispose();
- }
-
- @Test
- public void testZvonExample2() throws Exception {
- System.out.println("====== Example-2 ==========");
-
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon2.xml"));
- String ex1Simple = "//BBB";
- String ex1Expanded = "";
-
- String ex1R1 = "<BBB/>"; // * 5
- XmlObject[] exXml1 = new XmlObject[]{XmlObject.Factory.parse(ex1R1),
- XmlObject.Factory.parse(ex1R1),
- XmlObject.Factory.parse(ex1R1),
- XmlObject.Factory.parse(ex1R1),
- XmlObject.Factory.parse(ex1R1)};
-
- String ex2Simple = "//DDD/BBB";
- String ex2Expanded = "";
- XmlObject[] exXml2 = new XmlObject[]{XmlObject.Factory.parse(ex1R1),
- XmlObject.Factory.parse(ex1R1),
- XmlObject.Factory.parse(ex1R1)};
+ @Parameter
+ public int dataset;
+ @Parameter(value = 1)
+ public String xpath;
+ @Parameter(value = 2)
+ public String[] expected = null;
+
+ @Parameterized.Parameters(name = "{index}: zvon{0}.xml {1}")
+ public static Collection<Object[]> data() {
+ final List<Object[]> data = new ArrayList<>();
+ add(data, 1, "/AAA", "<AAA><BBB/><CCC/><BBB/><BBB/><DDD><BBB/></DDD><CCC/></AAA>");
+ add(data, 1, "/AAA/CCC", "<CCC/>", "<CCC/>");
+ add(data, 1, "/AAA/DDD/BBB", "<BBB/>");
+ add(data, 2, "//BBB", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>");
+ add(data, 2, "//DDD/BBB", "<BBB/>", "<BBB/>", "<BBB/>");
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- XPathCommon.compare(x1, exXml1);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- XPathCommon.compare(x2, exXml2);
- x2.dispose();
- }
+ add(data, 3, "/AAA/CCC/DDD/*", "<BBB/>", "<BBB/>", "<EEE/>", "<FFF/>");
+ add(data, 3, "/*/*/*/BBB", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB><BBB/></BBB>");
- @Test
- public void testZvonExample3() throws Exception {
- System.out.println("====== Example-3 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon3.xml"));
- String ex1Simple = "/AAA/CCC/DDD/*";
- String ex1R1 = "<BBB/>"; // * 5
- String ex1R2 = "<EEE/>";
- String ex1R3 = "<FFF/>";
-
- XmlObject[] exXml1 = new XmlObject[]{XmlObject.Factory.parse(ex1R1),
- XmlObject.Factory.parse(ex1R1),
- XmlObject.Factory.parse(ex1R2),
- XmlObject.Factory.parse(ex1R3)};
- String ex2Simple = "/*/*/*/BBB";
- String ex2R1 = "<BBB/>"; // * 5
- String ex2R2 = "<BBB><BBB/></BBB>";
- XmlObject[] exXml2 = new XmlObject[]{XmlObject.Factory.parse(ex2R1),
- XmlObject.Factory.parse(ex2R1),
- XmlObject.Factory.parse(ex2R1),
- XmlObject.Factory.parse(ex2R1),
- XmlObject.Factory.parse(ex2R2)};
- String ex3Simple = "//*";
- /* String ex3R0 = "<AAA><XXX><DDD><BBB/><BBB/><EEE/><FFF/></DDD></XXX><CCC><DDD><BBB/><BBB/><EEE/><FFF/></DDD></CCC><CCC><BBB><BBB><BBB/></BBB></BBB></CCC></AAA>";
- String ex3R1 = "<XXX><DDD><BBB/><BBB/><EEE/><FFF/></DDD></XXX>";
- String ex3R2 = "<CCC><DDD><BBB/><BBB/><EEE/><FFF/></DDD></CCC>";
- String ex3R3 = "<CCC><BBB><BBB><BBB/></BBB></BBB></CCC>";
- String ex3R4 = "<DDD><BBB/><BBB/><EEE/><FFF/></DDD>";
- String ex3R5 = "<DDD><BBB/><BBB/><EEE/><FFF/></DDD>";
- String ex3R6 = "<BBB><BBB><BBB/></BBB></BBB>";
- String ex3R7 = "<BBB/>";
- String ex3R8 = "<BBB/>";
- String ex3R9 = "<EEE/>";
- String ex3R10 = "<FFF/>";
- String ex3R11 = "<BBB/>";
- String ex3R12 = "<BBB/>";
- String ex3R13 = "<EEE/>";
- String ex3R14 = "<FFF/>";
- String ex3R15 = "<BBB><BBB/></BBB>";
- String ex3R16 = "<BBB/>";
- */
//according to Galax the document order is :
- String ex3R0 = "<AAA><XXX><DDD><BBB/><BBB/><EEE/><FFF/></DDD></XXX><CCC><DDD><BBB/><BBB/><EEE/><FFF/></DDD></CCC><CCC><BBB><BBB><BBB/></BBB></BBB></CCC></AAA>";
- String ex3R1 = "<XXX><DDD><BBB/><BBB/><EEE/><FFF/></DDD></XXX>";
-
- String ex3R2 = "<DDD><BBB/><BBB/><EEE/><FFF/></DDD>";
- String ex3R3 = "<BBB/>";
- String ex3R4 = "<BBB/>";
- String ex3R5 = "<EEE/>";
- String ex3R6 = "<FFF/>";
- String ex3R7 = "<CCC><DDD><BBB/><BBB/><EEE/><FFF/></DDD></CCC>";
-
- String ex3R8 = "<DDD><BBB/><BBB/><EEE/><FFF/></DDD>";
-
- String ex3R9 = "<BBB/>";
- String ex3R10 = "<BBB/>";
- String ex3R11 = "<EEE/>";
- String ex3R12 = "<FFF/>";
- String ex3R13 = "<CCC><BBB><BBB><BBB/></BBB></BBB></CCC>";
- String ex3R14 = "<BBB><BBB><BBB/></BBB></BBB>";
- String ex3R15 = "<BBB><BBB/></BBB>";
- String ex3R16 = "<BBB/>";
- XmlObject[] exXml3 = new XmlObject[]{XmlObject.Factory.parse(ex3R0),
- XmlObject.Factory.parse(ex3R1),
- XmlObject.Factory.parse(ex3R2),
- XmlObject.Factory.parse(ex3R3),
- XmlObject.Factory.parse(ex3R4),
- XmlObject.Factory.parse(ex3R5),
- XmlObject.Factory.parse(ex3R6),
- XmlObject.Factory.parse(ex3R7),
- XmlObject.Factory.parse(ex3R8),
- XmlObject.Factory.parse(ex3R9),
- XmlObject.Factory.parse(ex3R10),
- XmlObject.Factory.parse(ex3R11),
- XmlObject.Factory.parse(ex3R12),
- XmlObject.Factory.parse(ex3R13),
- XmlObject.Factory.parse(ex3R14),
- XmlObject.Factory.parse(ex3R15),
- XmlObject.Factory.parse(ex3R16)};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, exXml1);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, exXml2);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
-
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- System.out.println(x3.xmlText());
- XPathCommon.compare(x3, exXml3);
- x3.dispose();
-
- }
-
- @Test
- public void testZvonExample4() throws Exception {
- System.out.println("====== Example-4 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon4.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "/AAA/BBB[1]";
- String ex2Simple = "/AAA/BBB[last()]";
- String exR = "<BBB/>";
- XmlObject[] exXml = new XmlObject[]{XmlObject.Factory.parse(exR)};
-
-
- System.out.println("Test 1: " + fixPath(ex1Simple));
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, exXml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, exXml);
- x2.dispose();
- }
-
- @Test
- public void testZvonExample5() throws Exception {
- System.out.println("====== Example-5 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon5.xml"));
- XmlCursor xc = xDoc.newCursor();
-
- String ex1Simple = "//@id";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse("<xml-fragment id=\"b1\"/>"),
- XmlObject.Factory.parse("<xml-fragment id=\"b2\"/>")};
-
- String ex2Simple = "//BBB[@id]";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB id = \"b1\"/>"),
- XmlObject.Factory.parse("<BBB id = \"b2\"/>")};
-
- String ex3Simple = "//BBB[@name]";
- XmlObject[] ex3Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB name=\"bbb\"/>")};
-
- String ex4Simple = "//BBB[@*]";
- XmlObject[] ex4Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB id = \"b1\"/>"),
- XmlObject.Factory.parse("<BBB id = \"b2\"/>"),
- XmlObject.Factory.parse("<BBB name=\"bbb\"/>")};
-
- String ex5Simple = "//BBB[not(@*)]";
- XmlObject[] ex5Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB/>")
- };
+ add(data, 3, "//*",
+ "<AAA><XXX><DDD><BBB/><BBB/><EEE/><FFF/></DDD></XXX><CCC><DDD><BBB/><BBB/><EEE/><FFF/></DDD></CCC><CCC><BBB><BBB><BBB/></BBB></BBB></CCC></AAA>",
+ "<XXX><DDD><BBB/><BBB/><EEE/><FFF/></DDD></XXX>", "<DDD><BBB/><BBB/><EEE/><FFF/></DDD>", "<BBB/>", "<BBB/>",
+ "<EEE/>", "<FFF/>", "<CCC><DDD><BBB/><BBB/><EEE/><FFF/></DDD></CCC>", "<DDD><BBB/><BBB/><EEE/><FFF/></DDD>",
+ "<BBB/>", "<BBB/>", "<EEE/>", "<FFF/>", "<CCC><BBB><BBB><BBB/></BBB></BBB></CCC>",
+ "<BBB><BBB><BBB/></BBB></BBB>", "<BBB><BBB/></BBB>", "<BBB/>");
+
+ add(data, 4, "/AAA/BBB[1]", "<BBB/>");
+ add(data, 4, "/AAA/BBB[last()]", "<BBB/>");
+
+ add(data, 5, "//@id", "<xml-fragment id=\"b1\"/>", "<xml-fragment id=\"b2\"/>");
+ add(data, 5, "//BBB[@id]", "<BBB id = \"b1\"/>", "<BBB id = \"b2\"/>");
+ add(data, 5, "//BBB[@name]", "<BBB name=\"bbb\"/>");
+ add(data, 5, "//BBB[@*]", "<BBB id = \"b1\"/>", "<BBB id = \"b2\"/>", "<BBB name=\"bbb\"/>");
+ add(data, 5, "//BBB[not(@*)]", "<BBB/>");
+
+ add(data, 6, "//BBB[@id='b1']", "<BBB id = \"b1\"/>");
+ add(data, 6, "//BBB[@name='bbb']", "<BBB name=\"bbb\"/>");
+ add(data, 6, "//BBB[normalize-space(@name)='bbb']", "<BBB name=\" bbb \"/>", "<BBB name=\"bbb\"/>");
+
+ add(data, 7, "//*[count(BBB)=2]", "<DDD><BBB/><BBB/></DDD>");
+ add(data, 7, "//*[count(*)=2]", "<DDD><BBB/><BBB/></DDD>", "<EEE><CCC/><DDD/></EEE>");
+ add(data, 7, "//*[count(*)=3]",
+ "<AAA><CCC><BBB/><BBB/><BBB/></CCC><DDD><BBB/><BBB/></DDD><EEE><CCC/><DDD/></EEE></AAA>", "<CCC><BBB/><BBB/><BBB/></CCC>");
+
+ add(data, 8, "//*[name()='BBB']", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>");
+ add(data, 8, "//*[starts-with(name(),'B')]", "<BCC><BBB/><BBB/><BBB/></BCC>",
+ "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>", "<BEC><CCC/><DBD/></BEC>");
+
+ // ykadiysk: Jaxen prints in BF left-to-right order but XPath wants doc order
+ // add(data, "zvon8.xml", "//*[starts-with(name(),'B')]", "<BCC><BBB/><BBB/><BBB/></BCC>",
+ // "<BBB/>", "<BBB/>", "<BEC><CCC/><DBD/></BEC>", "<BBB/>", "<BBB/>", "<BBB/>");
+
+ add(data, 8, "//*[contains(name(),'C')]", "<BCC><BBB/><BBB/><BBB/></BCC>", "<BEC><CCC/><DBD/></BEC>", "<CCC/>");
+
+ add(data, 9, "//*[string-length(name()) = 3]", "<AAA><Q/><SSSS/><BB/><CCC/><DDDDDDDD/><EEEE/></AAA>", "<CCC/>");
+ add(data, 9, "//*[string-length(name()) < 3]", "<Q/>", "<BB/>");
+ add(data, 9, "//*[string-length(name()) > 3]", "<SSSS/>", "<DDDDDDDD/>", "<EEEE/>");
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
-
- System.out.println("Test 4: " + ex4Simple);
- XmlCursor x4 = xDoc.newCursor();
- x4.selectPath(fixPath(ex4Simple));
- //XPathCommon.display(x4);
- XPathCommon.compare(x4, ex4Xml);
- x4.dispose();
-
- System.out.println("Test 5: " + ex5Simple);
- XmlCursor x5 = xDoc.newCursor();
- x5.selectPath(fixPath(ex5Simple));
- //XPathCommon.display(x5);
- XPathCommon.compare(x5, ex5Xml);
-
- x5.dispose();
- }
-
- @Test
- public void testZvonExample6() throws Exception {
- System.out.println("====== Example-16 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon6.xml"));
- XmlCursor xc = xDoc.newCursor();
-
- String ex1Simple = "//BBB[@id='b1']";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB id = \"b1\"/>")};
-
- String ex2Simple = "//BBB[@name='bbb']";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB name=\"bbb\"/>")};
- String ex3Simple = "//BBB[normalize-space(@name)='bbb']";
- XmlObject[] ex3Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB name=\" bbb \"/>")
- ,
- XmlObject.Factory.parse("<BBB name=\"bbb\"/>")};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
- }
-
- @Test
- public void testZvonExample7() throws Exception {
- System.out.println("====== Example-7 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon7.xml"));
- XmlCursor xc = xDoc.newCursor();
-
- String ex1Simple = "//*[count(BBB)=2]";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse("<DDD><BBB/><BBB/></DDD>")};
- String ex2Simple = "//*[count(*)=2]";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<DDD><BBB/><BBB/></DDD>"),
- XmlObject.Factory.parse("<EEE><CCC/><DDD/></EEE>")};
- String ex3Simple = "//*[count(*)=3]";
- XmlObject[] ex3Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<AAA><CCC><BBB/><BBB/><BBB/></CCC><DDD><BBB/><BBB/></DDD><EEE><CCC/><DDD/></EEE></AAA>"),
- XmlObject.Factory.parse("<CCC><BBB/><BBB/><BBB/></CCC>")};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
- }
-
- @Test
- public void testZvonExample8() throws Exception {
- System.out.println("====== Example-8 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon8.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "//*[name()='BBB']";
- XmlObject[] ex1Xml = new XmlObject[]{XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- };
- String ex2Simple = "//*[starts-with(name(),'B')]";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BCC><BBB/><BBB/><BBB/></BCC>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BEC><CCC/><DBD/></BEC>")};
-
- /**ykadiysk: Jaxen prints in BF left-to-right order
- * but XPath wants doc order
- XmlObject[] ex2Xml = new XmlObject[]{XmlObject.Factory.parse("<BCC><BBB/><BBB/><BBB/></BCC>"),
-
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BEC><CCC/><DBD/></BEC>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>")};
- */
-
- String ex3Simple = "//*[contains(name(),'C')]";
- XmlObject[] ex3Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BCC><BBB/><BBB/><BBB/></BCC>"),
- XmlObject.Factory.parse("<BEC><CCC/><DBD/></BEC>"),
- XmlObject.Factory.parse("<CCC/>")};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- System.out.println("Zvon8 Test 2");
- XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
- }
-
- @Test
- public void testZvonExample9() throws Exception {
- System.out.println("====== Example-9 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon9.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "//*[string-length(name()) = 3]";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<AAA><Q/><SSSS/><BB/><CCC/><DDDDDDDD/><EEEE/></AAA>"),
- XmlObject.Factory.parse("<CCC/>")};
- String ex2Simple = "//*[string-length(name()) < 3]";
- XmlObject[] ex2Xml = new XmlObject[]{XmlObject.Factory.parse("<Q/>"),
- XmlObject.Factory.parse("<BB/>")};
- String ex3Simple = "//*[string-length(name()) > 3]";
- XmlObject[] ex3Xml = new XmlObject[]{
- XmlObject.Factory.parse("<SSSS/>"),
- XmlObject.Factory.parse("<DDDDDDDD/>"),
- XmlObject.Factory.parse("<EEEE/>")};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
- }
-
- @Test
- public void testZvonExample10() throws Exception {
- System.out.println("====== Example-10 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon10.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "$this//CCC | $this//BBB";
- //document order
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<CCC/>")
-
- };
+ add(data, 10, "$this//CCC | $this//BBB", "<BBB/>", "<CCC/>", "<CCC/>");
// Nodes are returned in document order
- String ex2Simple = "$this/AAA/EEE | $this//BBB";
-
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<EEE/>")
-
- };
-
- String ex3Simple = "./AAA/EEE |.//DDD/CCC | ./AAA | .//BBB";
- XmlObject[] ex3Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<AAA><BBB/><CCC/><DDD><CCC/></DDD><EEE/></AAA>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<EEE/>")
- };
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(ex1Simple);
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(ex2Simple);
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
- }
-
- @Test
- public void testZvonExample11() throws Exception {
- System.out.println("====== Example-11 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon11.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "/AAA";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse("<AAA><BBB/><CCC/></AAA>")};
-
- String ex2Simple = "/child::AAA";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<AAA><BBB/><CCC/></AAA>")};
-
- String ex3Simple = "/AAA/BBB";
- XmlObject[] ex3Xml = new XmlObject[]{XmlObject.Factory.parse("<BBB/>")};
-
- String ex4Simple = "/child::AAA/child::BBB";
- XmlObject[] ex4Xml = new XmlObject[]{XmlObject.Factory.parse("<BBB/>")};
-
- String ex5Simple = "/child::AAA/BBB";
- XmlObject[] ex5Xml = new XmlObject[]{XmlObject.Factory.parse("<BBB/>")};
-
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
-
- System.out.println("Test 4: " + ex4Simple);
- XmlCursor x4 = xDoc.newCursor();
- x4.selectPath(fixPath(ex4Simple));
- XPathCommon.display(x4);
- XPathCommon.display(ex4Xml);
- XPathCommon.compare(x4, ex4Xml);
- x4.dispose();
-
- System.out.println("Test 5: " + ex5Simple);
- XmlCursor x5 = xDoc.newCursor();
- x5.selectPath(fixPath(ex5Simple));
- //XPathCommon.display(x5);
- XPathCommon.compare(x5, ex5Xml);
- x5.dispose();
- }
-
- @Test
- public void testZvonExample12() throws Exception {
- System.out.println("====== Example-12 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon12.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "/descendant::*";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<AAA><BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB><CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC></AAA>"),
- XmlObject.Factory.parse(
- "<BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB>"),
-
- XmlObject.Factory.parse("<DDD><CCC><DDD/><EEE/></CCC></DDD>"),
-
- XmlObject.Factory.parse("<CCC><DDD/><EEE/></CCC>"),
-
-
- XmlObject.Factory.parse("<DDD/>"),
-
-
- XmlObject.Factory.parse("<EEE/>"),
- XmlObject.Factory.parse(
- "<CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC>"),
- XmlObject.Factory.parse("<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>"),
- XmlObject.Factory.parse("<EEE><DDD><FFF/></DDD></EEE>"),
- XmlObject.Factory.parse("<DDD><FFF/></DDD>"),
- XmlObject.Factory.parse("<FFF/>")};
-
- String ex2Simple = "/AAA/BBB/descendant::*";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<DDD><CCC><DDD/><EEE/></CCC></DDD>"),
- XmlObject.Factory.parse("<CCC><DDD/><EEE/></CCC>"),
- XmlObject.Factory.parse("<DDD/>"),
- XmlObject.Factory.parse("<EEE/>")};
-
- String ex3Simple = "//CCC/descendant::*";
- XmlObject[] ex3Xml = new XmlObject[]{
- XmlObject.Factory.parse("<DDD/>"),
- XmlObject.Factory.parse("<EEE/>"),
- XmlObject.Factory.parse("<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>"),
- XmlObject.Factory.parse("<EEE><DDD><FFF/></DDD></EEE>"),
- XmlObject.Factory.parse("<DDD><FFF/></DDD>"),
- XmlObject.Factory.parse("<FFF/>")
-
- };
- String ex4Simple = "//CCC/descendant::DDD";
- XmlObject[] ex4Xml = new XmlObject[]{
- XmlObject.Factory.parse("<DDD/>"),
- XmlObject.Factory.parse("<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>"),
- XmlObject.Factory.parse("<DDD><FFF/></DDD>"),
- };
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
-
- System.out.println("Test 4: " + ex4Simple);
- XmlCursor x4 = xDoc.newCursor();
- x4.selectPath(fixPath(ex4Simple));
- //XPathCommon.display(x4);
- XPathCommon.compare(x4, ex4Xml);
- x4.dispose();
- }
-
- @Test
- public void testZvonExample13() throws Exception {
- System.out.println("====== Example-13 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon13.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "//DDD/parent::*";
-
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB>"),
-
- XmlObject.Factory.parse("<CCC><DDD/><EEE/></CCC>"),
- XmlObject.Factory.parse(
- "<CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC>"),
- XmlObject.Factory.parse("<EEE><DDD><FFF/></DDD></EEE>")};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
- }
-
- @Test
- public void testZvonExample14() throws Exception {
- System.out.println("====== Example-14 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon14.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "/AAA/BBB/DDD/CCC/EEE/ancestor::*";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<AAA><BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB><CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC></AAA>"),
- XmlObject.Factory.parse(
- "<BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB>"),
- XmlObject.Factory.parse("<DDD><CCC><DDD/><EEE/></CCC></DDD>"),
- XmlObject.Factory.parse("<CCC><DDD/><EEE/></CCC>")
- };
-
- String ex2Simple = "//FFF/ancestor::*";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<AAA><BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB><CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC></AAA>"),
- XmlObject.Factory.parse(
- "<CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC>"),
- XmlObject.Factory.parse("<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>"),
- XmlObject.Factory.parse("<EEE><DDD><FFF/></DDD></EEE>"),
- XmlObject.Factory.parse("<DDD><FFF/></DDD>")
- };
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- }
-
- @Test
- public void testZvonExample15() throws Exception {
- System.out.println("====== Example-15 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon15.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "/AAA/BBB/following-sibling::*";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>"),
- XmlObject.Factory.parse("<CCC><DDD/></CCC>")};
- String ex2Simple = "//CCC/following-sibling::*";
- XmlObject[] ex2Xml = new XmlObject[]{XmlObject.Factory.parse("<DDD/>"),
- XmlObject.Factory.parse("<FFF/>"),
- XmlObject.Factory.parse(
- "<FFF><GGG/></FFF>")};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- }
-
- @Test
- public void testZvonExample16() throws Exception {
- System.out.println("====== Example-16 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon16.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "/AAA/XXX/preceding-sibling::*";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB><CCC/><DDD/></BBB>")};
- String ex2Simple = "//CCC/preceding-sibling::*";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB><CCC/><DDD/></BBB>"),
- XmlObject.Factory.parse(
- "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>"),
- XmlObject.Factory.parse("<EEE/>"),
- XmlObject.Factory.parse("<DDD/>")};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- }
-
- @Test
- public void testZvonExample17() throws Exception {
- System.out.println("====== Example-17 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon17.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "/AAA/XXX/following::*";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse("<CCC><DDD/></CCC>"),
- XmlObject.Factory.parse("<DDD/>")};
- String ex2Simple = "//ZZZ/following::*";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<FFF><GGG/></FFF>"),
- XmlObject.Factory.parse("<GGG/>"),
- XmlObject.Factory.parse(
- "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>"),
- XmlObject.Factory.parse(
- "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>"),
- XmlObject.Factory.parse("<EEE/>"),
- XmlObject.Factory.parse("<DDD/>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<FFF/>"),
- XmlObject.Factory.parse("<FFF><GGG/></FFF>"),
- XmlObject.Factory.parse("<GGG/>"),
- XmlObject.Factory.parse("<CCC><DDD/></CCC>"),
- XmlObject.Factory.parse("<DDD/>")};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
- }
-
- /**
- * the preceding axis contains all nodes that are descendants of the root
- * of the tree in which the context node is found, are not ancestors of
- * the context node, and occur before the context node in document order
- */
- @Test
- public void testZvonExample18() throws Exception {
- System.out.println("====== Example-18 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon18.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "/AAA/XXX/preceding::*";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB><CCC/><ZZZ><DDD/></ZZZ></BBB>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<ZZZ><DDD/></ZZZ>"),
- XmlObject.Factory.parse("<DDD/>")
- };
-
- String ex2Simple = "//GGG/preceding::*";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB><CCC/><ZZZ><DDD/></ZZZ></BBB>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<ZZZ><DDD/></ZZZ>"),
- XmlObject.Factory.parse("<DDD/>"),
-
- XmlObject.Factory.parse("<EEE/>"),
- XmlObject.Factory.parse("<DDD/>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<FFF/>")
-
- /*XmlObject.Factory.parse(
- "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>"),
- XmlObject.Factory.parse(
- "<CCC><DDD/></CCC>"),
- XmlObject.Factory.parse(
- "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>"),
- XmlObject.Factory.parse("<DDD/>"),
- */
- };
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- }
-
- @Test
- public void testZvonExample19() throws Exception {
- System.out.println("====== Example-19 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon19.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "/AAA/XXX/descendant-or-self::*";
-
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>"),
- XmlObject.Factory.parse(
- "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>"),
- XmlObject.Factory.parse("<EEE/>"),
- XmlObject.Factory.parse("<DDD/>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<FFF/>"),
- XmlObject.Factory.parse("<FFF><GGG/></FFF>"),
- XmlObject.Factory.parse("<GGG/>")};
- String ex2Simple = "//CCC/descendant-or-self::*";
-
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<CCC><DDD/></CCC>"),
- XmlObject.Factory.parse("<DDD/>"),
- };
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- }
-
- @Test
- public void testZvonExample20() throws Exception {
- System.out.println("====== Example-20 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon20.xml"));
- XmlCursor xc = xDoc.newCursor();
-
- String ex1Simple = "/AAA/XXX/DDD/EEE/ancestor-or-self::*";
- XmlObject[] ex1Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<AAA><BBB><CCC/><ZZZ><DDD/></ZZZ></BBB><XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>"),
- XmlObject.Factory.parse(
- "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>"),
- XmlObject.Factory.parse(
- "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>"),
- XmlObject.Factory.parse("<EEE/>"),
- };
- String ex2Simple = "//GGG/ancestor-or-self::*";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<AAA><BBB><CCC/><ZZZ><DDD/></ZZZ></BBB><XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>"),
- XmlObject.Factory.parse(
- "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>"),
- XmlObject.Factory.parse(
- "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>"),
- XmlObject.Factory.parse("<FFF><GGG/></FFF>"),
- XmlObject.Factory.parse("<GGG/>"),
- };
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- }
-
- @Test
- public void testZvonExample21() throws Exception {
- System.out.println("====== Example-21 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon21.xml"));
- XmlCursor xc = xDoc.newCursor();
- String ex1Simple = "//GGG/ancestor::*";
- XmlObject[] ex1Xml = new XmlObject[]{
-
- XmlObject.Factory.parse(
- "<AAA><BBB><CCC/><ZZZ/></BBB><XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>"),
- XmlObject.Factory.parse(
- "<XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX>"),
- XmlObject.Factory.parse(
- "<DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD>"),
- XmlObject.Factory.parse(
- "<FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF>"),
- };
- String ex2Simple = "//GGG/descendant::*";
- XmlObject[] ex2Xml = new XmlObject[]{
- XmlObject.Factory.parse("<JJJ><QQQ/></JJJ>"),
- XmlObject.Factory.parse("<QQQ/>"),
- XmlObject.Factory.parse("<JJJ/>")};
- String ex3Simple = "//GGG/following::*";
- XmlObject[] ex3Xml = new XmlObject[]{XmlObject.Factory.parse("<HHH/>"),
- XmlObject.Factory.parse(
- "<CCC><DDD/></CCC>"),
- XmlObject.Factory.parse("<DDD/>")};
- String ex4Simple = "//GGG/preceding::*";
- XmlObject[] ex4Xml = new XmlObject[]{
- XmlObject.Factory.parse("<BBB><CCC/><ZZZ/></BBB>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<ZZZ/>"),
- XmlObject.Factory.parse("<EEE/>"),
- XmlObject.Factory.parse("<HHH/>"),
- };
- String ex5Simple = "//GGG/self::*";
- XmlObject[] ex5Xml = new XmlObject[]{
- XmlObject.Factory.parse("<GGG><JJJ><QQQ/></JJJ><JJJ/></GGG>")};
-
- String ex6Simple = "//GGG/ancestor::* | //GGG/descendant::* | //GGG/following::* | //GGG/preceding::* | //GGG/self::*";
- XmlObject[] ex6Xml = new XmlObject[]{
- XmlObject.Factory.parse(
- "<AAA><BBB><CCC/><ZZZ/></BBB><XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>"),
- XmlObject.Factory.parse("<BBB><CCC/><ZZZ/></BBB>"),
- XmlObject.Factory.parse("<CCC/>"),
- XmlObject.Factory.parse("<ZZZ/>"),
- XmlObject.Factory.parse(
- "<XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX>"),
- XmlObject.Factory.parse(
- "<DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD>"),
- XmlObject.Factory.parse("<EEE/>"),
- XmlObject.Factory.parse(
- "<FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF>"),
- XmlObject.Factory.parse("<HHH/>"),
- XmlObject.Factory.parse("<GGG><JJJ><QQQ/></JJJ><JJJ/></GGG>"),
- XmlObject.Factory.parse("<JJJ><QQQ/></JJJ>"),
- XmlObject.Factory.parse("<QQQ/>"),
- XmlObject.Factory.parse("<JJJ/>"),
- XmlObject.Factory.parse("<HHH/>"),
- XmlObject.Factory.parse("<CCC><DDD/></CCC>"),
- XmlObject.Factory.parse("<DDD/>"),
- };
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
-
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
-
- System.out.println("Test 4: " + ex4Simple);
- XmlCursor x4 = xDoc.newCursor();
- x4.selectPath(fixPath(ex4Simple));
- int i = 0;
- /* System.out.println("****************HERE");
-
- while (i < x4.getSelectionCount())
- {
- x4.toSelection(i++);
- System.out.println(x4.getName() + ((i - 1) + ""));
- }
-
- System.out.println("****************SETS");
- XPathCommon.display(x4);
- //XPathCommon.display(ex4Xml);
- System.out.println("**************END SETS");
- */
- XPathCommon.compare(x4, ex4Xml);
- x4.dispose();
-
-
- System.out.println("Test 5: " + ex5Simple);
- XmlCursor x5 = xDoc.newCursor();
- x5.selectPath(fixPath(ex5Simple));
- //XPathCommon.display(x5);
- XPathCommon.compare(x5, ex5Xml);
- x5.dispose();
-
- System.out.println("Test 6: " + ex6Simple);
- XmlCursor x6 = xDoc.newCursor();
- x6.selectPath(fixPath(ex6Simple));
- //XPathCommon.display(x6);
- XPathCommon.compare(x6, ex6Xml);
- x6.dispose();
- }
-
- @Test
- public void testZvonExample22() throws Exception {
- System.out.println("====== Example-22 ==========");
- XmlObject xDoc = XmlObject.Factory.parse(
- JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon22.xml"));
- XmlCursor xc = xDoc.newCursor();
-
- String ex1Simple = "//BBB[position() mod 2 = 0 ]";
- XmlObject[] ex1Xml = new XmlObject[]{XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>")};
-
- String ex2Simple = "//BBB[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]";
- XmlObject[] ex2Xml = new XmlObject[]{XmlObject.Factory.parse("<BBB/>"),
- XmlObject.Factory.parse("<BBB/>")};
-
- String ex3Simple = "//CCC[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]";
- XmlObject[] ex3Xml = new XmlObject[]{XmlObject.Factory.parse("<CCC/>")};
-
- System.out.println("Test 1: " + ex1Simple);
- XmlCursor x1 = xDoc.newCursor();
- x1.selectPath(fixPath(ex1Simple));
- //XPathCommon.display(x1);
- XPathCommon.compare(x1, ex1Xml);
- x1.dispose();
- System.out.println("Test 2: " + ex2Simple);
- XmlCursor x2 = xDoc.newCursor();
- x2.selectPath(fixPath(ex2Simple));
- //XPathCommon.display(x2);
- XPathCommon.compare(x2, ex2Xml);
- x2.dispose();
-
- System.out.println("Test 3: " + ex3Simple);
- XmlCursor x3 = xDoc.newCursor();
- x3.selectPath(fixPath(ex3Simple));
- //XPathCommon.display(x3);
- XPathCommon.compare(x3, ex3Xml);
- x3.dispose();
+ add(data, 10, "$this/AAA/EEE | $this//BBB", "<BBB/>", "<EEE/>");
+ add(data, 10, "./AAA/EEE |.//DDD/CCC | ./AAA | .//BBB", "<AAA><BBB/><CCC/><DDD><CCC/></DDD><EEE/></AAA>",
+ "<BBB/>", "<CCC/>", "<EEE/>");
+
+ add(data, 11, "/AAA", "<AAA><BBB/><CCC/></AAA>");
+ add(data, 11, "/child::AAA", "<AAA><BBB/><CCC/></AAA>");
+ add(data, 11, "/AAA/BBB", "<BBB/>");
+ add(data, 11, "/child::AAA/child::BBB", "<BBB/>");
+ add(data, 11, "/child::AAA/BBB", "<BBB/>");
+
+ add(data, 12, "/descendant::*",
+ "<AAA><BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB><CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC></AAA>",
+ "<BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB>", "<DDD><CCC><DDD/><EEE/></CCC></DDD>",
+ "<CCC><DDD/><EEE/></CCC>", "<DDD/>", "<EEE/>", "<CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC>",
+ "<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>", "<EEE><DDD><FFF/></DDD></EEE>", "<DDD><FFF/></DDD>", "<FFF/>");
+ add(data, 12, "/AAA/BBB/descendant::*", "<DDD><CCC><DDD/><EEE/></CCC></DDD>",
+ "<CCC><DDD/><EEE/></CCC>", "<DDD/>", "<EEE/>");
+ add(data, 12, "//CCC/descendant::*", "<DDD/>", "<EEE/>", "<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>",
+ "<EEE><DDD><FFF/></DDD></EEE>", "<DDD><FFF/></DDD>", "<FFF/>");
+ add(data, 12, "//CCC/descendant::DDD", "<DDD/>", "<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>", "<DDD><FFF/></DDD>");
+
+ add(data, 13, "//DDD/parent::*", "<BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB>",
+ "<CCC><DDD/><EEE/></CCC>", "<CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC>", "<EEE><DDD><FFF/></DDD></EEE>");
+
+ add(data, 14, "/AAA/BBB/DDD/CCC/EEE/ancestor::*",
+ "<AAA><BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB><CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC></AAA>",
+ "<BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB>", "<DDD><CCC><DDD/><EEE/></CCC></DDD>", "<CCC><DDD/><EEE/></CCC>");
+ add(data, 14, "//FFF/ancestor::*",
+ "<AAA><BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB><CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC></AAA>",
+ "<CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC>", "<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>",
+ "<EEE><DDD><FFF/></DDD></EEE>", "<DDD><FFF/></DDD>");
+
+ add(data, 15, "/AAA/BBB/following-sibling::*",
+ "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>", "<CCC><DDD/></CCC>");
+ add(data, 15, "//CCC/following-sibling::*", "<DDD/>", "<FFF/>", "<FFF><GGG/></FFF>");
+
+ add(data, 16, "/AAA/XXX/preceding-sibling::*", "<BBB><CCC/><DDD/></BBB>");
+ add(data, 16, "//CCC/preceding-sibling::*", "<BBB><CCC/><DDD/></BBB>",
+ "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>", "<EEE/>", "<DDD/>");
+
+ add(data, 17, "/AAA/XXX/following::*", "<CCC><DDD/></CCC>", "<DDD/>");
+ add(data, 17, "//ZZZ/following::*", "<FFF><GGG/></FFF>", "<GGG/>",
+ "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>",
+ "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>", "<EEE/>", "<DDD/>", "<CCC/>", "<FFF/>",
+ "<FFF><GGG/></FFF>", "<GGG/>", "<CCC><DDD/></CCC>", "<DDD/>");
+
+
+ // the preceding axis contains all nodes that are descendants of the root of the tree in which the context
+ // node is found, are not ancestors of the context node, and occur before the context node in document order
+ add(data, 18, "/AAA/XXX/preceding::*", "<BBB><CCC/><ZZZ><DDD/></ZZZ></BBB>", "<CCC/>",
+ "<ZZZ><DDD/></ZZZ>", "<DDD/>");
+ add(data, 18, "//GGG/preceding::*", "<BBB><CCC/><ZZZ><DDD/></ZZZ></BBB>", "<CCC/>",
+ "<ZZZ><DDD/></ZZZ>", "<DDD/>", "<EEE/>", "<DDD/>", "<CCC/>", "<FFF/>");
+
+
+ add(data, 19, "/AAA/XXX/descendant-or-self::*", "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>",
+ "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>", "<EEE/>", "<DDD/>", "<CCC/>", "<FFF/>", "<FFF><GGG/></FFF>", "<GGG/>");
+ add(data, 19, "//CCC/descendant-or-self::*", "<CCC/>", "<CCC/>", "<CCC><DDD/></CCC>", "<DDD/>");
+
+
+ add(data, 20, "/AAA/XXX/DDD/EEE/ancestor-or-self::*",
+ "<AAA><BBB><CCC/><ZZZ><DDD/></ZZZ></BBB><XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>",
+ "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>",
+ "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>", "<EEE/>");
+ add(data, 20, "//GGG/ancestor-or-self::*",
+ "<AAA><BBB><CCC/><ZZZ><DDD/></ZZZ></BBB><XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>",
+ "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>",
+ "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>", "<FFF><GGG/></FFF>", "<GGG/>");
+
+ add(data, 21, "//GGG/ancestor::*",
+ "<AAA><BBB><CCC/><ZZZ/></BBB><XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>",
+ "<XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX>",
+ "<DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD>",
+ "<FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF>");
+ add(data, 21, "//GGG/descendant::*", "<JJJ><QQQ/></JJJ>", "<QQQ/>", "<JJJ/>");
+ add(data, 21, "//GGG/following::*", "<HHH/>", "<CCC><DDD/></CCC>", "<DDD/>");
+ add(data, 21, "//GGG/preceding::*", "<BBB><CCC/><ZZZ/></BBB>", "<CCC/>", "<ZZZ/>", "<EEE/>", "<HHH/>");
+ add(data, 21, "//GGG/self::*", "<GGG><JJJ><QQQ/></JJJ><JJJ/></GGG>");
+ add(data, 21, "//GGG/ancestor::* | //GGG/descendant::* | //GGG/following::* | //GGG/preceding::* | //GGG/self::*",
+ "<AAA><BBB><CCC/><ZZZ/></BBB><XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>",
+ "<BBB><CCC/><ZZZ/></BBB>", "<CCC/>", "<ZZZ/>", "<XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX>",
+ "<DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD>", "<EEE/>",
+ "<FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF>", "<HHH/>", "<GGG><JJJ><QQQ/></JJJ><JJJ/></GGG>",
+ "<JJJ><QQQ/></JJJ>", "<QQQ/>", "<JJJ/>", "<HHH/>", "<CCC><DDD/></CCC>", "<DDD/>");
+
+ add(data, 22, "//BBB[position() mod 2 = 0 ]", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>");
+ add(data, 22, "//BBB[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]",
+ "<BBB/>", "<BBB/>");
+ add(data, 22, "//CCC[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]",
+ "<CCC/>");
+
+ return data;
+ }
+
+ private static void add(List<Object[]> data, int dataset, String xpath, String... expected) {
+ data.add(new Object[]{dataset, xpath, expected});
+ }
+
+
+ @Test
+ public void zvonExample() throws IOException, XmlException {
+ XmlObject xDoc = XmlObject.Factory.parse(JarUtil.getResourceFromJar("xbean/xmlcursor/xpath/zvon"+dataset+".xml"));
+ XmlCursor x1 = xDoc.newCursor();
+ try {
+ x1.selectPath(xpath);
+
+ XmlObject[] exp = new XmlObject[expected.length];
+ for (int i = 0; i < expected.length; i++) {
+ exp[i] = XmlObject.Factory.parse(expected[i]);
+ }
+
+ XPathCommon.compare(x1, exp);
+ } finally {
+ x1.dispose();
+ }
}
}
Modified: xmlbeans/trunk/test/src/xmlcursor/xpath/xbean_xpath/detailed/AxesTest.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/xmlcursor/xpath/xbean_xpath/detailed/AxesTest.java?rev=1877931&r1=1877930&r2=1877931&view=diff
==============================================================================
--- xmlbeans/trunk/test/src/xmlcursor/xpath/xbean_xpath/detailed/AxesTest.java (original)
+++ xmlbeans/trunk/test/src/xmlcursor/xpath/xbean_xpath/detailed/AxesTest.java Tue May 19 20:10:55 2020
@@ -35,13 +35,13 @@ import static org.junit.Assert.assertEqu
* namespace
*/
public class AxesTest {
- private String sXmlChild =
+ private final String sXmlChild =
"<foo> <bar xmlns:pre=\"http://uri.com\" at0='val0'>" +
"<pre:baz xmlns:baz='http://uri' baz:at0='val1'/>txt child</bar></foo>";
- private XmlOptions options = new XmlOptions();
+ private final XmlOptions options = new XmlOptions();
- private String sXmlDesc =
+ private final String sXmlDesc =
"<foo> <foo xmlns:pre=\"http://uri.com\" at0='val0'>" +
"<pre:baz xmlns:baz='http://uri' baz:at0='val1'/>txt child</foo></foo>";
@@ -98,6 +98,7 @@ public class AxesTest {
assertEquals(sExpected, c.xmlText());
}
+ @Test
public void testChildAxisDNE() throws XmlException {
String sQuery1 = "$this/foo/./baz";
XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor();
Modified: xmlbeans/trunk/test/src/xmlcursor/xquery/detailed/XQueryVariableBindingTest.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/xmlcursor/xquery/detailed/XQueryVariableBindingTest.java?rev=1877931&r1=1877930&r2=1877931&view=diff
==============================================================================
--- xmlbeans/trunk/test/src/xmlcursor/xquery/detailed/XQueryVariableBindingTest.java (original)
+++ xmlbeans/trunk/test/src/xmlcursor/xquery/detailed/XQueryVariableBindingTest.java Tue May 19 20:10:55 2020
@@ -33,8 +33,7 @@ public class XQueryVariableBindingTest e
XBEAN_CASE_ROOT + P + "xmlcursor" + P + "xquery";
public static File dir = new File(XQUERY_CASE_DIR);
- private XmlCursor _testDocCursor1() throws Exception
- {
+ private XmlCursor _testDocCursor1() throws Exception {
String xml =
"<elem1>" +
"<elem11 id=\"123\">text11</elem11>" +
@@ -63,8 +62,7 @@ public class XQueryVariableBindingTest e
/** test the automatic binding of $this to the current node: selectPath() */
@Test
- public void testThisVariable1() throws Exception
- {
+ public void testThisVariable1() throws Exception {
XmlCursor xc = _testDocCursor1();
xc.toFirstChild(); //<elem1>
xc.toFirstChild(); //<elem11>
@@ -77,8 +75,7 @@ public class XQueryVariableBindingTest e
// this fails: see JIRA issue XMLBEANS-276
/** test the binding of a variable to the current node: selectPath() */
@Test
- public void testCurrentNodeVariable1() throws Exception
- {
+ public void testCurrentNodeVariable1() throws Exception {
XmlCursor xc = _testDocCursor1();
xc.toFirstChild();
xc.toFirstChild();
@@ -92,23 +89,18 @@ public class XQueryVariableBindingTest e
xc.dispose();
}
- private XmlCursor _testDocCursor2() throws Exception
- {
+ private XmlCursor _testDocCursor2() throws Exception {
File f = new File(dir, "employees.xml");
XmlObject doc = XmlObject.Factory.parse(f);
- XmlCursor xc = doc.newCursor();
- return xc;
+ return doc.newCursor();
}
- public void _verifyQueryResult(XmlCursor qc)
- {
+ public void _verifyQueryResult(XmlCursor qc) {
System.out.println(qc.xmlText());
assertTrue(qc.toFirstChild());
- assertEquals("<phone location=\"work\">(425)555-5665</phone>",
- qc.xmlText());
+ assertEquals("<phone location=\"work\">(425)555-5665</phone>", qc.xmlText());
assertTrue(qc.toNextSibling());
- assertEquals("<phone location=\"work\">(425)555-6897</phone>",
- qc.xmlText());
+ assertEquals("<phone location=\"work\">(425)555-6897</phone>", qc.xmlText());
assertFalse(qc.toNextSibling());
}
@@ -117,7 +109,7 @@ public class XQueryVariableBindingTest e
public void testThisVariable2() throws Exception
{
XmlCursor xc = _testDocCursor2();
- xc.toNextToken();
+ // xc.toNextToken();
String q =
"for $e in $this/employees/employee " +
"let $s := $e/address/state " +
@@ -131,10 +123,9 @@ public class XQueryVariableBindingTest e
/** test the binding of a variable to the current node: execQuery() */
@Test
- public void testCurrentNodeVariable2() throws Exception
- {
+ public void testCurrentNodeVariable2() throws Exception {
XmlCursor xc = _testDocCursor2();
- xc.toNextToken();
+ // xc.toNextToken();
String q =
"for $e in $cur/employees/employee " +
"let $s := $e/address/state " +
@@ -150,18 +141,15 @@ public class XQueryVariableBindingTest e
qc.dispose();
}
- private XmlObject[] _execute(XmlObject xo, Map m, String q)
- {
+ private XmlObject[] _execute(XmlObject xo, Map m, String q) {
XmlOptions opts = new XmlOptions();
opts.setXqueryVariables(m);
- XmlObject[] results = xo.execQuery(q, opts);
- return results;
+ return xo.execQuery(q, opts);
}
/** test the binding of a variable to an XmlTokenSource using a map */
@Test
- public void testOneVariable() throws Exception
- {
+ public void testOneVariable() throws Exception {
File f = new File(dir, "bookstore.xml");
XmlObject doc = XmlObject.Factory.parse(f);
String q =
@@ -169,23 +157,20 @@ public class XQueryVariableBindingTest e
"for $x in $rt/book " +
"where $x/price > 30 " +
"return $x/title";
- Map m = new HashMap();
+ Map<String,Object> m = new HashMap<>();
m.put("rt", doc.selectChildren("", "bookstore")[0]);
XmlObject[] results = _execute(doc, m, q);
assertNotNull(results);
assertEquals(2, results.length);
- assertEquals("<title lang=\"en\">XQuery Kick Start</title>",
- results[0].xmlText());
- assertEquals("<title lang=\"en\">Learning XML</title>",
- results[1].xmlText());
+ assertEquals("<title lang=\"en\">XQuery Kick Start</title>", results[0].xmlText());
+ assertEquals("<title lang=\"en\">Learning XML</title>", results[1].xmlText());
}
-
+
/** test the binding of multiple variables using a map;
at the same time, test the binding of a variable to a String
*/
@Test
- public void testMultipleVariables() throws Exception
- {
+ public void testMultipleVariables() throws Exception {
File f = new File(dir, "bookstore.xml");
XmlObject doc = XmlObject.Factory.parse(f);
String q =
@@ -194,14 +179,13 @@ public class XQueryVariableBindingTest e
"for $x in $rt/book " +
"where $x[@category=$c] " +
"return $x/title";
- Map m = new HashMap();
+ Map<String,Object> m = new HashMap<>();
m.put("rt", doc.selectChildren("", "bookstore")[0]);
m.put("c", "CHILDREN");
XmlObject[] results = _execute(doc, m, q);
assertNotNull(results);
assertEquals(1, results.length);
- assertEquals("<title lang=\"en\">Harry Potter</title>",
- results[0].xmlText());
+ assertEquals("<title lang=\"en\">Harry Potter</title>", results[0].xmlText());
}
}
Modified: xmlbeans/trunk/test/src/xmlobject/detailed/CopyTest.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/xmlobject/detailed/CopyTest.java?rev=1877931&r1=1877930&r2=1877931&view=diff
==============================================================================
--- xmlbeans/trunk/test/src/xmlobject/detailed/CopyTest.java (original)
+++ xmlbeans/trunk/test/src/xmlobject/detailed/CopyTest.java Tue May 19 20:10:55 2020
@@ -25,7 +25,7 @@ public class CopyTest {
@Test
public void testXobjTypeOnDomNodeCopy() throws Exception {
XmlObject o = XmlObject.Factory.parse("<foo><a/></foo>");
- String xobjOrgClassName = "org.apache.xmlbeans.impl.store.Xobj$DocumentXobj";
+ String xobjOrgClassName = "org.apache.xmlbeans.impl.store.DocumentXobj";
assertEquals("Invalid Type!", o.getDomNode().getClass().getName(), xobjOrgClassName);
XmlObject o2 = o.copy();
@@ -33,8 +33,8 @@ public class CopyTest {
System.out.println("DocXobj:" + xobjCopyClassName);
// check for the expected type
- assertEquals("Invalid Type!", "org.apache.xmlbeans.impl.store.Xobj$DocumentXobj", xobjOrgClassName);
- assertEquals("Invalid Type!", "org.apache.xmlbeans.impl.store.Xobj$DocumentXobj", xobjCopyClassName);
+ assertEquals("Invalid Type!", "org.apache.xmlbeans.impl.store.DocumentXobj", xobjOrgClassName);
+ assertEquals("Invalid Type!", "org.apache.xmlbeans.impl.store.DocumentXobj", xobjCopyClassName);
}
// Test the same for a simple untyped XmlObject copy
@@ -46,7 +46,6 @@ public class CopyTest {
assertEquals("Invalid Type!", untypedXobjClass, o.getClass().getName());
XmlObject o2 = o.copy();
- String xobjClass = o2.getClass().getName();
// type should be unchanged after the copy
assertEquals("Invalid Type!", untypedXobjClass, o2.getClass().getName());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org