Annotation Interface XmlElementDecl
Usage
The annotation creates a mapping between an XML schema element declaration and a element factory method that returns a JAXBElement instance representing the element declaration. Typically, the element factory method is generated (and annotated) from a schema into the ObjectFactory class in a Java package that represents the binding of the element declaration's target namespace. Thus, while the annotation syntax allows @XmlElementDecl to be used on any method, semantically its use is restricted to annotation of element factory method.The usage is subject to the following constraints:
- The class containing the element factory method annotated
with @XmlElementDecl must be marked with
XmlRegistry. - The element factory method must take one parameter
assignable to
Object.
Example 1: Annotation on a factory method
Example 2: Element declaration with non-local scope
The following example illustrates the use of scope annotation parameter in binding of element declaration in schema derived code.
The following example may be replaced in a future revision of this javadoc. Without scope createFoo and createPeaFoo would become ambiguous since both of them map to an XML schema element with the same local name "foo".
- Since:
- 1.6, JAXB 2.0
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classUsed inscope()to signal that the declaration is in the global scope. -
Required Element Summary
Required Elements -
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionDefault value of this element.namespace name of the XML element.Class<?>scope of the mapping.XML local name of a substitution group's head element.namespace name of a substitution group's head XML element.
-
Element Details
-
name
String namelocal name of the XML element.Note to reviewers: There is no default name; since the annotation is on a factory method, it is not clear that the method name can be derived from the factory method name.
- See Also:
-
-
-
scope
Class<?> scopescope of the mapping.If this is not
XmlElementDecl.GLOBAL, then this element declaration mapping is only active within the specified class.- Default:
- jakarta.xml.bind.annotation.XmlElementDecl.GLOBAL.class
-
namespace
String namespacenamespace name of the XML element.If the value is "##default", then the value is the namespace name for the package of the class containing this factory method.
- See Also:
- Default:
- "##default"
-
substitutionHeadNamespace
String substitutionHeadNamespacenamespace name of a substitution group's head XML element.This specifies the namespace name of the XML element whose local name is specified by
substitutionHeadName().If
substitutionHeadName()is "", then this value can only be "##default". But the value is ignored since this element is not part of substitution group when the value ofsubstitutionHeadName()is "".If
substitutionHeadName()is not "" and the value is "##default", then the namespace name is the namespace name to which the package of the containing class, marked withXmlRegistry, is mapped.If
substitutionHeadName()is not "" and the value is not "##default", then the value is the namespace name.- See Also:
- Default:
- "##default"
-
substitutionHeadName
String substitutionHeadNameXML local name of a substitution group's head element.If the value is "", then this element is not part of any substitution group.
- See Also:
- Default:
- ""
-
defaultValue
String defaultValueDefault value of this element.The
' '
value specified as a default of this annotation element is used as a poor-man's substitute for null to allow implementations to recognize the 'no default value' state.- Default:
- "\u0000"
-