Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does XSD.EXE Create Two .XSD Files, and How to Use Them?

Tags:

c#

.net

xml

xsd

I am using the following command to generate related xsd file from my input XML file -- response.xml, my confusion is (1) why there are two xsd file output (response.xsd and response_app1.xsd), I think there should be only one of them generated? (2) If I need to generate C# class file by using xsd /classes, which xsd file should I use?

My environment: VSTS 2008 + C# + .Net 3.5.

D:\>xsd response.xml
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'D:\response.xsd'.

Here is my input XML file and ouput XSD files,

http://www.mediafire.com/file/kzzoxw0zwgq/inputoutput.zip

EDIT 1:

when I execute xsd response.xsd to generate related C# class, there are error messages, and here are the detailed output,

D:\>xsd response.xsd /classes
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Schema validation warning: The 'http://www.mycorp.com/Order/2009/05/mex:Items' e
lement is not declared. Line 10, position 16.

Warning: Schema could not be validated. Class generation may fail or may produce
 incorrect results.

Error: Error generating classes for schema 'response'.
  - The element 'http://www.mycorp.com/Order/2009/05/mex:Items' is missing.

If you would like more help, please type "xsd /?".

thanks in advance, George

like image 472
George2 Avatar asked Jul 05 '09 13:07

George2


1 Answers

George,

To generate classes from these files, you must list both on the command line:

D:\>xsd response.xsd response_app1.xsd /classes 

It has already been correctly said that the two .xsd files are because there were two XML namespaces in your original XML file. BTW, I'm guessing a little here because you did not post the XML file.

like image 58
John Saunders Avatar answered Oct 06 '22 19:10

John Saunders