Example #1
0
 internal void Load(XmlDocument doc, XmlReader reader, bool preserveWhitespace)
 {
     _doc = doc;
     // perf: unwrap XmlTextReader if no one derived from it
     if (reader.GetType() == typeof(System.Xml.XmlTextReader))
     {
         _reader = ((XmlTextReader)reader).Impl;
     }
     else
     {
         _reader = reader;
     }
     _preserveWhitespace = preserveWhitespace;
     if (doc == null)
         throw new ArgumentException(SR.Xdom_Load_NoDocument);
     if (reader == null)
         throw new ArgumentException(SR.Xdom_Load_NoReader);
     doc.SetBaseURI(reader.BaseURI);
     if (reader.Settings != null
         && reader.Settings.ValidationType == ValidationType.Schema)
     {
         doc.Schemas = reader.Settings.Schemas;
     }
     if (_reader.ReadState != ReadState.Interactive)
     {
         if (!_reader.Read())
             return;
     }
     LoadDocSequence(doc);
 }
        private static int GetXmlReaderBufferPosition(XmlReader xr)
        {
            if (_xmlReaderBufferPositionProperty == null)
            {
                _xmlReaderBufferPositionProperty = xr.GetType()
                                                     .GetProperty("DtdParserProxy_CurrentPosition",
                                                                  BindingFlags.Instance | BindingFlags.NonPublic);
            }

            return (int)_xmlReaderBufferPositionProperty.GetValue(xr);
        }
        private static long GetXmlReaderBufferLength(XmlReader xr)
        {
            if (_xmlReaderBufferSizeProperty == null)
            {
                _xmlReaderBufferSizeProperty = xr.GetType()
                                                 .GetProperty("DtdParserProxy_ParsingBufferLength",
                                                              BindingFlags.Instance | BindingFlags.NonPublic);
            }

            return (int)_xmlReaderBufferSizeProperty.GetValue(xr);
        }
Example #4
0
 public static void Run(XmlReader reader)
 {
     using (StreamWriter output = File.CreateText(Path.Combine(Program.TempPath, reader.GetType().Name + "-output.csv"))) {
         var properties = typeof(XmlReader).GetProperties(BindingFlags.Public | BindingFlags.Instance)
             .Where(p => p.GetIndexParameters().Length == 0 && !ignoredProperties.Contains(p.Name))
             .ToArray();
         output.WriteLine(CSV(properties.Select(p => p.Name)));
         do {
             output.WriteLine(CSV(properties.Select(p => ToString(p.GetValue(reader, null)))));
         } while (reader.Read());
         output.WriteLine(CSV(properties.Select(p => ToString(p.GetValue(reader, null)))));
     }
 }
Example #5
0
		public static void Run(XmlReader reader, bool includeAttributes, bool includeAttributeValues = true)
		{
			using (StreamWriter output = File.CreateText(Path.Combine(Program.TempPath, reader.GetType().Name + "-output.csv"))) {
				var properties = typeof(XmlReader).GetProperties(BindingFlags.Public | BindingFlags.Instance)
					.Where(p => p.GetIndexParameters().Length == 0 && !ignoredProperties.Contains(p.Name))
					.ToArray();
				output.WriteLine(CSV(properties.Select(p => p.Name)));
				do {
					output.WriteLine(CSV(properties.Select(p => ToString(p.GetValue(reader, null)))));
					if (includeAttributes && reader.HasAttributes) {
						for (int i = 0; i < reader.AttributeCount; i++) {
							reader.MoveToAttribute(i);
							output.WriteLine(CSV(properties.Select(p => ToString(p.GetValue(reader, null)))));
							if (includeAttributeValues) {
								reader.ReadAttributeValue();
								output.WriteLine(CSV(properties.Select(p => ToString(p.GetValue(reader, null)))));
							}
						}
					}
				} while (reader.Read());
				output.WriteLine(CSV(properties.Select(p => ToString(p.GetValue(reader, null)))));
			}
		}
Example #6
0
		private void AssertNodeValues (
			string label,
			XmlReader xmlReader,
			XmlNodeType nodeType,
			int depth,
			bool isEmptyElement,
			string name,
			string prefix,
			string localName,
			string namespaceURI,
			string value,
			bool hasValue,
			int attributeCount,
			bool hasAttributes)
		{
			label = String.Concat (label, "(", xmlReader.GetType ().Name, ")");
			Assert.AreEqual (nodeType, xmlReader.NodeType, label + ": NodeType");
			Assert.AreEqual (isEmptyElement, xmlReader.IsEmptyElement, label + ": IsEmptyElement");

			Assert.AreEqual (name, xmlReader.Name, label + ": name");

			Assert.AreEqual (prefix, xmlReader.Prefix, label + ": prefix");

			Assert.AreEqual (localName, xmlReader.LocalName, label + ": localName");

			Assert.AreEqual (namespaceURI, xmlReader.NamespaceURI, label + ": namespaceURI");

			Assert.AreEqual (depth, xmlReader.Depth, label + ": Depth");

			Assert.AreEqual (hasValue, xmlReader.HasValue, label + ": hasValue");

			Assert.AreEqual (value, xmlReader.Value, label + ": Value");

			Assert.AreEqual (hasAttributes, xmlReader.HasAttributes, label + ": hasAttributes");

			Assert.AreEqual (attributeCount, xmlReader.AttributeCount, label + ": attributeCount");
		}
		private void AssertNodeValues (
			string label,
			XmlReader xmlReader,
			XmlNodeType nodeType,
			int depth,
			bool isEmptyElement,
			string name,
			string prefix,
			string localName,
			string namespaceURI,
			string value,
			bool hasValue,
			int attributeCount,
			bool hasAttributes)
		{
			label = String.Concat (label, "(", xmlReader.GetType ().Name, ")");
			AssertEquals (label + ": NodeType", nodeType, xmlReader.NodeType);
			AssertEquals (label + ": IsEmptyElement", isEmptyElement, xmlReader.IsEmptyElement);

			AssertEquals (label + ": name", name, xmlReader.Name);

			AssertEquals (label + ": prefix", prefix, xmlReader.Prefix);

			AssertEquals (label + ": localName", localName, xmlReader.LocalName);

			AssertEquals (label + ": namespaceURI", namespaceURI, xmlReader.NamespaceURI);

			AssertEquals (label + ": Depth", depth, xmlReader.Depth);

			AssertEquals (label + ": hasValue", hasValue, xmlReader.HasValue);

			AssertEquals (label + ": Value", value, xmlReader.Value);

			AssertEquals (label + ": hasAttributes", hasAttributes, xmlReader.HasAttributes);

			AssertEquals (label + ": attributeCount", attributeCount, xmlReader.AttributeCount);
		}