XSDObjectGen.exe vs XSD.exe

前端 未结 4 1032
甜味超标
甜味超标 2020-12-01 08:21

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?

相关标签:
4条回答
  • 2020-12-01 08:54

    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.

    0 讨论(0)
  • 2020-12-01 09:06

    The difference is:

    • The XML Schema Definition Tool (xsd.exe) is part of the Visual Studio SDK and has basic functionality.
    • The XSD Sample Code Generator Tool (XSDObjectGen.exe) is a more fully featured tool with more advanced features, and is released separately.

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

    0 讨论(0)
  • 2020-12-01 09:06

    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.

    0 讨论(0)
  • 2020-12-01 09:07

    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.
    0 讨论(0)
提交回复
热议问题