[英]The attribute 'name' already exists DTSX XSD
我有几十个 SSIS 包,从各种来源提取了无数列。 每当源数据发生变化时,我需要能够看到哪个 SSIS Package 受到影响,这开始很难手动维护。
因此,我想阅读 SSIS Packages stored as .dtsx
files 以检索相关信息:
Microsoft 在线提供此 DTSX 格式的 XSD: 附录 A:完整的 DTSX XSD ,我想我可以使用xsd 'myfile'.xsd /classes /language:vb
classbes /classbes.language 创建一个 vb.net class
但是,首先查看 Visual Studio 中的.xsd
,我多次面临相同的警告:
属性“名称”已存在。
我已确保所有引用的.xsd
都具有正确的命名并且位于正确的文件夹中。
当尝试在 Visual Studio 命令提示符下使用xsd
命令时,实际上写入了 class,但我收到警告:
架构验证警告:属性“名称”已存在。 971线,position 8.
架构验证警告:属性“名称”已存在。 990线,position 8.
架构验证警告:属性“名称”已存在。 997线,position 8.
架构验证警告:属性“名称”已存在。 1607线,position 14.
架构验证警告:属性“名称”已存在。 1620线,position 14.
架构验证警告:属性“名称”已存在。 1673线,position 14.
警告:无法验证架构。 Class 生成可能失败或可能产生不正确的结果。
以上有什么问题吗? 是否有任何解决方法来解决这些警告?
如果代码编译正确并且适合您的目的,那么我认为现在可以忽略。 警告是由于架构文件本身的错误而产生的,所以不是你造成的。
如果您通过 XSD 验证器(如 Xerces)运行完整的 DTSX 模式,您会得到确切的错误,这些错误似乎与您自己的 output 中 XSD.exe 生成的警告相对应:
所以问题基本上是这样的:上面提到的管道类型使用一个包含“名称”属性的属性组,但这些相同的类型也在本地定义另一个使用不同类型的也称为“名称”的属性。 这是突出显示重复“名称”属性的问题的图表:
如果愿意,您可以尝试自己修复模式,方法是创建“DTS:PipelineComponentPropertyAttributeGroup”属性组的另一个副本并删除“名称”属性,然后在报告警告的所有 PipeLine 类型上使用该属性,但这是一个有点难说微软的意思。
也许他们打算用本地定义的名称属性覆盖“DTS:PipelineComponentPropertyAttributeGroup”名称属性? 或者“DTS:PipelineComponentPropertyAttributeGroup”属性组的存在不正确,它不应该存在。 很难说清楚,除非非常熟悉 DTSX 工具的工作原理,或者有一个现有的 DTSX 文件可以指示“名称”属性的正确使用方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.