@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注释可用于XmlElementRefs指定额外的元素,可以参与的内容树。
下列架构会产生下面的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:其他/ / /这将解包到DOM
Element。
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.