/// <summary> /// Accept a node and an atomic value and return the sequence containing the string /// value of the node followed by the value. /// </summary> public static XdmValue combine(XdmNode node, XdmAtomicValue value) { ArrayList list = new ArrayList(); list.Add(new XdmAtomicValue(node.StringValue)); list.Add(value); return new XdmValue(list); }
public void AddParameter(string name, [NotNull] string value) { if (string.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument is null or whitespace", nameof(name)); if (value == null) throw new ArgumentNullException(nameof(value)); var key = new QName(name); _externalParameters[key] = new XdmAtomicValue(value); }
/// <summary> /// Create an XdmValue from an underlying Saxon ValueRepresentation object. /// This method is provided for the benefit of applications that need to mix /// use of the Saxon .NET API with direct use of the underlying objects /// and methods offered by the Java implementation. /// </summary> /// <param name="value">An object representing an XDM value in the /// underlying Saxon implementation.</param> /// <returns>An XdmValue that wraps the underlying Saxon value /// representation.</returns> public static XdmValue Wrap(ValueRepresentation value) { XdmValue result; if (value == null || value is EmptySequence) { return XdmEmptySequence.INSTANCE; } else if (value is JAtomicValue) { result = new XdmAtomicValue(); } else if (value is NodeInfo) { result = new XdmNode(); } else { result = new XdmValue(); } result.value = value; return result; }
/// <summary> /// Create an XdmValue from an underlying Saxon ValueRepresentation object. /// This method is provided for the benefit of applications that need to mix /// use of the Saxon .NET API with direct use of the underlying objects /// and methods offered by the Java implementation. /// </summary> /// <param name="value">An object representing an XDM value in the /// underlying Saxon implementation.</param> /// <returns>An XdmValue that wraps the underlying Saxon value /// representation.</returns> public static XdmValue Wrap(ValueRepresentation value) { XdmValue result; if (value == null || value is EmptySequence) { return(XdmEmptySequence.INSTANCE); } else if (value is JAtomicValue) { result = new XdmAtomicValue(); } else if (value is NodeInfo) { result = new XdmNode(); } else { result = new XdmValue(); } result.value = value; return(result); }
public XdmAtomicValueWrapper(XdmAtomicValue atomicValue) { if (atomicValue == null) throw new ArgumentNullException("atomicValue"); this.atomicValue = atomicValue; }
/// <summary> /// Add parameters to a transform /// </summary> /// <param name="parameterList"></param> /// <param name="xslProc"></param> private void AddParameters(XMLUtilities.XSLParameter[] parameterList) { if (parameterList != null) { foreach (XMLUtilities.XSLParameter rParam in parameterList) { var parameterName = new QName(rParam.Name); // Following is a specially recognized parameter name if (rParam.Name == "prmSDateTime") { var parameterValue = new XdmAtomicValue((new QName(XMLUtilities.GetCurrentDateTime(CultureToUse)))); m_transformer.SetParameter(parameterName, parameterValue); } else { var parameterValue = new XdmAtomicValue((new QName(rParam.Value))); m_transformer.SetParameter(parameterName, parameterValue); } } } }
/// <summary> /// Show a direct call on a user-defined function defined within the query /// </summary> public override void run(Uri samplesDir) { Processor processor = new Processor(); XQueryCompiler qc = processor.NewXQueryCompiler(); XQueryExecutable exp1 = qc.Compile("declare namespace f='f.ns';" + "declare variable $z := 1 + xs:integer(doc-available('" + new Uri(samplesDir, "data/books.xml").ToString() + "'));" + "declare variable $p as xs:integer external;" + "declare function f:t1($v1 as xs:integer) { " + " $v1 div $z + $p" + "};" + "10"); XQueryEvaluator ev = exp1.Load(); ev.SetExternalVariable(new QName("", "p"), new XdmAtomicValue(39)); XdmValue v1 = new XdmAtomicValue(10); XdmValue result = ev.CallFunction(new QName("f.ns", "f:t1"), new XdmValue[] { v1 }); Console.WriteLine("First result (expected 44): " + result.ToString()); v1 = new XdmAtomicValue(20); result = ev.CallFunction(new QName("f.ns", "f:t1"), new XdmValue[] { v1 }); Console.WriteLine("Second result (expected 49): " + result.ToString()); }
public override IXdmEnumerator Call(IXdmEnumerator[] arguments, DynamicContext context) { Boolean exists = arguments[0].MoveNext(); if (exists) { XdmAtomicValue arg = (XdmAtomicValue)arguments[0].Current; double val = (double)arg.Value; double sqrt = System.Math.Sqrt(val); XdmAtomicValue result = new XdmAtomicValue(sqrt); return (IXdmEnumerator)result.GetEnumerator(); } else { return EmptyEnumerator.INSTANCE; } }
/// <summary> /// Create an XdmValue from an underlying Saxon ValueRepresentation object. /// This method is provided for the benefit of applications that need to mix /// use of the Saxon .NET API with direct use of the underlying objects /// and methods offered by the Java implementation. /// </summary> /// <param name="value">An object representing an XDM value in the /// underlying Saxon implementation. If the parameter is null, /// the method returns null.</param> /// <returns>An XdmValue that wraps the underlying Saxon value /// representation.</returns> public static XdmValue Wrap(ValueRepresentation value) { XdmValue result; if (value == null) { return null; } if (value is JEmptySequence) { return XdmEmptySequence.INSTANCE; } else if (value is JAtomicValue) { result = new XdmAtomicValue(); } else if (value is NodeInfo) { result = new XdmNode(); } else if (value is JSingletonItem) { value = ((JSingletonItem)value).asItem(); result = new XdmNode(); } else { result = new XdmValue(); } result.value = value; return result; }