<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.egis-online.de/EBC/schema/ProductSpecificationQueryResponse"
    xmlns="http://www.egis-online.de/EBC/schema/ProductSpecificationQueryResponse"
    elementFormDefault="qualified">
    <xs:element name="ProductSpecificationQueryResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TransactionHeader"/>
                <xs:element ref="ProductSpecification" maxOccurs="unbounded" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="TransactionHeader">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="VersionId"/>
                <xs:element ref="GenerationDateTime"/>
                <xs:element ref="Exception" maxOccurs="1" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="VersionId" type="xs:decimal"/>
    <xs:element name="GenerationDateTime" type="xs:dateTime"/>
    <xs:element name="ProductSpecification">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Header"/>
                <xs:element ref="Body"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Exception">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ErrorNumber"/>
                <xs:element ref="ErrorMessage"/>
                <xs:element ref="ErrorDescription"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ErrorNumber" type="xs:int"/>
    <xs:element name="ErrorMessage" type="xs:string"/>
    <xs:element name="ErrorDescription" type="xs:string" nillable="true"/>
    <xs:element name="Header">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProductReference"/>
                <xs:element ref="ContentLevel"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProductReference">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryProductIdentifier"/>
                <xs:element ref="ManufacturerProductIdentifier"/>
                <xs:element ref="GlobalProductIdentifier"/>
                <xs:element ref="ProprietaryProductDescription" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="ProductGroupId"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ContentLevel" type="xs:string"/>
    <xs:element name="ProprietaryProductIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryProductNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ManufacturerProductIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ManufacturerName"/>
                <xs:element ref="ManufacturerProductNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="GlobalProductIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="GlobalProductNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryProductNumber" type="xs:string"/>
    <xs:element name="ManufacturerName">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="id" type="xs:positiveInteger"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ManufacturerProductNumber" type="xs:string" nillable="true"/>
    <xs:element name="GlobalProductNumber" type="xs:string" nillable="true"/>
    <xs:element name="ProprietaryProductDescription" type="xs:string"/>
    <xs:element name="ProductGroupId" type="xs:positiveInteger"/>
    <xs:element name="Body">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ImageUrl" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="Feature" minOccurs="0" maxOccurs="unbounded" />
                <xs:element ref="AdditionalImages" minOccurs="0" maxOccurs="1" />
                <xs:element ref="DatasheetUrl" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="DatasheetPdfUrl" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="Descriptions" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="MarketingText" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="Accessories" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Feature">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="FeatureGroup"/>
                <xs:element ref="Key"/>
                <xs:element ref="Value"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="FeatureGroup" type="xs:string" nillable="true"/>
    <xs:element name="Key" type="xs:string"/>
    <xs:element name="Value" type="xs:string"/>
    <xs:element name="ImageUrl" type="xs:string" nillable="true"/>
    <xs:element name="DatasheetUrl" type="xs:string"/>
    <xs:element name="DatasheetPdfUrl" type="xs:string"/>
    <xs:element name="AdditionalImages" nillable="true">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="AdditionalImageUrl" minOccurs="1" maxOccurs="10" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="AdditionalImageUrl">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="width" type="xs:positiveInteger"/>
                    <xs:attribute name="height" type="xs:positiveInteger"/>
                    <xs:attribute name="type" type="xs:string"/>
                    <xs:attribute name="source" type="xs:string"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Descriptions">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ShortDesc" minOccurs="0" maxOccurs="2"/>
                <xs:element ref="ShortSummaryDescription" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="LongSummaryDescription" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ShortDesc">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="source" type="xs:string"/>
                    <xs:attribute name="recommended" type="xs:string"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ShortSummaryDescription">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="source" type="xs:string"/>
                    <xs:attribute name="recommended" type="xs:string"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="LongSummaryDescription">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="source" type="xs:string"/>
                    <xs:attribute name="recommended" type="xs:string"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MarketingText" type="xs:string"/>
    <xs:element name="Accessories">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProductReference" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
