1 // Author: Dwivedi, Ajay kumar
\r
4 using System.Runtime.Serialization;
\r
7 namespace System.Xml.Schema
\r
10 /// Summary description for XmlSchemaException.
\r
13 public class XmlSchemaException : System.SystemException
\r
16 private bool hasLineInfo;
\r
17 private int lineNumber;
\r
18 private int linePosition;
\r
19 private XmlSchemaObject sourceObj;
\r
20 private string sourceUri;
\r
22 protected XmlSchemaException(SerializationInfo info, StreamingContext context)
\r
23 : base (info, context)
\r
26 this.lineNumber = info.GetInt32 ("lineNumber");
\r
27 this.linePosition = info.GetInt32 ("linePosition");
\r
28 this.sourceUri = info.GetString ("sourceUri");
\r
29 this.sourceObj = info.GetValue ("sourceObj", typeof (XmlSchemaObject)) as XmlSchemaObject;
\r
32 internal XmlSchemaException(string message, int lineNumber, int linePosition,
\r
33 XmlSchemaObject sourceObject, string sourceUri, Exception innerException)
\r
34 : base(message, innerException)
\r
37 this.lineNumber = lineNumber;
\r
38 this.linePosition = linePosition;
\r
39 this.sourceObj = sourceObject;
\r
40 this.sourceUri = sourceUri;
\r
43 internal XmlSchemaException(string message, object sender,
\r
44 string sourceUri, XmlSchemaObject sourceObject, Exception innerException)
\r
45 : base(message, innerException)
\r
47 IXmlLineInfo li = sender as IXmlLineInfo;
\r
48 if (li != null && li.HasLineInfo ()) {
\r
50 this.lineNumber = li.LineNumber;
\r
51 this.linePosition = li.LinePosition;
\r
53 this.sourceObj = sourceObject;
\r
56 internal XmlSchemaException(string message, XmlSchemaObject sourceObject,
\r
57 Exception innerException)
\r
58 : base(message, innerException)
\r
61 this.lineNumber = sourceObject.LineNumber;
\r
62 this.linePosition = sourceObject.LinePosition;
\r
63 this.sourceObj = sourceObject;
\r
64 this.sourceUri = sourceObject.SourceUri;
\r
67 public XmlSchemaException(string message, Exception innerException)
\r
68 : base(message,innerException){}
\r
71 public int LineNumber
\r
73 get{ return this.lineNumber;}
\r
75 public int LinePosition
\r
77 get{ return this.linePosition;}
\r
79 public XmlSchemaObject SourceSchemaObject
\r
81 get{ return this.sourceObj; }
\r
83 public string SourceUri
\r
85 get{ return this.sourceUri; }
\r
88 public override string Message
\r
91 string msg = "XmlSchema error: " + base.Message;
\r
93 msg += String.Format (" XML {0} Line {1}, Position {2}.",
\r
94 (sourceUri != null && sourceUri != "") ? "URI: " + sourceUri + " ." : "",
\r
97 if (sourceObj != null)
\r
98 msg += String.Format (" Related schema item SourceUri: {0}, Line {1}, Position {2}.",
\r
99 sourceObj.SourceUri, sourceObj.LineNumber, sourceObj.LinePosition);
\r
105 public override void GetObjectData(SerializationInfo info, StreamingContext context)
\r
107 base.GetObjectData (info, context);
\r
108 info.AddValue ("lineNumber", lineNumber);
\r
109 info.AddValue ("linePosition", linePosition);
\r
110 info.AddValue ("sourceUri", sourceUri);
\r
111 info.AddValue ("sourceObj", sourceObj);
\r