Question

Can anyone tell me what is the difference between XSDObjectGen.exe & XSD.exe?

Is there any way to make XSDObjectGen.exe work in dot net 2.0?

Was it helpful?

Solution

As an alternative, there's Xsd2Code. Some features:

  • Generate partial class.
  • Support generic and custom collection (List, ObservableCollection, MyCustomCollection).
  • Support automatic properties when no special get or set is required.
  • Can generate WCF attributes (DataContract/DataMember).
  • Support nillable type.
  • Mask private field in IDE (use EditorBrowsableState.Never attribute).
  • Generate object allocation in constructor.
  • Implement INotifyPropertyChanged for enable DataBinding for wpf or Silverlight.
  • Improves productivity with visual studio add-in.
  • Generate summary documentation from xsd annotation.
  • Check if the new and old values int setter are the same before raising property changed event.
  • backup options generation in cs or vb header.
  • Save and load Xml document into isolated file storage for silverlight app (new in 3.0).
  • Generate CS, VB or CPP code.
  • Serialize/deserialize object.
  • Save into file and load from file.
  • Include Xsd2CodeCustomTool.

OTHER TIPS

The difference is:

To give you some idea, here is a summary feature list for XSDObjectGen.exe:

  • Support for the most popular XML schema constructs
  • Enumerator and Collection behavior for repeating elements
  • Programming model that matches schema
  • Automatic sub-class construction
  • Name collision avoidance
  • Visual Studio IDE integration
  • Special handling logic for DateTime types
  • Multipart schema support
  • XML namespace serialization
  • Optional and Sequence support
  • Choice Support
  • Substitution group
  • MakeSchemaCompliant method
  • Non-optional reference-type handling
  • WS-I.org basic profile compliance
  • Multi-programming language support
  • Depth-wise Traversal Events

For more details on these features see the XSDObjectGen.doc documentation file (available in C:\Program Files\XSDObjectGenerator after you install the tool).

Looks like you can use it with VS2005 at least (according to this article, anyway)

Just add it to your External Tools collection of VS2005 under "Tools>>External Tools...".

Set your parameters as the following

  • For VB: $(ItemPath) /l:vb /f:$(ItemFileName).vb /c /d /t
  • For C#: $(ItemPath) /l:cs /f:$(ItemFileName).vb /c /d /t

It does appear that XSD and XSDObjectGen will yield different classes. In fact, comments in this Rick Strahl article say "they yield very different classes" in the article here.

At a purely technical level:

XSD.exe uses Arrays
XSDObjectGen takes a tiny step ahead and uses ArrayLists.
XSD2Code leaps ahead with usage of Generics.

If you're using .NET 2.0 and above using XSD2Code is most preferred.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top