Please consider the following three .NET types: I have an interface, an abstract class, and a concrete class. My question is how to write the XML Schema to include the properties from the interface and from the abstract class.
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
}
}
I don't know how to complete this schema:
<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>开发者_C百科
<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>
I don't really see how you could actually do this in XML schema. XML schema does have inheritance - but only single inheritance, and it doesn't know about interfaces etc.
There's no way in current XML schema to have a class (complex type) be based both on a base class, and at the same time "inherit" from a second "interface" class - XML schema just doesn't have those concepts, sorry.
You might be able to redesign your inheritance a bit - IStartable > Vehicle > Car
- then you could model it in XML schema. The current setup is probably just not doable using current XML schema standards.
精彩评论