Мы начали использовать схемы для генерации классов 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; }
}
Любая помощь будет принята с благодарностью.