private static void ReadType(SparseReader reader, object parent) { Context context = (Context)parent; if (context.Exception) { ReadExceptionType(reader, parent); } else { context.RefineType(reader.ReadAttributeString(SchemaStrings.AttributeName)); reader.ReadChildren(SchemaStrings.ElementType, parent); context.ClearType(); } }
private static void ReadStackTrace(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineStackTrace(reader.ReadElementContentAsString()); }
private static void ReadTarget(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineTarget(reader.ReadAttributeString(SchemaStrings.AttributeName)); reader.ReadChildren(SchemaStrings.ElementTarget, parent); context.ClearTarget(); }
private void ReadNamespace(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineNamespace(reader.ReadAttributeString(SchemaStrings.AttributeName)); reader.ReadChildren(SchemaStrings.ElementNamespace, parent); context.ClearNamespace(); }
private static void ReadExceptions(SparseReader reader, object parent) { reader.ReadChildren(SchemaStrings.ElementExceptions, parent); }
private void ReadInnerExceptionType(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineInnerExceptionType(reader.ReadElementContentAsString()); }
private void ReadMessage(SparseReader reader, object parent) { Context context = (Context)parent; string messageId = reader.ReadAttributeString(SchemaStrings.AttributeId); string typename = reader.ReadAttributeString(SchemaStrings.AttributeTypeName); string category = reader.ReadAttributeString(SchemaStrings.AttributeCategory); string checkId = reader.ReadAttributeString(SchemaStrings.AttributeCheckId); string fixCategory = reader.ReadAttributeString(SchemaStrings.AttributeFixCategory); string status = reader.ReadAttributeString(SchemaStrings.AttributeStatus); context.RefineMessage(checkId, typename, messageId, category, fixCategory, status); if ("Excluded".Equals(status) || "ExcludedInSource".Equals(status)) { // FxCop doesn't actually emit message details for most excluded items // and so we must fire here for these items, as the scan for child // <Issue> elements may not produce anything. FxCop seems to emit // issues for excluded items which are at the namespace level only. if (ResultRead != null) { ResultRead(context); } } reader.ReadChildren(SchemaStrings.ElementMessage, parent); context.ClearMessage(); }
private static void ReadExceptionMessage(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineExceptionMessage(reader.ReadElementContentAsString()); }
private static void ReadTargets(SparseReader reader, object parent) { Context context = (Context)parent; reader.ReadChildren(SchemaStrings.ElementTargets, parent); }
private void ReadModules(SparseReader reader, object parent) { reader.ReadChildren(SchemaStrings.ElementModules, parent); }
private static void ReadResources(SparseReader reader, object parent) { reader.ReadChildren(SchemaStrings.ElementResources, parent); }
private static void ReadInnerStackTrace(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineInnerStackTrace(reader.ReadElementContentAsString()); }
private static void ReadInnerExceptionMessage(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineInnerExceptionMessage(reader.ReadElementContentAsString()); }
private static void ReadTypes(SparseReader reader, object parent) { reader.ReadChildren(SchemaStrings.ElementTypes, parent); }
private static void ReadExceptionType(SparseReader reader, object parent) { Context context = (Context)parent; if (context.Exception) { context.RefineExceptionType(reader.ReadElementContentAsString()); } }
private void ReadException(SparseReader reader, object parent) { Context context = (Context)parent; string ruleId = reader.ReadAttributeString(SchemaStrings.AttributeKeyword); string kind = reader.ReadAttributeString(SchemaStrings.AttributeKind); string checkId = reader.ReadAttributeString(SchemaStrings.AttributeCheckId); string target = reader.ReadAttributeString(SchemaStrings.AttributeTarget); context.RefineException(true, ruleId, target); reader.ReadChildren(SchemaStrings.ElementException, parent); string exception = MakeExceptionMessage(kind, checkId, context.ExceptionType, context.ExceptionMessage, context.StackTrace, context.InnerExceptionType, context.InnerExceptionMessage, context.InnerStackTrace); context.RefineIssue(exception, null, null, null, null, null, null); if (ResultRead != null) { ResultRead(context); } context.ClearIssue(); context.ClearException(); }
private static void ReadFxCopReport(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineReport(reader.ReadAttributeString(SchemaStrings.AttributeVersion)); reader.ReadChildren(SchemaStrings.ElementFxCopReport, parent); context.ClearReport(); }
private void ReadIssue(SparseReader reader, object parent) { Context context = (Context)parent; string name = reader.ReadAttributeString(SchemaStrings.AttributeName); string certainty = reader.ReadAttributeString(SchemaStrings.AttributeCertainty); string level = reader.ReadAttributeString(SchemaStrings.AttributeLevel); string path = reader.ReadAttributeString(SchemaStrings.AttributePath); string file = reader.ReadAttributeString(SchemaStrings.AttributeFile); int? line = reader.ReadAttributeInt(SchemaStrings.AttributeLine); string message = reader.ReadElementContentAsString(); context.RefineIssue(message, name, certainty, level, path, file, line); if (ResultRead != null) { ResultRead(context); } context.ClearIssue(); }
private static void ReadMember(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineMember(reader.ReadAttributeString(SchemaStrings.AttributeName)); reader.ReadChildren(SchemaStrings.ElementMember, parent); context.ClearMember(); }
private static void ReadResource(SparseReader reader, object parent) { Context context = (Context)parent; context.RefineResource(reader.ReadAttributeString(SchemaStrings.AttributeName)); reader.ReadChildren(SchemaStrings.ElementResource, parent); context.ClearResource(); }
/// <summary> /// Creates a new <see cref="SparseReader"/> pointing to a <see cref="System.IO.Stream"/> rather /// than a <see cref="System.Xml.XmlReader"/>. /// </summary> /// <param name="dispatchTable">The dispatch table used to fire delegates for XML elements on /// this instance.</param> /// <param name="stream">The stream from which XML shall be retrieved. The SparseReader takes /// ownership of this stream and is responsible for destroying it.</param> /// <param name="schemaSet">The xml schema to validate the input against</param> /// <returns> /// A <see cref="SparseReader"/> wrapping the stream <paramref name="stream"/>. /// </returns> public static SparseReader CreateFromStream(SparseReaderDispatchTable dispatchTable, Stream stream, XmlSchemaSet schemaSet) { var settings = new XmlReaderSettings { DtdProcessing = DtdProcessing.Ignore, CloseInput = true, Schemas = schemaSet, XmlResolver = null }; XmlReader xReader = null; try { xReader = XmlReader.Create(stream, settings); xReader.MoveToContent(); // If this throws, we destroy the reader in the finally block below. var result = new SparseReader(dispatchTable, xReader); // nothrow xReader = null; // Ownership transfered to SparseReader; don't destroy here return result; } finally { if (xReader != null) { xReader.Dispose(); } } }
private static void ReadMembers(SparseReader reader, object parent) { reader.ReadChildren(SchemaStrings.ElementMembers, parent); }