Java 使用JAXB,如何避免混合complexType的JAXBElement
当complexType在XSD中标记为mixed=“true”时,生成的Java类将生成一个列表,其中包含“String”类型或实际值周围的JAXBElement包装。如果没有mixed=“true”,则不会生成JAXBElement,并且该值直接映射到类型类。例如:Java 使用JAXB,如何避免混合complexType的JAXBElement,java,xsd,jaxb,jaxb2-maven-plugin,jaxb2-basics,Java,Xsd,Jaxb,Jaxb2 Maven Plugin,Jaxb2 Basics,当complexType在XSD中标记为mixed=“true”时,生成的Java类将生成一个列表,其中包含“String”类型或实际值周围的JAXBElement包装。如果没有mixed=“true”,则不会生成JAXBElement,并且该值直接映射到类型类。例如: <xs:complexType name="div" mixed="true"> <xs:sequence minOccurs="0&q
<xs:complexType name="div" mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="a" minOccurs="0" maxOccurs="unbounded" type="anchorType"/>
</xs:sequence>
...
</complexType>
...
在这里,div类型将包含一个List getContent()方法,该方法为AnchorType返回字符串或JAXBElement
我希望它只返回String或AnchorType,而不返回JAXBElement。考虑一下包含div标记和一些子标记的XML:
myPlainTextValue
但是XML文档中的混合内容不一定发生在单个块中。
根据XSD,此XML也是有效的:
myPlainTextValue
在这两种情况下,标记'div'的文本内容都是'myPlainTextValue'。但在第二个示例中,它分布在子标记之间的4个较小的块中。JAXB需要生成能够处理一般情况的代码,因此我不希望它对您的情况有特殊的模式。为什么不从“div”的类型定义中删除“mixed=true”?我需要能够放入纯文本和元素,类似于HTML div元素