All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.xml.bind.annotation.XmlSchema Maven / Gradle / Ivy

There is a newer version: 2.1
Show newest version
/*
 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package javax.xml.bind.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

/**
 * 

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">
 * 
 * 
* @author Sekhar Vajjhala, Sun Microsystems, Inc. * @since JAXB2.0 * @version $Revision: 1.9 $ */ @Retention(RUNTIME) @Target({PACKAGE}) public @interface XmlSchema { /** * 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. */ XmlNs[] xmlns() default {}; /** * Name of the XML namespace. */ String namespace() default ""; /** * Namespace qualification for elements. By default, element * default attribute will be absent from the XML Schema fragment. */ XmlNsForm elementFormDefault() default XmlNsForm.UNSET; /** * Namespace qualification for attributes. By default, * attributesFormDefault will be absent from the XML Schema fragment. */ XmlNsForm attributeFormDefault() default XmlNsForm.UNSET; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy