/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "domstubs.idl"

interface nsIDOMXPathResult;
interface XPathException;

/**
 * Interface for Mozilla specific XPathExpression functions.
 */
[scriptable, uuid(ce600ca8-e98a-4419-ad61-2f6d0cb0ecc8)]
interface nsIDOMNSXPathExpression : nsISupports
{
  /**
   * Evaluate the expression with the given context. Similar to
   * nsIDOMXPathExpression::evaluate(), except that this takes the context
   * position and size too.
   *
   * @param contextNode       The context node
   * @param contextPosition   The context position
   * @param contextSize       The context size
   * @param type              The needed result type
   * @param result            The result
   */
  nsISupports evaluateWithContext(in nsIDOMNode contextNode,
                                  in unsigned long contextPosition,
                                  in unsigned long contextSize,
                                  in unsigned short type,
                                  in nsISupports result)
                                    raises(XPathException,
                                           DOMException);
};
