How to : Run xsd2code from command-lines

March 2021

xsd2code++ can also be used with the command-line tool for batch conversion needs. For example in case of a large volume of schemas to convert.

The xsd2code.exe tool allows you to generate the class defined by an XML or JSON schema. The following procedures show how to perform these operations :

1. Open a command prompt

2. Pass the XML or JSON Schema as an argument, which creates a set of classes that are precisely matched to the XML Schema, for example:

xsd2code comand lines running

The output directory contains a single cs file containing all the classes

xsd2code show output folder

To enable XML serialization and  XML attributes on all classes and properties :

To enable JSON serialization and  JSON attributes on all classes and properties :

To enable automatic properties :

To enable lazy loading and INotifyPropertyChanged :

How to retrieve command-lines easily

The easiest way is to use the graphical interface of XSD2Code which allows, depending on the options chosen, to generate the corresponding command line:

xsd2code++ get command lines from ui

Command lines options

    Xsd2Code.exe < XSD File > [Namespace][Output file name][Options]
            < XSD File > -Path to an XSD file. Required
	[Namespace]          -Generated code namespace.Optional.File
	                       name without extension if no value is
	[Output file name]   - Name of the output(generated) file.Optional.
   [Options]            - Optional.See below for description
            /o[utput] <FileName>
	 Name of the output(generated) file.
	By default, name of the source file with extension.Designer.cs 
            /n[s] <Namespace>
	 Generated code CLR namespace.Default: file name without extension
	 /lic[ense] <License Path>
	 directory that contains the license file : xsd2code.license(Optional). 
	 useful if executed by a build process that does not work under a standard user account.
	 ex.Xsd2Code.exe myxsd.xsd mynamespace mycs.cs /lic "c:\licenseFolder"
            /l[anguage] <Language>
	 Generated code language (cs|vb). Default: cs
            /pl[atform] <Platform>
	 Generated code target platform(Net20|Net30|Net35|Net40|Silverlight|WinRT|Xamarin).
            /c[ollection] <Collection Base>
	 Collection base (Array|BindingList|List|ObservableCollection
	 |DefinedType,<Custom Collection Type>). Default: List
            /cu[customusings] <Custom Usings1, Custom Usings2>
	 Comma-separated of custom usings definition
Options(serialzation) :
Enable serialization
	 Do not Enable Serialize method(default)
	Use XmlSerializer to(de)serialize(/is is needed)
	Use JSonSerializer to(de)serialize(/is is needed)
	Use BsonSerializer to(de)serialize(/is is needed)
	Use MessagePackSerializer to(de)serialize(/is is needed)
	 Enable UTF8 encoding in serialize methods(/is is needed)
	Enable UTF32 encoding in serialize methods(/is is needed)
	Enable ASCII encoding in serialize methods(/is is needed)
	Enable default encoding in serialize methods(/is is needed)
	Enable Unicode encoding in serialize methods(/is is needed)
	Enable BigEndianUnicode encoding in serialize methods(/is is needed)
	 Serialize method name.Default: Serialize (/is is needed)
	 Deserialize method name.Default: Deserialize (/is is needed)
            /lf[m] <LoadFromFile>
	 LoadFromFile method name.Default: LoadFromFile(/is is needed)
            /sf[m] <SaveToFile>
	 SaveToFile methodname.Default: SaveToFile (/is is needed)
Indent in output xml file(/is is needed)
	 Do not indent in output xml file(xml on single line. /is is needed)
	Indent xml with 1 space(/in is needed)
	Indent xml with 2 space(/in is needed)
	Indent xml with 3 space(/in is needed)
	Indent xml with 4 space(/in is needed)
	Indent xml with tab char (/in is needed)
	 NewLineOnAttributes, each attribute is pre-pended with a new line and one extra level of indentation
	Omit xml header
