001    
002    package org.w3._2005._08.addressing;
003    
004    import java.util.ArrayList;
005    import java.util.HashMap;
006    import java.util.List;
007    import java.util.Map;
008    import javax.xml.bind.annotation.XmlAccessType;
009    import javax.xml.bind.annotation.XmlAccessorType;
010    import javax.xml.bind.annotation.XmlAnyAttribute;
011    import javax.xml.bind.annotation.XmlAnyElement;
012    import javax.xml.bind.annotation.XmlType;
013    import javax.xml.namespace.QName;
014    import org.w3c.dom.Element;
015    
016    
017    /**
018     * <p>Java class for MetadataType complex type.
019     * 
020     * <p>The following schema fragment specifies the expected content contained within this class.
021     * 
022     * <pre>
023     * &lt;complexType name="MetadataType">
024     *   &lt;complexContent>
025     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
026     *       &lt;sequence>
027     *         &lt;any/>
028     *       &lt;/sequence>
029     *     &lt;/restriction>
030     *   &lt;/complexContent>
031     * &lt;/complexType>
032     * </pre>
033     * 
034     * 
035     */
036    @XmlAccessorType(XmlAccessType.FIELD)
037    @XmlType(name = "MetadataType", propOrder = {
038        "any"
039    })
040    public class MetadataType {
041    
042        @XmlAnyElement(lax = true)
043        protected List<Object> any;
044        @XmlAnyAttribute
045        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
046    
047        /**
048         * Gets the value of the any property.
049         * 
050         * <p>
051         * This accessor method returns a reference to the live list,
052         * not a snapshot. Therefore any modification you make to the
053         * returned list will be present inside the JAXB object.
054         * This is why there is not a <CODE>set</CODE> method for the any property.
055         * 
056         * <p>
057         * For example, to add a new item, do as follows:
058         * <pre>
059         *    getAny().add(newItem);
060         * </pre>
061         * 
062         * 
063         * <p>
064         * Objects of the following type(s) are allowed in the list
065         * {@link Object }
066         * {@link Element }
067         * 
068         * 
069         */
070        public List<Object> getAny() {
071            if (any == null) {
072                any = new ArrayList<Object>();
073            }
074            return this.any;
075        }
076    
077        /**
078         * Gets a map that contains attributes that aren't bound to any typed property on this class.
079         * 
080         * <p>
081         * the map is keyed by the name of the attribute and 
082         * the value is the string value of the attribute.
083         * 
084         * the map returned by this method is live, and you can add new attribute
085         * by updating the map directly. Because of this design, there's no setter.
086         * 
087         * 
088         * @return
089         *     always non-null
090         */
091        public Map<QName, String> getOtherAttributes() {
092            return otherAttributes;
093        }
094    
095    }