从xsd模式生成类而不继承

时间:2011-06-15 06:40:52

标签: c# web-services xsd wsdl sap

我有一系列相当复杂的xsd架构文件,我想从中创建c#类。我在Visual Studio 8中使用xsd.exe并且生成的类很好。但是,我想绕过继承,这意味着没有类应该从父类继承。

我需要这个,因为我创建了一个Web服务,这些类作为我的Web服务方法的参数。 Web服务的wsdl为这些子类生成标记。据我所知,SAP在创建Web服务客户端时不接受扩展标记。因此,我需要解决这个问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

XML Schema允许通过xs:extension元素继承,允许您修改基础complexType。将此XML Schema映射到C#(或Java)时,将其映射到类继承是有意义的。

所以我想你想要做的不是在遇到xs:extension时映射到继承层次结构,而是想要将扩展属性复制到生成的类上,即带来所有超类方法进入子类。我非常怀疑你会找到一个可以选择这个的工具,这是一个非常模糊的要求!

我个人会通过将XML Schema转换为您想要的结构来解决这个问题,然后使用schema-to-C#工具。适用于此转换的技术是XSLT。但是,您可以使用Linq-to-XML或其他XML操作API编写自己的工具。