Attributes(Class & properties) :
	 Generate xml attributes
	 Do not generate xml attributes(default)
	 Generate json & bson attributes
	 Do not generate xml attributes(default)
	 Generate xml order attributes(/xa is needed)
	 Do not generate order xml attributes(default)
	 Generate ShouldSerilizeProperty method for nullable type
	 Do not generate ShouldSerilizeProperty method(default)
Options(Class) :
    /cpublic(or empty)
	Public access modifier(E.public class) 
	Public access modifier(E.internal class/cprefix
	Class name prefix(E.g[StartWith] ClassName)
	Class name suffix(E.ClassName[EndWith])
	Generates one.cs or.vb file per class
	Generate partial class (default)
	Do not generate partial class
Options(Properties) :
	Enable property lazy loading
	Enable automatic properties
	Disable automatic properties(default)
	Enable PascalCase property
	Enable Virtual property
	 Enable summary comment
	 Disable summary comment(default)
	Enable custom setting from appinfo xml
	Disable custom setting from appinfo xml(default)
	 Enable caching for extenal schemas
	 Disable caching for extenal schemas(default)
Enable initialization of fields(default)
	 Enable initialization of fields only for collections
	 Enable initialization of fields only for non optional elements
	 Disable all field initialization constructor or lazy
	 Exclude types from external Schemas in generation
	 Generate types from external schemas(default)
	 Generate unused complex type
	 Do not generate unused complex type(default)
	Expand nested attributeGroup inside xsd source
	 Use Generic Base Class 
	 Do not use Generic Base Class(default)
	 Generate Generic Base Class(default)
	 Do not Generate Generic Base Class
            /gbcn[ame] <ClassName>
	 Specifies the name of the base class. (Default:EntityBase)
Options(others) :
	 Include Clone method
	 Do not include Clone method(default)
	 Enable debug step through(default)
	  Disable debug step through
	 Enable warning
	 Disable warning(default)
	 Enable data bindings
	 Disable data bindings(default)
	 Generate WCF data contract attributes
	 Do not generate WCF data contract attributes(default)
	Generate always name for DataMemberAttribute
	Generate name for DataMemberAttribute only if different thant XmlElementName
	No name specified for DataMemberAttribute
	 Generate WCF DataMember also on properties with XmlIgnoreAttribute
	 Do not generate WCF data contract attributes(default)
	Enable restriction attributes
	Disable restriction attributes(default)
	Enable restriction RangeAttribute attributes
	Enable restriction RegularExpressionAttribute attributes
	Enable restriction StringLengthAttribute attributes
	Enable restriction MaxDigitsAttribute
	Enable restriction FractionDigitsAttribute
	Validate property in setter when associated to ValidationAttribute attributes. (System.ComponentModel.DataAnnotations.Validator)
	 Generate Clone method(shallow copy)
	 Do not generate Clone method(default)
            /attx[attributeToExclude] <Attribute1,Attribute2>
	Comma-separated of property attributes to exclude
	Generate property name specified(All)
	Generate property name specified(None)
	Generate property name specified(default)
            private field name start with Underscore
            private field name end with Field
            private field name start with custom prefix
	Custom prefix for private field name
	Custom prefix for class name
	Custom suffix for class name
	 Enable tacking changes
	 Do not enable tracking changes(default)
	 Enable generation of tracking changes classes(default)
	 Do not enable generation of tracking changes classes
	 Hide private fields in IDE
	 Show private fields in IDE(default)
	 Cleanup code
	Show this help
	Xsd2Code.exe Employee.xsd CompanyXYZ.Entities.HumanResources Employee.cs /ObservableCollection /sc /dbg /cl /hp- /cu System.Xml.Linq, System.IO

Terms & privacy

Terms of uses · Privacy policy 


CodeNGine Technologies, 19 Avenue, de la gare, 34770 Gigean, France. SIRET: 85257252800010, VAT : FR 62852572528

About the company

CodeNGine Technologies is software company based in the South of France that provides an advanced productivity code generation tool to developers using XML and JSON

Copyright © 2021 CodeNGine Technologies

An error has occurred. This application may no longer respond until reloaded. Reload 🗙