public string replace(object input, string pattern, string replacement, string flags) { // fn:replace($input as xs:string?, $pattern as xs:string, $replacement as xs:string, $flags as xs:string) as xs:string string inputStr = ExtensionObjectConvert.ToString(input) ?? ""; return(Regex.Replace(inputStr, pattern, replacement, ParseFlags(flags))); }
public bool matches(object input, string pattern, string flags) { // fn:matches($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:boolean string inputStr = ExtensionObjectConvert.ToString(input) ?? ""; return(Regex.IsMatch(inputStr, pattern, ParseFlags(flags))); }
protected bool ends_with(object arg1, object arg2) { // fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean string first = ExtensionObjectConvert.ToString(arg1) ?? ""; string second = ExtensionObjectConvert.ToString(arg2) ?? ""; return(first.EndsWith(second)); }
protected string upper_case(object arg) { // fn:upper-case($arg as xs:string?) as xs:string string str = ExtensionObjectConvert.ToString(arg); if (str == null) { return(""); } return(str.ToUpper()); }
public object tokenize(object input, string pattern, string flags) { // fn:tokenize($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:string* string inputStr = ExtensionObjectConvert.ToString(input); if (!inputStr.HasValue()) { return(ExtensionObjectConvert.EmptyIterator); } return(ExtensionObjectConvert.ToInput(Regex.Split(inputStr, pattern, ParseFlags(flags)))); }
protected object resolve_uri(object relativeUri) { string relativeUriStr = ExtensionObjectConvert.ToString(relativeUri); if (relativeUriStr == null) { return(ExtensionObjectConvert.EmptyIterator); } Uri resolvedUri = resolve_uri_impl(relativeUriStr, static_base_uri_impl()); return(ExtensionObjectConvert.ToInput(resolvedUri)); }
protected string encode_for_uri(object arg) { // fn:encode-for-uri($uri-part as xs:string?) as xs:string string value = ExtensionObjectConvert.ToString(arg); if (value == null) { return(""); } return(Uri.EscapeDataString(value)); }
public object compare(object comparand1, object comparand2) { // fn:compare($comparand1 as xs:string?, $comparand2 as xs:string?) as xs:integer? string first = ExtensionObjectConvert.ToString(comparand1); string second = ExtensionObjectConvert.ToString(comparand2); if (first == null || second == null) { return(ExtensionObjectConvert.EmptyIterator); } return(String.Compare(first, second)); }
protected object resolve_uri(object relativeUri, string baseUri) { // fn:resolve-uri($relative as xs:string?, $base as xs:string) as xs:anyURI? string relativeUriStr = ExtensionObjectConvert.ToString(relativeUri); if (relativeUriStr == null) { return(ExtensionObjectConvert.EmptyIterator); } Uri baseU = new Uri(baseUri, UriKind.Absolute); Uri resolvedUri = resolve_uri_impl(relativeUriStr, baseU); return(ExtensionObjectConvert.ToInput(resolvedUri)); }
protected object namespace_uri_for_prefix(object prefix, XPathNavigator element) { // fn:namespace-uri-for-prefix($prefix as xs:string?, $element as element()) as xs:anyURI? IDictionary <string, string> namespaces = element.GetNamespacesInScope(XmlNamespaceScope.All); string p = ExtensionObjectConvert.ToString(prefix) ?? ""; string ns; if (!namespaces.TryGetValue(p, out ns)) { return(ExtensionObjectConvert.EmptyIterator); } return(ns); }
static object parse_xml_impl(object arg, bool fragment) { string str = ExtensionObjectConvert.ToString(arg); if (str == null) { return(ExtensionObjectConvert.EmptyIterator); } var parseOptions = new XmlParsingOptions { ConformanceLevel = (fragment) ? ConformanceLevel.Fragment : ConformanceLevel.Document }; var itemFactory = new SystemItemFactory(); using (var reader = new StringReader(str)) { return(ExtensionObjectConvert.ToInput(itemFactory.CreateNodeReadOnly(reader, parseOptions))); } }