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

-----------------------------------------------------------------------
 
Usage: 
 
    Xsd2Code.exe < XSD File > [Namespace][Output file name][Options]
 
Where:
 
            < XSD File > -Path to an XSD file. Required
 
	[Namespace]          -Generated code namespace.Optional.File
	                       name without extension if no value is
						   specified
	[Output file name]   - Name of the output(generated) file.Optional.
 
   [Options]            - Optional.See below for description
 
Options:
            /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
	 (E."Xsd2Code.Library,System.Xml.Linq")
 
------------------------
Options(serialzation) :
------------------------
            /s
            /is[+]
Enable serialization
            /s-
            /is-
	 Do not Enable Serialize method(default)
	
            /xml
	Use XmlSerializer to(de)serialize(/is is needed)
 
            /json
	Use JSonSerializer to(de)serialize(/is is needed)
 
            /bson
	Use BsonSerializer to(de)serialize(/is is needed)
 
            /msgpack
	Use MessagePackSerializer to(de)serialize(/is is needed)
 
            /encUTF8
	 Enable UTF8 encoding in serialize methods(/is is needed)
	
            /encUTF32
	Enable UTF32 encoding in serialize methods(/is is needed)
	
            /encASCII
	Enable ASCII encoding in serialize methods(/is is needed)
 
            /encDefault
	Enable default encoding in serialize methods(/is is needed)
 
            /encUnicode
	Enable Unicode encoding in serialize methods(/is is needed)
 
            /bigencUnicode
	Enable BigEndianUnicode encoding in serialize methods(/is is needed)
 
            /sm<Serialize>
	 Serialize method name.Default: Serialize (/is is needed)
 
            /dm<Deserialize>
	 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)
	 	 
            /in[dent]
            /in[+]
Indent in output xml file(/is is needed)
            /in-
	 Do not indent in output xml file(xml on single line. /is is needed)
 
   /Indent1Space
	Indent xml with 1 space(/in is needed)
 
   /Indent2Space
	Indent xml with 2 space(/in is needed)
 
   /Indent3Space
	Indent xml with 3 space(/in is needed)
 
   /Indent4Space
	Indent xml with 4 space(/in is needed)
 
   /IndentTab
	Indent xml with tab char (/in is needed)
	
            /nla
	 NewLineOnAttributes, each attribute is pre-pended with a new line and one extra level of indentation
 
            /oxml
	Omit xml header
 
---------------------------------
Attributes(Class & properties) :
---------------------------------
 
            /xa[+]
	 Generate xml attributes
            /xa-
	 Do not generate xml attributes(default)
 
            /ja[+]
	 Generate json & bson attributes
            /ja-
	 Do not generate xml attributes(default)
 
 	/xao[+]
	 Generate xml order attributes(/xa is needed)
            /xao-
	 Do not generate order xml attributes(default)
 
            /ssp+
	 Generate ShouldSerilizeProperty method for nullable type
            /ssp[-]
	 Do not generate ShouldSerilizeProperty method(default)
 
