
package at.vvo.omds.types.omds3Types.r1_10_0.common;

import java.util.ArrayList;
import java.util.List;
import javax.annotation.Generated;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * Information zu einem einzelnen Dokument
 * 
 * <p>Java-Klasse für DokumentenReferenz_Type complex type.
 * 
 * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
 * 
 * <pre>
 * &lt;complexType name="DokumentenReferenz_Type"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="Id" type="{urn:omds3CommonServiceTypes-1-1-0}ElementIdType"/&gt;
 *         &lt;element name="Name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="DocumentType" type="{urn:omds3CommonServiceTypes-1-1-0}DocumentType"/&gt;
 *         &lt;element name="Mimetype" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="Groesse" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/&gt;
 *         &lt;element name="Datum" type="{urn:omds20}Datum-Zeit"/&gt;
 *         &lt;element name="ObjektSpezifikation" type="{urn:omds3CommonServiceTypes-1-1-0}ObjektSpezifikation_Type" minOccurs="0"/&gt;
 *         &lt;element name="ReferenzWeitereDokumente" type="{urn:omds3CommonServiceTypes-1-1-0}DokumentenReferenz_Type" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="ZusaetzlicheAngabe" type="{urn:omds3CommonServiceTypes-1-1-0}ZusaetzlicheDokumentendaten_Type" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="Kontrollwert" minOccurs="0"&gt;
 *           &lt;complexType&gt;
 *             &lt;simpleContent&gt;
 *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
 *                 &lt;attribute name="Typ" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *               &lt;/extension&gt;
 *             &lt;/simpleContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DokumentenReferenz_Type", propOrder = {
    "id",
    "name",
    "documentType",
    "mimetype",
    "groesse",
    "datum",
    "objektSpezifikation",
    "referenzWeitereDokumente",
    "zusaetzlicheAngabe",
    "kontrollwert"
})
@Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
public class DokumentenReferenzType {

    @XmlElement(name = "Id", required = true)
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected ElementIdType id;
    @XmlElement(name = "Name", required = true)
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected String name;
    @XmlElement(name = "DocumentType")
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected int documentType;
    @XmlElement(name = "Mimetype")
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected String mimetype;
    @XmlElement(name = "Groesse")
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected Long groesse;
    @XmlElement(name = "Datum", required = true)
    @XmlSchemaType(name = "dateTime")
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected XMLGregorianCalendar datum;
    @XmlElement(name = "ObjektSpezifikation")
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected ObjektSpezifikationType objektSpezifikation;
    @XmlElement(name = "ReferenzWeitereDokumente")
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected List<DokumentenReferenzType> referenzWeitereDokumente;
    @XmlElement(name = "ZusaetzlicheAngabe")
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected List<ZusaetzlicheDokumentendatenType> zusaetzlicheAngabe;
    @XmlElement(name = "Kontrollwert")
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    protected DokumentenReferenzType.Kontrollwert kontrollwert;

