1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="config">
<xs:complexType>
<xs:sequence>
<xs:element name="consumer" type="consumerType" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="consumer-unique-name">
<xs:selector xpath="consumer"/>
<xs:field xpath="@name"/>
</xs:unique>
</xs:element>
<xs:complexType name="consumerType">
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:string" name="queue" use="required"/>
<xs:attribute type="handlerType" name="handler" use="optional"/>
<xs:attribute type="xs:string" name="consumerInstance" use="optional"/>
<xs:attribute name="connection" use="optional" type="xs:string" />
<xs:attribute type="xs:integer" name="maxMessages" use="optional"/>
</xs:complexType>
<xs:simpleType name="handlerType">
<xs:annotation>
<xs:documentation>
Handler is expected in a format "Vendor\Module\Api\ServiceName::methodName".
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z\\]+::[a-zA-Z]+" />
<xs:minLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:schema>