XSD架构:重写基本complexType的继承元素

问题描述

|| 我们已经开始使用模式来为我们生成C#类,而我基本上是在尝试复制覆盖了从其基类继承的成员的类。我已经做了大量的搜索工作,并且对XSD还是很陌生,所以我不知道我是不是做错了所有事情,或者根本不可能。这是我要完成的工作的简化示例。
<xs:complexType name=\"ClientBase\" abstract=\"true\">
    <xs:sequence>
      <xs:element name=\"Company\" type=\"CompanyBase\" minOccurs=\"0\" maxOccurs=\"unbounded\" />
    </xs:sequence>  
  </xs:complexType>

  <xs:complexType name=\"CompanyBase\" abstract=\"true\">
    <xs:attribute name=\"Id\" type=\"xs:int\" use=\"required\" />
  </xs:complexType>

  <xs:complexType name=\"Company\">
    <xs:complexContent>
      <xs:extension base=\"CompanyBase\">
        <xs:attribute name=\"PartnerId\" type=\"xs:int\" use=\"required\" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name=\"Client\">
    <xs:complexContent>
      <xs:extension base=\"ClientBase\">
        <xs:sequence>
          <!-- error occurs here -->
          <xs:element name=\"Company\" type=\"Company\" minOccurs=\"0\" maxOccurs=\"unbounded\" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
这显然是行不通的,因为它炸毁了我的客户类型,并给我一个错误,即“元素'公司'的多个定义导致内容模型变得模棱两可”。 我的目标是最终得到代表这一点的东西。
    public abstract class CompanyBase
    {
        public int Id { get; set; }

    }
    public class Company : CompanyBase
    {
        public int PartnerId { get; set; }
    }

    public abstract class ClientBase
    {
        public CompanyBase[] Company { get; set; }
    }

    public class Client : ClientBase
    {
        new public Company[] Company { get; set; }
    }
任何帮助将不胜感激。     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)