继承并实现的.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模式标准,当前的设置可能不可行