﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:include schemaLocation="netvisorgeneraltypes.xsd" />

    <xs:simpleType name="contactperson_method">
        <xs:restriction base="xs:string">
            <xs:enumeration value="add" />
            <xs:enumeration value="edit" />
            <xs:enumeration value="delete" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="contactperson_languages">
        <xs:restriction base="xs:string">
            <xs:enumeration value="FI" />
            <xs:enumeration value="EN" />
            <xs:enumeration value="SE" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="contactperson_language">
        <xs:simpleContent>
            <xs:extension base="contactperson_languages">
                <xs:attribute fixed="ISO-3166" name="type" type="xs:string" use="required" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="contactperson">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="method" type="contactperson_method" minOccurs="1" maxOccurs="1" />
                            <xs:element name="customeridentifier" minOccurs="1" maxOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="netvisor_positiveinteger">
                                            <xs:attribute name="type" fixed="netvisor" type="xs:string" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="contactpersonidentifier" minOccurs="0" maxOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="netvisor_positiveinteger">
                                            <xs:attribute name="type" fixed="netvisor" type="xs:string" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="isdefault" type="netvisor_boolean" minOccurs="0" maxOccurs="1" />
                            <xs:element name="firstname" type="netvisor_string_min1_max100" minOccurs="1" maxOccurs="1" />
                            <xs:element name="lastname" type="netvisor_string_min1_max100" minOccurs="1" maxOccurs="1" />
                            <xs:element name="language" type="contactperson_language" minOccurs="1" maxOccurs="1" />
                            <xs:element name="phonenumber" type="netvisor_string_max80" minOccurs="0" maxOccurs="1" />
                            <xs:element name="email" type="netvisor_string_max200" minOccurs="0" maxOccurs="1" />
                            <xs:element name="title" type="netvisor_string_max200" minOccurs="0" maxOccurs="1" />
                            <xs:element name="officeidentifier" minOccurs="0" maxOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="netvisor_positiveinteger_nullable">
                                            <xs:attribute name="type" fixed="netvisor" type="xs:string" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="positionidentifier" minOccurs="0" maxOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="netvisor_positiveinteger_nullable">
                                            <xs:attribute name="type" fixed="netvisor" type="xs:string" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>                            
                            <xs:element name="contactpersonaddress" minOccurs="0" maxOccurs="1">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="streetaddress" type="netvisor_string_max80" minOccurs="0" maxOccurs="1" />
                                        <xs:element name="postnumber" type="netvisor_string_max50" minOccurs="0" maxOccurs="1" />
                                        <xs:element name="city" type="netvisor_string_max80" minOccurs="0" maxOccurs="1" />
                                        <xs:element name="country" type="netvisor_country" minOccurs="0" maxOccurs="1" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
