@Retention(value=RUNTIME)
@Target(value=PACKAGE)
public @interface XmlSchema
Maps a package name to a XML namespace.
The XmlSchema annotation can be used with the following program elements:
This is a package level annotation and follows the recommendations and restrictions contained in JSR 175, section III, "Annotations". Thus the usage is subject to the following constraints and recommendations.
Example 1: Customize name of XML namespace to which package is mapped.
@javax.xml.bind.annotation.XmlSchema (
namespace = "http://www.example.com/MYPO1"
)
<!-- XML Schema fragment -->
<schema
xmlns=...
xmlns:po=....
targetNamespace="http://www.example.com/MYPO1"
>
<!-- prefixes generated by default are implementation
depedenent -->
Example 2: Customize namespace prefix, namespace URI mapping
// Package level annotation
@javax.xml.bind.annotation.XmlSchema (
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix = "po",
namespaceURI="http://www.example.com/myPO1"),
@javax.xml.bind.annotation.XmlNs(prefix="xs",
namespaceURI="http://www.w3.org/2001/XMLSchema")
}
)
<!-- XML Schema fragment -->
<schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:po="http://www.example.com/PO1"
targetNamespace="http://www.example.com/PO1">
Example 3: Customize elementFormDefault
@javax.xml.bind.annotation.XmlSchema (
elementFormDefault=XmlNsForm.UNQUALIFIED
...
)
<!-- XML Schema fragment -->
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:po="http://www.example.com/PO1"
elementFormDefault="unqualified">
Modifier and Type | Fields and Description |
---|---|
static java.lang.String |
NO_LOCATION
The default value of the
location() attribute,
which indicates that the schema generator will generate
components in this namespace. |
Modifier and Type | Optional Element and Description |
---|---|
XmlNsForm |
attributeFormDefault
Namespace qualification for attributes.
|
XmlNsForm |
elementFormDefault
Namespace qualification for elements.
|
java.lang.String |
location
Indicates that this namespace (specified by
namespace() )
has a schema already available exeternally, available at this location. |
java.lang.String |
namespace
Name of the XML namespace.
|
XmlNs[] |
xmlns
Customize the namespace URI, prefix associations.
|
public static final java.lang.String NO_LOCATION
location()
attribute,
which indicates that the schema generator will generate
components in this namespace.public abstract XmlNs[] xmlns
public abstract XmlNsForm elementFormDefault
public abstract XmlNsForm attributeFormDefault
public abstract java.lang.String location
namespace()
)
has a schema already available exeternally, available at this location.
This instructs the JAXB schema generators to simply refer to the pointed schema, as opposed to generating components into the schema. This schema is assumed to match what would be otherwise produced by the schema generator (same element names, same type names...)
This feature is intended to be used when a set of the Java classes is originally generated from an existing schema, hand-written to match externally defined schema, or the generated schema is modified manually.
Value could be any absolute URI, like http://example.org/some.xsd
.
It is also possible to specify the empty string, to indicate
that the schema is externally available but the location is
unspecified (and thus it's the responsibility of the reader of the generate
schema to locate it.) Finally, the default value of this property
"##generate"
indicates that the schema generator is going
to generate components for this namespace (as it did in JAXB 2.0.)
Multiple XmlSchema
annotations on multiple packages are allowed
to govern the same namespace()
. In such case, all of them
must have the same location()
values.
More precisely, the value must be either ""
, "##generate"
, or
a valid lexical representation of xs:anyURI
that begins
with <scheme>:
.
A schema generator is expected to generate a corresponding
<xs:import namespace="..." schemaLocation="..."/>
(or
no schemaLocation
attribute at all if the empty string is specified.)
However, the schema generator is allowed to use a different value in
the schemaLocation
attribute (including not generating
such attribute), for example so that the user can specify a local
copy of the resource through the command line interface.