Esempio n. 1
0
        public string serialize(XPathNodeIterator arg, XPathNodeIterator parameters)
        {
            // fn:serialize($arg	as item()*, $params as element(output:serialization-parameters)?) as xs:string

            var itemFactory = new SystemItemFactory();

            XPathSerializationOptions options = null;

            if (parameters != null &&
                parameters.Count == 1)
            {
                options = new XPathSerializationOptions();
                ((IXmlSerializable)options).ReadXml(parameters.Cast <XPathNavigator>().First().ReadSubtree());
            }

            using (var writer = new StringWriter()) {
                IEnumerable <XPathItem> items = arg.Cast <XPathItem>();

                if (options == null)
                {
                    itemFactory.Serialize(items, writer);
                }
                else
                {
                    itemFactory.Serialize(items, writer, options);
                }

                return(writer.ToString());
            }
        }
Esempio n. 2
0
        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)));
            }
        }
Esempio n. 3
0
        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));
             }
        }
Esempio n. 4
0
        public string serialize(XPathNodeIterator arg, XPathNodeIterator parameters)
        {
            // fn:serialize($arg	as item()*, $params as element(output:serialization-parameters)?) as xs:string

             var itemFactory = new SystemItemFactory();

             XPathSerializationOptions options = null;

             if (parameters != null
            && parameters.Count == 1) {

            options = new XPathSerializationOptions();
            ((IXmlSerializable)options).ReadXml(parameters.Cast<XPathNavigator>().First().ReadSubtree());
             }

             using (var writer = new StringWriter()) {

            IEnumerable<XPathItem> items = arg.Cast<XPathItem>();

            if (options == null) {
               itemFactory.Serialize(items, writer);
            } else {
               itemFactory.Serialize(items, writer, options);
            }

            return writer.ToString();
             }
        }