views:

1668

answers:

5
+6  Q: 

XSD Code Generator

Are there any Code Generators that would take a well-formed XML document, and write out an XSD schema based on how the XML document is structured?

+7  A: 

The XSD.exe utility (which is installed with Visual Studio) is capable of creating an XSD file from an XML file.

Here's the link on MSDN

I believe it may also part of the .NET SDK, meaning you would not need a full-blown Visual Studio installation.

Rich
I'm trying to find the file on my harddrive. Where's the darned thing located?
George Stocker
if you open a vs command prompt, just type xsd
Chris
Ah. I was looking for the physical .exe file. Silly me. I finally found it in %Program Files%\Microsoft SDKs\Windows\v6.0A\bin
George Stocker
Weird, I didnt know xsd could do inference too :) Thanks!
leppie
+6  A: 

Visual Studio does it pretty well too... Open XML file.. Choose 'Generate Schema' Command from XML menu

Vyas Bharghava
This command may be running the XSD tool behind the scenes... Unfortuantely, I had to move to a different machine and do not have VS.Net installed yet to verify this.
Vyas Bharghava
I doubt it's the same tool, the ouput XSD inferred from the same XML file was quite different - and the Visual Studio version looked more correct !
joedotnot
It definitely does run xsd.exe. You may get different results due to the various parameters you can provide to it.
boomhauer
+1  A: 

I am a little late to the part, but I find that http://www.bware.biz/DotNet/Tools/CodeXS/WebClient/GenerateInput.aspx">Businessware Architects CodeXS is very good. I have found that it handles complex schema's much better.

Bob
+1  A: 

I'm note sure it is useful. After all, it cannot infer everything: if an element is present in the XML document, how to know if it is mandatory or not?

Examplotron, to achieve a similar goal, relies, at least partly, on annotations.

bortzmeyer
+5  A: 

Best Answer, bar none:

http://xsd2code.codeplex.com

I pulled my hair out for a full 8 hr work day, got nowhere with all the crappy solutions out there (XSD, CodeXS, XSDObjectGen, and others) and am not interested in paying $400 for the stupid commercial tools just to do this.

Then I came across this codeplex project... WOW! Where was this all my life?

And the best part... its actively being worked on, right NOW (2009), not an abaondoned crust pile from 2004 or some lame thing.

Enjoy!

Looks great. Too bad it doesn't have a command-line version.
Igor Brejc
Correction: it DOES have a command-line version. Great!
Igor Brejc
Very nice find! This is how code *should* be generated!
jumpinjackie
The ongoing dev *is* nice. It has gone from unuseable (for me) a few bug reports and feature requests and now it's perfect for what I need.
boomhauer