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

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

/*
 * Copyright (c) 2004, 2020 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.Target;
import java.lang.annotation.Retention;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

/**
 * 

* Maps a JavaBean property to XML ID. * *

* To preserve referential integrity of an object graph across XML * serialization followed by a XML deserialization, requires an object * reference to be marshalled by reference or containment * appropriately. Annotations {@code @XmlID} and {@code @XmlIDREF} * together allow a customized mapping of a JavaBean property's * type by containment or reference. * *

Usage

* The {@code @XmlID} annotation can be used with the following * program elements: *
    *
  • a JavaBean property
  • *
  • non static, non transient field
  • *
* *

See "Package Specification" in jakarta.xml.bind.package javadoc for * additional common information.

* * The usage is subject to the following constraints: *
    *
  • At most one field or property in a class can be annotated * with {@code @XmlID}.
  • *
  • The JavaBean property's type must be {@code java.lang.String}.
  • *
  • The only other mapping annotations that can be used * with {@code @XmlID} * are: {@code @XmlElement} and {@code @XmlAttribute}.
  • *
* *

Example: Map a JavaBean property's type to {@code xs:ID}

*
 *    // Example: code fragment
 *    public class Customer {
 *        @XmlAttribute
 *        @XmlID
 *        public String getCustomerID();
 *        public void setCustomerID(String id);
 *        .... other properties not shown 
 *    }
 * {@code
 * 
 *    
 *    
 *      
 *        
 *          ....
 *        
 *        
 *      
 *    
 * }
* * @author Sekhar Vajjhala, Sun Microsystems, Inc. * @see XmlIDREF * @since 1.6, JAXB 2.0 */ @Retention(RUNTIME) @Target({FIELD, METHOD}) public @interface XmlID { }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy