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
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
C:\program files\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe
.
)$(ItemPath) /c /l:cs
$(ItemDir)
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.