Nimesh Madhavan
Nimesh Madhavan

Reputation: 6318

XSDObjectGen.exe vs XSD.exe

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?

Upvotes: 19

Views: 21690

Answers (4)

Shankar R10N
Shankar R10N

Reputation: 4966

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.

Upvotes: 3

Daniel Rose
Daniel Rose

Reputation: 17648

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.

Upvotes: 30

Daniel Fortunov
Daniel Fortunov

Reputation: 44333

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).

Upvotes: 8

Dan Esparza
Dan Esparza

Reputation: 28375

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.

Upvotes: 5

Related Questions