001    
002    package org.oasis_open.docs.wsn.t_1;
003    
004    import java.util.HashMap;
005    import java.util.Map;
006    import javax.xml.bind.annotation.XmlAccessType;
007    import javax.xml.bind.annotation.XmlAccessorType;
008    import javax.xml.bind.annotation.XmlAnyAttribute;
009    import javax.xml.bind.annotation.XmlSeeAlso;
010    import javax.xml.bind.annotation.XmlType;
011    import javax.xml.namespace.QName;
012    
013    
014    /**
015     * <p>Java class for ExtensibleDocumented complex type.
016     * 
017     * <p>The following schema fragment specifies the expected content contained within this class.
018     * 
019     * <pre>
020     * &lt;complexType name="ExtensibleDocumented">
021     *   &lt;complexContent>
022     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
023     *       &lt;sequence>
024     *         &lt;element name="documentation" type="{http://docs.oasis-open.org/wsn/t-1}Documentation" minOccurs="0"/>
025     *       &lt;/sequence>
026     *       &lt;anyAttribute processContents='lax' namespace='##other'/>
027     *     &lt;/restriction>
028     *   &lt;/complexContent>
029     * &lt;/complexType>
030     * </pre>
031     * 
032     * 
033     */
034    @XmlAccessorType(XmlAccessType.FIELD)
035    @XmlType(name = "ExtensibleDocumented", propOrder = {
036        "documentation"
037    })
038    @XmlSeeAlso({
039        TopicSetType.class,
040        TopicNamespaceType.class,
041        TopicType.class
042    })
043    public abstract class ExtensibleDocumented {
044    
045        protected Documentation documentation;
046        @XmlAnyAttribute
047        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
048    
049        /**
050         * Gets the value of the documentation property.
051         * 
052         * @return
053         *     possible object is
054         *     {@link Documentation }
055         *     
056         */
057        public Documentation getDocumentation() {
058            return documentation;
059        }
060    
061        /**
062         * Sets the value of the documentation property.
063         * 
064         * @param value
065         *     allowed object is
066         *     {@link Documentation }
067         *     
068         */
069        public void setDocumentation(Documentation value) {
070            this.documentation = value;
071        }
072    
073        /**
074         * Gets a map that contains attributes that aren't bound to any typed property on this class.
075         * 
076         * <p>
077         * the map is keyed by the name of the attribute and 
078         * the value is the string value of the attribute.
079         * 
080         * the map returned by this method is live, and you can add new attribute
081         * by updating the map directly. Because of this design, there's no setter.
082         * 
083         * 
084         * @return
085         *     always non-null
086         */
087        public Map<QName, String> getOtherAttributes() {
088            return otherAttributes;
089        }
090    
091    }