All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jakarta.xml.bind.annotation.XmlList Maven / Gradle / Ivy

There is a newer version: 4.0.2
Show newest version
/*
 * Copyright (c) 2005, 2021 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0, which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package jakarta.xml.bind.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;

/**
 * Used to map a property to a list simple type.
 *
 * 

Usage

*

* The {@code @XmlList} annotation can be used with the * following program elements: *

    *
  • JavaBean property
  • *
  • field
  • *
* *

* When a collection property is annotated just with @XmlElement, * each item in the collection will be wrapped by an element. * For example, * *

 * @XmlRootElement
 * class Foo {
 *     @XmlElement
 *     List<String> data;
 * }
 * 
* * would produce XML like this: * *
{@code
 * 
 *   abc
 *   def
 * 
 * }
* * @XmlList annotation, on the other hand, allows multiple values to be * represented as whitespace-separated tokens in a single element. For example, * *
 * @XmlRootElement
 * class Foo {
 *     @XmlElement
 *     @XmlList
 *     List<String> data;
 * }
 * 
* * the above code will produce XML like this: * *
{@code
 * 
 *   abc def
 * 
 * }
* *

This annotation can be used with the following annotations: * {@link XmlElement}, * {@link XmlAttribute}, * {@link XmlValue}, * {@link XmlIDREF}. *

    *
  • The use of {@code @XmlList} with {@link XmlValue} while * allowed, is redundant since {@link XmlList} maps a * collection type to a simple schema type that derives by * list just as {@link XmlValue} would.
  • * *
  • The use of {@code @XmlList} with {@link XmlAttribute} while * allowed, is redundant since {@link XmlList} maps a * collection type to a simple schema type that derives by * list just as {@link XmlAttribute} would.
  • *
* * @author
  • Kohsuke Kawaguchi, Sun Microsystems, Inc.
  • Sekhar Vajjhala, Sun Microsystems, Inc.
* @since 1.6, JAXB 2.0 */ @Retention(RUNTIME) @Target({FIELD,METHOD,PARAMETER}) public @interface XmlList { }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy