Package org.xmldb.api.modules

Examples of org.xmldb.api.modules.XPathQueryService


        String query;
        boolean exceptionThrown;
        @SuppressWarnings("unused")
    String message;
        try {
            XPathQueryService service =
                    storeXMLStringAndGetQueryService(NUMBERS_XML, numbers);

            System.out.println("testImprobableAxesAndNodeTestsCombinations 1: ========");
            query = "let $a := <x>a<!--b-->c</x>/self::comment() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 2: ========");
            query = "let $a := <x>a<!--b-->c</x>/parent::comment() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 3: ========");
            query = "let $a := <x>a<!--b-->c</x>/ancestor::comment() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 4: ========");
            query = "let $a := <x>a<!--b-->c</x>/ancestor-or-self::comment() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

//      This one is intercepted by the parser
            System.out.println("testImprobableAxesAndNodeTestsCombinations 5: ========");
            query = "let $a := <x>a<!--b-->c</x>/attribute::comment() return <z>{$a}</z>";
            try {
                exceptionThrown = false;
                result = service.query(query);
            } catch (XMLDBException e) {
                exceptionThrown = true;
                message = e.getMessage();
            }
            assertTrue(exceptionThrown);

//      This one is intercepted by the parser
            System.out.println("testImprobableAxesAndNodeTestsCombinations 6: ========");
            query = "let $a := <x>a<!--b-->c</x>/namespace::comment() return <z>{$a}</z>";
            try {
                exceptionThrown = false;
                result = service.query(query);
            } catch (XMLDBException e) {
                exceptionThrown = true;
                message = e.getMessage();
            }
            assertTrue(exceptionThrown);

            System.out.println("testImprobableAxesAndNodeTestsCombinations 7: ========");
            query = "let $a := <x>a<!--b-->c</x>/self::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 8: ========");
            query = "let $a := <x>a<!--b-->c</x>/parent::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 9: ========");
            query = "let $a := <x>a<!--b-->c</x>/ancestor::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 10: ========");
            query = "let $a := <x>a<!--b-->c</x>/ancestor-or-self::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 11: ========");
            query = "let $a := <x>a<!--b-->c</x>/child::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 12: ========");
            query = "let $a := <x>a<!--b-->c</x>/descendant::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 13: ========");
            query = "let $a := <x>a<!--b-->c</x>/descendant-or-self::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 14: ========");
            query = "let $a := <x>a<!--b-->c</x>/preceding::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 15: ========");
            query = "let $a := <x>a<!--b-->c</x>/preceding-sibling::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 16: ========");
            query = "let $a := <x>a<!--b-->c</x>/following::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testImprobableAxesAndNodeTestsCombinations 17: ========");
            query = "let $a := <x>a<!--b-->c</x>/following-sibling::attribute() return <z>{$a}</z>";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<z/>", ((XMLResource) result.getResource(0)).getContent());

//      This one is intercepted by the parser
            System.out.println("testImprobableAxesAndNodeTestsCombinations 18: ========");
            query = "let $a := <x>a<!--b-->c</x>/namespace::attribute() return <z>{$a}</z>";
            try {
                exceptionThrown = false;
                result = service.query(query);
            } catch (XMLDBException e) {
                exceptionThrown = true;
                message = e.getMessage();
            }
            assertTrue(exceptionThrown);

            //TODO : uncomment when PI are OK

            /*
            System.out.println("testImprobableAxesAndNodeTestsCombinations 19: ========" );
            query = "let $a := <x>a<?foo ?>c</x>/self::processing-instruction('foo') return <z>{$a}</z>";
            result = service.query(query);       
            assertEquals( "XQuery: " + query, 1, result.getSize() );
            assertEquals( "XQuery: " + query, "<z/>", ((XMLResource)result.getResource(0)).getContent());
           
            System.out.println("testImprobableAxesAndNodeTestsCombinations 20: ========" );
            query = "let $a := <x>a<?foo ?>c</x>/parent::processing-instruction('foo') return <z>{$a}</z>";
            result = service.query(query);       
            assertEquals( "XQuery: " + query, 1, result.getSize() );
            assertEquals( "XQuery: " + query, "<z/>", ((XMLResource)result.getResource(0)).getContent()); 
           
            System.out.println("testImprobableAxesAndNodeTestsCombinations 21: ========" );
            query = "let $a := <x>a<?foo ?>c</x>/ancestor::processing-instruction('foo') return <z>{$a}</z>";
            result = service.query(query);       
            assertEquals( "XQuery: " + query, 1, result.getSize() );
            assertEquals( "XQuery: " + query, "<z/>", ((XMLResource)result.getResource(0)).getContent());
           
            System.out.println("testImprobableAxesAndNodeTestsCombinations 22: ========" );
            query = "let $a := <x>a<?foo ?>c</x>/ancestor-or-self::processing-instruction('foo') return <z>{$a}</z>";
            result = service.query(query);       
            assertEquals( "XQuery: " + query, 1, result.getSize() );
            assertEquals( "XQuery: " + query, "<z/>", ((XMLResource)result.getResource(0)).getContent()); 
             */

