繁体   English   中英

属性“名称”已存在 DTSX XSD

[英]The attribute 'name' already exists DTSX XSD

我有几十个 SSIS 包,从各种来源提取了无数列。 每当源数据发生变化时,我需要能够看到哪个 SSIS Package 受到影响,这开始很难手动维护。

因此,我想阅读 SSIS Packages stored as .dtsx files 以检索相关信息:

  • 输入和 output 列名称和类型
  • 源和目标表名称
  • 使用的连接类型

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 生成的警告相对应:

  • PipelineComponentPropertyType ”类型错误。 指定了具有相同名称和目标名称空间的重复属性使用。 重复属性使用的名称是“名称”。
  • PipelineComponentOutputPropertyType ”类型错误。 指定了具有相同名称和目标名称空间的重复属性使用。 重复属性使用的名称是“名称”。
  • PipelineComponentInputPropertyType ”类型错误。 指定了具有相同名称和目标名称空间的重复属性使用。 重复属性使用的名称是“名称”。
  • PipelineComponentInputColumnPropertyType ”类型错误。 指定了具有相同名称和目标名称空间的重复属性使用。 重复属性使用的名称是“名称”。
  • PipelineComponentOutputColumnPropertyType ”类型错误。 指定了具有相同名称和目标名称空间的重复属性使用。 重复属性使用的名称是“名称”。

所以问题基本上是这样的:上面提到的管道类型使用一个包含“名称”属性的属性组,但这些相同的类型也在本地定义另一个使用不同类型的也称为“名称”的属性。 这是突出显示重复“名称”属性的问题的图表: DTSX 架构中的重复名称属性

如果愿意,您可以尝试自己修复模式,方法是创建“DTS:PipelineComponentPropertyAttributeGroup”属性组的另一个副本并删除“名称”属性,然后在报告警告的所有 PipeLine 类型上使用该属性,但这是一个有点难说微软的意思。

也许他们打算用本地定义的名称属性覆盖“DTS:PipelineComponentPropertyAttributeGroup”名称属性? 或者“DTS:PipelineComponentPropertyAttributeGroup”属性组的存在不正确,它不应该存在。 很难说清楚,除非非常熟悉 DTSX 工具的工作原理,或者有一个现有的 DTSX 文件可以指示“名称”属性的正确使用方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM