| javax.xml.bind.annotation.XmlSchema
XmlSchema | public @interface XmlSchema(Code) | | Maps a package name to a XML namespace.
Usage
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.
- There can only be one package declaration as noted in JSR
175, section III, "Annotations".
- JSR 175 recommends package-info.java for package level
annotations. JAXB Providers that follow this recommendation
will allow the package level annotations to be defined in
package-info.java.
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">
author: Sekhar Vajjhala, Sun Microsystems, Inc. since: JAXB2.0 version: $Revision: 1.10 $ |
Field Summary | |
final static String | NO_LOCATION The default value of the
XmlSchema.location() attribute,
which indicates that the schema generator will generate
components in this namespace. | XmlNsForm | attributeFormDefault Namespace qualification for attributes. | XmlNsForm | elementFormDefault Namespace qualification for elements. | String | location Indicates that this namespace (specified by
XmlSchema.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
XmlSchema.namespace() . | String | namespace Name of the XML namespace. | XmlNs[] | xmlns Customize the namespace URI, prefix associations. |
NO_LOCATION | final static String NO_LOCATION(Code) | | The default value of the
XmlSchema.location() attribute,
which indicates that the schema generator will generate
components in this namespace.
|
attributeFormDefault | XmlNsForm attributeFormDefault(Code) | | Namespace qualification for attributes. By default,
attributesFormDefault will be absent from the XML Schema fragment.
|
elementFormDefault | XmlNsForm elementFormDefault(Code) | | Namespace qualification for elements. By default, element
default attribute will be absent from the XML Schema fragment.
|
location | String location(Code) | | Indicates that this namespace (specified by
XmlSchema.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
XmlSchema.namespace() . In such case, all of them
must have the same
XmlSchema.location() values.
Note to implementor
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.
since: JAXB2.1 |
xmlns | XmlNs[] xmlns(Code) | | Customize the namespace URI, prefix associations. By default,
the namespace prefixes for a XML namespace are generated by a
JAXB Provider in an implementation dependent way.
|
|
|