------------------------
Options(Class) :
------------------------
    /cpublic(or empty)
	Public access modifier(E.public class) 
 
    /cinternal
	Public access modifier(E.internal class/cprefix
	Class name prefix(E.g[StartWith] ClassName)
 
            /cpsuffix
	Class name suffix(E.ClassName[EndWith])
 
            /classinfiles
	Generates one.cs or.vb file per class
 
    /cpartial[+]
	Generate partial class (default)
    /cpartial[-]
	Do not generate partial class
 
----------------------
Options(Properties) :
----------------------
            /lazy
	Enable property lazy loading
 
            /ap[+]
	Enable automatic properties
            /ap[-]
	Disable automatic properties(default)
 
            /pascalcase
	Enable PascalCase property
 
            /vprop
	Enable Virtual property
 
            /sc[+]
	 Enable summary comment
            /sc-
	 Disable summary comment(default)
 
            /appinfo[+]
	Enable custom setting from appinfo xml
            /appinfo-
	Disable custom setting from appinfo xml(default)
 
            /cache[+]
	 Enable caching for extenal schemas
            /cache-
	 Disable caching for extenal schemas(default)
 
            /if[+]
Enable initialization of fields(default)
            /ifc[+]
	 Enable initialization of fields only for collections
            /ifo[+]
	 Enable initialization of fields only for non optional elements
            /if-
	 Disable all field initialization constructor or lazy
 
            /emt[+]
	 Exclude types from external Schemas in generation
            /emt-
	 Generate types from external schemas(default)
 
            /uct[+]
	 Generate unused complex type
            /uct-
	 Do not generate unused complex type(default)
 
    /expattg
	Expand nested attributeGroup inside xsd source
 
            /gbc[+]
	 Use Generic Base Class 
            /gbc-
	 Do not use Generic Base Class(default)
 
            /ggbc[+]
	 Generate Generic Base Class(default)
            /ggbc-
	 Do not Generate Generic Base Class
 
            /gbcn[ame] <ClassName>
	 Specifies the name of the base class. (Default:EntityBase)
	 
 
------------------
Options(others) :
------------------
 
            /cl[+]
	 Include Clone method
            /cl-
	 Do not include Clone method(default)
 
            /dbg[+]
            /debug[+]
	 Enable debug step through(default)
 
            /dbg-
            /debug-
	  Disable debug step through
 
            /warn
            /warn[+]
	 Enable warning
            /warn-
	 Disable warning(default)
 
            /db[+]
	 Enable data bindings
            /db-
	 Disable data bindings(default)
 
            /dc[+]
	 Generate WCF data contract attributes
            /dc-
	 Do not generate WCF data contract attributes(default)
 
            /dmnAll
	Generate always name for DataMemberAttribute
 
            /dmnOnlyIfDiff
	Generate name for DataMemberAttribute only if different thant XmlElementName
 
            /dmnNever
	No name specified for DataMemberAttribute
 
            /dmxmli[+]
	 Generate WCF DataMember also on properties with XmlIgnoreAttribute
            /dmxmli-
	 Do not generate WCF data contract attributes(default)
 
            /rt[+]
	Enable restriction attributes
            /rt-
	Disable restriction attributes(default)
 
            /rtrange
	Enable restriction RangeAttribute attributes
 
            /rtregex
	Enable restriction RegularExpressionAttribute attributes
 
            /rtstlength
	Enable restriction StringLengthAttribute attributes
 
            /rtmaxdigits
	Enable restriction MaxDigitsAttribute
 
            /rtfractiondigits
	Enable restriction FractionDigitsAttribute
 
            /valprop
	Validate property in setter when associated to ValidationAttribute attributes. (System.ComponentModel.DataAnnotations.Validator)
 
            /cl[+]
	 Generate Clone method(shallow copy)
            /cl-
	 Do not generate Clone method(default)
	
            /attx[attributeToExclude] <Attribute1,Attribute2>
	Comma-separated of property attributes to exclude
	(E."System.Xml.Serialization.XmlTypeAttribute")
 
            /gpsa
	Generate property name specified(All)
 
            /gpsn
	Generate property name specified(None)
 
            /gpsd
	Generate property name specified(default)
 
            /pfnu
            private field name start with Underscore
 
            /pfnf
            private field name end with Field
 
            /pfnc
            private field name start with custom prefix
 
            /pfncp
	Custom prefix for private field name
 
            /cnpr
	Custom prefix for class name
 
            /cnsu
	Custom suffix for class name
 
            /tc[+]
	 Enable tacking changes
            /tc-
	 Do not enable tracking changes(default)
 
            /tcc[+]
	 Enable generation of tracking changes classes(default)
            /tcc-
	 Do not enable generation of tracking changes classes
 
            /hp[+]
	 Hide private fields in IDE
 
            /hp-
	 Show private fields in IDE(default)
 
            /clean
	 Cleanup code
 
            /?/h[elp]
	Show this help
 
Example:
	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 

Contact

CodeNGine Technologies, 19 Avenue, de la gare, 34770 Gigean, France. SIRET: 85257252800010, VAT : FR 62852572528
codengine.technologies@xsd2code.com

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