XML Schema Definition Tool not generating SchemaLo

2019-07-13 07:39发布

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.

标签: xml poco xsd.exe
2条回答
女痞
2楼-- · 2019-07-13 08:03

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.

查看更多
▲ chillily
3楼-- · 2019-07-13 08:03

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";
}
查看更多
登录 后发表回答