|
Java EE 5 SDK 深圳电信培训中心.徐海蛟老师. |
||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: REQUIRED | OPTIONAL | 详细信息: ELEMENT |
javax.xml.bind.annotation Annotation Type XmlMixed
Annotate a JavaBean multi-valued property to support mixed content.
The usage is subject to the following constraints:
- can be used with @XmlElementRef, @XmlElementRefs or @XmlAnyElement
The following can be inserted into @XmlMixed annotated multi-valued property
- XML text information items are added as values of java.lang.String.
- Children element information items are added as instances of
JAXBElement
or instances with a class that is annotated with @XmlRootElement. - Unknown content that is not be bound to a JAXB mapped class is inserted
as
Element
. (Assumes property annotated with @XmlAnyElement)
<!-- schema fragment having mixed content --> <xs:complextype name="letterBody" mixed="true"> <xs:sequence> <xs:element name="name" type="xs:string"> </xs:element><xs:element name="quantity" type="xs:positiveInteger"> </xs:element><xs:element name="productName" type="xs:string"> <!-- etc. --> </xs:element></xs:sequence> </xs:complextype> <xs:element name="letterBody" type="letterBody"> // Schema-derived Java code: // (Only annotations relevant to mixed content are shown below, // others are ommitted.) import java.math.BigInteger; public class ObjectFactory { // element instance factories JAXBElement<letterbody> createLetterBody(LetterBody value); JAXBElement<string> createLetterBodyName(String value); JAXBElement<biginteger> createLetterBodyQuantity(BigInteger value); JAXBElement</biginteger></string><string> createLetterBodyProductName(String value); // type instance factory LetterBody> createLetterBody(); } </string></letterbody></xs:element>
public class LetterBody { // Mixed content can contain instances of Element classes // Name, Quantity and ProductName. Text data is represented as // java.util.String for text. @XmlMixed @XmlElementRefs({ @XmlElementRef(name="productName", type=JAXBElement.class), @XmlElementRef(name="quantity", type=JAXBElement.class), @XmlElementRef(name="name", type=JAXBElement.class)}) List getContent(){...} }The following is an XML instance document with mixed content
that can be constructed using following JAXB API calls.<letterbody> Dear Mr.<name>Robert Smith</name> Your order of <quantity>1</quantity> <productname>Baby Monitor</productname> shipped from our warehouse. .... </letterbody>
LetterBody lb = ObjectFactory.createLetterBody(); JAXBElement<letterbody> lbe = ObjectFactory.createLetterBody(lb); List gcl = lb.getContent(); //add mixed content to general content property. gcl.add("Dear Mr."); // add text information item as a String. // add child element information item gcl.add(ObjectFactory.createLetterBodyName("Robert Smith")); gcl.add("Your order of "); // add text information item as a String // add children element information items gcl.add(ObjectFactory. createLetterBodyQuantity(new BigInteger("1"))); gcl.add(ObjectFactory.createLetterBodyProductName("Baby Monitor")); gcl.add("shipped from our warehouse"); // add text information item </letterbody>
See "Package Specification" in javax.xml.bind.package javadoc for additional common information.
- 从以下版本开始:
- JAXB2.0
- 作者:
- Kohsuke Kawaguchi
|
Java EE 5 SDK 深圳电信培训中心.徐海蛟老师. |
||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: REQUIRED | OPTIONAL | 详细信息: ELEMENT |
提交错误或意见
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。深圳电信培训中心.徐海蛟老师教学参考.