@@ -840,6 +840,58 @@ module XmlParserCall {
840840 }
841841}
842842
843+ /**
844+ * A data-flow node that constructs an XPath expression.
845+ *
846+ * If it is important that the XPath expression is indeed executed, then use `XPathExecution`.
847+ *
848+ * Extend this class to refine existing API models. If you want to model new APIs,
849+ * extend `XPathConstruction::Range` instead.
850+ */
851+ class XPathConstruction extends DataFlow:: Node instanceof XPathConstruction:: Range {
852+ /** Gets the argument that specifies the XPath expressions to be constructed. */
853+ DataFlow:: Node getXPath ( ) { result = super .getXPath ( ) }
854+ }
855+
856+ /** Provides a class for modeling new XPath construction APIs. */
857+ module XPathConstruction {
858+ /**
859+ * A data-flow node that constructs an XPath expression.
860+ *
861+ * Extend this class to model new APIs. If you want to refine existing API models,
862+ * extend `XPathConstruction` instead.
863+ */
864+ abstract class Range extends DataFlow:: Node {
865+ /** Gets the argument that specifies the XPath expressions to be constructed. */
866+ abstract DataFlow:: Node getXPath ( ) ;
867+ }
868+ }
869+
870+ /**
871+ * A data-flow node that executes an XPath expression.
872+ *
873+ * Extend this class to refine existing API models. If you want to model new APIs,
874+ * extend `XPathExecution::Range` instead.
875+ */
876+ class XPathExecution extends DataFlow:: Node instanceof XPathExecution:: Range {
877+ /** Gets the argument that specifies the XPath expressions to be executed. */
878+ DataFlow:: Node getXPath ( ) { result = super .getXPath ( ) }
879+ }
880+
881+ /** Provides a class for modeling new XPath execution APIs. */
882+ module XPathExecution {
883+ /**
884+ * A data-flow node that executes an XPath expression.
885+ *
886+ * Extend this class to model new APIs. If you want to refine existing API models,
887+ * extend `XPathExecution` instead.
888+ */
889+ abstract class Range extends DataFlow:: Node {
890+ /** Gets the argument that specifies the XPath expressions to be executed. */
891+ abstract DataFlow:: Node getXPath ( ) ;
892+ }
893+ }
894+
843895/**
844896 * A data-flow node that may represent a database object in an ORM system.
845897 *
0 commit comments