我正在使用我打算與JAXB一起使用的模式文件來處理我的項目。在Java中,我有那種代碼結構如下XML模式繼承與OOP繼承的工作方式相同嗎?
public interface Condition {
...
}
public class AndCondition implements Condition {
public AndCondition(List<Condition> conditions){
...
}
}
public class StateCondition implements Condition {
public StateCondition(Item item, String attributeName, String attributeValue){
...
}
}
當然我在我的代碼中的其他對象依賴於具有條件的對象
public class Action{
List<Item> targets;
List<Item> tools;
Condition condition;
...
}
我的問題是,如果我在我的XML定義模式的複雜類型和擴展它們:
<xs:element name="Condition">
</xs:element>
<xs:element name="StateCondition">
<xs:complexContent>
<xs:extension base="Condition">
<xs:sequence>
<xs:element ref="Item" />
<xs:element name="ATTRIB" type="AttributeType" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:element>
<xs:element name="AndCondition">
<xs:complexContent>
<xs:extension base="Condition">
<xs:sequence>
<xs:element ref="Condition" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:element>
<xs:element name="Item">
<xs:sequence>
<xs:element name="TARGETS">
<xs:element ref="Item" minOccurs="0" maxOccurs="unbounded />
</xs:element>
<xs:element name="TOOLS">
<xs:element ref="Item" minOccurs="0" maxOccurs="unbounded />
</xs:element>
<xs:element ref="Condition" />
</xs:sequence>
</xs:element>
我將實現同一類的想法?我的意思是,如果我創建一個擁有一個AndCondition的XML文件,它會滿足驗證器嗎?