继承并实现的.NET类型的XML架构 请考虑以下三种.NET类型:我有一个接口、一个抽象类和一个具体的类。我的问题是如何编写XML模式以包含接口和抽象类的属性 public interface IStartable { bool RequiresKey { get; set; } void Start(object key); } public abstract class Vehicle { uint WheelCount { get; set; } } public class Car : Vehicle, IStartable { public bool RequiresKey { get; set; } public string Make { get; set; } publilc string Model { get; set; } public Car() {} public void Start(object key) { // start car with key } }
我不知道如何完成此模式:继承并实现的.NET类型的XML架构 请考虑以下三种.NET类型:我有一个接口、一个抽象类和一个具体的类。我的问题是如何编写XML模式以包含接口和抽象类的属性 public interface IStartable { bool RequiresKey { get; set; } void Start(object key); } public abstract class Vehicle { uint WheelCount { get; set; } } public class Car : Vehicle, IStartable { public bool RequiresKey { get; set; } public string Make { get; set; } publilc string Model { get; set; } public Car() {} public void Start(object key) { // start car with key } },.net,inheritance,interface,xsd,abstract-class,.net,Inheritance,Interface,Xsd,Abstract Class,我不知道如何完成此模式: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="cars" xmlns="cars" xmlns:c="cars"> <!-- How do I get car to have vehicle's wheelcount AND IStartable's RequiresKey? --> <
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="cars"
xmlns="cars"
xmlns:c="cars">
<!-- How do I get car to have vehicle's wheelcount
AND IStartable's RequiresKey? -->
<xs:element name="Car" type="c:Car" />
<xs:complexType name="Car">
<xs:complexContent>
<xs:extension base="c:Vehicle">
<xs:group ref=c:CarGroup" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:group name="CarGroup">
<xs:sequence>
<xs:element name="Make" type="xs:token" />
<xs:element name="Model" type="xs:token" />
</xs:sequence>
</xs:group>
<xs:complexType name="Vehicle">
<xs:sequence>
<xs:element name="WheelCount" type="xs:unsignedInt" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="IStartable">
<xs:sequence>
<xs:element name="RequiresKey" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
</xs:schema>
我真的不明白如何在XML模式中真正做到这一点。XML模式确实有继承,但只有一个继承,它不知道接口等
在当前的XML模式中,无法使类(复杂类型)既基于基类,又基于第二个“接口”类的“继承”——抱歉,XML模式没有这些概念
您可能可以稍微重新设计您的继承—IStartable>Vehicle>Car
——然后您可以在XML模式中对其进行建模。使用当前的XML模式标准,当前的设置可能不可行