我有一系列相当复杂的xsd架构文件,我想从中创建c#类。我在Visual Studio 8中使用xsd.exe并且生成的类很好。但是,我想绕过继承,这意味着没有类应该从父类继承。
我需要这个,因为我创建了一个Web服务,这些类作为我的Web服务方法的参数。 Web服务的wsdl为这些子类生成标记。据我所知,SAP在创建Web服务客户端时不接受扩展标记。因此,我需要解决这个问题。
非常感谢任何帮助。
答案 0 :(得分:1)
XML Schema允许通过xs:extension
元素继承,允许您修改基础complexType
。将此XML Schema映射到C#(或Java)时,将其映射到类继承是有意义的。
所以我想你想要做的不是在遇到xs:extension
时映射到继承层次结构,而是想要将扩展属性复制到生成的类上,即带来所有超类方法进入子类。我非常怀疑你会找到一个可以选择这个的工具,这是一个非常模糊的要求!
我个人会通过将XML Schema转换为您想要的结构来解决这个问题,然后使用schema-to-C#工具。适用于此转换的技术是XSLT。但是,您可以使用Linq-to-XML或其他XML操作API编写自己的工具。