- <?xml version="1.0" encoding="UTF-8"?>
- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://www.vdrb.ch/xml/customer"
- xmlns:customer="http://www.vdrb.ch/xml/customer"
- elementFormDefault="unqualified">
- <!-- Define Customer -->
- <xsd:complexType name="tCustomerBase">
- <xsd:sequence>
- <xsd:element name="birthdate"
- type="xsd:date"/>
- <xsd:element name="comment"
- type="xsd:string"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="tCustomerReference">
- <xsd:complexContent>
- <xsd:extension base="customer:tCustomerBase">
- <xsd:attribute name="customerID" type="xsd:integer" use="required"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="customer">
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="customer:tCustomerReference">
- <xsd:sequence>
- <xsd:element ref="customer:addressLinks" minOccurs="1"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
- <!-- Define AddressLink -->
- <xsd:simpleType name="tAddressLinkType">
- <xsd:restriction base="xsd:token">
- <xsd:enumeration value="A"/>
- <xsd:enumeration value="T"/>
- <xsd:enumeration value="Z"/>
- <xsd:enumeration value="R"/>
- <xsd:enumeration value="P"/>
- <xsd:enumeration value="N"/>
- <xsd:enumeration value="H"/>
- <xsd:enumeration value="F"/>
- </xsd:restriction>
- </xsd:simpleType>
- <xsd:complexType name="tAddressLinkBase">
- <xsd:sequence>
- <xsd:element name="customerID" type="xsd:integer"/>
- <xsd:element name="addressID" type="xsd:integer"/>
- <xsd:element name="type" type="customer:tAddressLinkType"/>
- <xsd:element name="validFrom" type="xsd:date"/>
- <xsd:element name="validUntil" type="xsd:date"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="tAddressLinkReference">
- <xsd:complexContent>
- <xsd:extension base="customer:tAddressLinkBase">
- <xsd:attribute name="customerID" type="xsd:integer" use="required"/>
- <xsd:attribute name="addressID" type="xsd:integer" use="required"/>
- <xsd:attribute name="addressType" type="customer:tAddressLinkType" use="required"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="addressLinks">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="customer:addressLink" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="addressLink" type="customer:tAddressLinkBase"/>
- <!-- Define Address -->
- <xsd:complexType name="tAddressBase">
- <xsd:sequence>
- <xsd:element name="language"
- type="xsd:string"/>
- <xsd:element name="salutation"
- type="xsd:string"/>
- <xsd:element name="title"
- type="xsd:string"/>
- <xsd:element name="firstname"
- type="xsd:string"/>
- <xsd:element name="lastname"
- type="xsd:string"/>
- <xsd:element name="street">
- <xsd:complexType>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="streetID" type="xsd:integer"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="plz"
- type="xsd:string"/>
- <xsd:element name="plzplus"
- type="xsd:string"/>
- <xsd:element name="city">
- <xsd:complexType>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="cityID" type="xsd:integer"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="region">
- <xsd:complexType>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="regionID" type="xsd:integer"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="country">
- <xsd:complexType>
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="countryID" type="xsd:integer"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="firstAddition"
- type="xsd:string"/>
- <xsd:element name="secondAddition"
- type="xsd:string"/>
- <xsd:element name="thirdAddition"
- type="xsd:string"/>
- <xsd:element name="firstHouseno"
- type="xsd:string"/>
- <xsd:element name="secondHouseno"
- type="xsd:string"/>
- <xsd:element name="thirdHouseno"
- type="xsd:string"/>
- <xsd:element name="poboxName"
- type="xsd:string"/>
- <xsd:element name="poboxPlz"
- type="xsd:string"/>
- <xsd:element name="poboxPlzplus"
- type="xsd:string"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="tAddressReference">
- <xsd:complexContent>
- <xsd:extension base="customer:tAddressBase">
- <xsd:attribute name="addressID" type="xsd:integer" use="required"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:complexType name="tAddressStandalone">
- <xsd:complexContent>
- <xsd:extension base="customer:tAddressReference">
- <xsd:sequence>
- <xsd:element ref="customer:contacts" minOccurs="0"/>
- </xsd:sequence>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="address" type="customer:tAddressStandalone"/>
- <!-- Define Contact -->
- <xsd:complexType name="tContactBase">
- <xsd:sequence>
- <xsd:element name="addressID"
- type="xsd:integer"/>
- <xsd:element name="type"
- type="xsd:string"/>
- <xsd:element name="value"
- type="xsd:string"/>
- <xsd:element name="description"
- type="xsd:string"/>
- </xsd:sequence>
- </xsd:complexType>
- <xsd:complexType name="tContactReference">
- <xsd:complexContent>
- <xsd:extension base="customer:tContactBase">
- <xsd:attribute name="contactID" type="xsd:integer"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- <xsd:element name="contacts">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="customer:contact" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="contact" type="customer:tContactReference"/>
- </xsd:schema>