forked from renatocason/magento2-module-mq
/
ce_mq.xsd
50 lines (50 loc) · 2.05 KB
/
ce_mq.xsd
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
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="config">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ceBroker" type="ceBrokerType" />
<xs:element name="ceQueue" type="ceQueueType" />
</xs:choice>
</xs:complexType>
<xs:unique name="broker-unique-name">
<xs:annotation>
<xs:documentation>
Broker name must be unique.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="ceBroker"/>
<xs:field xpath="@name"/>
</xs:unique>
<xs:unique name="queue-unique-name">
<xs:annotation>
<xs:documentation>
Queue name must be unique.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="ceQueue"/>
<xs:field xpath="@name"/>
</xs:unique>
</xs:element>
<xs:complexType name="ceBrokerType">
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="classInterfaceType" name="implementationInstance" use="required"/>
</xs:complexType>
<xs:complexType name="ceQueueType">
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:string" name="broker" use="required"/>
<xs:attribute type="classInterfaceType" name="messageSchema" use="required"/>
<xs:attribute type="classInterfaceType" name="consumerInterface" use="required"/>
</xs:complexType>
<xs:simpleType name="classInterfaceType">
<xs:annotation>
<xs:documentation>
Class/interface name is expected in a format "Vendor\Module\Api\ServiceName".
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9a-zA-Z\\]+" />
<xs:minLength value="3" />
</xs:restriction>
</xs:simpleType>
</xs:schema>