    /**
     * Ruft den Wert der id-Eigenschaft ab.
     * 
     * @return
     *     possible object is
     *     {@link ElementIdType }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public ElementIdType getId() {
        return id;
    }

    /**
     * Legt den Wert der id-Eigenschaft fest.
     * 
     * @param value
     *     allowed object is
     *     {@link ElementIdType }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public void setId(ElementIdType value) {
        this.id = value;
    }

    /**
     * Ruft den Wert der name-Eigenschaft ab.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public String getName() {
        return name;
    }

    /**
     * Legt den Wert der name-Eigenschaft fest.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public void setName(String value) {
        this.name = value;
    }

    /**
     * Ruft den Wert der documentType-Eigenschaft ab.
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public int getDocumentType() {
        return documentType;
    }

    /**
     * Legt den Wert der documentType-Eigenschaft fest.
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public void setDocumentType(int value) {
        this.documentType = value;
    }

    /**
     * Ruft den Wert der mimetype-Eigenschaft ab.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public String getMimetype() {
        return mimetype;
    }

    /**
     * Legt den Wert der mimetype-Eigenschaft fest.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public void setMimetype(String value) {
        this.mimetype = value;
    }

    /**
     * Ruft den Wert der groesse-Eigenschaft ab.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public Long getGroesse() {
        return groesse;
    }

    /**
     * Legt den Wert der groesse-Eigenschaft fest.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public void setGroesse(Long value) {
        this.groesse = value;
    }

    /**
     * Ruft den Wert der datum-Eigenschaft ab.
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public XMLGregorianCalendar getDatum() {
        return datum;
    }

    /**
     * Legt den Wert der datum-Eigenschaft fest.
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public void setDatum(XMLGregorianCalendar value) {
        this.datum = value;
    }

    /**
     * Ruft den Wert der objektSpezifikation-Eigenschaft ab.
     * 
     * @return
     *     possible object is
     *     {@link ObjektSpezifikationType }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public ObjektSpezifikationType getObjektSpezifikation() {
        return objektSpezifikation;
    }

    /**
     * Legt den Wert der objektSpezifikation-Eigenschaft fest.
     * 
     * @param value
     *     allowed object is
     *     {@link ObjektSpezifikationType }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public void setObjektSpezifikation(ObjektSpezifikationType value) {
        this.objektSpezifikation = value;
    }

    /**
     * Gets the value of the referenzWeitereDokumente property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the referenzWeitereDokumente property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getReferenzWeitereDokumente().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link DokumentenReferenzType }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public List<DokumentenReferenzType> getReferenzWeitereDokumente() {
        if (referenzWeitereDokumente == null) {
            referenzWeitereDokumente = new ArrayList<DokumentenReferenzType>();
        }
        return this.referenzWeitereDokumente;
    }

    /**
     * Gets the value of the zusaetzlicheAngabe property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the zusaetzlicheAngabe property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getZusaetzlicheAngabe().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ZusaetzlicheDokumentendatenType }
     * 
     * 
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public List<ZusaetzlicheDokumentendatenType> getZusaetzlicheAngabe() {
        if (zusaetzlicheAngabe == null) {
            zusaetzlicheAngabe = new ArrayList<ZusaetzlicheDokumentendatenType>();
        }
        return this.zusaetzlicheAngabe;
    }

    /**
     * Ruft den Wert der kontrollwert-Eigenschaft ab.
     * 
     * @return
     *     possible object is
     *     {@link DokumentenReferenzType.Kontrollwert }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public DokumentenReferenzType.Kontrollwert getKontrollwert() {
        return kontrollwert;
    }

    /**
     * Legt den Wert der kontrollwert-Eigenschaft fest.
     * 
     * @param value
     *     allowed object is
     *     {@link DokumentenReferenzType.Kontrollwert }
     *     
     */
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public void setKontrollwert(DokumentenReferenzType.Kontrollwert value) {
        this.kontrollwert = value;
    }


    /**
     * <p>Java-Klasse für anonymous complex type.
     * 
     * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;simpleContent&gt;
     *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
     *       &lt;attribute name="Typ" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
     *     &lt;/extension&gt;
     *   &lt;/simpleContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "value"
    })
    @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
    public static class Kontrollwert {

        @XmlValue
        @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
        protected String value;
        @XmlAttribute(name = "Typ", namespace = "urn:omds3CommonServiceTypes-1-1-0")
        @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
        protected String typ;

        /**
         * Ruft den Wert der value-Eigenschaft ab.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
        public String getValue() {
            return value;
        }

        /**
         * Legt den Wert der value-Eigenschaft fest.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
        public void setValue(String value) {
            this.value = value;
        }

        /**
         * Ruft den Wert der typ-Eigenschaft ab.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
        public String getTyp() {
            return typ;
        }

        /**
         * Legt den Wert der typ-Eigenschaft fest.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        @Generated(value = "com.sun.tools.xjc.Driver", comments = "JAXB RI v2.3.5", date = "2023-12-12T17:37:24+01:00")
        public void setTyp(String value) {
            this.typ = value;
        }

    }

}
