{\r
new Driver().Run (args);\r
}\r
- catch (Exception ex)\r
+ catch (ApplicationException ex)\r
{\r
Console.WriteLine (ex.Message);\r
+ }\r
+ catch (Exception ex)\r
+ {\r
Console.WriteLine (ex);\r
}\r
}\r
{\r
if ((arg.EndsWith (".dll") || arg.EndsWith (".exe")) && !arg.Substring (1).StartsWith ("generator:") && !arg.Substring (1).StartsWith ("g:"))\r
{\r
- if (!readingFiles) throw new Exception (incorrectOrder);\r
+ if (!readingFiles) throw new ApplicationException (incorrectOrder);\r
assemblies.Add (arg);\r
assemblyOptions = true;\r
continue;\r
Console.WriteLine (helpString);\r
return;\r
}\r
+ else if (option == "nologo")\r
+ {\r
+ // ignore, since we do not output a logo anyway\r
+ }\r
else\r
Error (unknownOption, option);\r
}\r
foreach (string fileName in schemaNames)\r
{\r
StreamReader sr = new StreamReader (fileName);\r
- schemas.Add (XmlSchema.Read (sr, null));\r
+ schemas.Add (XmlSchema.Read (sr, new ValidationEventHandler (HandleValidationError)));\r
sr.Close ();\r
\r
if (targetFile == "") targetFile = Path.GetFileNameWithoutExtension (fileName);\r
else\r
{\r
foreach (XmlSchema schema in schemas) {\r
- if (!schema.IsCompiled) schema.Compile (null);\r
- foreach (XmlSchemaObject ob in schema.Items)\r
- if (ob is XmlSchemaElement)\r
- qnames.Add (((XmlSchemaElement)ob).QualifiedName);\r
+ if (!schema.IsCompiled) schema.Compile (new ValidationEventHandler (HandleValidationError));\r
+ foreach (XmlSchemaElement el in schema.Elements.Values)\r
+ if (!qnames.Contains (el.QualifiedName))\r
+ qnames.Add (el.QualifiedName);\r
}\r
}\r
\r
Console.WriteLine ("Written file " + genFile);\r
}\r
\r
+ void HandleValidationError (object o, ValidationEventArgs e)\r
+ {\r
+ Console.WriteLine ("{0}: {1} {2}",\r
+ e.Severity == XmlSeverityType.Error ? "Error" : "Warning",\r
+ e.Message,\r
+ e.Exception != null ? e.Exception.Message : null);\r
+ }\r
+\r
public void Error (string msg)\r
{\r
- throw new Exception (msg);\r
+ throw new ApplicationException (msg);\r
}\r
\r
public void Error (string msg, string param)\r
{\r
- throw new Exception (string.Format(msg,param));\r
+ throw new ApplicationException (string.Format(msg,param));\r
}\r
\r
private string StripQuot (string input)\r