def toTag(self, output):
        ''' This methods adds all data of this canteen as canteen xml tag
        to the given xml Document.
        :meth:`toXMLFeed` uses this method to create the XML Feed. So there is
        normally no need to call it directly.
        :param output: XML Document to which the data should be added
        :type output: xml.dom.DOMImplementation.createDocument
        '''
        canteen = output.createElement('canteen')
        if self._name is not None:
            canteen.appendChild(self._buildStringTag('name', self._name, output))
        if self._address is not None:
            canteen.appendChild(self._buildStringTag('address', self._address, output))
        if self._city is not None:
            canteen.appendChild(self._buildStringTag('city', self._city, output))
        if self._phone is not None:
            canteen.appendChild(self._buildStringTag('phone', self._phone, output))
        if self._email is not None:
            canteen.appendChild(self._buildStringTag('email', self._email, output))
        if self._location is not None:
            canteen.appendChild(self._buildLocationTag(self._location, output))
        if self._availability is not None:
            canteen.appendChild(self._buildStringTag('availability', self._availability, output))
        for feed in sorted(self.feeds, key=lambda v: v.priority):
            canteen.appendChild(feed.toTag(output))
        for date in sorted(self._days.keys()):
            day = output.createElement('day')
            day.setAttribute('date', str(date))
            if self._days[date] is False:
                closed = output.createElement('closed')
                day.appendChild(closed)
                canteen.appendChild(day)
                continue
            for categoryname in self._days[date]:
                day.appendChild(self._buildCategoryTag(
                    categoryname, self._days[date][categoryname], output))
            canteen.appendChild(day)
        return canteen