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; }
}
任何帮助将不胜感激。
没有找到相关结果
已邀请:
1 个回复
坝硷操