jakarta.xml.bind.annotation.package-info 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
*/
/**
* Defines annotations for customizing Java program elements to XML Schema mapping.
*
* References in this document to JAXB refer to the Jakarta XML Binding unless otherwise noted.
*
*
Package Specification
* The following table shows the Jakarta XML Binding mapping annotations
* that can be associated with each program element.
*
*
* Annotations for customizing Java program elements to XML Schema mapping
*
*
* Program Element
* Jakarta XML Binding annotation
*
*
*
*
* Package
*
*
*
*
*
* Class
*
*
*
*
*
* Enum type
*
*
*
*
*
* JavaBean Property/field
*
*
* - XmlElement
* - XmlElements
* - XmlElementRef
* - XmlElementRefs
* - XmlElementWrapper
* - XmlAnyElement
* - XmlAttribute
* - XmlAnyAttribute
* - XmlTransient
* - XmlValue
* - XmlID
* - XmlIDREF
* - XmlList
* - XmlMixed
* - XmlMimeType
* - XmlAttachmentRef
* - XmlInlineBinaryData
* - XmlElementDecl (only on method)
* - XmlJavaTypeAdapter
*
*
*
*
* Parameter
*
*
* - XmlList
* - XmlAttachmentRef
* - XmlMimeType
* - XmlJavaTypeAdapter
*
*
*
*
*
* Terminology
*
* JavaBean property and field: For the purposes of
* mapping, there is no semantic difference between a field and
* a JavaBean property. Thus, an annotation that can be applied
* to a JavaBean property can always be applied to a
* field. Hence in the Javadoc documentation, for brevity, the
* term JavaBean property or property is used to mean either JavaBean
* property or a field. Where required, both are explicitly
* mentioned.
*
* top level class: For the purpose of mapping, there is
* no semantic difference between a top level class and a
* static nested class. Thus, an annotation that can be applied
* to a top level class, can always be applied to a nested
* static class. Hence in the Javadoc documentation, for
* brevity, the term "top level class" or just class is used to
* mean either a top level class or a nested static
* class.
*
* mapping annotation:A Jakarta XML Binding defined program
* annotation based on the JSR 175 programming annotation
* facility.
*
Common Usage Constraints
* The following usage constraints are defined here since
* they apply to more than annotation:
*
* - For a property, a given annotation can be applied to
* either read or write property but not both.
* - A property name must be different from any other
* property name in any of the super classes of the
* class being mapped.
* - A mapped field name or the decapitalized name of a
* mapped property must be unique within a class.
*
* Notations
* Namespace prefixes
* The following namespace prefixes are used in the XML Schema
* fragments in this package.
*
*
* XML Schema fragments namespace prefixes
*
*
* Prefix
* Namespace
* Notes
*
*
*
*
* xs
* http://www.w3.org/2001/XMLSchema
* Namespace of XML Schema namespace
*
*
* ref
* http://ws-i.org/profiles/basic/1.1/xsd
* Namespace for swaref schema component
*
*
* xsi
* http://www.w3.org/2001/XMLSchema-instance
* XML Schema namespace for instances
*
*
*
*
* @since 1.6, JAXB 2.0
*/
package jakarta.xml.bind.annotation;