2

从普通的旧 C# 对象生成 XSD 时,Visual Studio 提供的 xsd.exe 工具是否会生成 SchemaLocation 属性(在 xs:import 中)?

我发现我生成的 XSD 无效,因为 xs:import 将导入命名空间并且不提供提示以下的相对架构位置值

命名空间“urn:company-event-namespace”的导入架构未解析。

4

2 回答 2

1

如this anwser所示,您可以手动添加添加属性。因为 xsd 工具会生成分部类,所以您可以在单独的文件中添加此属性,因此您不必修改生成的文件。

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";
}
于 2011-08-19T13:44:29.120 回答
0

如您所见,它不会生成该属性。这可能与以下事实有关:如果该属性存在于它正在读取的模式中,它将不会使用该属性。

于 2009-06-05T13:57:15.037 回答