/*-
 * #%L
 * This file is part of "Apromore Community".
 *
 * Copyright (C) 2013 - 2017 Queensland University of Technology.
 * %%
 * Copyright (C) 2018 - 2020 The University of Melbourne.
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Lesser Public License for more details.
 *
 * You should have received a copy of the GNU General Lesser Public
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
 * #L%
 */
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.10 in JDK 6 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2011.04.15 at 11:16:00 AM EST 
//

package epml;

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 de.epml 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 _Epml_QNAME = new QName("http://www.epml.de",
			"epml");
	private final static QName _TypeEPCXor_QNAME = new QName("", "xor");
	private final static QName _TypeEPCRange_QNAME = new QName("", "range");
	private final static QName _TypeEPCOr_QNAME = new QName("", "or");
	private final static QName _TypeEPCProcessInterface_QNAME = new QName("",
			"processInterface");
	private final static QName _TypeEPCConfigurationGuideline_QNAME = new QName(
			"", "configurationGuideline");
	private final static QName _TypeEPCObject_QNAME = new QName("", "object");
	private final static QName _TypeEPCAnd_QNAME = new QName("", "and");
	private final static QName _TypeEPCFunction_QNAME = new QName("",
			"function");
	private final static QName _TypeEPCArc_QNAME = new QName("", "arc");
	private final static QName _TypeEPCEvent_QNAME = new QName("", "event");
	private final static QName _TypeEPCConfigurationRequirement_QNAME = new QName(
			"", "configurationRequirement");
	private final static QName _TypeEPCRole_QNAME = new QName("", "role");
	private final static QName _TypeEPCConfigurationOrder_QNAME = new QName("",
			"configurationOrder");

	/**
	 * Create a new ObjectFactory that can be used to create new instances of
	 * schema derived classes for package: de.epml
	 * 
	 */
	public ObjectFactory() {
	}

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

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

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

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

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

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

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

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

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

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

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

	/**
	 * Create an instance of {@link TypeCOR.Configuration }
	 * 
	 */
	public TypeCOR.Configuration createTypeCORConfiguration() {
		return new TypeCOR.Configuration();
	}

	/**
	 * Create an instance of {@link TypeCXOR.Configuration }
	 * 
	 */
	public TypeCXOR.Configuration createTypeCXORConfiguration() {
		return new TypeCXOR.Configuration();
	}

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

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

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

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

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

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

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

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

	/**
	 * Create an instance of {@link TypeCFunction.Configuration }
	 * 
	 */
	public TypeCFunction.Configuration createTypeCFunctionConfiguration() {
		return new TypeCFunction.Configuration();
	}

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

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

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

	/**
	 * Create an instance of {@link TypeCAnd.Configuration }
	 * 
	 */
	public TypeCAnd.Configuration createTypeCAndConfiguration() {
		return new TypeCAnd.Configuration();
	}

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

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

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

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

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

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

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

	/**
	 * Create an instance of {@link TypeCObject.Configuration }
	 * 
	 */
	public TypeCObject.Configuration createTypeCObjectConfiguration() {
		return new TypeCObject.Configuration();
	}

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

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

	/**
	 * Create an instance of {@link TypeCRange.Configuration }
	 * 
	 */
	public TypeCRange.Configuration createTypeCRangeConfiguration() {
		return new TypeCRange.Configuration();
	}

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

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

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

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

	/**
	 * Create an instance of {@link TypeCRole.Configuration }
	 * 
	 */
	public TypeCRole.Configuration createTypeCRoleConfiguration() {
		return new TypeCRole.Configuration();
	}

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

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

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

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

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

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

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

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeEPML }
	 * {@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "http://www.epml.de", name = "epml")
	public JAXBElement<TypeEPML> createEpml(TypeEPML value) {
		return new JAXBElement<TypeEPML>(_Epml_QNAME, TypeEPML.class, null,
				value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeXOR }{@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "xor", scope = TypeEPC.class)
	public JAXBElement<TypeXOR> createTypeEPCXor(TypeXOR value) {
		return new JAXBElement<TypeXOR>(_TypeEPCXor_QNAME, TypeXOR.class,
				TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeRANGE }
	 * {@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "range", scope = TypeEPC.class)
	public JAXBElement<TypeRANGE> createTypeEPCRange(TypeRANGE value) {
		return new JAXBElement<TypeRANGE>(_TypeEPCRange_QNAME, TypeRANGE.class,
				TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeOR }{@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "or", scope = TypeEPC.class)
	public JAXBElement<TypeOR> createTypeEPCOr(TypeOR value) {
		return new JAXBElement<TypeOR>(_TypeEPCOr_QNAME, TypeOR.class,
				TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}
	 * {@link TypeProcessInterface }{@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "processInterface", scope = TypeEPC.class)
	public JAXBElement<TypeProcessInterface> createTypeEPCProcessInterface(
			TypeProcessInterface value) {
		return new JAXBElement<TypeProcessInterface>(
				_TypeEPCProcessInterface_QNAME, TypeProcessInterface.class,
				TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeCReq }
	 * {@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "configurationGuideline", scope = TypeEPC.class)
	public JAXBElement<TypeCReq> createTypeEPCConfigurationGuideline(
			TypeCReq value) {
		return new JAXBElement<TypeCReq>(_TypeEPCConfigurationGuideline_QNAME,
				TypeCReq.class, TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeObject }
	 * {@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "object", scope = TypeEPC.class)
	public JAXBElement<TypeObject> createTypeEPCObject(TypeObject value) {
		return new JAXBElement<TypeObject>(_TypeEPCObject_QNAME,
				TypeObject.class, TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeAND }{@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "and", scope = TypeEPC.class)
	public JAXBElement<TypeAND> createTypeEPCAnd(TypeAND value) {
		return new JAXBElement<TypeAND>(_TypeEPCAnd_QNAME, TypeAND.class,
				TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeFunction }
	 * {@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "function", scope = TypeEPC.class)
	public JAXBElement<TypeFunction> createTypeEPCFunction(TypeFunction value) {
		return new JAXBElement<TypeFunction>(_TypeEPCFunction_QNAME,
				TypeFunction.class, TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeArc }{@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "arc", scope = TypeEPC.class)
	public JAXBElement<TypeArc> createTypeEPCArc(TypeArc value) {
		return new JAXBElement<TypeArc>(_TypeEPCArc_QNAME, TypeArc.class,
				TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeEvent }
	 * {@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "event", scope = TypeEPC.class)
	public JAXBElement<TypeEvent> createTypeEPCEvent(TypeEvent value) {
		return new JAXBElement<TypeEvent>(_TypeEPCEvent_QNAME, TypeEvent.class,
				TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeCReq }
	 * {@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "configurationRequirement", scope = TypeEPC.class)
	public JAXBElement<TypeCReq> createTypeEPCConfigurationRequirement(
			TypeCReq value) {
		return new JAXBElement<TypeCReq>(
				_TypeEPCConfigurationRequirement_QNAME, TypeCReq.class,
				TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeRole }
	 * {@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "role", scope = TypeEPC.class)
	public JAXBElement<TypeRole> createTypeEPCRole(TypeRole value) {
		return new JAXBElement<TypeRole>(_TypeEPCRole_QNAME, TypeRole.class,
				TypeEPC.class, value);
	}

	/**
	 * Create an instance of {@link JAXBElement }{@code <}{@link TypeCOrder }
	 * {@code >}
	 * 
	 */
	@XmlElementDecl(namespace = "", name = "configurationOrder", scope = TypeEPC.class)
	public JAXBElement<TypeCOrder> createTypeEPCConfigurationOrder(
			TypeCOrder value) {
		return new JAXBElement<TypeCOrder>(_TypeEPCConfigurationOrder_QNAME,
				TypeCOrder.class, TypeEPC.class, value);
	}

}
