javax.xml.bind.annotation

Annotation Type XmlSchema


  • @Retention(value=RUNTIME)
    @Target(value=PACKAGE)
    public @interface XmlSchema

    Maps a package name to a XML namespace.

    Usage

    The XmlSchema annotation can be used with the following program elements:

    • package

    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">
    
     
    Since:
    JAXB2.0
    • Element Detail

      • xmlns

        public abstract XmlNs[] xmlns
        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.
        Default:
        {}
      • namespace

        public abstract String namespace
        Name of the XML namespace.
        Default:
        ""
      • elementFormDefault

        public abstract XmlNsForm elementFormDefault
        Namespace qualification for elements. By default, element default attribute will be absent from the XML Schema fragment.
        Default:
        javax.xml.bind.annotation.XmlNsForm.UNSET
      • attributeFormDefault

        public abstract XmlNsForm attributeFormDefault
        Namespace qualification for attributes. By default, attributesFormDefault will be absent from the XML Schema fragment.
        Default:
        javax.xml.bind.annotation.XmlNsForm.UNSET
      • location

        public abstract String location
        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 <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
        Default:
        "##generate"

Traduction non disponible

Les API Java ne sont pas encore traduites en français sur l'infobrol. Seule la version anglaise est disponible pour l'instant.

Document créé le 11/06/2005, dernière modification le 04/03/2020
Source du document imprimé : https://www.gaudry.be/java-api-rf-javax/xml/bind/annotation/xmlschema.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : https://docs.oracle.com

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut