C# &引用;缺少元素……”;尝试使用<;生成类;元素参考=/>;
使用VS2013附带的XSD工具,我收到以下消息,试图从包含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"
-
架构验证警告:未声明“”元素。第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模式几乎肯定没有成功导入;一个常见的原因是找不到架构文档。