<?
xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://Salem.net/SalemSchema2.xsd"
elementFormDefault="qualified"
xmlns="http://Salem.net/SalemSchema2.xsd"
xmlns:mstns="http://Salem.net/SalemSchema2.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Probanten"
type="ProbantenListe">
<xs:unique name="EinmaligerProbant">
<xs:selector xpath="./Probant" />
<xs:field xpath="@Id" />
</xs:unique>
</xs:element>
<xs:complexType name="ProbantenListe">
<xs:sequence>
<xs:element name="Probant"
type="ProbantenEintrag"
minOccurs="1"
maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ProbantenEintrag">
<xs:sequence>
<xs:element maxOccurs="unbounded"
name="Ort"
type="xs:string">
</xs:element>
<xs:element name="TelefonEinträge"
type="TelefonEintragListe">
<xs:unique name="EinmaligerTelefonTyp">
<xs:selector xpath="./Eintrag" />
<xs:field xpath="@Typ" />
</xs:unique>
<xs:unique name="EinmaligeTelefonNummer">
<xs:selector xpath="./Eintrag" />
<xs:field xpath="@Nummer" />
</xs:unique>
</xs:element>
</xs:sequence>
<xs:attribute name="Id"
type="xs:integer"
use="required" />
</xs:complexType>
<xs:complexType name="TelefonEintragListe">
<xs:sequence>
<xs:element name="Eintrag"
type="TelefonEintrag"
minOccurs="1"
maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TelefonEintrag">
<xs:attribute name="Typ"
type="TelefonTyp"
use="required" />
<xs:attribute name="Nummer"
type="TelefonNummer"
use="required" />
</xs:complexType>
<xs:simpleType name="TelefonTyp">
<xs:restriction base="xs:string">
<xs:enumeration value="Privat" />
<xs:enumeration value="Geschäftlich" />
<xs:enumeration value="Mobil" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TelefonNummer">
<xs:restriction base="xs:string">
<!--beginned mit 0, 2 bis 5 Stellen restliche Vorwahl;
3 bis 10 Stellen Hauptnummer; getrennt durch ein "-" -->
<xs:pattern value="0\d{2,5}[/-]\d{3,10}" />
</xs:restriction>
</xs:simpleType>
</xs:schema>