/*
 * An XML document type.
 * Localname: Reference
 * Namespace: http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd
 * Java type: org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument
 *
 * Automatically generated - do not modify.
 */
package org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.impl;
/**
 * A document containing one Reference(@http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd) element.
 *
 * This is a complex type.
 */
public class ReferenceDocumentImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument
{
    
    public ReferenceDocumentImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName REFERENCE$0 = 
        new javax.xml.namespace.QName("http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd", "Reference");
    
    
    /**
     * Gets the "Reference" element
     */
    public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference getReference()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference target = null;
            target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference)get_store().find_element_user(REFERENCE$0, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * Sets the "Reference" element
     */
    public void setReference(org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference reference)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference target = null;
            target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference)get_store().find_element_user(REFERENCE$0, 0);
            if (target == null)
            {
                target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference)get_store().add_element_user(REFERENCE$0);
            }
            target.set(reference);
        }
    }
    
    /**
     * Appends and returns a new empty "Reference" element
     */
    public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference addNewReference()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference target = null;
            target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference)get_store().add_element_user(REFERENCE$0);
            return target;
        }
    }
    /**
     * An XML Reference(@http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd).
     *
     * This is a complex type.
     */
    public static class ReferenceImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.ReferenceDocument.Reference
    {
        
        public ReferenceImpl(org.apache.xmlbeans.SchemaType sType)
        {
            super(sType);
        }
        
        private static final javax.xml.namespace.QName SCHEMA$0 = 
            new javax.xml.namespace.QName("http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd", "Schema");
        private static final javax.xml.namespace.QName DESCRIPTION$2 = 
            new javax.xml.namespace.QName("http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd", "Description");
        private static final javax.xml.namespace.QName ID$4 = 
            new javax.xml.namespace.QName("http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd", "id");
        private static final javax.xml.namespace.QName TYPE$6 = 
            new javax.xml.namespace.QName("http://www.w3.org/1999/xlink", "type");
        private static final javax.xml.namespace.QName HREF$8 = 
            new javax.xml.namespace.QName("http://www.w3.org/1999/xlink", "href");
        private static final javax.xml.namespace.QName ROLE$10 = 
            new javax.xml.namespace.QName("http://www.w3.org/1999/xlink", "role");
        
        
        /**
         * Gets a List of "Schema" elements
         */
        public java.util.List<org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema> getSchemaList()
        {
            final class SchemaList extends java.util.AbstractList<org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema>
            {
                public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema get(int i)
                    { return ReferenceImpl.this.getSchemaArray(i); }
                
                public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema set(int i, org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema o)
                {
                    org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema old = ReferenceImpl.this.getSchemaArray(i);
                    ReferenceImpl.this.setSchemaArray(i, o);
                    return old;
                }
                
                public void add(int i, org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema o)
                    { ReferenceImpl.this.insertNewSchema(i).set(o); }
                
                public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema remove(int i)
                {
                    org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema old = ReferenceImpl.this.getSchemaArray(i);
                    ReferenceImpl.this.removeSchema(i);
                    return old;
                }
                
                public int size()
                    { return ReferenceImpl.this.sizeOfSchemaArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new SchemaList();
            }
        }
        
        /**
         * Gets array of all "Schema" elements
         */
        public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema[] getSchemaArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List targetList = new java.util.ArrayList();
                get_store().find_all_element_users(SCHEMA$0, targetList);
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema[] result = new org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema[targetList.size()];
                targetList.toArray(result);
                return result;
            }
        }
        
        /**
         * Gets ith "Schema" element
         */
        public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema getSchemaArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema target = null;
                target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema)get_store().find_element_user(SCHEMA$0, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return target;
            }
        }
        
        /**
         * Returns number of "Schema" element
         */
        public int sizeOfSchemaArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().count_elements(SCHEMA$0);
            }
        }
        
        /**
         * Sets array of all "Schema" element
         */
        public void setSchemaArray(org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema[] schemaArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(schemaArray, SCHEMA$0);
            }
        }
        
        /**
         * Sets ith "Schema" element
         */
        public void setSchemaArray(int i, org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema schema)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema target = null;
                target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema)get_store().find_element_user(SCHEMA$0, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.set(schema);
            }
        }
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "Schema" element
         */
        public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema insertNewSchema(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema target = null;
                target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema)get_store().insert_element_user(SCHEMA$0, i);
                return target;
            }
        }
        
        /**
         * Appends and returns a new empty value (as xml) as the last "Schema" element
         */
        public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema addNewSchema()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema target = null;
                target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.SchemaDocument.Schema)get_store().add_element_user(SCHEMA$0);
                return target;
            }
        }
        
        /**
         * Removes the ith "Schema" element
         */
        public void removeSchema(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_element(SCHEMA$0, i);
            }
        }
        
        /**
         * Gets a List of "Description" elements
         */
        public java.util.List<org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description> getDescriptionList()
        {
            final class DescriptionList extends java.util.AbstractList<org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description>
            {
                public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description get(int i)
                    { return ReferenceImpl.this.getDescriptionArray(i); }
                
                public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description set(int i, org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description o)
                {
                    org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description old = ReferenceImpl.this.getDescriptionArray(i);
                    ReferenceImpl.this.setDescriptionArray(i, o);
                    return old;
                }
                
                public void add(int i, org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description o)
                    { ReferenceImpl.this.insertNewDescription(i).set(o); }
                
                public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description remove(int i)
                {
                    org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description old = ReferenceImpl.this.getDescriptionArray(i);
                    ReferenceImpl.this.removeDescription(i);
                    return old;
                }
                
                public int size()
                    { return ReferenceImpl.this.sizeOfDescriptionArray(); }
                
            }
            
            synchronized (monitor())
            {
                check_orphaned();
                return new DescriptionList();
            }
        }
        
        /**
         * Gets array of all "Description" elements
         */
        public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description[] getDescriptionArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                java.util.List targetList = new java.util.ArrayList();
                get_store().find_all_element_users(DESCRIPTION$2, targetList);
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description[] result = new org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description[targetList.size()];
                targetList.toArray(result);
                return result;
            }
        }
        
        /**
         * Gets ith "Description" element
         */
        public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description getDescriptionArray(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description target = null;
                target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description)get_store().find_element_user(DESCRIPTION$2, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                return target;
            }
        }
        
        /**
         * Returns number of "Description" element
         */
        public int sizeOfDescriptionArray()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().count_elements(DESCRIPTION$2);
            }
        }
        
        /**
         * Sets array of all "Description" element
         */
        public void setDescriptionArray(org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description[] descriptionArray)
        {
            synchronized (monitor())
            {
                check_orphaned();
                arraySetterHelper(descriptionArray, DESCRIPTION$2);
            }
        }
        
        /**
         * Sets ith "Description" element
         */
        public void setDescriptionArray(int i, org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description description)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description target = null;
                target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description)get_store().find_element_user(DESCRIPTION$2, i);
                if (target == null)
                {
                    throw new IndexOutOfBoundsException();
                }
                target.set(description);
            }
        }
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "Description" element
         */
        public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description insertNewDescription(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description target = null;
                target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description)get_store().insert_element_user(DESCRIPTION$2, i);
                return target;
            }
        }
        
        /**
         * Appends and returns a new empty value (as xml) as the last "Description" element
         */
        public org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description addNewDescription()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description target = null;
                target = (org.oasisOpen.committees.ebxmlMsg.schema.msgHeader20.DescriptionDocument.Description)get_store().add_element_user(DESCRIPTION$2);
                return target;
            }
        }
        
        /**
         * Removes the ith "Description" element
         */
        public void removeDescription(int i)
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_element(DESCRIPTION$2, i);
            }
        }
        
        /**
         * Gets the "id" attribute
         */
        public java.lang.String getId()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ID$4);
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "id" attribute
         */
        public org.apache.xmlbeans.XmlID xgetId()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlID target = null;
                target = (org.apache.xmlbeans.XmlID)get_store().find_attribute_user(ID$4);
                return target;
            }
        }
        
        /**
         * True if has "id" attribute
         */
        public boolean isSetId()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().find_attribute_user(ID$4) != null;
            }
        }
        
        /**
         * Sets the "id" attribute
         */
        public void setId(java.lang.String id)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ID$4);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(ID$4);
                }
                target.setStringValue(id);
            }
        }
        
        /**
         * Sets (as xml) the "id" attribute
         */
        public void xsetId(org.apache.xmlbeans.XmlID id)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlID target = null;
                target = (org.apache.xmlbeans.XmlID)get_store().find_attribute_user(ID$4);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlID)get_store().add_attribute_user(ID$4);
                }
                target.set(id);
            }
        }
        
        /**
         * Unsets the "id" attribute
         */
        public void unsetId()
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_attribute(ID$4);
            }
        }
        
        /**
         * Gets the "type" attribute
         */
        public org.w3.x1999.xlink.TypeAttribute.Type.Enum getType()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TYPE$6);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_default_attribute_value(TYPE$6);
                }
                if (target == null)
                {
                    return null;
                }
                return (org.w3.x1999.xlink.TypeAttribute.Type.Enum)target.getEnumValue();
            }
        }
        
        /**
         * Gets (as xml) the "type" attribute
         */
        public org.w3.x1999.xlink.TypeAttribute.Type xgetType()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.w3.x1999.xlink.TypeAttribute.Type target = null;
                target = (org.w3.x1999.xlink.TypeAttribute.Type)get_store().find_attribute_user(TYPE$6);
                if (target == null)
                {
                    target = (org.w3.x1999.xlink.TypeAttribute.Type)get_default_attribute_value(TYPE$6);
                }
                return target;
            }
        }
        
        /**
         * True if has "type" attribute
         */
        public boolean isSetType()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().find_attribute_user(TYPE$6) != null;
            }
        }
        
        /**
         * Sets the "type" attribute
         */
        public void setType(org.w3.x1999.xlink.TypeAttribute.Type.Enum type)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(TYPE$6);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(TYPE$6);
                }
                target.setEnumValue(type);
            }
        }
        
        /**
         * Sets (as xml) the "type" attribute
         */
        public void xsetType(org.w3.x1999.xlink.TypeAttribute.Type type)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.w3.x1999.xlink.TypeAttribute.Type target = null;
                target = (org.w3.x1999.xlink.TypeAttribute.Type)get_store().find_attribute_user(TYPE$6);
                if (target == null)
                {
                    target = (org.w3.x1999.xlink.TypeAttribute.Type)get_store().add_attribute_user(TYPE$6);
                }
                target.set(type);
            }
        }
        
        /**
         * Unsets the "type" attribute
         */
        public void unsetType()
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_attribute(TYPE$6);
            }
        }
        
        /**
         * Gets the "href" attribute
         */
        public java.lang.String getHref()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(HREF$8);
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "href" attribute
         */
        public org.apache.xmlbeans.XmlAnyURI xgetHref()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlAnyURI target = null;
                target = (org.apache.xmlbeans.XmlAnyURI)get_store().find_attribute_user(HREF$8);
                return target;
            }
        }
        
        /**
         * Sets the "href" attribute
         */
        public void setHref(java.lang.String href)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(HREF$8);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(HREF$8);
                }
                target.setStringValue(href);
            }
        }
        
        /**
         * Sets (as xml) the "href" attribute
         */
        public void xsetHref(org.apache.xmlbeans.XmlAnyURI href)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlAnyURI target = null;
                target = (org.apache.xmlbeans.XmlAnyURI)get_store().find_attribute_user(HREF$8);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlAnyURI)get_store().add_attribute_user(HREF$8);
                }
                target.set(href);
            }
        }
        
        /**
         * Gets the "role" attribute
         */
        public java.lang.String getRole()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ROLE$10);
                if (target == null)
                {
                    return null;
                }
                return target.getStringValue();
            }
        }
        
        /**
         * Gets (as xml) the "role" attribute
         */
        public org.apache.xmlbeans.XmlAnyURI xgetRole()
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlAnyURI target = null;
                target = (org.apache.xmlbeans.XmlAnyURI)get_store().find_attribute_user(ROLE$10);
                return target;
            }
        }
        
        /**
         * True if has "role" attribute
         */
        public boolean isSetRole()
        {
            synchronized (monitor())
            {
                check_orphaned();
                return get_store().find_attribute_user(ROLE$10) != null;
            }
        }
        
        /**
         * Sets the "role" attribute
         */
        public void setRole(java.lang.String role)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.SimpleValue target = null;
                target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ROLE$10);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(ROLE$10);
                }
                target.setStringValue(role);
            }
        }
        
        /**
         * Sets (as xml) the "role" attribute
         */
        public void xsetRole(org.apache.xmlbeans.XmlAnyURI role)
        {
            synchronized (monitor())
            {
                check_orphaned();
                org.apache.xmlbeans.XmlAnyURI target = null;
                target = (org.apache.xmlbeans.XmlAnyURI)get_store().find_attribute_user(ROLE$10);
                if (target == null)
                {
                    target = (org.apache.xmlbeans.XmlAnyURI)get_store().add_attribute_user(ROLE$10);
                }
                target.set(role);
            }
        }
        
        /**
         * Unsets the "role" attribute
         */
        public void unsetRole()
        {
            synchronized (monitor())
            {
                check_orphaned();
                get_store().remove_attribute(ROLE$10);
            }
        }
    }
}
