Cinchoo – Xsd GUI tool

Download Source.zip – 52.5 KB

Download Binary.zip – 513.8 KB

Contents

1. Introduction

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.

2. Features

Cinchoo Xsd tool provides following featutes

  1. Simplified GUI interface
  2. Support of Nested Xml files (refer Handling Nested Xml files article for more information about it.)
  3. Can run as console mode (passing /#AM:Console as command line argument)
  4. Can run as tray application (on minimizing the window)

3. How to run

This tool can be started as

  • Console Application
  • Windows Application
  • Tray Application

3.1 Window Mode

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.

3.2 Tray Application Mode

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.

3.3 Console Mode

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 

>ChoXsd.exe /#AM:Console

3.3.1 Help

To get help of the application, pass /? in command line

Listing 3.3.1.1 Getting help

>ChoXsd.exe /#AM:Console /?
ChoXsd [Version 1.0.0.1]
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 3.3.1.1 Console window 

4. Configuration

UPDATE:

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>
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s