a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
93 lines
2.2 KiB
C#
93 lines
2.2 KiB
C#
using System;
|
|
using System.Xml;
|
|
|
|
namespace Commons.Xml.Nvdl
|
|
{
|
|
public class NvdlException : Exception
|
|
{
|
|
public NvdlException (string message)
|
|
: base (message)
|
|
{
|
|
}
|
|
|
|
public NvdlException (string message, Exception inner)
|
|
: base (message ,inner)
|
|
{
|
|
}
|
|
|
|
internal static string FormatMessage (string message,
|
|
IXmlLineInfo lineInfo)
|
|
{
|
|
NvdlElementBase source = lineInfo as NvdlElementBase;
|
|
XmlReader reader = lineInfo as XmlReader;
|
|
if (source != null && source.HasLineInfo ())
|
|
return String.Format ("{0}. {1} ({2},{3})",
|
|
message, source.SourceUri,
|
|
source.LineNumber, source.LinePosition);
|
|
else if (lineInfo != null && lineInfo.HasLineInfo ())
|
|
return String.Format ("{0}. {3}({1},{2})",
|
|
message,
|
|
lineInfo.LineNumber,
|
|
lineInfo.LinePosition,
|
|
reader != null ? reader.BaseURI + ' ' : String.Empty);
|
|
else
|
|
return message;
|
|
}
|
|
}
|
|
|
|
public class NvdlCompileException : NvdlException
|
|
{
|
|
public NvdlCompileException (string message,
|
|
IXmlLineInfo source)
|
|
: this (message, null, source)
|
|
{
|
|
}
|
|
|
|
public NvdlCompileException (string message, Exception inner,
|
|
IXmlLineInfo source)
|
|
: base (FormatMessage (message, source), inner)
|
|
{
|
|
}
|
|
}
|
|
|
|
public class NvdlValidationException : NvdlException
|
|
{
|
|
public NvdlValidationException (string message,
|
|
IXmlLineInfo source)
|
|
: this (message, null, source)
|
|
{
|
|
}
|
|
|
|
public NvdlValidationException (string message, Exception inner,
|
|
IXmlLineInfo source)
|
|
: base (FormatMessage (message, source), inner)
|
|
{
|
|
}
|
|
}
|
|
|
|
public class NvdlInstanceValidationException : NvdlException
|
|
{
|
|
public NvdlInstanceValidationException (string message,
|
|
NvdlValidatorGenerator generator,
|
|
string nvdlLocation)
|
|
: this (message, null, generator, nvdlLocation)
|
|
{
|
|
}
|
|
|
|
public NvdlInstanceValidationException (string message, Exception inner,
|
|
NvdlValidatorGenerator generator,
|
|
string nvdlLocation)
|
|
: base (FormatMessageWithDefinition (message, nvdlLocation), inner)
|
|
{
|
|
}
|
|
|
|
// assuming that wrapped exception message usually
|
|
// contains the actual instance location info.
|
|
static string FormatMessageWithDefinition (string message, string nvdlLocation)
|
|
{
|
|
return String.Format ("{0}. Related NVDL script: {1}", message, nvdlLocation);
|
|
}
|
|
}
|
|
}
|
|
|