"The element is missing.." 试图用 <element ref = /> 生成 class

"The element is missing.." trying to generate class with <element ref = />

使用 VS 2013 附带的 XSD 工具,我收到以下消息,试图从包含 <xsd:element ref=.../> -[=16 的 xsd 生成 class =]

Schema validation warning: The 'http://www.w3.org/2000/09/xmldsig#:KeyName' element is not declared. Line 14, position 8.

Warning: Schema could not be validated. Class generation may fail or may produce incorrect results.

Error: Error generating classes for schema 'test'. - The element 'http://www.w3.org/2000/09/xmldsig#:Signature' is missing.

这是演示问题的缩减 xsd:

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="test"
    targetNamespace="http://tempuri.org/test.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/test.xsd"
    xmlns:mstns="http://tempuri.org/test.xsd"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:sig="http://www.w3.org/2000/09/xmldsig#"
>
  <xsd:import schemaLocation="xmldsig-core-schema.xsd" namespace="http://www.w3.org/2000/09/xmldsig#" />

  <xsd:complexType name="test" >
    <xsd:sequence >
      <xsd:element ref="sig:Signature" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:element type="test" name="top"/>
</xsd:schema>

我很确定导入和命名空间没问题。 Resharper 和 VS Schema Designer 没有抱怨。我怀疑这是该工具无法做到的事情。

我有什么可以继续的想法吗?

原来这里已经回答过了

我需要将导入的文件添加到xsd命令行参数的文件列表中:

xsd test.xsd xmldsig-core-schema.xsd /c