|
|
(37 intermediate revisions by the same user 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.
| + | |
− | | + | |
− | ==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>
| + | |
− | </xml>
| + | |
− | | + | |
− | 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
| + | |
− | }}
| + | |