XmlSchema (Java Platform SE 7 ) (original) (raw)

Indicates that this namespace (specified by 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.

Note to implementor

More precisely, the value must be either "", "##generate", or a valid lexical representation of xs:anyURI that begins with :.

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.