- 1. Introduction
- 2. Features
- 3. How to run
- 4. Configuration
Many time we come across the need of parsing XML document and creating XML schema or common language runtime classes/entities. These entities are later passed between multiple methods, stored as configuration or used to perform some manipulation. Hand wrting code for parsing these entities from XML document is tedious.
Microsoft has a nifty little tool called xsd.exe which lets you create serializable classes for the .NET framework from an XSD or XML file. Unfortunately it doesn’t come with the latest versions of Visual Studio and you have to download the Windows SDK to get hold of it.
This article presents the new Cinchoo GUI interface to xsd.exe tool to to parse XML documents and generating entities. This new interface built using Cinchoo framework, using most of its features like Configuration, Command line parsing, Application host, binding to controls etc. This is one of the the working example of building an application using this versatile .NET framework easily.
Cinchoo Xsd tool provides following featutes
- Simplified GUI interface
- Support of Nested Xml files (refer Handling Nested Xml files article for more information about it.)
- Can run as console mode (passing /#AM:Console as command line argument)
- Can run as tray application (on minimizing the window)
This tool can be started as
- Console Application
- Windows Application
- Tray Application
By default, if you run the executable (ChoXsd.exe), this will start as Windows application. The main window looks like below
Image 3.1.1 Main window
- Xml File Path – Input xml file path.
- Output Directory – Destination directory where the generated files are created. If not specified, the generated files will be created under the input xml file directory.
- Options – Please refer Microsoft Xsd.exe tool document for each option.
- Status – All the generation process status messages are posted.
- Generate – Button is to start the generation process.
- Cancel – Button to cancel the generation process.
Sometime you may want to keep this tool running all the time and quickly go back to get access to this tool to carry out generation of entities. In such cases, you can let them run in tray mode. By pressing ‘minimize’ button, the tool will be made to run in tray mode.
In this mode, below features are available to you. These will be available when you right click on this tool application icon in tray taskbar
- Open – To restore the window.
- Always on Top – To keep the window as topmost of all other windows applications.
- Run at System Startup – This option let the application start up automatically when system starts.
- Show in Taskbar – To show the application in the Taskbar.
This tool can be started as Console Application by passing /#AM:Console command line parameter to the executable.
Listing 3.3.1 Running as console mode
To get help of the application, pass /? in command line
Listing 126.96.36.199 Getting help
>ChoXsd.exe /#AM:Console /? ChoXsd [Version 188.8.131.52] Copyright c 2014 CHOXSD xmlfile [/order] [/f] [/edb] [/n:] [/l:] [/c] [/o:] [/d] [/e:] [/eld] xmlfile Name of an xml file to infer xsd schema from. /order Generate explicit order identifiers on all particle members. /f Generate fields instead of properties. /edb Implement INotifyPropertyChanged interface on all generated types to enable data binding.. /n The namespace for generated class files. The default namespace is the global namespace. /l The language to use for the generated code. Choose from 'CS', 'VB', 'JS', 'VJS', 'CPP' or provide a fully-qualified name for a class implementing System.CodeDom.Compiler.CodeDomProvider. The default language is 'CS' (CSharp). /c Generate classes for this schema. /o The output directory to create files in. The default is the current directory. /d Generate sub-classed DataSet for this schema. /e Element from schema to process. /eld Generate LINQ-enabled sub-classed Dataset for the schemas provided.
Below is screenshot of help
Image 184.108.40.206 Console window
This application uses Microsoft Xsd.exe tool to generate entities. This program automatically discovers Xsd.exe tool under ‘C:\Program Files\Microsoft SDKs\Windows’ folder, remember it at startup. If you wish to use different version of this tool (Xsd.exe) in different location, you can configure it by opening [AppExe].config file and specifying Microsoft SDK path containing Xsd.exe tool in ‘SDKDirectory‘ appsetting.
Listing 4.1 [AppExe].config file
<?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="SDKDirectory" value="C:\Program Files\Microsoft SDKs\Windows" /> </appSettings> </configuration>