2

Does the xsd.exe tool provided with Visual Studio generate the SchemaLocation attribute (in the xs:import) when generating XSDs from plain old C# objects?

I am finding that my XSDs that were generated are not valid because the xs:import will import a namespace and not provide the relative schemalocation value prompting the below

Imported Schema for namespace 'urn:company-event-namespace' was not resolved.

Josh T
  • 55
  • 5

2 Answers2

1

As shown in this anwser you can add manually add an attribute. Because the xsd tool generates a partial class, you can add this attribute in a seperate file, so you don't have to modify a generated file.

public partial class Gpx
{
    [XmlAttribute("schemaLocation", Namespace = XmlSchema.InstanceNamespace)]
    public string xsiSchemaLocation = "http://www.topografix.com/GPX/1/1 " +
                                 "http://www.topografix.com/GPX/1/1/gpx.xsd";
}
Community
  • 1
  • 1
wimh
  • 15,072
  • 6
  • 47
  • 98
0

As you've found, it does not generate that attribute. This may have to do with the fact that it would not use that attribute if the attribute were present in a schema it was reading.

John Saunders
  • 160,644
  • 26
  • 247
  • 397