tags:

views:

3490

answers:

3

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?

+3  A: 

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.

Dan Esparza
+1  A: 

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

Daniel Fortunov
+2  A: 

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.
Daniel Rose
I use xsd2code with success
boomhauer
Ever since I found it, I use it iinstead of the VS-provided tools.
Daniel Rose