<commit_before><?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://openmensa.org/open-mensa-v2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://openmensa.org/open-mensa-v2" elementFormDefault="qualified">

    <xs:element name="openmensa" type="openmensaType"></xs:element>
    
    <xs:complexType name="openmensaType">
        <xs:annotation>
        	<xs:documentation>This is the required OpenMense root element always accompanied by a version attribute that explicitly tells the feed's version to the parser.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="version" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                	<xs:documentation>Defines the version of the parser. It has nothing to do with the canteen or its menu.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
            		<xs:restriction base="xs:string">
            			<xs:minLength value="0"></xs:minLength>
            			<xs:maxLength value="63"></xs:maxLength>
            		</xs:restriction>
            	</xs:simpleType>
            </xs:element>
            <xs:element name="canteen" type="canteenType"></xs:element>
        </xs:sequence>
        <xs:attribute name="version" use="required">
        	<xs:annotation>
        		<xs:documentation>The version should be equal to 2.0 or 2.1.</xs:documentation>
        	</xs:annotation>
        	<xs:simpleType>
        		<xs:restriction base="xs:float">
        			<xs:enumeration value="2.0"></xs:enumeration>
        			<xs:enumeration value="2.1"></xs:enumeration>
        		</xs:restriction>
        	</xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="canteenType">
        <xs:annotation>
        	<xs:documentation>This stands for a single canteen.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
        	<xs:element name="day" type="dayType" maxOccurs="unbounded"
        		minOccurs="0">
        		<xs:annotation>
        			<xs:documentation>All meals of all categories are grouped by day. There may be no day elements at all - that's ok because for some days there are no meals.</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="name" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the canteen name</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="address" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the (postal) address</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="city" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the user-relevant city of this canteen</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="phone" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the phone number to contact the canteen (we highly recommend following the E.123 standard)</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="email" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the email address to contact the canteen (we highly recommend following the E.123 standard)</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="location" type="locationType"
        		minOccurs="0" maxOccurs="1" >
        		<xs:annotation>
        			<xs:documentation>Metadata: the physical location of the canteen</xs:documentation>
        		</xs:annotation></xs:element>
        	<xs:element name="availability" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                	<xs:documentation>Metadata: indicate whether the canteen can be used by everyone (public) or not (restricted)</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
        			<xs:restriction base="xs:string">
        				<xs:enumeration value="public"></xs:enumeration>
        				<xs:enumeration value="restricted"></xs:enumeration>
        			</xs:restriction>
        		</xs:simpleType>
        	</xs:element>
        	<xs:element name="times" type="timesType" minOccurs="0" maxOccurs="1"></xs:element>
        	<xs:element name="feed" type="feedType" minOccurs="0" maxOccurs="unbounded"></xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="dayType">
        <xs:choice>
        	<xs:element name="category" type="categoryType"
        		maxOccurs="unbounded" minOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Every meal must belong to a category so there should be at least one category since a day without any meals may be omitted completely else.</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="closed">
                <xs:annotation>
                	<xs:documentation>Indicates that for the given day a canteen has closed (to distinguish from the case where there is - for some reason - no data). Should be used on weekends or explicit closing times on holidays.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
        			<xs:restriction base="xs:string"><commit_msg>xsd: canteen metadata first, then days<commit_after><?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://openmensa.org/open-mensa-v2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://openmensa.org/open-mensa-v2" elementFormDefault="qualified">

    <xs:element name="openmensa" type="openmensaType"></xs:element>
    
    <xs:complexType name="openmensaType">
        <xs:annotation>
        	<xs:documentation>This is the required OpenMense root element always accompanied by a version attribute that explicitly tells the feed's version to the parser.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="version" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                	<xs:documentation>Defines the version of the parser. It has nothing to do with the canteen or its menu.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
            		<xs:restriction base="xs:string">
            			<xs:minLength value="0"></xs:minLength>
            			<xs:maxLength value="63"></xs:maxLength>
            		</xs:restriction>
            	</xs:simpleType>
            </xs:element>
            <xs:element name="canteen" type="canteenType"></xs:element>
        </xs:sequence>
        <xs:attribute name="version" use="required">
        	<xs:annotation>
        		<xs:documentation>The version should be equal to 2.0 or 2.1.</xs:documentation>
        	</xs:annotation>
        	<xs:simpleType>
        		<xs:restriction base="xs:float">
        			<xs:enumeration value="2.0"></xs:enumeration>
        			<xs:enumeration value="2.1"></xs:enumeration>
        		</xs:restriction>
        	</xs:simpleType>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="canteenType">
        <xs:annotation>
        	<xs:documentation>This stands for a single canteen.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
        	<xs:element name="name" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the canteen name</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="address" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the (postal) address</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="city" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the user-relevant city of this canteen</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="phone" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the phone number to contact the canteen (we highly recommend following the E.123 standard)</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="email" type="xs:string" minOccurs="0"
        		maxOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Metadata: the email address to contact the canteen (we highly recommend following the E.123 standard)</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="location" type="locationType"
        		minOccurs="0" maxOccurs="1" >
        		<xs:annotation>
        			<xs:documentation>Metadata: the physical location of the canteen</xs:documentation>
        		</xs:annotation></xs:element>
        	<xs:element name="availability" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                	<xs:documentation>Metadata: indicate whether the canteen can be used by everyone (public) or not (restricted)</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
        			<xs:restriction base="xs:string">
        				<xs:enumeration value="public"></xs:enumeration>
        				<xs:enumeration value="restricted"></xs:enumeration>
        			</xs:restriction>
        		</xs:simpleType>
        	</xs:element>
        	<xs:element name="times" type="timesType" minOccurs="0" maxOccurs="1"></xs:element>
        	<xs:element name="feed" type="feedType" minOccurs="0" maxOccurs="unbounded"></xs:element>
            <xs:element name="day" type="dayType" maxOccurs="unbounded" minOccurs="0">
        		<xs:annotation>
        			<xs:documentation>All meals of all categories are grouped by day. There may be no day elements at all - that's ok because for some days there are no meals.</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="dayType">
        <xs:choice>
        	<xs:element name="category" type="categoryType"
        		maxOccurs="unbounded" minOccurs="1">
        		<xs:annotation>
        			<xs:documentation>Every meal must belong to a category so there should be at least one category since a day without any meals may be omitted completely else.</xs:documentation>
        		</xs:annotation>
        	</xs:element>
        	<xs:element name="closed">
                <xs:annotation>
                	<xs:documentation>Indicates that for the given day a canteen has closed (to distinguish from the case where there is - for some reason - no data). Should be used on weekends or explicit closing times on holidays.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
        			<xs:restriction base="xs:string">
{'fraction_non_alphanumeric': 0.13034149830144823, 'fraction_numerical': 0.008582156266762024, 'mean_word_length': 2.5638738451736223, 'pattern_counts': {'":': 0, '<': 253, '<?xml version=': 2, '>': 253, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3709664', 'n_tokens_mistral': 3512, 'n_tokens_neox': 3313, 'n_words': 734}