示例#1
0
        internal int AddQuery(string xpathQuery, bool allowVar, bool allowKey, bool isPattern)
        {
            Debug.Assert(_queryStore != null);

            CompiledXpathExpr expr;

            try
            {
                expr = new CompiledXpathExpr(
                    (isPattern
                        ? _queryBuilder.BuildPatternQuery(xpathQuery, allowVar, allowKey)
                        : _queryBuilder.Build(xpathQuery, allowVar, allowKey)
                    ),
                    xpathQuery,
                    false
                    );
            }
            catch (XPathException e)
            {
                if (!ForwardCompatibility)
                {
                    throw XsltException.Create(SR.Xslt_InvalidXPath, new string[] { xpathQuery }, e);
                }
                expr = new ErrorXPathExpression(xpathQuery, this.Input.BaseURI, this.Input.LineNumber, this.Input.LinePosition);
            }
            _queryStore.Add(new TheQuery(expr, _scopeManager));
            return(_queryStore.Count - 1);
        }
示例#2
0
        internal int AddQuery(string xpathQuery, bool allowVar, bool allowKey, bool isPattern)
        {
            Debug.Assert(_queryStore != null);

            CompiledXpathExpr expr;
            try
            {
                expr = new CompiledXpathExpr(
                    (isPattern
                        ? _queryBuilder.BuildPatternQuery(xpathQuery, allowVar, allowKey)
                        : _queryBuilder.Build(xpathQuery, allowVar, allowKey)
                    ),
                    xpathQuery,
                    false
                );
            }
            catch (XPathException e)
            {
                if (!ForwardCompatibility)
                {
                    throw XsltException.Create(SR.Xslt_InvalidXPath, new string[] { xpathQuery }, e);
                }
                expr = new ErrorXPathExpression(xpathQuery, this.Input.BaseURI, this.Input.LineNumber, this.Input.LinePosition);
            }
            _queryStore.Add(new TheQuery(expr, _scopeManager));
            return _queryStore.Count - 1;
        }