<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://begrep.difi.no/sdp/utvidelser/arrangement"
            xmlns="http://begrep.difi.no/sdp/utvidelser/arrangement"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified">
    <xsd:element name="arrangement">
        <xsd:complexType>
            <xsd:sequence>

                <xsd:element name="tittel" type="Tittel" minOccurs="1" maxOccurs="1"/>
                <xsd:element name="tidsrom-tittel" type="Tittel" minOccurs="0" maxOccurs="1"/>
                <xsd:element name="tidsrom" type="Tidsrom" minOccurs="0" maxOccurs="10"/>
                <xsd:element name="oppmøte-informasjon" type="Beskrivelse" minOccurs="0" maxOccurs="1"/>

                <xsd:element name="møteplass" minOccurs="1" maxOccurs="1">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="tittel" type="Tittel" minOccurs="1" maxOccurs="1"/>
                            <xsd:element name="navn" type="xsd:string" minOccurs="1" maxOccurs="1"/>
                            <xsd:element name="gateadresse" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                            <xsd:element name="postnummer" type="xsd:int" minOccurs="0" maxOccurs="1"/>
                            <xsd:element name="sted" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                            <xsd:element name="land" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>

                <xsd:element name="strekkode" type="Strekkode" minOccurs="0" maxOccurs="1"/>

                <xsd:element name="info" minOccurs="0" maxOccurs="10">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="tittel" type="Tittel" minOccurs="1" maxOccurs="1"/>
                            <xsd:element name="tekst" type="Beskrivelse" minOccurs="1" maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>

                <xsd:element name="lenker" minOccurs="0" maxOccurs="1">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="lenke" minOccurs="1" maxOccurs="2">
                                <xsd:complexType>
                                    <xsd:sequence>
                                        <xsd:element name="navn" type="Tittel" minOccurs="1" maxOccurs="1"/>
                                        <xsd:element name="url" type="HttpLenke" minOccurs="1" maxOccurs="1"/>
                                    </xsd:sequence>
                                </xsd:complexType>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>

            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="Tittel">
        <xsd:simpleContent>
            <xsd:extension base="TittelString">
                <xsd:attribute name="lang" type="Spraakkode" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>

    <xsd:simpleType name="TittelString">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="100"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="Strekkode">
        <xsd:sequence>
            <xsd:element name="tittel" type="Tittel" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="verdi" type="Strekkodeverdi" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="type" type="Strekkodetype" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="tekst" type="Beskrivelse" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="vis-verdi" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="true"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:simpleType name="Strekkodetype" final="restriction">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="code-128"/>
            <xsd:enumeration value="code-39"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Strekkodeverdi" final="restriction">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="20"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="Tidsrom">
        <xsd:sequence>
            <xsd:element name="fra" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="til" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="Beskrivelse">
        <xsd:simpleContent>
            <xsd:extension base="BeskrivelseString">
                <xsd:attribute name="lang" type="Spraakkode" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:simpleType name="BeskrivelseString">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="400"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="HttpLenke">
        <xsd:restriction base="xsd:anyURI">
            <xsd:pattern value="https?://.+"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Spraakkode">
        <xsd:annotation>
            <xsd:documentation>Språkkode ihht ISO-639-1 (2 bokstaver)</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="2"/>
            <xsd:maxLength value="2"/>
        </xsd:restriction>
    </xsd:simpleType>

</xsd:schema>
