Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/MOXy/Type Level/Setting Up Namespace Information"

m
m (Replacing page with 'Please see http://www.eclipse.org/eclipselink/documentation/2.4/moxy/type_level002.htm')
 
(35 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{EclipseLink_UserGuide
+
Please see http://www.eclipse.org/eclipselink/documentation/2.4/moxy/type_level002.htm
|info=y
+
}}
+
 
+
=Setting Up Namespace Information=
+
Most XL documents are qualified with a namespace. You can qualify elements at the following levels:
+
*Package
+
*Type
+
*Field or Property
+
In most cases, package level annotation is sufficient. You can use the other levels to customize your document. Use the the '''@XmlSchema''' annotation to specify the namespace.
+
 
+
 
+
 
+
==Package Level==
+
Use the '''@XmlSchema''' annotation on the package to set a default namespace and specify that all elements in the package are qualified with the namespace.
+
 
+
<source lang="java">
+
@XmlSchema(
+
    namespace = "http://www.example.org/package",
+
    elementFormDefault = XmlNsForm.QUALIFIED)
+
package example;
+
+
import javax.xml.bind.annotation.XmlNsForm;
+
import javax.xml.bind.annotation.XmlSchema;
+
</source>
+
 
+
This will produce the following XML:
+
 
+
<source lang="xml">
+
<customer
+
    xmlns="http://www.example.org/package"
+
    id="123">
+
    <name>Jane Doe</name>
+
</customer>
+
</source>
+
 
+
All elements are qualified with the '''http://www.example.org/package''' namespace.
+
 
+
 
+
==Type Level==
+
Type level annotations will override the package level namespace.
+
 
+
<source lang="java">
+
package example;
+
+
import javax.xml.bind.annotation.XmlAttribute;
+
import javax.xml.bind.annotation.XmlRootElement;
+
import javax.xml.bind.annotation.XmlType;
+
+
@XmlRootElement
+
@XmlType(namespace="http://www.example.org/type")
+
public class Customer {
+
+
    private long id;
+
    private String name;
+
+
    @XmlAttribute
+
    public long getId() {
+
        return id;
+
    }
+
+
    public void setId(long id) {
+
        this.id = id;
+
    }
+
+
    public String getName() {
+
        return name;
+
    }
+
+
    public void setName(String name) {
+
        this.name = name;
+
    }
+
+
}
+
</source>
+
 
+
This will produce the following XML:
+
 
+
<source lang="xml">
+
<ns2:customer
+
    xmlns="http://www.example.org/type"
+
    xmlns:ns2="http://www.example.org/package"
+
    id="123">
+
    <name>Jane Doe</name>
+
</ns2:customer>
+
</source>
+
 
+
Only elements inside the '''Customer''' type are qualified with the '''http://www.example.org/type''' namespace.
+
 
+
 
+
==Field/Property Level==
+
You can override the package or type namespaces at the property/field level. All attribute and element annotations accept the '''namespace''' parameter.
+
 
+
<source lang="java">
+
package example;
+
+
import javax.xml.bind.annotation.XmlAttribute;
+
import javax.xml.bind.annotation.XmlRootElement;
+
import javax.xml.bind.annotation.XmlType;
+
+
@XmlRootElement
+
@XmlType(namespace="http://www.example.org/type")
+
public class Customer {
+
+
    private long id;
+
    private String name;
+
+
    @XmlAttribute
+
    public long getId() {
+
        return id;
+
    }
+
+
    public void setId(long id) {
+
        this.id = id;
+
    }
+
+
    @XmlElement(namespace="http://www.example.org/property")
+
    public String getName() {
+
        return name;
+
    }
+
+
    public void setName(String name) {
+
        this.name = name;
+
    }
+
+
}
+
</source>
+
 
+
This will produce the following XML:
+
 
+
<source lang="xml">
+
<ns2:customer
+
    xmlns="http://www.example.org/property"
+
    xmlns:ns2="http://www.example.org/package"
+
    id="123">
+
    <name>Jane Doe</name>
+
</ns2:customer>
+
</source>
+
 
+
The '''Name''' element is qualified with the '''http://www.example.org/property''' namespace.
+
 
+
 
+
{{EclipseLink_MOXy
+
|previous=[[EclipseLink/UserGuide/MOXy/Type Level/Mapping to a Type or Element|Mapping to a Type or Element]]
+
|next=[[EclipseLink/UserGuide/MOXy/Type Level/Setting Up Namespace Information|Setting Up Namespace Information]]
+
|up=[[EclipseLink/UserGuide/MOXy/Mapping to a Type or Element|Mapping to a Type or Element]]
+
|version=2.2.0
+
}}
+

Latest revision as of 09:49, 8 November 2012

Please see http://www.eclipse.org/eclipselink/documentation/2.4/moxy/type_level002.htm