//      This one is intercepted by the parser
            System.out.println("testImprobableAxesAndNodeTestsCombinations 23: ========");
            query = "let $a := <x>a<?foo ?>c</x>/attribute::processing-instruction('foo') return <z>{$a}</z>";
            try {
                exceptionThrown = false;
                result = service.query(query);
            } catch (XMLDBException e) {
                exceptionThrown = true;
                message = e.getMessage();
            }
            assertTrue(exceptionThrown);

//      This one is intercepted by the parser
            System.out.println("testImprobableAxesAndNodeTestsCombinations 24: ========");
            query = "let $a := <x>a<?foo ?>c</x>/namespace::processing-instruction('foo') return <z>{$a}</z>";
            try {
                exceptionThrown = false;
                result = service.query(query);
            } catch (XMLDBException e) {
                exceptionThrown = true;
                message = e.getMessage();
            }
            assertTrue(exceptionThrown);
View Full Code Here


            doc = testCollection.createResource(NAMESPACED_NAME, "XMLResource");
            doc.setContent(namespacedDocument);
            ((EXistResource) doc).setMimeType("application/xml");
            testCollection.storeResource(doc);

            XPathQueryService service =
                    (XPathQueryService) testCollection.getService(
                    "XPathQueryService",
                    "1.0");

            System.out.println("testNamespace 1: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace blah=\"blah\" at \"" + URI + "/test/" + MODULE1_NAME + "\";\n" + "(:: redefine existing prefix ::)\n" + "declare namespace blah=\"bla\";\n" + "$blah:param";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                message = e.getMessage();
            }
            assertTrue(message.indexOf("XQST0033") > -1);

            System.out.println("testNamespace 2: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace blah=\"blah\" at \"" + URI + "/test/" + MODULE1_NAME + "\";\n" + "(:: redefine existing prefix with same URI ::)\n" + "declare namespace blah=\"blah\";\n" + "declare variable $blah:param  {\"value-2\"};\n" + "$blah:param";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                message = e.getMessage();
            }
            assertTrue(message.indexOf("XQST0033") > -1);

            System.out.println("testNamespace 3: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace foo=\"ho\" at \"" + URI + "/test/" + MODULE1_NAME + "\";\n" + "$foo:bar";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                e.printStackTrace();
                message = e.getMessage();
            }
            assertTrue(message.indexOf("does not match namespace URI") > -1);

            System.out.println("testNamespace 4: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace foo=\"ho\" at \"" + URI + "/test/" + MODULE2_NAME + "\";\n" + "$bar";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                message = e.getMessage();
            }
            assertTrue(message.indexOf("No namespace defined for prefix") > -1);

            System.out.println("testNamespace 5: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace foo=\"blah\" at \"" + URI + "/test/" + MODULE2_NAME + "\";\n" + "$bar";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                message = e.getMessage();
            }
            assertTrue(message.indexOf("No namespace defined for prefix") > -1);

            System.out.println("testNamespace 6: ========");
            query = "declare namespace x = \"http://www.foo.com\"; \n" +
                    "let $a := doc('" + XmldbURI.ROOT_COLLECTION + "/test/" + NAMESPACED_NAME + "') \n" +
                    "return $a//x:edition";
            result = service.query(query);
            assertEquals("XQuery: " + query, 0, result.getSize());

            System.out.println("testNamespace 7: ========");
            query = "declare namespace x = \"http://www.foo.com\"; \n" +
                    "declare namespace y = \"http://exist.sourceforge.net/dc-ext\"; \n" +
                    "let $a := doc('" + XmldbURI.ROOT_COLLECTION + "/test/" + NAMESPACED_NAME + "') \n" +
                    "return $a//y:edition";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "<x:edition xmlns:x=\"http://exist.sourceforge.net/dc-ext\">place</x:edition>",
                    ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testNamespace 8: ========");
            query = "<result xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>{//rdf:Description}</result>";
            result = service.query(query);
            assertEquals("XQuery: " + query,
                    "<result xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n" +
                    "    <rdf:Description id=\"3\">\n" +
                    "        <dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\">title</dc:title>\n" +
                    "        <dc:creator xmlns:dc=\"http://purl.org/dc/elements/1.1/\">creator</dc:creator>\n" +
                    "        <x:place xmlns:x=\"http://exist.sourceforge.net/dc-ext\">place</x:place>\n" +
                    "        <x:edition xmlns:x=\"http://exist.sourceforge.net/dc-ext\">place</x:edition>\n" +
                    "    </rdf:Description>\n" +
                    "</result>",
                    ((XMLResource) result.getResource(0)).getContent());

            System.out.println("testNamespace 9: ========");
            query = "<result xmlns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>{//Description}</result>";
            result = service.query(query);
            assertEquals("XQuery: " + query,
                    "<result xmlns=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n" +
                    "    <rdf:Description xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" id=\"3\">\n" +
                    "        <dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\">title</dc:title>\n" +
                    "        <dc:creator xmlns:dc=\"http://purl.org/dc/elements/1.1/\">creator</dc:creator>\n" +
                    "        <x:place xmlns:x=\"http://exist.sourceforge.net/dc-ext\">place</x:place>\n" +
                    "        <x:edition xmlns:x=\"http://exist.sourceforge.net/dc-ext\">place</x:edition>\n" +
                    "    </rdf:Description>\n" +
                    "</result>",
                    ((XMLResource) result.getResource(0)).getContent());

            //Interesting one : let's see with XQuery gurus :-)
            //declare namespace fn="";
            //fn:current-time()
      /*
            If the URILiteral part of a namespace declaration is a zero-length string,
            any existing namespace binding for the given prefix is removed from
            the statically known namespaces. This feature provides a way
            to remove predeclared namespace prefixes such as local.
             */

            System.out.println("testNamespace 9: ========");
            query = "declare option exist:serialize 'indent=no';" +
                    "for $x in <parent4 xmlns=\"http://www.example.com/parent4\"><child4/></parent4> " +
                    "return <new>{$x//*:child4}</new>";
            result = service.query(query);
            assertXMLEqual("<new><child4 xmlns='http://www.example.com/parent4'/></new>",
                    ((XMLResource) result.getResource(0)).getContent().toString());

        } catch (Exception e) {
            System.out.println("testNamespace : " + e);
View Full Code Here

        }
    }

    public void testNamespaceWithTransform() {
        try {
            XPathQueryService service = (XPathQueryService) getTestCollection().getService("XPathQueryService", "1.0");

            String query =
                    "xquery version \"1.0\";\n" +
                    "declare namespace transform=\"http://exist-db.org/xquery/transform\";\n" +
                    "declare variable $xml {\n" +
                    "  <node>text</node>\n" +
                    "};\n" +
                    "declare variable $xslt {\n" +
                    "  <xsl:stylesheet xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"2.0\">\n" +
                    "    <xsl:template match=\"node\">\n" +
                    "      <div><xsl:value-of select=\".\"/></div>\n" +
                    "    </xsl:template>\n" +
                    "  </xsl:stylesheet>\n" +
                    "};\n" +
                    "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n" +
                    "  <body>\n" +
                    "    {transform:transform($xml, $xslt, ())}\n" +
                    "  </body>\n" +
                    "</html>";

            ResourceSet result = service.query(query);

            //check there is one result
            assertEquals(1, result.getSize());

            String content = (String) result.getResource(0).getContent();
View Full Code Here

            doc = testCollection.createResource(CHILD2_MODULE_NAME, "BinaryResource");
            doc.setContent(child2Module);
            ((EXistResource) doc).setMimeType("application/xquery");
            testCollection.storeResource(doc);

            XPathQueryService service =
                    (XPathQueryService) testCollection.getService(
                    "XPathQueryService",
                    "1.0");

            System.out.println("testModule 1: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace blah=\"blah\" at \"" + URI + "/test/" + MODULE1_NAME + "\";\n" + "$blah:param";
            result = service.query(query);
            printResult(result);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "value-1", result.getResource(0).getContent());

//            System.out.println("testModule 2: ========");
//            query = "xquery version \"1.0\";\n" + "import module namespace blah=\"blah\" at \"" + URI + "/test/" + MODULE1_NAME + "\";\n" + "(:: redefine variable ::)\n" + "declare variable $blah:param  {\"value-2\"};\n" + "$blah:param";
//            try {
//                message = "";
//                result = service.query(query);
//            } catch (XMLDBException e) {
//                message = e.getMessage();
//            }
//            assertTrue(message.indexOf("XQST0049") > -1);

            System.out.println("testModule 3: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace blah=\"blah\" at \"" + URI + "/test/" + MODULE1_NAME + "\";\n" + "declare namespace blah2=\"blah\";\n" + "$blah2:param";
            result = service.query(query);
            printResult(result);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "value-1", result.getResource(0).getContent());

            System.out.println("testModule 4: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace blah=\"bla\" at \"" + URI + "/test/" + MODULE1_NAME + "\";\n" + "$blah:param";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                message = e.getMessage();
            }
            assertTrue(message.indexOf("does not match namespace URI") > -1);

            System.out.println("testModule 5: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace foo=\"foo\" at \"" + URI + "/test/" + FATHER_MODULE_NAME + "\";\n" + "$foo:bar, $foo:bar1, $foo:bar2";
            result = service.query(query);
            printResult(result);
            assertEquals("XQuery: " + query, 3, result.getSize());
            assertEquals("XQuery: " + query, "bar", result.getResource(0).getContent());
            assertEquals("XQuery: " + query, "bar1", result.getResource(1).getContent());
            assertEquals("XQuery: " + query, "bar2", result.getResource(2).getContent());

//      Non-heritance check
            System.out.println("testModule 6: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace foo=\"foo\" at \"" + URI + "/test/" + FATHER_MODULE_NAME + "\";\n" + "declare namespace foo1=\"foo1\"; \n" + "$foo1:bar";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                message = e.getMessage();
            }
            assertTrue(message.indexOf("XPDY0002") > -1);

//      Non-heritance check
            System.out.println("testModule 7: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace foo=\"foo\" at \"" + URI + "/test/" + FATHER_MODULE_NAME + "\";\n" + "declare namespace foo2=\"foo2\"; \n" + "$foo2:bar";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                message = e.getMessage();
            }
            assertTrue(message.indexOf("XPDY0002") > -1);

            System.out.println("testModule 8: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace foo1=\"foo\" at \"" + URI + "/test/" + CHILD1_MODULE_NAME + "\";\n" + "import module namespace foo2=\"foo\" at \"" + URI + "/test/" + CHILD1_MODULE_NAME + "\";\n" + "$foo1:bar";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                message = e.getMessage();
            }
//      Should be a XQST0047 error
            assertTrue(message.indexOf("does not match namespace URI") > -1);

            System.out.println("testModule 9: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace foo=\"foo\" at \"" + URI + "/test/" + MODULE3_NAME + "\";\n" + "$bar:bar";
            try {
                message = "";
                result = service.query(query);
            } catch (XMLDBException e) {
                message = e.getMessage();
            }
            assertTrue(message.indexOf("No namespace defined for prefix") > -1);

            System.out.println("testModule 10: ========");
            query = "xquery version \"1.0\";\n" + "import module namespace foo=\"foo\" at \"" + URI + "/test/" + MODULE4_NAME + "\";\n" + "foo:bar()";
            try {
                message = "";
                result = service.query(query);
                //WARNING !
                //This result is false ! The external vairable has not been resolved
                //Furthermore it is not in the module's namespace !
                printResult(result);
                assertEquals("XQuery: " + query, 0, result.getSize());
View Full Code Here

            Resource doc = testCollection.createResource(MODULE7_NAME, "BinaryResource");
            doc.setContent(module7);
            ((EXistResource) doc).setMimeType("application/xquery");
            testCollection.storeResource(doc);

            XPathQueryService service = (XPathQueryService) testCollection.getService("XPathQueryService", "1.0");
            service.setProperty(OutputKeys.INDENT, "no");
            String query = "xquery version \"1.0\";\n" +
                    "import module namespace foo=\"foo\" at \"" + URI + "/test/" + MODULE7_NAME + "\";\n" +
                    "<div xmlns='http://www.w3.org/1999/xhtml'>" +
                    "{ foo:link() }" +
                    "</div>";
            ResourceSet result = service.query(query);
            assertEquals(1, result.getSize());
            System.out.println("testModulesAndNS result: " + result.getResource(0).getContent().toString());
            assertXMLEqual("<div xmlns='http://www.w3.org/1999/xhtml'><a xmlns=\"\" href='#'>Link</a></div>",
                    result.getResource(0).getContent().toString());

            query = "xquery version \"1.0\";\n" +
                    "import module namespace foo=\"foo\" at \"" + URI + "/test/" + MODULE7_NAME + "\";\n" +
                    "<div xmlns='http://www.w3.org/1999/xhtml'>" +
                    "{ foo:copy(<a>Link</a>) }" +
                    "</div>";
            result = service.query(query);
            assertEquals(1, result.getSize());
            System.out.println("testModulesAndNS result: " + result.getResource(0).getContent().toString());
            assertXMLEqual("<div xmlns='http://www.w3.org/1999/xhtml'><a>Link</a></div>",
                    result.getResource(0).getContent().toString());
        } catch (Exception e) {
View Full Code Here

            Resource doc = testCollection.createResource(MODULE8_NAME, "BinaryResource");
            doc.setContent(module8);
            ((EXistResource) doc).setMimeType("application/xquery");
            testCollection.storeResource(doc);

            XPathQueryService service = (XPathQueryService) testCollection.getService("XPathQueryService", "1.0");
            service.setProperty(OutputKeys.INDENT, "no");
            String query = "import module namespace dr = \"double-root2\" at \"" + URI + "/test/" + MODULE8_NAME + "\";\n"
                    +"let $doc1 := dr:documentIn() \n"
                    +"let $count1 := count($doc1/element()) \n"
                    +"let $doc2 := dr:documentIn() \n"
                    +"let $count2 := count($doc2/element()) \n"
                    +"return ($count1, $count2) \n";
            ResourceSet result = service.query(query);
            assertEquals(2, result.getSize());
            assertEquals("1", result.getResource(0).getContent().toString());
            assertEquals("1", result.getResource(1).getContent().toString());
           
        } catch (Exception e) {
View Full Code Here

        @SuppressWarnings("unused")
    boolean exceptionThrown;
        @SuppressWarnings("unused")
    String message;
        try {
            XPathQueryService service =
                    storeXMLStringAndGetQueryService(NUMBERS_XML, numbers);

            System.out.println("testFunctionDoc 1: ========");
            query = "doc('" + XmldbURI.ROOT_COLLECTION + "/test/" + NUMBERS_XML + "')";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            try {
                Node n = ((XMLResource) result.getResource(0)).getContentAsDOM();
                DetailedDiff d = new DetailedDiff(compareXML(numbers, n.toString()));
                System.out.println(d.toString());
                assertEquals(0, d.getAllDifferences().size());
            //ignore eXist namespace's attributes       
            //assertEquals(1, d.getAllDifferences().size());
            } catch (Exception e) {
                System.out.println("testFunctionDoc : XMLDBException: " + e);
                fail(e.getMessage());
            }

            System.out.println("testFunctionDoc 2: ========");
            query = "let $v := ()\n" + "return doc($v)";
            result = service.query(query);
            assertEquals("XQuery: " + query, 0, result.getSize());

            System.out.println("testFunctionDoc 3: ========");
            query = "doc('" + XmldbURI.ROOT_COLLECTION + "/test/dummy" + NUMBERS_XML + "')";
            try {
                exceptionThrown = false;
                result = service.query(query);
            } catch (XMLDBException e) {
                exceptionThrown = true;
                message = e.getMessage();
            }
            //TODO : to be decided !
            //assertTrue(exceptionThrown);
            assertEquals(0, result.getSize());

            System.out.println("testFunctionDoc 4: ========");
            query = "doc-available('" + XmldbURI.ROOT_COLLECTION + "/test/" + NUMBERS_XML + "')";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "true", result.getResource(0).getContent());

            System.out.println("testFunctionDoc 5: ========");
            query = "let $v := ()\n" + "return doc-available($v)";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "false", result.getResource(0).getContent());

            System.out.println("testFunctionDoc 6: ========");
            query = "doc-available('" + XmldbURI.ROOT_COLLECTION + "/test/dummy" + NUMBERS_XML + "')";
View Full Code Here

            System.out.println("No Internet access: skipping 'testFunctionDocExternal' tests");
            return;
        }

        try {
            XPathQueryService service =
                    storeXMLStringAndGetQueryService(NUMBERS_XML, numbers);

            System.out.println("testFunctionDocExternal 1: ========");
            query = "if (doc-available(\"http://www.w3.org/XML/Core/\")) then doc(\"http://www.w3.org/XML/Core/\") else ()";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());

            System.out.println("testFunctionDocExternal 2: ========");
            query = "if (doc-available(\"http://www.w3.org/XML/dummy\")) then doc(\"http://www.w3.org/XML/dummy\") else ()";
            result = service.query(query);
            assertEquals("XQuery: " + query, 0, result.getSize());

            System.out.println("testFunctionDocExternal 3: ========");
            query = "doc-available(\"http://www.w3.org/XML/Core/\")";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "true", result.getResource(0).getContent());

            System.out.println("testFunctionDocExternal 4: ========");
            query = "doc-available(\"http://www.404brain.net/true404\")";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "false", result.getResource(0).getContent());

            System.out.println("testFunctionDocExternal 5: ========");
            //A redirected 404
            query = "doc-available(\"http://java.sun.com/404\")";
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "false", result.getResource(0).getContent());

            System.out.println("testFunctionDocExternal 6: ========");
            query = "if (doc-available(\"file:////doesnotexist.xml\")) then doc(\"file:////doesnotexist.xml\") else ()";
            result = service.query(query);
            assertEquals("XQuery: " + query, 0, result.getSize());

            System.out.println("testFunctionDocExternal 7: ========");
            query = "doc-available(\"file:////doesnotexist.xml\")";
            result = service.query(query);
            assertEquals("XQuery: " + query, 1, result.getSize());
            assertEquals("XQuery: " + query, "false", result.getResource(0).getContent());

        } catch (XMLDBException e) {
            System.out.println("testFunctionDoc : XMLDBException: " + e);
View Full Code Here

        System.out.println("testTextConstructor 1: ========");

        String query = "text{ \"a\" }, text{ \"b\" }, text{ \"c\" }, text{ \"d\" }";

        try {
            XPathQueryService service = (XPathQueryService) getTestCollection().getService("XPathQueryService", "1.0");
            ResourceSet result = service.query(query);
            printResult(result);
            assertEquals("XQuery: " + query, 4, result.getSize());

            assertEquals("XQuery: " + query, "a", result.getResource(0).getContent().toString());
            assertEquals("XQuery: " + query, "b", result.getResource(1).getContent().toString());
View Full Code Here

        System.out.println("testUserEscalationForInMemoryNodes 1: ========");

        String query = "xmldb:login(\"xmldb:exist:///db\", \"guest\", \"guest\"), xmldb:get-current-user(), let $node := <node id=\"1\">value</node>, $null := $node[@id eq '1'] return xmldb:get-current-user()";

        try {
            XPathQueryService service = (XPathQueryService) getTestCollection().getService("XPathQueryService", "1.0");
            ResourceSet result = service.query(query);
            printResult(result);

            Resource loggedIn = result.getResource(0);
            Resource currentUser = result.getResource(1);
            Resource currentUserAfterInMemoryOp = result.getResource(2);
View Full Code Here

TOP

Related Classes of org.xmldb.api.modules.XPathQueryService

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.