alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Java example source code file (XmlElementWrapper.java)

This example Java source code file (XmlElementWrapper.java) is included in the alvinalexander.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Learn more about this Java project at its project page.

Java - Java tags/keywords

annotation, field, method, retention, string, target, xmlelementwrapper

The XmlElementWrapper.java Java example source code

/*
 * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package javax.xml.bind.annotation;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * Generates a wrapper element around XML representation.
 *
 * This is primarily intended to be used to produce a wrapper
 * XML element around collections. The annotation therefore supports
 * two forms of serialization shown below.
 *
 * <pre>
 *    //Example: code fragment
 *      int[] names;
 *
 *    // XML Serialization Form 1 (Unwrapped collection)
 *    <names> ... </names>
 *    <names> ... </names>
 *
 *    // XML Serialization Form 2 ( Wrapped collection )
 *    <wrapperElement>
 *       <names> value-of-item </names>
 *       <names> value-of-item </names>
 *       ....
 *    </wrapperElement>
 * </pre>
 *
 * <p> The two serialized XML forms allow a null collection to be
 * represented either by absence or presence of an element with a
 * nillable attribute.
 *
 * <p> Usage 

* <p> * The <tt>@XmlElementWrapper annotation can be used with the * following program elements: * <ul> * <li> JavaBean property * <li> non static, non transient field * </ul> * * <p>The usage is subject to the following constraints: * <ul> * <li> The property must be a collection property * <li> This annotation can be used with the following annotations: * {@link XmlElement}, * {@link XmlElements}, * {@link XmlElementRef}, * {@link XmlElementRefs}, * {@link XmlJavaTypeAdapter}.</li> * </ul> * * <p>See "Package Specification" in javax.xml.bind.package javadoc for * additional common information.</p> * * @author <ul>
  • Kohsuke Kawaguchi, Sun Microsystems, Inc.
  • Sekhar Vajjhala, Sun Microsystems, Inc.
  • * @see XmlElement * @see XmlElements * @see XmlElementRef * @see XmlElementRefs * @since JAXB2.0 * */ @Retention(RUNTIME) @Target({FIELD, METHOD}) public @interface XmlElementWrapper { /** * Name of the XML wrapper element. By default, the XML wrapper * element name is derived from the JavaBean property name. */ String name() default "##default"; /** * XML target namespace of the XML wrapper element. * <p> * If the value is "##default", then the namespace is determined * as follows: * <ol> * <li> * If the enclosing package has {@link XmlSchema} annotation, * and its {@link XmlSchema#elementFormDefault() elementFormDefault} * is {@link XmlNsForm#QUALIFIED QUALIFIED}, then the namespace of * the enclosing class. * * <li> * Otherwise "" (which produces unqualified element in the default * namespace. * </ol> */ String namespace() default "##default"; /** * If true, the absence of the collection is represented by * using <tt>xsi:nil='true'. Otherwise, it is represented by * the absence of the element. */ boolean nillable() default false; /** * Customize the wrapper element declaration to be required. * * <p> * If required() is true, then the corresponding generated * XML schema element declaration will have <tt>minOccurs="1", * to indicate that the wrapper element is always expected. * * <p> * Note that this only affects the schema generation, and * not the unmarshalling or marshalling capability. This is * simply a mechanism to let users express their application constraints * better. * * @since JAXB 2.1 */ boolean required() default false; }

    Other Java examples (source code examples)

    Here is a short list of links related to this Java XmlElementWrapper.java source code file:

    ... this post is sponsored by my books ...

    #1 New Release!

    FP Best Seller

     

    new blog posts

     

    Copyright 1998-2021 Alvin Alexander, alvinalexander.com
    All Rights Reserved.

    A percentage of advertising revenue from
    pages under the /java/jwarehouse URI on this website is
    paid back to open source projects.