@Retention(value=RUNTIME) @Target(value={FIELD,METHOD}) public @interface XmlAnyElement
这个注释作为一个“包罗万象”的财产而反XML内容为实例的JAXB注释类。通常它诠释一个多值JavaBean属性,但它可以在单值JavaBean属性发生。在解包,每个XML元素不匹配的静态@ @ xmlelementref XmlElement或注释为班上的其他JavaBean的属性,加入到这个“包罗万象”的属性。
@ XmlAnyElement公共Element
[ ]的人;/ /收集Element
或JAXB元素。@ XmlAnyElement(LAX =“true”)公共Object
[ ]的人;@ XmlAnyElement私人列表<Element
>节点;@ XmlAnyElement私人Element
节点;
这个注释是XmlElement
,XmlAttribute
,XmlValue
,XmlElements
,XmlID
相互排斥,和XmlIDREF
。
只能有一个XmlAnyElement
注释JavaBean属性在类和超类。
这个注释可用于XmlJavaTypeAdapter
,以便用户可以映射自己的数据结构,DOM,这反过来又可以分为XML。
这个注释可用于XmlMixed
这样:
/ / java.lang.string或DOM节点列表。xmlmixed XmlAnyElement @ @列表 <对象> 其他; 对象>
< xs:complexType名称=“foo”>< xs:序列>< xs:元名称=“”type=“XS:int”/>< xs:元名称=“B”type=“XS:int”/>< xs:命名空间=“# #其他“processcontents =“松懈”minoccurs =“0”=“maxOccurs无界”/>< / xs:序列>< / xs:名称>
类Foo {int;b;“XmlAnyElement
列表元素>任何;}
可以分解如
< foo xmlns:E =“额外”>< > 1< E:其他/ / /这将绑定到DOM,因为反编排混乱< 3 >< E:其他/ >< C > 5 / /这将绑定到DOM,因为标注不记得命名空间。< / foo >以下模式会产生下面的java类:z-994298cc- 51e1-45ff-becc-cf0c4f68a700
类杆延伸foo {int c;/ / foo。getany()也代表通配符内容类型定义吧。}可以分解如
<酒吧xmlns:e =“额外”> < > 1< E:其他/ / /这将绑定到DOM,因为反编排混乱< 3 >< E:其他/ >5 / /这现在去吧。< E:其他/ / /这将去Foo.any< /栏> 酒吧xmlns:e>
XmlAnyElement
与XmlElementRef
的XmlAnyElement
注释可用于XmlElementRef
s指定额外的元素,可以参与的内容树。
下列架构会产生下面的java类:
< xs:complexType名称=“foo”>< xs:选择maxOccurs =“无界”minoccurs =“0”>< xs:元名称=“”type=“XS:int”/>< xs:元名称=“B”type=“XS:int”/>< xs:命名空间=“# #其他“processcontents =“宽松”/>< / xs:选择>< / xs:名称>
类Foo {“可以分解如XmlAnyElement
(LAX =“true”)“XmlElementRefs
({“XmlElementRef
(name =“”=“jaxbelement类型。班”)“XmlElementRef
(name=“B”,类型为“jaxbelement。班”)})List
<Object
>其他;}@ XmlRegistry类化{…@ XmlElementDecl(name =“”=“”,,命名空间范围= foo类)JAXBElement
<整数> createfooa(整数){…}@ XmlElementDecl(name=“B”,命名空间=”,范围= foo类)JAXBElement
<整数> createfoob(整数){…} 整数> 整数>
< foo xmlns:E =“额外”> <一> 1 / /这将分解到JAXBElement
实例的值是1。< E:其他/ / /这将解包到DOMElement
。 3 / /这将分解到JAXBElement
实例的值是1。< / foo > 一>
“然后以下文件将数据是这样的:XmlRootElement
类Foo {@ XmlAnyElement(LAX = true)公共Object
[ ]的人;}
<和> <未知> <富> < / foo >Foo Foo = unmarshal();/ / 1 '未知',另一个为“foo”断言foo。别人。长度= = 2;/ / '未知'解封一个DOM元素断言foo。别人[ 0 ]是元;/由于宽松= true,“foo”元急切地/ /解封一个foo对象。断言foo。别人[ 1 ]是Foo; 富> 未知> 和>
Modifier and Type | Optional Element and Description |
---|---|
boolean |
lax
控制配置行为当它看到已知当前
JAXBContext 元素。
|
类<? extends DomHandler> |
value
指定
DomHandler ,负责实际转换XML从/到一个DOM数据结构。
|
public abstract boolean lax
JAXBContext
元素。
如果是错的,所有的元素相匹配的属性将它们分散到DOM和财产将只包含DOM元素。
如果是真的,当一个元素匹配性能有XmlAnyElement
是众所周知的JAXBContext
(例如,有XmlRootElement
具有相同标签的名字,一个类或有XmlElementDecl
具有相同的标记名)的配置,将急切地分解这个元素的JAXB对象,而不是反其DOM。此外,如果元素是未知的但有一个已知的xsi:类型、配置的热切解封元一JAXBElement
,与未知的元素名称和jaxbelement值设置为已知的XSI JAXB映射实例:类型。
因此,在反,财产可以成为异构;它会同时DOM节点和JAXB对象。
这可以用来模仿”的W3C XML Schema松懈”通配符语义。
public abstract 类<? extends DomHandler> value
DomHandler
,负责实际转换XML从/到一个DOM数据结构。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.