The Labs \ Source Viewer \ SSCLI \ System.Xml.Xsl.XPath \ IXPathBuilder

  1. //------------------------------------------------------------------------------
  2. // <copyright file="IXPathBuilder.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. //------------------------------------------------------------------------------
  15. using System;
  16. using System.Collections.Generic;
  17. using System.Xml.XPath;
  18. namespace System.Xml.Xsl.XPath
  19. {
  20.    
  21.     internal interface IXPathBuilder<Node>
  22.     {
  23.         // Should be called once per build
  24.         void StartBuild();
  25.        
  26.         // Should be called after build for result tree post-processing
  27.         Node EndBuild(Node result);
  28.        
  29.         Node String(string value);
  30.        
  31.         Node Number(double value);
  32.        
  33.         Node Operator(XPathOperator op, Node left, Node right);
  34.        
  35.         Node Axis(XPathAxis xpathAxis, XPathNodeType nodeType, string prefix, string name);
  36.        
  37.         Node JoinStep(Node left, Node right);
  38.        
  39.         // http://www.w3.org/TR/xquery-semantics/#id-axis-steps
  40.         // reverseStep is how parser comunicates to builder diference between "ansestor[1]" and "(ansestor)[1]"
  41.         Node Predicate(Node node, Node condition, bool reverseStep);
  42.        
  43.         Node Variable(string prefix, string name);
  44.        
  45.         Node Function(string prefix, string name, IList<Node> args);
  46.     }
  47. }

Developer Fusion