Visual Studio 2010 : XML XSD Schema to Classes within the IDE

MrEyes picture MrEyes · Feb 3, 2011 · Viewed 62.4k times · Source

Whenever I have needed to create a class file from an XML XSD schema, I use the .NET xsd.exe tool and prebuild events, in VS, to ensure that my classes and schemas are in sync with each other at build time. This of course works fine, however...

I have noticed that if the XSD and derived class are in the same project VS understands the relationship and visually displays the CS as a child of the XSD file in solution explorer. So I was wondering if there is any functionality in Visual Studio 2010 to perform class creation for me within the IDE rather than relying on the prebuild script?

For example, I would add the XSD to the project set some options somewhere and VS takes over and creates my classes for me.

Does VS 2010 support anything like this? Or should I just stop wondering and continue to use xsd.exe and prebuild.

EDIT I have also noticed that under the properties of the XSD file I have the option to set a Custom Tool, reading the description this seems close to what I am aiming for but I am unsure of the correct usage for this property.

EDIT Also, if there is a solution I need this to be based on the features/functions that come as standard with VS2010. I would prefer to not use a 3rd party addon etc

Answer

user2208720 picture user2208720 · Mar 25, 2013

You can use the XSD.exe which is in C:\program files\Microsoft\SDKs\Windows\v7.0A\Bin\xsd.exe. follow the steps to add XSD as a menu item in VS tools menu

  1. Add XSD file to your VS project
  2. Go to visual studio Tools menu
  3. Go to external tools
  4. Add
  5. Enter the Title as XSD
  6. command as the path to xsd in your system(normaly C:\program files\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe. )
  7. Arguments as $(ItemPath) /c /l:cs
  8. initial directory as $(ItemDir)
  9. check the Use output window thats it press ok

Then click the Xsd files in your solution explorer and then tools--Xsd click, this will generate the class on the same folder as the .XSD file. If you already did not add the file in step 1, you will have to add the resulting .cs file into the project by right-clicking on the project in the Solution Explorer, select Add --> Existing Item and then the .CS file generated from the .XSD should be present and can be included.