C# &引用;缺少元素……”;尝试使用<;生成类;元素参考=/>;

C# &引用;缺少元素……”;尝试使用<;生成类;元素参考=/>;,c#,xsd,schema,xsd.exe,C#,Xsd,Schema,Xsd.exe,使用VS2013附带的XSD工具,我收到以下消息,试图从包含- 架构验证警告:未声明“”元素。第14行,位置8 警告:无法验证架构。类生成可能失败或产生不正确的结果 错误:为架构“测试”生成类时出错。 -缺少元素“” 这是一个简化的xsd,演示了问题: <?xml version="1.0" encoding="utf-8"?> <xsd:schema id="test" targetNamespace="http://tempuri.org/test.xsd"

使用VS2013附带的XSD工具,我收到以下消息,试图从包含
-

架构验证警告:未声明“”元素。第14行,位置8

警告:无法验证架构。类生成可能失败或产生不正确的结果

错误:为架构“测试”生成类时出错。 -缺少元素“”

这是一个简化的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模式设计器没有抱怨。我怀疑这是该工具无法做到的


有什么想法可以继续吗?

事实证明,这里已经回答了这个问题

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


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

您收到的错误消息很好地证明了导入不正常;如果可以的话,元素就不会是未定义的。您的
xsd:import
元素很好,但DSig模式几乎肯定没有成功导入;一个常见的原因是找不到架构文档。