2002-12-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
[mono.git] / mcs / class / System.XML / System.Xml.Schema / XmlSchemaException.cs
1 // Author: Dwivedi, Ajay kumar\r
2 //            Adwiv@Yahoo.com\r
3 using System;\r
4 using System.Runtime.Serialization;\r
5 \r
6 \r
7 namespace System.Xml.Schema\r
8 {\r
9         /// <summary>\r
10         /// Summary description for XmlSchemaException.\r
11         /// </summary>\r
12         [Serializable]\r
13         public class XmlSchemaException : System.SystemException\r
14         {\r
15                 //fields\r
16                 private int lineNumber;\r
17                 private int linePosition;\r
18                 private XmlSchemaObject sourceObj;\r
19                 private string sourceUri;\r
20 \r
21                 protected XmlSchemaException(SerializationInfo info, StreamingContext context)\r
22                         : base (info, context)\r
23                 {\r
24                         this.lineNumber = info.GetInt32 ("lineNumber");\r
25                         this.linePosition = info.GetInt32 ("linePosition");\r
26                         this.sourceUri = info.GetString ("sourceUri");\r
27                         this.sourceObj = info.GetValue ("sourceObj", typeof (XmlSchemaObject)) as XmlSchemaObject;\r
28                 }\r
29                 \r
30                 \r
31                 internal XmlSchemaException(string message, int lineNumber, int linePosition,\r
32                         XmlSchemaObject sourceObject, string sourceUri, Exception innerException)\r
33                         : base(message, innerException)\r
34                 {\r
35                         this.lineNumber         = lineNumber;\r
36                         this.linePosition       = linePosition;\r
37                         this.sourceObj          = sourceObject;\r
38                         this.sourceUri          = sourceUri;\r
39                 }\r
40                 internal XmlSchemaException(string message, XmlSchemaObject sourceObject,\r
41                         Exception innerException)\r
42                         : base(message, innerException)\r
43                 {\r
44                         this.lineNumber = sourceObject.LineNumber;\r
45                         this.linePosition = sourceObject.LinePosition;\r
46                         this.sourceObj  =       sourceObject;\r
47                         this.sourceUri  =       sourceObject.SourceUri;\r
48                 }\r
49 \r
50                 public XmlSchemaException(string message, Exception innerException)\r
51                         : base(message,innerException){}\r
52 \r
53                 // Properties\r
54                 public int LineNumber \r
55                 { \r
56                         get{ return this.lineNumber;} \r
57                 }\r
58                 public int LinePosition \r
59                 { \r
60                         get{ return this.linePosition;} \r
61                 }\r
62                 public XmlSchemaObject SourceSchemaObject \r
63                 {\r
64                         get{ return this.sourceObj; } \r
65                 }\r
66                 public string SourceUri \r
67                 { \r
68                         get{ return this.sourceUri; } \r
69                 }\r
70 \r
71                 public override string Message\r
72                 {\r
73                         get {\r
74                                 string msg = base.Message;\r
75                                 if (sourceUri != null)\r
76                                         msg = String.Format ("XmlSchema error: {0}\n" +\r
77                                                              "URI: {1}, line {2}, position {3}",\r
78                                                              msg, sourceUri, lineNumber, linePosition);\r
79 \r
80                                 return msg;\r
81                         }\r
82                 }\r
83 \r
84                 // Methods\r
85                 public override void GetObjectData(SerializationInfo info, StreamingContext context)\r
86                 {\r
87                         base.GetObjectData (info, context);\r
88                         info.AddValue ("lineNumber", lineNumber);\r
89                         info.AddValue ("linePosition", linePosition);\r
90                         info.AddValue ("sourceUri", sourceUri);\r
91                         info.AddValue ("sourceObj", sourceObj);\r
92                 }\r
93         }\r
94 }\r