public static XPathSequence FnIndexOf(XQueryContext ctx, XPathSequence items, XPathItem item, CultureInfo ci) { ArrayList al = new ArrayList(); IEnumerator e = items.GetEnumerator(); for (int i = 0; e.MoveNext(); i++) { XPathItem iter = e.Current as XPathItem; if (iter.XmlType.TypeCode == XmlTypeCode.String) { if (ci.CompareInfo.Compare(iter.Value, item.Value) == 0) { al.Add(i); } } else { IComparable ic = (IComparable)iter.TypedValue; if (ic.CompareTo((IComparable)item.TypedValue) == 0) { al.Add(i); } } } return(new ListIterator(ctx, al)); }
public static string [] FnInScopePrefixes(XQueryContext context) { IDictionary dict = context.GetNamespacesInScope(XmlNamespaceScope.ExcludeXml); ArrayList keys = new ArrayList(dict.Keys); return(keys.ToArray(typeof(string)) as string []); }
public static string FnString(XQueryContext context) { XPathItem item = context.CurrentItem; if (item == null) { throw new ArgumentException("FONC0001: undefined context item"); } return(FnString(item)); }
public static XPathNavigator FnRoot(XQueryContext ctx) { if (ctx.CurrentItem == null) { throw new XmlQueryException("FONC0001: Undefined context item."); } if (ctx.CurrentNode == null) { throw new XmlQueryException("FOTY0011: Context item is not a node."); } return(FnRoot(ctx.CurrentNode)); }
public void Execute (XPathNavigator input, XmlResolver resolver, XmlArgumentList args, XmlWriter writer) { if (staticContext == null) throw new XmlQueryException ("Query string is not compiled."); // Initialize event handler method info. xqueryCommandOnMessageEventMethod = null; XQueryContext ctx = new XQueryContext (new XQueryContextManager (staticContext, input, writer, resolver, args)); XPathSequence iter = new SingleItemIterator (input, ctx); foreach (ExprSingle expr in staticContext.QueryBody) expr.Serialize (iter); }
public void PushCurrentSequence(XPathSequence sequence) { if (sequence == null) { throw new ArgumentNullException(); } // sequence = sequence.Clone (); #if SEEMS_CONTEXT_FOR_CURRENT_REQURED contextStack.Push(currentContext); currentsequence = sequence; currentContext = new XQueryContext(this); #else contextSequenceStack.Push(currentSequence); currentSequence = sequence; #endif }
public void Execute(XPathNavigator input, XmlResolver resolver, XmlArgumentList args, XmlWriter writer) { if (staticContext == null) { throw new XmlQueryException("Query string is not compiled."); } // Initialize event handler method info. xqueryCommandOnMessageEventMethod = null; XQueryContext ctx = new XQueryContext(new XQueryContextManager(staticContext, input, writer, resolver, args)); XPathSequence iter = new SingleItemIterator(input, ctx); foreach (ExprSingle expr in staticContext.QueryBody) { expr.Serialize(iter); } }
public static XPathNavigator FnDoc(XQueryContext ctx, string uri) { XmlResolver res = ctx.ContextManager.ExtDocResolver; string baseUriString = ctx.StaticContext.BaseUri; Uri baseUri = null; if (baseUriString != null && baseUriString != String.Empty) { baseUri = new Uri(baseUriString); } Uri relUri = res.ResolveUri(baseUri, uri); Stream s = res.GetEntity(relUri, null, typeof(Stream)) as Stream; try { XPathDocument doc = new XPathDocument(new XmlValidatingReader(new XmlTextReader(s)), XmlSpace.Preserve); return(doc.CreateNavigator()); } finally { s.Close(); } }
internal XQueryContextManager (XQueryStaticContext ctx, XPathItem input, XmlWriter writer, XmlResolver resolver, XmlArgumentList args) { this.input = input; this.staticContext = ctx; this.args = args; currentWriter = writer; this.extDocResolver = resolver; namespaceManager = new XmlNamespaceManager (ctx.NameTable); foreach (DictionaryEntry de in ctx.NSResolver.GetNamespacesInScope (XmlNamespaceScope.ExcludeXml)) namespaceManager.AddNamespace (de.Key.ToString (), de.Value.ToString ()); namespaceManager.PushScope (); currentContext = new XQueryContext (this, null, new Hashtable ()); if (input != null) { currentSequence = new SingleItemIterator (input, currentContext); currentSequence.MoveNext (); } currentContext = new XQueryContext (this, currentSequence, new Hashtable ()); }
public static object FnTrace(XQueryContext ctx, object value, string label) { if (value == null) { return(new XPathEmptySequence(ctx)); } XPathSequence seq = value as XPathSequence; if (seq == null) { XPathAtomicValue av = value as XPathAtomicValue; if (av == null) { av = new XPathAtomicValue(value, InternalPool.GetBuiltInType( InternalPool.XmlTypeCodeFromRuntimeType( value.GetType(), true))); } seq = new SingleItemIterator(av, ctx); } return(new TracingIterator(seq, label)); }
internal XQueryContextManager(XQueryStaticContext ctx, XPathItem input, XmlWriter writer, XmlResolver resolver, XmlArgumentList args) { this.input = input; this.staticContext = ctx; this.args = args; currentWriter = writer; this.extDocResolver = resolver; namespaceManager = new XmlNamespaceManager(ctx.NameTable); foreach (DictionaryEntry de in ctx.NSResolver.GetNamespacesInScope(XmlNamespaceScope.ExcludeXml)) { namespaceManager.AddNamespace(de.Key.ToString(), de.Value.ToString()); } namespaceManager.PushScope(); currentContext = new XQueryContext(this, null, new Hashtable()); if (input != null) { currentSequence = new SingleItemIterator(input, currentContext); currentSequence.MoveNext(); } currentContext = new XQueryContext(this, currentSequence, new Hashtable()); }
public static string FnNormalizeSpace (XQueryContext ctx) { return FnNormalizeSpace (FnString (ctx)); }
public static bool FnEndsWith (XQueryContext ctx, string arg1, string arg2, string collation) { return FnEndsWith (arg1, arg2, ctx.GetCulture (collation)); }
public static object FnTrace (XQueryContext ctx, object value, string label) { if (value == null) return new XPathEmptySequence (ctx); XPathSequence seq = value as XPathSequence; if (seq == null) { XPathAtomicValue av = value as XPathAtomicValue; if (av == null) av = new XPathAtomicValue (value, InternalPool.GetBuiltInType ( InternalPool.XmlTypeCodeFromRuntimeType ( value.GetType (), true))); seq = new SingleItemIterator (av, ctx); } return new TracingIterator (seq, label); }
public static int FnCompare (XQueryContext ctx, string s1, string s2, string collation) { return FnCompare (s1, s2, ctx.GetCulture (collation)); }
public static string FnNormalizeSpace(XQueryContext ctx) { return(FnNormalizeSpace(FnString(ctx))); }
public static int FnCompare(XQueryContext ctx, string s1, string s2, string collation) { return(FnCompare(s1, s2, ctx.GetCulture(collation))); }
public static object FnNamespaceUriForPrefix(XQueryContext context, string prefix) { return(prefix != null?context.LookupNamespace(prefix) : null); }
public static double FnNumber (XQueryContext ctx) { return FnNumber (ctx.CurrentItem); }
public static string FnSubstringAfter(XQueryContext ctx, string arg1, string arg2, string collation) { return(FnSubstringAfter(arg1, arg2, ctx.GetCulture(collation))); }
public static string FnResolveUri(XQueryContext ctx, string relUri) { return(new Uri(new Uri(ctx.StaticContext.BaseUri), relUri).ToString()); }
public static string FnSubstringAfter(XQueryContext ctx, string arg1, string arg2) { return(FnSubstringAfter(arg1, arg2, ctx.DefaultCollation)); }
public static bool FnEndsWith(XQueryContext ctx, string arg1, string arg2, string collation) { return(FnEndsWith(arg1, arg2, ctx.GetCulture(collation))); }
public static bool FnEndsWith(XQueryContext ctx, string arg1, string arg2) { return(FnEndsWith(arg1, arg2, ctx.DefaultCollation)); }
public static string FnSubstringAfter (XQueryContext ctx, string arg1, string arg2, string collation) { return FnSubstringAfter (arg1, arg2, ctx.GetCulture (collation)); }
public static XPathSequence FnIndexOf (XQueryContext ctx, XPathSequence items, XPathItem item, CultureInfo ci) { ArrayList al = new ArrayList (); IEnumerator e = items.GetEnumerator (); for (int i = 0; e.MoveNext (); i++) { XPathItem iter = e.Current as XPathItem; if (iter.XmlType.TypeCode == XmlTypeCode.String) { if (ci.CompareInfo.Compare (iter.Value, item.Value) == 0) al.Add (i); } else { IComparable ic = (IComparable) iter.TypedValue; if (ic.CompareTo ((IComparable) item.TypedValue) == 0) al.Add (i); } } return new ListIterator (ctx, al); }
public static object FnNamespaceUriForPrefix (XQueryContext context, string prefix) { return prefix != null ? context.LookupNamespace (prefix) : null; }
public static object FnDeepEqual (XQueryContext ctx, XPathSequence p1, XPathSequence p2) { return FnDeepEqualImpl (p1, p2, ctx.DefaultCollation); }
public static XPathNavigator FnRoot (XQueryContext ctx) { if (ctx.CurrentItem == null) throw new XmlQueryException ("FONC0001: Undefined context item."); if (ctx.CurrentNode == null) throw new XmlQueryException ("FOTY0011: Context item is not a node."); return FnRoot (ctx.CurrentNode); }
public static int FnStringLength(XQueryContext ctx) { return(FnString(ctx).Length); }
public static XPathSequence FnDistinctValues (XQueryContext ctx, XPathSequence items, string collation) { return FnDistinctValuesImpl (ctx, items, ctx.GetCulture (collation)); }
public static double FnNumber(XQueryContext ctx) { return(FnNumber(ctx.CurrentItem)); }
public static object FnMin (XQueryContext ctx, XPathSequence e) { return FnMinImpl (e, ctx.DefaultCollation); }
public static bool FnLang(XQueryContext ctx, string testLang) { return(FnLang(testLang, ctx.CurrentNode)); }
public static string FnString (XQueryContext context) { XPathItem item = context.CurrentItem; if (item == null) throw new ArgumentException ("FONC0001: undefined context item"); return FnString (item); }
public static XPathSequence FnCollection(XQueryContext ctx, string name) { return(ctx.ResolveCollection(name)); }
public static int FnCompare (XQueryContext ctx, string s1, string s2) { return FnCompare (s1, s2, ctx.DefaultCollation); }
public static XPathSequence FnIndexOf(XQueryContext ctx, XPathSequence items, XPathItem item) { return(FnIndexOf(ctx, items, item, ctx.DefaultCollation)); }
public static int FnStringLength (XQueryContext ctx) { return FnString (ctx).Length; }
public static object FnIdRef(XQueryContext ctx, string arg) { return(FnIdRef(arg, ctx.CurrentNode)); }
public static bool FnEndsWith (XQueryContext ctx, string arg1, string arg2) { return FnEndsWith (arg1, arg2, ctx.DefaultCollation); }
public static XPathSequence FnDistinctValues(XQueryContext ctx, XPathSequence items) { return(FnDistinctValuesImpl(ctx, items, ctx.DefaultCollation)); }
public static string FnSubstringAfter (XQueryContext ctx, string arg1, string arg2) { return FnSubstringAfter (arg1, arg2, ctx.DefaultCollation); }
public static XPathSequence FnDistinctValues(XQueryContext ctx, XPathSequence items, string collation) { return(FnDistinctValuesImpl(ctx, items, ctx.GetCulture(collation))); }
public static string FnResolveUri (XQueryContext ctx, string relUri) { return new Uri (new Uri (ctx.StaticContext.BaseUri), relUri).ToString (); }
private static XPathSequence FnDistinctValuesImpl(XQueryContext ctx, XPathSequence items, CultureInfo collation) { return(new DistinctValueIterator(ctx, items, collation)); }
public static string [] FnInScopePrefixes (XQueryContext context) { IDictionary dict = context.GetNamespacesInScope (XmlNamespaceScope.ExcludeXml); ArrayList keys = new ArrayList (dict.Keys); return keys.ToArray (typeof (string)) as string []; }
public static object FnDeepEqual(XQueryContext ctx, XPathSequence p1, XPathSequence p2) { return(FnDeepEqualImpl(p1, p2, ctx.DefaultCollation)); }
public static bool FnLang (XQueryContext ctx, string testLang) { return FnLang (testLang, ctx.CurrentNode); }
public static object FnDeepEqual(XQueryContext ctx, XPathSequence p1, XPathSequence p2, string collation) { return(FnDeepEqualImpl(p1, p2, ctx.GetCulture(collation))); }
public static XPathSequence FnIndexOf (XQueryContext ctx, XPathSequence items, XPathItem item) { return FnIndexOf (ctx, items, item, ctx.DefaultCollation); }
public static XPathNavigator FnId(XQueryContext ctx, string id) { return(FnId(id, ctx.CurrentNode)); }
public static XPathSequence FnDistinctValues (XQueryContext ctx, XPathSequence items) { return FnDistinctValuesImpl (ctx, items, ctx.DefaultCollation); }
public static object FnIdRef (XQueryContext ctx, string arg) { return FnIdRef (arg, ctx.CurrentNode); }
private static XPathSequence FnDistinctValuesImpl (XQueryContext ctx, XPathSequence items, CultureInfo collation) { return new DistinctValueIterator (ctx, items, collation); }
public static XPathNavigator FnDoc (XQueryContext ctx, string uri) { XmlResolver res = ctx.ContextManager.ExtDocResolver; string baseUriString = ctx.StaticContext.BaseUri; Uri baseUri = null; if (baseUriString != null && baseUriString != String.Empty) baseUri = new Uri (baseUriString); Uri relUri = res.ResolveUri (baseUri, uri); Stream s = res.GetEntity (relUri, null, typeof (Stream)) as Stream; try { XPathDocument doc = new XPathDocument (new XmlValidatingReader (new XmlTextReader (s)), XmlSpace.Preserve); return doc.CreateNavigator (); } finally { s.Close (); } }
public static object FnDeepEqual (XQueryContext ctx, XPathSequence p1, XPathSequence p2, string collation) { return FnDeepEqualImpl (p1, p2, ctx.GetCulture (collation)); }
public static XPathSequence FnCollection (XQueryContext ctx, string name) { return ctx.ResolveCollection (name); }
public static object FnMin (XQueryContext ctx, XPathSequence e, string collation) { return FnMinImpl (e, ctx.GetCulture (collation)); }
public static int FnCompare(XQueryContext ctx, string s1, string s2) { return(FnCompare(s1, s2, ctx.DefaultCollation)); }