您可以定义attribute
元素,使其具有混合内容的类型。如下所示:
<xsd:element name="attribute">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element name="row" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
...
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
这将为您提供一个类似于以下内容的 JAXB 类,您最终会得到一个将存储文本和Row
对象的属性。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"content"
})
@XmlRootElement(name = "attribute")
public class Attribute {
@XmlElementRef(name = "row", namespace = "http://www.example.org/schema", type = JAXBElement.class, required = false)
@XmlMixed
protected List<Serializable> content;
}
如果您改为执行以下操作,从长远来看,您可能会更快乐。
<attribute name="attributeName1" type="typeName1">
<value>value1</value>
</attribute>