gpt4 book ai didi

java - XML 模式继承与 OOP 继承的意义相同吗?

转载 作者:行者123 更新时间:2023-12-02 08:31:49 25 4
gpt4 key购买 nike

我正在处理一个架构文件,打算将其与 JAXB 一起用于我的项目。在Java中,我有以下类型的代码结构

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){
...
}
}

当然,我的代码中有其他对象依赖于 Condition 对象

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 文件,它会满足 validator 的要求吗?

最佳答案

经过一番阅读后,我自己找到了答案。希望这个问题对其他人有用。要读取的资源是 here ,它定义 JAXB 如何处理 XML 模式定义中的扩展基本类型。

快速而简短,是的,JAXB 将模式中的扩展视为 Java 中的继承。

关于java - XML 模式继承与 OOP 继承的意义相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3167734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com