<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.demandware.com/xml/impex/channels/2026-08-12"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.demandware.com/xml/impex/channels/2026-08-12"
    elementFormDefault="qualified">

    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />

    <!-- demandware main tag -->
    <xsd:element name="channels" type="complexType.Channels" />

    <xsd:complexType name="complexType.Channels" mixed="false">
        <xsd:sequence>
            <xsd:element name="channel" type="complexType.Channel" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="complexType.Channel" mixed="false">
        <xsd:sequence>
            <xsd:element name="catalog-assignment" type="simpleType.Generic.NonEmptyString.256"
                minOccurs="0" maxOccurs="1" />
        </xsd:sequence>
        <xsd:attribute name="id" type="simpleType.Generic.NonEmptyString.256" use="required" />
        <xsd:attribute name="type" type="simpleType.ChannelType" use="required" />
    </xsd:complexType>

    <xsd:simpleType name="simpleType.ChannelType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="POS" />
        </xsd:restriction>
    </xsd:simpleType>

    <!-- Generic String Types -->

    <xsd:simpleType name="simpleType.Generic.String">
        <xsd:restriction base="xsd:string" />
    </xsd:simpleType>

    <xsd:simpleType name="simpleType.Generic.NonEmptyString.256">
        <xsd:restriction base="simpleType.Generic.String">
            <xsd:minLength value="1" />
            <xsd:maxLength value="256" />
            <xsd:pattern value="\S|(\S(.*)\S)" />
        </xsd:restriction>
    </xsd:simpleType>

</xsd:schema>
