Home  /  Blog  /  How to : Run xsd2code from command-lines

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