2010-08-19 76 views
0

我正在尝试生成基于.xsd模式的C#类。这个模式有几个导入,这些导入包括在我的批处理文件的命令行中。它还包含应该通过使用schemaLocation在磁盘上查找文件来解决的问题。我得到了几个据说未被声明的类型的错误。这些定义位于使用该值的架构下的文件夹中的“包含”架构中。XSD生成运行时对象

+0

请发布您用于生成C#类(例如xsd.exe)的内容以及执行时获得的确切错误。 – captaintom 2010-08-19 14:31:42

+0

xsd.exe - 架构验证警告:未声明类型'....' 声明位于发生错误的架构中包含的架构中(未导入,因此该架构未明确列出) 。 我需要生成一个C#类,然后在我的服务中使用它来反序列化传入的xml字符串。 – jmac 2010-08-19 15:27:48

回答

0

如果您有包含的模式,XSD.EXE可以很好地处理此问题,但是您必须深入查找文档。

请参阅this link中有关使用XML文件指导XSD.EXE的部分。简短的版本是,您将创建一个带有多个<Schema>节点的小型XML文件,这些节点指向您实际需要模式和导入模式的模式。

然后您将运行XSD.EXE /p [yourXsdFile.xsd]。如果你正确地使用了这些说明(我只做了一次,所以我不是专家,并且花费了几次尝试来获得我想要的结果),那么你将得到一个带有所有结果的.cs文件必要的班级数据。

+0

我已经看到了使用XML文件的实现,这可以避免在命令行上列出每个引用的模式,这是用于导入的。我的问题是,我有一个包含,然后包括10个其他模式。这些不能明确列出的B/C它们基本上都在同一个命名空间中。但是,xsd.exe不会解析路径并使用架构。 – jmac 2010-08-19 15:24:58