XML模式定义工具不生成SchemaLocation

时间:2009-06-05 13:51:42

标签: xml poco xsd.exe

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

我发现生成的XSD无效,因为xs:import将导入命名空间而不提供相对的schemalocation值,提示如下

  

命名空间'urn:company-event-namespace'的导入模式未解析。

2 个答案:

答案 0 :(得分: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";
}

答案 1 :(得分:0)

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