2017-08-28 40 views
1

我试图将XSD转换为一些C#类。我已经做了很多其他文件,但我想知道为什么这个不起作用。使用xsd.exe从ereg association生成c#文件

schema information包含一个链接,在我下载到本地磁盘的the XSD file的下载部分。然后从ms开发工具运行XSD命令。

这是从命令提示符转储:

C:\temp\XSD>xsd version-13-draft-ivi-xsd-scheme.xsd /classes /namespace:MyNamespace 
Microsoft (R) Xml Schemas/DataTypes support utility 
[Microsoft (R) .NET Framework, Version 4.6.1055.0] 
Copyright (C) Microsoft Corporation. All rights reserved. 
Schema validation warning: The 'http://www.w3.org/2000/09/xmldsig:Signature' element is not declared. Line 17, position 5. 

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

Error: Error generating classes for schema 'version-13-draft-ivi-xsd-scheme'. 
- The element 'http://www.w3.org/2000/09/xmldsig#:Signature' is missing. 

If you would like more help, please type "xsd /?". 

这似乎是XSD验证不能下载签名的命名空间。但我不知道究竟发生了什么。有人可以解释发生了什么问题吗?

+1

'schemaLocation =“xmldsig-core-schema.xsd”'引用一个名为'xmldsig-core-schema.xsd'的本地文件。这是否存在于你的工作目录中?请参阅https://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd –

回答

1

下载http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd到本地目录,并将其添加为另一个参数到命令:

xsd version-13-draft-ivi-xsd-scheme.xsd xmldsig-core-schema.xsd /Classes 

你想要导入的XSD包含对文件的引用,在第7行:

<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/> 
+0

如果您将xsd文件按相反顺序排列,则不起作用...我不明白。但它的工作。谢谢。 – dampee