Exemplo n.º 1
0
    /**
     * Show a query consisting of two modules, using a QueryResolver to resolve
     * the "import module" declaration
     */

    public static void ExampleMultiModule()
    {
        String mod1 = "import module namespace m2 = 'http://www.example.com/module2';" +
                      "m2:square(3)";

        String mod2 = "module namespace m2 = 'http://www.example.com/module2';" +
                      "declare function m2:square($p) { $p * $p };";

        Processor      processor = new Processor();
        XQueryCompiler compiler  = processor.NewXQueryCompiler();

        InlineModuleResolver resolver = new InlineModuleResolver();

        resolver.AddModule(new Uri("http://www.example.com/module2"), mod2);
        compiler.QueryResolver = resolver;
        XQueryExecutable exp  = compiler.Compile(mod1);
        XQueryEvaluator  eval = exp.Load();

        XdmAtomicValue result = (XdmAtomicValue)eval.EvaluateSingle();

        Console.WriteLine("Result type: " + result.Value.GetType());
        Console.WriteLine("Result value: " + (long)result.Value);
    }
Exemplo n.º 2
0
        /// <summary>
        /// Show a query consisting of two modules, using a QueryResolver to resolve
        /// the "import module" declaration
        /// </summary>
        public override void run(Uri samplesDir)
        {
            String mod1 = "import module namespace m2 = 'http://www.example.com/module2';" +
                          "m2:square(3)";

            String mod2 = "module namespace m2 = 'http://www.example.com/module2';" +
                          "declare function m2:square($p) { $p * $p };";

            Processor processor = new Processor();
            XQueryCompiler compiler = processor.NewXQueryCompiler();

            InlineModuleResolver resolver = new InlineModuleResolver();
            resolver.AddModule(new Uri("http://www.example.com/module2"), mod2);
            compiler.QueryResolver = resolver;
            XQueryExecutable exp = compiler.Compile(mod1);
            XQueryEvaluator eval = exp.Load();

            XdmAtomicValue result = (XdmAtomicValue)eval.EvaluateSingle();
            Console.WriteLine("Result type: " + result.Value.GetType());
            Console.WriteLine("Result value: " + (long)result.Value);
        }