@XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfEntityMetadata")
    public JAXBElement<ArrayOfEntityMetadata> createArrayOfEntityMetadata(ArrayOfEntityMetadata value) {
        return new JAXBElement<ArrayOfEntityMetadata>(_ArrayOfEntityMetadata_QNAME, ArrayOfEntityMetadata.class, null, value);
    }

package com.microsoft.schemas.xrm._2011.metadata;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;

/**
 * This object contains factory methods for each
 * Java content interface and Java element interface
 * generated in the com.microsoft.schemas.xrm._2011.metadata package.
 * <p>An ObjectFactory allows you to programatically
 * construct new instances of the Java representation
 * for XML content. The Java representation of XML
 * content can consist of schema derived interfaces
 * and classes representing the binding of schema
 * type definitions, element declarations and model
 * groups.  Factory methods for each of these are
 * provided in this class.
 */
@XmlRegistry
public class ObjectFactory {

    private final static QName _PicklistAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "PicklistAttributeMetadata");

    private final static QName _StateOptionMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "StateOptionMetadata");

    private final static QName _CascadeType_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "CascadeType");

    private final static QName _ArrayOfRelationshipMetadataBase_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfRelationshipMetadataBase");

    private final static QName _ManagedPropertyEvaluationPriority_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ManagedPropertyEvaluationPriority");

    private final static QName _AttributeRequiredLevelManagedProperty_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "AttributeRequiredLevelManagedProperty");

    private final static QName _RelationshipType_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "RelationshipType");

    private final static QName _ArrayOfSecurityPrivilegeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfSecurityPrivilegeMetadata");

    private final static QName _StringFormat_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "StringFormat");

    private final static QName _MemoAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "MemoAttributeMetadata");

    private final static QName _ArrayOfManyToManyRelationshipMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfManyToManyRelationshipMetadata");

    private final static QName _AssociatedMenuGroup_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "AssociatedMenuGroup");

    private final static QName _IntegerAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "IntegerAttributeMetadata");

    private final static QName _SecurityPrivilegeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "SecurityPrivilegeMetadata");

    private final static QName _AssociatedMenuBehavior_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "AssociatedMenuBehavior");

    private final static QName _BooleanAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "BooleanAttributeMetadata");

    private final static QName _IntegerFormat_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "IntegerFormat");

    private final static QName _OptionSetMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "OptionSetMetadata");

    private final static QName _StringAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "StringAttributeMetadata");

    private final static QName _ManagedPropertyType_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ManagedPropertyType");

    private final static QName _SecurityTypes_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "SecurityTypes");

    private final static QName _StatusOptionMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "StatusOptionMetadata");

    private final static QName _ManagedPropertyAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ManagedPropertyAttributeMetadata");

    private final static QName _ArrayOfCascadeType_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfCascadeType");

    private final static QName _ArrayOfManagedPropertyMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfManagedPropertyMetadata");

    private final static QName _AssociatedMenuConfiguration_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "AssociatedMenuConfiguration");

    private final static QName _EntityNameAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "EntityNameAttributeMetadata");

    private final static QName _ArrayOfEntityMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfEntityMetadata");

    private final static QName _ImeMode_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ImeMode");

    private final static QName _ManagedPropertyOperation_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ManagedPropertyOperation");

    private final static QName _ArrayOfRelationshipType_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfRelationshipType");

    private final static QName _EntityMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "EntityMetadata");

    private final static QName _BigIntAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "BigIntAttributeMetadata");

    private final static QName _EnumAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "EnumAttributeMetadata");

    private final static QName _ArrayOfAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfAttributeMetadata");

    private final static QName _ArrayOfManagedPropertyType_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfManagedPropertyType");

    private final static QName _RelationshipMetadataBase_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "RelationshipMetadataBase");

    private final static QName _MetadataBase_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "MetadataBase");

    private final static QName _ArrayOfIntegerFormat_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfIntegerFormat");

    private final static QName _ArrayOfDateTimeFormat_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfDateTimeFormat");

    private final static QName _StatusAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "StatusAttributeMetadata");

    private final static QName _AttributeTypeCode_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "AttributeTypeCode");

    private final static QName _AttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "AttributeMetadata");

    private final static QName _ArrayOfOwnershipTypes_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfOwnershipTypes");

    private final static QName _ArrayOfAttributeTypeCode_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfAttributeTypeCode");

    private final static QName _LookupAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "LookupAttributeMetadata");

    private final static QName _OptionSetType_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "OptionSetType");

    private final static QName _AttributeRequiredLevel_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "AttributeRequiredLevel");

    private final static QName _ArrayOfSecurityTypes_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfSecurityTypes");

    private final static QName _ArrayOfImeMode_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfImeMode");

    private final static QName _DoubleAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "DoubleAttributeMetadata");

    private final static QName _ArrayOfStringFormat_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfStringFormat");

    private final static QName _StateAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "StateAttributeMetadata");

    private final static QName _ArrayOfManagedPropertyEvaluationPriority_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfManagedPropertyEvaluationPriority");

    private final static QName _ArrayOfAttributeRequiredLevel_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfAttributeRequiredLevel");

    private final static QName _ArrayOfManagedPropertyOperation_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfManagedPropertyOperation");

    private final static QName _OwnershipTypes_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "OwnershipTypes");

    private final static QName _EntityFilters_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "EntityFilters");

    private final static QName _DateTimeFormat_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "DateTimeFormat");

    private final static QName _PrivilegeType_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "PrivilegeType");

    private final static QName _ArrayOfOptionMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfOptionMetadata");

    private final static QName _OptionMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "OptionMetadata");

    private final static QName _ManyToManyRelationshipMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ManyToManyRelationshipMetadata");

    private final static QName _MoneyAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "MoneyAttributeMetadata");

    private final static QName _OptionSetMetadataBase_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "OptionSetMetadataBase");

    private final static QName _OneToManyRelationshipMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "OneToManyRelationshipMetadata");

    private final static QName _CascadeConfiguration_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "CascadeConfiguration");

    private final static QName _DateTimeAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "DateTimeAttributeMetadata");

    private final static QName _ArrayOfOptionSetMetadataBase_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfOptionSetMetadataBase");

    private final static QName _ManagedPropertyMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ManagedPropertyMetadata");

    private final static QName _DecimalAttributeMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "DecimalAttributeMetadata");

    private final static QName _BooleanOptionSetMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "BooleanOptionSetMetadata");

    private final static QName _ArrayOfOneToManyRelationshipMetadata_QNAME = new QName("http://schemas.microsoft.com/xrm/2011/Metadata", "ArrayOfOneToManyRelationshipMetadata");

    /**
     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.microsoft.schemas.xrm._2011.metadata
     */
    public ObjectFactory() {
    }

    /**
     * Create an instance of {@link AttributeMetadata }
     */
    public AttributeMetadata createAttributeMetadata() {
        return new AttributeMetadata();
    }

    /**
     * Create an instance of {@link StatusOptionMetadata }
     */
    public StatusOptionMetadata createStatusOptionMetadata() {
        return new StatusOptionMetadata();
    }

    /**
     * Create an instance of {@link SecurityTypes }
     */
    public SecurityTypes createSecurityTypes() {
        return new SecurityTypes();
    }

    /**
     * Create an instance of {@link ArrayOfDateTimeFormat }
     */
    public ArrayOfDateTimeFormat createArrayOfDateTimeFormat() {
        return new ArrayOfDateTimeFormat();
    }

    /**
     * Create an instance of {@link StatusAttributeMetadata }
     */
    public StatusAttributeMetadata createStatusAttributeMetadata() {
        return new StatusAttributeMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfOwnershipTypes }
     */
    public ArrayOfOwnershipTypes createArrayOfOwnershipTypes() {
        return new ArrayOfOwnershipTypes();
    }

    /**
     * Create an instance of {@link ArrayOfAttributeTypeCode }
     */
    public ArrayOfAttributeTypeCode createArrayOfAttributeTypeCode() {
        return new ArrayOfAttributeTypeCode();
    }

    /**
     * Create an instance of {@link ArrayOfRelationshipMetadataBase }
     */
    public ArrayOfRelationshipMetadataBase createArrayOfRelationshipMetadataBase() {
        return new ArrayOfRelationshipMetadataBase();
    }

    /**
     * Create an instance of {@link ManagedPropertyAttributeMetadata }
     */
    public ManagedPropertyAttributeMetadata createManagedPropertyAttributeMetadata() {
        return new ManagedPropertyAttributeMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfOptionMetadata }
     */
    public ArrayOfOptionMetadata createArrayOfOptionMetadata() {
        return new ArrayOfOptionMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfCascadeType }
     */
    public ArrayOfCascadeType createArrayOfCascadeType() {
        return new ArrayOfCascadeType();
    }

    /**
     * Create an instance of {@link StateOptionMetadata }
     */
    public StateOptionMetadata createStateOptionMetadata() {
        return new StateOptionMetadata();
    }

    /**
     * Create an instance of {@link EntityFilters }
     */
    public EntityFilters createEntityFilters() {
        return new EntityFilters();
    }

    /**
     * Create an instance of {@link PicklistAttributeMetadata }
     */
    public PicklistAttributeMetadata createPicklistAttributeMetadata() {
        return new PicklistAttributeMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfIntegerFormat }
     */
    public ArrayOfIntegerFormat createArrayOfIntegerFormat() {
        return new ArrayOfIntegerFormat();
    }

    /**
     * Create an instance of {@link StringAttributeMetadata }
     */
    public StringAttributeMetadata createStringAttributeMetadata() {
        return new StringAttributeMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfManagedPropertyMetadata }
     */
    public ArrayOfManagedPropertyMetadata createArrayOfManagedPropertyMetadata() {
        return new ArrayOfManagedPropertyMetadata();
    }

    /**
     * Create an instance of {@link OptionMetadata }
     */
    public OptionMetadata createOptionMetadata() {
        return new OptionMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfSecurityTypes }
     */
    public ArrayOfSecurityTypes createArrayOfSecurityTypes() {
        return new ArrayOfSecurityTypes();
    }

    /**
     * Create an instance of {@link ArrayOfImeMode }
     */
    public ArrayOfImeMode createArrayOfImeMode() {
        return new ArrayOfImeMode();
    }

    /**
     * Create an instance of {@link ArrayOfSecurityPrivilegeMetadata }
     */
    public ArrayOfSecurityPrivilegeMetadata createArrayOfSecurityPrivilegeMetadata() {
        return new ArrayOfSecurityPrivilegeMetadata();
    }

    /**
     * Create an instance of {@link AssociatedMenuConfiguration }
     */
    public AssociatedMenuConfiguration createAssociatedMenuConfiguration() {
        return new AssociatedMenuConfiguration();
    }

    /**
     * Create an instance of {@link AttributeRequiredLevelManagedProperty }
     */
    public AttributeRequiredLevelManagedProperty createAttributeRequiredLevelManagedProperty() {
        return new AttributeRequiredLevelManagedProperty();
    }

    /**
     * Create an instance of {@link LookupAttributeMetadata }
     */
    public LookupAttributeMetadata createLookupAttributeMetadata() {
        return new LookupAttributeMetadata();
    }

    /**
     * Create an instance of {@link OneToManyRelationshipMetadata }
     */
    public OneToManyRelationshipMetadata createOneToManyRelationshipMetadata() {
        return new OneToManyRelationshipMetadata();
    }

    /**
     * Create an instance of {@link OptionSetMetadataBase }
     */
    public OptionSetMetadataBase createOptionSetMetadataBase() {
        return new OptionSetMetadataBase();
    }

    /**
     * Create an instance of {@link DateTimeAttributeMetadata }
     */
    public DateTimeAttributeMetadata createDateTimeAttributeMetadata() {
        return new DateTimeAttributeMetadata();
    }

    /**
     * Create an instance of {@link CascadeConfiguration }
     */
    public CascadeConfiguration createCascadeConfiguration() {
        return new CascadeConfiguration();
    }

    /**
     * Create an instance of {@link EntityNameAttributeMetadata }
     */
    public EntityNameAttributeMetadata createEntityNameAttributeMetadata() {
        return new EntityNameAttributeMetadata();
    }

    /**
     * Create an instance of {@link StateAttributeMetadata }
     */
    public StateAttributeMetadata createStateAttributeMetadata() {
        return new StateAttributeMetadata();
    }

    /**
     * Create an instance of {@link ManyToManyRelationshipMetadata }
     */
    public ManyToManyRelationshipMetadata createManyToManyRelationshipMetadata() {
        return new ManyToManyRelationshipMetadata();
    }

    /**
     * Create an instance of {@link DoubleAttributeMetadata }
     */
    public DoubleAttributeMetadata createDoubleAttributeMetadata() {
        return new DoubleAttributeMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfStringFormat }
     */
    public ArrayOfStringFormat createArrayOfStringFormat() {
        return new ArrayOfStringFormat();
    }

    /**
     * Create an instance of {@link MoneyAttributeMetadata }
     */
    public MoneyAttributeMetadata createMoneyAttributeMetadata() {
        return new MoneyAttributeMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfEntityMetadata }
     */
    public ArrayOfEntityMetadata createArrayOfEntityMetadata() {
        return new ArrayOfEntityMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfManagedPropertyEvaluationPriority }
     */
    public ArrayOfManagedPropertyEvaluationPriority createArrayOfManagedPropertyEvaluationPriority() {
        return new ArrayOfManagedPropertyEvaluationPriority();
    }

    /**
     * Create an instance of {@link DecimalAttributeMetadata }
     */
    public DecimalAttributeMetadata createDecimalAttributeMetadata() {
        return new DecimalAttributeMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfAttributeRequiredLevel }
     */
    public ArrayOfAttributeRequiredLevel createArrayOfAttributeRequiredLevel() {
        return new ArrayOfAttributeRequiredLevel();
    }

    /**
     * Create an instance of {@link BooleanOptionSetMetadata }
     */
    public BooleanOptionSetMetadata createBooleanOptionSetMetadata() {
        return new BooleanOptionSetMetadata();
    }

    /**
     * Create an instance of {@link MetadataBase }
     */
    public MetadataBase createMetadataBase() {
        return new MetadataBase();
    }

    /**
     * Create an instance of {@link RelationshipMetadataBase }
     */
    public RelationshipMetadataBase createRelationshipMetadataBase() {
        return new RelationshipMetadataBase();
    }

    /**
     * Create an instance of {@link OwnershipTypes }
     */
    public OwnershipTypes createOwnershipTypes() {
        return new OwnershipTypes();
    }

    /**
     * Create an instance of {@link ArrayOfManagedPropertyOperation }
     */
    public ArrayOfManagedPropertyOperation createArrayOfManagedPropertyOperation() {
        return new ArrayOfManagedPropertyOperation();
    }

    /**
     * Create an instance of {@link OptionSetMetadata }
     */
    public OptionSetMetadata createOptionSetMetadata() {
        return new OptionSetMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfOneToManyRelationshipMetadata }
     */
    public ArrayOfOneToManyRelationshipMetadata createArrayOfOneToManyRelationshipMetadata() {
        return new ArrayOfOneToManyRelationshipMetadata();
    }

    /**
     * Create an instance of {@link MemoAttributeMetadata }
     */
    public MemoAttributeMetadata createMemoAttributeMetadata() {
        return new MemoAttributeMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfManyToManyRelationshipMetadata }
     */
    public ArrayOfManyToManyRelationshipMetadata createArrayOfManyToManyRelationshipMetadata() {
        return new ArrayOfManyToManyRelationshipMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfRelationshipType }
     */
    public ArrayOfRelationshipType createArrayOfRelationshipType() {
        return new ArrayOfRelationshipType();
    }

    /**
     * Create an instance of {@link ArrayOfOptionSetMetadataBase }
     */
    public ArrayOfOptionSetMetadataBase createArrayOfOptionSetMetadataBase() {
        return new ArrayOfOptionSetMetadataBase();
    }

    /**
     * Create an instance of {@link ArrayOfManagedPropertyType }
     */
    public ArrayOfManagedPropertyType createArrayOfManagedPropertyType() {
        return new ArrayOfManagedPropertyType();
    }

    /**
     * Create an instance of {@link BooleanAttributeMetadata }
     */
    public BooleanAttributeMetadata createBooleanAttributeMetadata() {
        return new BooleanAttributeMetadata();
    }

    /**
     * Create an instance of {@link ArrayOfAttributeMetadata }
     */
    public ArrayOfAttributeMetadata createArrayOfAttributeMetadata() {
        return new ArrayOfAttributeMetadata();
    }

    /**
     * Create an instance of {@link IntegerAttributeMetadata }
     */
    public IntegerAttributeMetadata createIntegerAttributeMetadata() {
        return new IntegerAttributeMetadata();
    }

    /**
     * Create an instance of {@link ManagedPropertyMetadata }
     */
    public ManagedPropertyMetadata createManagedPropertyMetadata() {
        return new ManagedPropertyMetadata();
    }

    /**
     * Create an instance of {@link SecurityPrivilegeMetadata }
     */
    public SecurityPrivilegeMetadata createSecurityPrivilegeMetadata() {
        return new SecurityPrivilegeMetadata();
    }

    /**
     * Create an instance of {@link EnumAttributeMetadata }
     */
    public EnumAttributeMetadata createEnumAttributeMetadata() {
        return new EnumAttributeMetadata();
    }

    /**
     * Create an instance of {@link BigIntAttributeMetadata }
     */
    public BigIntAttributeMetadata createBigIntAttributeMetadata() {
        return new BigIntAttributeMetadata();
    }

    /**
     * Create an instance of {@link EntityMetadata }
     */
    public EntityMetadata createEntityMetadata() {
        return new EntityMetadata();
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link PicklistAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "PicklistAttributeMetadata")
    public JAXBElement<PicklistAttributeMetadata> createPicklistAttributeMetadata(PicklistAttributeMetadata value) {
        return new JAXBElement<PicklistAttributeMetadata>(_PicklistAttributeMetadata_QNAME, PicklistAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link StateOptionMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "StateOptionMetadata")
    public JAXBElement<StateOptionMetadata> createStateOptionMetadata(StateOptionMetadata value) {
        return new JAXBElement<StateOptionMetadata>(_StateOptionMetadata_QNAME, StateOptionMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link CascadeType }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "CascadeType")
    public JAXBElement<CascadeType> createCascadeType(CascadeType value) {
        return new JAXBElement<CascadeType>(_CascadeType_QNAME, CascadeType.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfRelationshipMetadataBase }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfRelationshipMetadataBase")
    public JAXBElement<ArrayOfRelationshipMetadataBase> createArrayOfRelationshipMetadataBase(ArrayOfRelationshipMetadataBase value) {
        return new JAXBElement<ArrayOfRelationshipMetadataBase>(_ArrayOfRelationshipMetadataBase_QNAME, ArrayOfRelationshipMetadataBase.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ManagedPropertyEvaluationPriority }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ManagedPropertyEvaluationPriority")
    public JAXBElement<ManagedPropertyEvaluationPriority> createManagedPropertyEvaluationPriority(ManagedPropertyEvaluationPriority value) {
        return new JAXBElement<ManagedPropertyEvaluationPriority>(_ManagedPropertyEvaluationPriority_QNAME, ManagedPropertyEvaluationPriority.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link AttributeRequiredLevelManagedProperty }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "AttributeRequiredLevelManagedProperty")
    public JAXBElement<AttributeRequiredLevelManagedProperty> createAttributeRequiredLevelManagedProperty(AttributeRequiredLevelManagedProperty value) {
        return new JAXBElement<AttributeRequiredLevelManagedProperty>(_AttributeRequiredLevelManagedProperty_QNAME, AttributeRequiredLevelManagedProperty.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link RelationshipType }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "RelationshipType")
    public JAXBElement<RelationshipType> createRelationshipType(RelationshipType value) {
        return new JAXBElement<RelationshipType>(_RelationshipType_QNAME, RelationshipType.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfSecurityPrivilegeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfSecurityPrivilegeMetadata")
    public JAXBElement<ArrayOfSecurityPrivilegeMetadata> createArrayOfSecurityPrivilegeMetadata(ArrayOfSecurityPrivilegeMetadata value) {
        return new JAXBElement<ArrayOfSecurityPrivilegeMetadata>(_ArrayOfSecurityPrivilegeMetadata_QNAME, ArrayOfSecurityPrivilegeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link StringFormat }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "StringFormat")
    public JAXBElement<StringFormat> createStringFormat(StringFormat value) {
        return new JAXBElement<StringFormat>(_StringFormat_QNAME, StringFormat.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link MemoAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "MemoAttributeMetadata")
    public JAXBElement<MemoAttributeMetadata> createMemoAttributeMetadata(MemoAttributeMetadata value) {
        return new JAXBElement<MemoAttributeMetadata>(_MemoAttributeMetadata_QNAME, MemoAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfManyToManyRelationshipMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfManyToManyRelationshipMetadata")
    public JAXBElement<ArrayOfManyToManyRelationshipMetadata> createArrayOfManyToManyRelationshipMetadata(ArrayOfManyToManyRelationshipMetadata value) {
        return new JAXBElement<ArrayOfManyToManyRelationshipMetadata>(_ArrayOfManyToManyRelationshipMetadata_QNAME, ArrayOfManyToManyRelationshipMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link AssociatedMenuGroup }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "AssociatedMenuGroup")
    public JAXBElement<AssociatedMenuGroup> createAssociatedMenuGroup(AssociatedMenuGroup value) {
        return new JAXBElement<AssociatedMenuGroup>(_AssociatedMenuGroup_QNAME, AssociatedMenuGroup.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link IntegerAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "IntegerAttributeMetadata")
    public JAXBElement<IntegerAttributeMetadata> createIntegerAttributeMetadata(IntegerAttributeMetadata value) {
        return new JAXBElement<IntegerAttributeMetadata>(_IntegerAttributeMetadata_QNAME, IntegerAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link SecurityPrivilegeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "SecurityPrivilegeMetadata")
    public JAXBElement<SecurityPrivilegeMetadata> createSecurityPrivilegeMetadata(SecurityPrivilegeMetadata value) {
        return new JAXBElement<SecurityPrivilegeMetadata>(_SecurityPrivilegeMetadata_QNAME, SecurityPrivilegeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link AssociatedMenuBehavior }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "AssociatedMenuBehavior")
    public JAXBElement<AssociatedMenuBehavior> createAssociatedMenuBehavior(AssociatedMenuBehavior value) {
        return new JAXBElement<AssociatedMenuBehavior>(_AssociatedMenuBehavior_QNAME, AssociatedMenuBehavior.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BooleanAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "BooleanAttributeMetadata")
    public JAXBElement<BooleanAttributeMetadata> createBooleanAttributeMetadata(BooleanAttributeMetadata value) {
        return new JAXBElement<BooleanAttributeMetadata>(_BooleanAttributeMetadata_QNAME, BooleanAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link IntegerFormat }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "IntegerFormat")
    public JAXBElement<IntegerFormat> createIntegerFormat(IntegerFormat value) {
        return new JAXBElement<IntegerFormat>(_IntegerFormat_QNAME, IntegerFormat.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link OptionSetMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "OptionSetMetadata")
    public JAXBElement<OptionSetMetadata> createOptionSetMetadata(OptionSetMetadata value) {
        return new JAXBElement<OptionSetMetadata>(_OptionSetMetadata_QNAME, OptionSetMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link StringAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "StringAttributeMetadata")
    public JAXBElement<StringAttributeMetadata> createStringAttributeMetadata(StringAttributeMetadata value) {
        return new JAXBElement<StringAttributeMetadata>(_StringAttributeMetadata_QNAME, StringAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ManagedPropertyType }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ManagedPropertyType")
    public JAXBElement<ManagedPropertyType> createManagedPropertyType(ManagedPropertyType value) {
        return new JAXBElement<ManagedPropertyType>(_ManagedPropertyType_QNAME, ManagedPropertyType.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link SecurityTypes }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "SecurityTypes")
    public JAXBElement<SecurityTypes> createSecurityTypes(SecurityTypes value) {
        return new JAXBElement<SecurityTypes>(_SecurityTypes_QNAME, SecurityTypes.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link StatusOptionMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "StatusOptionMetadata")
    public JAXBElement<StatusOptionMetadata> createStatusOptionMetadata(StatusOptionMetadata value) {
        return new JAXBElement<StatusOptionMetadata>(_StatusOptionMetadata_QNAME, StatusOptionMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ManagedPropertyAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ManagedPropertyAttributeMetadata")
    public JAXBElement<ManagedPropertyAttributeMetadata> createManagedPropertyAttributeMetadata(ManagedPropertyAttributeMetadata value) {
        return new JAXBElement<ManagedPropertyAttributeMetadata>(_ManagedPropertyAttributeMetadata_QNAME, ManagedPropertyAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfCascadeType }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfCascadeType")
    public JAXBElement<ArrayOfCascadeType> createArrayOfCascadeType(ArrayOfCascadeType value) {
        return new JAXBElement<ArrayOfCascadeType>(_ArrayOfCascadeType_QNAME, ArrayOfCascadeType.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfManagedPropertyMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfManagedPropertyMetadata")
    public JAXBElement<ArrayOfManagedPropertyMetadata> createArrayOfManagedPropertyMetadata(ArrayOfManagedPropertyMetadata value) {
        return new JAXBElement<ArrayOfManagedPropertyMetadata>(_ArrayOfManagedPropertyMetadata_QNAME, ArrayOfManagedPropertyMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link AssociatedMenuConfiguration }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "AssociatedMenuConfiguration")
    public JAXBElement<AssociatedMenuConfiguration> createAssociatedMenuConfiguration(AssociatedMenuConfiguration value) {
        return new JAXBElement<AssociatedMenuConfiguration>(_AssociatedMenuConfiguration_QNAME, AssociatedMenuConfiguration.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link EntityNameAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "EntityNameAttributeMetadata")
    public JAXBElement<EntityNameAttributeMetadata> createEntityNameAttributeMetadata(EntityNameAttributeMetadata value) {
        return new JAXBElement<EntityNameAttributeMetadata>(_EntityNameAttributeMetadata_QNAME, EntityNameAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfEntityMetadata }{@code >}}
     */

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ImeMode }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ImeMode")
    public JAXBElement<ImeMode> createImeMode(ImeMode value) {
        return new JAXBElement<ImeMode>(_ImeMode_QNAME, ImeMode.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ManagedPropertyOperation }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ManagedPropertyOperation")
    public JAXBElement<ManagedPropertyOperation> createManagedPropertyOperation(ManagedPropertyOperation value) {
        return new JAXBElement<ManagedPropertyOperation>(_ManagedPropertyOperation_QNAME, ManagedPropertyOperation.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfRelationshipType }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfRelationshipType")
    public JAXBElement<ArrayOfRelationshipType> createArrayOfRelationshipType(ArrayOfRelationshipType value) {
        return new JAXBElement<ArrayOfRelationshipType>(_ArrayOfRelationshipType_QNAME, ArrayOfRelationshipType.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link EntityMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "EntityMetadata")
    public JAXBElement<EntityMetadata> createEntityMetadata(EntityMetadata value) {
        return new JAXBElement<EntityMetadata>(_EntityMetadata_QNAME, EntityMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BigIntAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "BigIntAttributeMetadata")
    public JAXBElement<BigIntAttributeMetadata> createBigIntAttributeMetadata(BigIntAttributeMetadata value) {
        return new JAXBElement<BigIntAttributeMetadata>(_BigIntAttributeMetadata_QNAME, BigIntAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link EnumAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "EnumAttributeMetadata")
    public JAXBElement<EnumAttributeMetadata> createEnumAttributeMetadata(EnumAttributeMetadata value) {
        return new JAXBElement<EnumAttributeMetadata>(_EnumAttributeMetadata_QNAME, EnumAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfAttributeMetadata")
    public JAXBElement<ArrayOfAttributeMetadata> createArrayOfAttributeMetadata(ArrayOfAttributeMetadata value) {
        return new JAXBElement<ArrayOfAttributeMetadata>(_ArrayOfAttributeMetadata_QNAME, ArrayOfAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfManagedPropertyType }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfManagedPropertyType")
    public JAXBElement<ArrayOfManagedPropertyType> createArrayOfManagedPropertyType(ArrayOfManagedPropertyType value) {
        return new JAXBElement<ArrayOfManagedPropertyType>(_ArrayOfManagedPropertyType_QNAME, ArrayOfManagedPropertyType.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link RelationshipMetadataBase }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "RelationshipMetadataBase")
    public JAXBElement<RelationshipMetadataBase> createRelationshipMetadataBase(RelationshipMetadataBase value) {
        return new JAXBElement<RelationshipMetadataBase>(_RelationshipMetadataBase_QNAME, RelationshipMetadataBase.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link MetadataBase }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "MetadataBase")
    public JAXBElement<MetadataBase> createMetadataBase(MetadataBase value) {
        return new JAXBElement<MetadataBase>(_MetadataBase_QNAME, MetadataBase.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfIntegerFormat }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfIntegerFormat")
    public JAXBElement<ArrayOfIntegerFormat> createArrayOfIntegerFormat(ArrayOfIntegerFormat value) {
        return new JAXBElement<ArrayOfIntegerFormat>(_ArrayOfIntegerFormat_QNAME, ArrayOfIntegerFormat.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfDateTimeFormat }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfDateTimeFormat")
    public JAXBElement<ArrayOfDateTimeFormat> createArrayOfDateTimeFormat(ArrayOfDateTimeFormat value) {
        return new JAXBElement<ArrayOfDateTimeFormat>(_ArrayOfDateTimeFormat_QNAME, ArrayOfDateTimeFormat.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link StatusAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "StatusAttributeMetadata")
    public JAXBElement<StatusAttributeMetadata> createStatusAttributeMetadata(StatusAttributeMetadata value) {
        return new JAXBElement<StatusAttributeMetadata>(_StatusAttributeMetadata_QNAME, StatusAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link AttributeTypeCode }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "AttributeTypeCode")
    public JAXBElement<AttributeTypeCode> createAttributeTypeCode(AttributeTypeCode value) {
        return new JAXBElement<AttributeTypeCode>(_AttributeTypeCode_QNAME, AttributeTypeCode.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link AttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "AttributeMetadata")
    public JAXBElement<AttributeMetadata> createAttributeMetadata(AttributeMetadata value) {
        return new JAXBElement<AttributeMetadata>(_AttributeMetadata_QNAME, AttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfOwnershipTypes }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfOwnershipTypes")
    public JAXBElement<ArrayOfOwnershipTypes> createArrayOfOwnershipTypes(ArrayOfOwnershipTypes value) {
        return new JAXBElement<ArrayOfOwnershipTypes>(_ArrayOfOwnershipTypes_QNAME, ArrayOfOwnershipTypes.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfAttributeTypeCode }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfAttributeTypeCode")
    public JAXBElement<ArrayOfAttributeTypeCode> createArrayOfAttributeTypeCode(ArrayOfAttributeTypeCode value) {
        return new JAXBElement<ArrayOfAttributeTypeCode>(_ArrayOfAttributeTypeCode_QNAME, ArrayOfAttributeTypeCode.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link LookupAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "LookupAttributeMetadata")
    public JAXBElement<LookupAttributeMetadata> createLookupAttributeMetadata(LookupAttributeMetadata value) {
        return new JAXBElement<LookupAttributeMetadata>(_LookupAttributeMetadata_QNAME, LookupAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link OptionSetType }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "OptionSetType")
    public JAXBElement<OptionSetType> createOptionSetType(OptionSetType value) {
        return new JAXBElement<OptionSetType>(_OptionSetType_QNAME, OptionSetType.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link AttributeRequiredLevel }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "AttributeRequiredLevel")
    public JAXBElement<AttributeRequiredLevel> createAttributeRequiredLevel(AttributeRequiredLevel value) {
        return new JAXBElement<AttributeRequiredLevel>(_AttributeRequiredLevel_QNAME, AttributeRequiredLevel.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfSecurityTypes }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfSecurityTypes")
    public JAXBElement<ArrayOfSecurityTypes> createArrayOfSecurityTypes(ArrayOfSecurityTypes value) {
        return new JAXBElement<ArrayOfSecurityTypes>(_ArrayOfSecurityTypes_QNAME, ArrayOfSecurityTypes.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfImeMode }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfImeMode")
    public JAXBElement<ArrayOfImeMode> createArrayOfImeMode(ArrayOfImeMode value) {
        return new JAXBElement<ArrayOfImeMode>(_ArrayOfImeMode_QNAME, ArrayOfImeMode.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DoubleAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "DoubleAttributeMetadata")
    public JAXBElement<DoubleAttributeMetadata> createDoubleAttributeMetadata(DoubleAttributeMetadata value) {
        return new JAXBElement<DoubleAttributeMetadata>(_DoubleAttributeMetadata_QNAME, DoubleAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfStringFormat }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfStringFormat")
    public JAXBElement<ArrayOfStringFormat> createArrayOfStringFormat(ArrayOfStringFormat value) {
        return new JAXBElement<ArrayOfStringFormat>(_ArrayOfStringFormat_QNAME, ArrayOfStringFormat.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link StateAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "StateAttributeMetadata")
    public JAXBElement<StateAttributeMetadata> createStateAttributeMetadata(StateAttributeMetadata value) {
        return new JAXBElement<StateAttributeMetadata>(_StateAttributeMetadata_QNAME, StateAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfManagedPropertyEvaluationPriority }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfManagedPropertyEvaluationPriority")
    public JAXBElement<ArrayOfManagedPropertyEvaluationPriority> createArrayOfManagedPropertyEvaluationPriority(ArrayOfManagedPropertyEvaluationPriority value) {
        return new JAXBElement<ArrayOfManagedPropertyEvaluationPriority>(_ArrayOfManagedPropertyEvaluationPriority_QNAME, ArrayOfManagedPropertyEvaluationPriority.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfAttributeRequiredLevel }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfAttributeRequiredLevel")
    public JAXBElement<ArrayOfAttributeRequiredLevel> createArrayOfAttributeRequiredLevel(ArrayOfAttributeRequiredLevel value) {
        return new JAXBElement<ArrayOfAttributeRequiredLevel>(_ArrayOfAttributeRequiredLevel_QNAME, ArrayOfAttributeRequiredLevel.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfManagedPropertyOperation }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfManagedPropertyOperation")
    public JAXBElement<ArrayOfManagedPropertyOperation> createArrayOfManagedPropertyOperation(ArrayOfManagedPropertyOperation value) {
        return new JAXBElement<ArrayOfManagedPropertyOperation>(_ArrayOfManagedPropertyOperation_QNAME, ArrayOfManagedPropertyOperation.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link OwnershipTypes }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "OwnershipTypes")
    public JAXBElement<OwnershipTypes> createOwnershipTypes(OwnershipTypes value) {
        return new JAXBElement<OwnershipTypes>(_OwnershipTypes_QNAME, OwnershipTypes.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link EntityFilters }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "EntityFilters")
    public JAXBElement<EntityFilters> createEntityFilters(EntityFilters value) {
        return new JAXBElement<EntityFilters>(_EntityFilters_QNAME, EntityFilters.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DateTimeFormat }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "DateTimeFormat")
    public JAXBElement<DateTimeFormat> createDateTimeFormat(DateTimeFormat value) {
        return new JAXBElement<DateTimeFormat>(_DateTimeFormat_QNAME, DateTimeFormat.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link PrivilegeType }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "PrivilegeType")
    public JAXBElement<PrivilegeType> createPrivilegeType(PrivilegeType value) {
        return new JAXBElement<PrivilegeType>(_PrivilegeType_QNAME, PrivilegeType.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfOptionMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfOptionMetadata")
    public JAXBElement<ArrayOfOptionMetadata> createArrayOfOptionMetadata(ArrayOfOptionMetadata value) {
        return new JAXBElement<ArrayOfOptionMetadata>(_ArrayOfOptionMetadata_QNAME, ArrayOfOptionMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link OptionMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "OptionMetadata")
    public JAXBElement<OptionMetadata> createOptionMetadata(OptionMetadata value) {
        return new JAXBElement<OptionMetadata>(_OptionMetadata_QNAME, OptionMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ManyToManyRelationshipMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ManyToManyRelationshipMetadata")
    public JAXBElement<ManyToManyRelationshipMetadata> createManyToManyRelationshipMetadata(ManyToManyRelationshipMetadata value) {
        return new JAXBElement<ManyToManyRelationshipMetadata>(_ManyToManyRelationshipMetadata_QNAME, ManyToManyRelationshipMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link MoneyAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "MoneyAttributeMetadata")
    public JAXBElement<MoneyAttributeMetadata> createMoneyAttributeMetadata(MoneyAttributeMetadata value) {
        return new JAXBElement<MoneyAttributeMetadata>(_MoneyAttributeMetadata_QNAME, MoneyAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link OptionSetMetadataBase }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "OptionSetMetadataBase")
    public JAXBElement<OptionSetMetadataBase> createOptionSetMetadataBase(OptionSetMetadataBase value) {
        return new JAXBElement<OptionSetMetadataBase>(_OptionSetMetadataBase_QNAME, OptionSetMetadataBase.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link OneToManyRelationshipMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "OneToManyRelationshipMetadata")
    public JAXBElement<OneToManyRelationshipMetadata> createOneToManyRelationshipMetadata(OneToManyRelationshipMetadata value) {
        return new JAXBElement<OneToManyRelationshipMetadata>(_OneToManyRelationshipMetadata_QNAME, OneToManyRelationshipMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link CascadeConfiguration }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "CascadeConfiguration")
    public JAXBElement<CascadeConfiguration> createCascadeConfiguration(CascadeConfiguration value) {
        return new JAXBElement<CascadeConfiguration>(_CascadeConfiguration_QNAME, CascadeConfiguration.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DateTimeAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "DateTimeAttributeMetadata")
    public JAXBElement<DateTimeAttributeMetadata> createDateTimeAttributeMetadata(DateTimeAttributeMetadata value) {
        return new JAXBElement<DateTimeAttributeMetadata>(_DateTimeAttributeMetadata_QNAME, DateTimeAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfOptionSetMetadataBase }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfOptionSetMetadataBase")
    public JAXBElement<ArrayOfOptionSetMetadataBase> createArrayOfOptionSetMetadataBase(ArrayOfOptionSetMetadataBase value) {
        return new JAXBElement<ArrayOfOptionSetMetadataBase>(_ArrayOfOptionSetMetadataBase_QNAME, ArrayOfOptionSetMetadataBase.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ManagedPropertyMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ManagedPropertyMetadata")
    public JAXBElement<ManagedPropertyMetadata> createManagedPropertyMetadata(ManagedPropertyMetadata value) {
        return new JAXBElement<ManagedPropertyMetadata>(_ManagedPropertyMetadata_QNAME, ManagedPropertyMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link DecimalAttributeMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "DecimalAttributeMetadata")
    public JAXBElement<DecimalAttributeMetadata> createDecimalAttributeMetadata(DecimalAttributeMetadata value) {
        return new JAXBElement<DecimalAttributeMetadata>(_DecimalAttributeMetadata_QNAME, DecimalAttributeMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link BooleanOptionSetMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "BooleanOptionSetMetadata")
    public JAXBElement<BooleanOptionSetMetadata> createBooleanOptionSetMetadata(BooleanOptionSetMetadata value) {
        return new JAXBElement<BooleanOptionSetMetadata>(_BooleanOptionSetMetadata_QNAME, BooleanOptionSetMetadata.class, null, value);
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfOneToManyRelationshipMetadata }{@code >}}
     */
    @XmlElementDecl(namespace = "http://schemas.microsoft.com/xrm/2011/Metadata", name = "ArrayOfOneToManyRelationshipMetadata")
    public JAXBElement<ArrayOfOneToManyRelationshipMetadata> createArrayOfOneToManyRelationshipMetadata(ArrayOfOneToManyRelationshipMetadata value) {
        return new JAXBElement<ArrayOfOneToManyRelationshipMetadata>(_ArrayOfOneToManyRelationshipMetadata_QNAME, ArrayOfOneToManyRelationshipMetadata.class, null, value);
    }
}


public String getName() {
            return name;
        }

package javax.sound.sampled;

/**
 * Ports are simple lines for input or output of audio to or from audio devices.
 * Common examples of ports that act as source lines (mixer inputs) include the
 * microphone, line input, and CD-ROM drive. Ports that act as target lines
 * (mixer outputs) include the speaker, headphone, and line output. You can
 * access port using a {@link Port.Info} object.
 *
 * @author Kara Kytle
 * @since 1.3
 */
public interface Port extends Line {

    /**
     * The {@code Port.Info} class extends {@code Line.Info} with additional
     * information specific to ports, including the port's name and whether it
     * is a source or a target for its mixer. By definition, a port acts as
     * either a source or a target to its mixer, but not both. (Audio input
     * ports are sources; audio output ports are targets.)
     * <p>
     * To learn what ports are available, you can retrieve port info objects
     * through the {@link Mixer#getSourceLineInfo getSourceLineInfo} and
     * {@link Mixer#getTargetLineInfo getTargetLineInfo} methods of the
     * {@code Mixer} interface. Instances of the {@code Port.Info} class may
     * also be constructed and used to obtain lines matching the parameters
     * specified in the {@code Port.Info} object.
     *
     * @author Kara Kytle
     * @since 1.3
     */
    class Info extends Line.Info {

        // AUDIO PORT TYPE DEFINES
        // SOURCE PORTS
        /**
         * A type of port that gets audio from a built-in microphone or a
         * microphone jack.
         */
        public static final Info MICROPHONE = new Info(Port.class, "MICROPHONE", true);

        /**
         * A type of port that gets audio from a line-level audio input jack.
         */
        public static final Info LINE_IN = new Info(Port.class, "LINE_IN", true);

        /**
         * A type of port that gets audio from a CD-ROM drive.
         */
        public static final Info COMPACT_DISC = new Info(Port.class, "COMPACT_DISC", true);

        // TARGET PORTS
        /**
         * A type of port that sends audio to a built-in speaker or a speaker
         * jack.
         */
        public static final Info SPEAKER = new Info(Port.class, "SPEAKER", false);

        /**
         * A type of port that sends audio to a headphone jack.
         */
        public static final Info HEADPHONE = new Info(Port.class, "HEADPHONE", false);

        /**
         * A type of port that sends audio to a line-level audio output jack.
         */
        public static final Info LINE_OUT = new Info(Port.class, "LINE_OUT", false);

        // telephone
        // DAT
        // DVD
        /**
         * The string that names the port.
         */
        private final String name;

        /**
         * Whether this port is source or not.
         */
        private final boolean isSource;

        /**
         * Constructs a port's info object from the information given. This
         * constructor is typically used by an implementation of Java Sound to
         * describe a supported line.
         *
         * @param  lineClass the class of the port described by the info object
         * @param  name the string that names the port
         * @param  isSource {@code true} if the port is a source port (such as a
         *         microphone), {@code false} if the port is a target port (such
         *         as a speaker)
         */
        public Info(Class<?> lineClass, String name, boolean isSource) {
            super(lineClass);
            this.name = name;
            this.isSource = isSource;
        }

        /**
         * Obtains the name of the port.
         *
         * @return the string that names the port
         */

        /**
         * Indicates whether the port is a source or a target for its mixer.
         *
         * @return {@code true} if the port is a source port (such as a
         *         microphone), {@code false} if the port is a target port (such
         *         as a speaker)
         */
        public boolean isSource() {
            return isSource;
        }

        /**
         * Indicates whether this info object specified matches this one. To
         * match, the match requirements of the superclass must be met and the
         * types must be equal.
         *
         * @param  info the info object for which the match is queried
         * @return {@code true} if the specified object matches this one,
         *         {@code false} otherwise
         */
        @Override
        public boolean matches(Line.Info info) {
            if (!(super.matches(info))) {
                return false;
            }
            if (!(name.equals(((Info) info).getName()))) {
                return false;
            }
            if (!(isSource == ((Info) info).isSource())) {
                return false;
            }
            return true;
        }

        /**
         * Indicates whether the specified object is equal to this info object,
         * returning {@code true} if the objects are the same.
         *
         * @param  obj the reference object with which to compare
         * @return {@code true} if the specified object is equal to this info
         *         object; {@code false} otherwise
         */
        @Override
        public final boolean equals(Object obj) {
            return super.equals(obj);
        }

        /**
         * Returns a hash code value for this info object.
         *
         * @return a hash code value for this info object
         */
        @Override
        public final int hashCode() {
            return super.hashCode();
        }

        /**
         * Provides a {@code String} representation of the port.
         *
         * @return a string that describes the port
         */
        @Override
        public final String toString() {
            return (name + ((isSource == true) ? " source" : " target") + " port");
        }
    }
}