Skip to content

Commit 1a6b5b6

Browse files
author
Maksym Aposov
committed
MAGETWO-36794: Modify indexer declaration to support field declaration
- MAGETWO-37581: Update XSD declaration
1 parent fc597c7 commit 1a6b5b6

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

app/code/Magento/Indexer/etc/indexer.xsd

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@
4242
<xs:sequence>
4343
<xs:element name="title" type="translatableType" />
4444
<xs:element name="description" type="translatableType" />
45+
<xs:element name="fields" type="fieldsType" minOccurs="0" maxOccurs="1">
46+
<xs:unique name="uniqueField">
47+
<xs:selector xpath="field"/>
48+
<xs:field xpath="@name"/>
49+
</xs:unique>
50+
</xs:element>
4551
</xs:sequence>
4652
<xs:attribute name="id" type="xs:string" use="required" />
4753
<xs:attribute name="view_id" type="viewIdType" use="required" />
@@ -78,4 +84,79 @@
7884
</xs:restriction>
7985
</xs:simpleType>
8086

87+
<xs:complexType name="fieldsType">
88+
<xs:annotation>
89+
<xs:documentation>
90+
Index fields declaration.
91+
</xs:documentation>
92+
</xs:annotation>
93+
<xs:sequence>
94+
<xs:element name="field" type="fieldTypeAbstract" minOccurs="1" maxOccurs="unbounded"/>
95+
</xs:sequence>
96+
<xs:attribute name="handler" type="classType" use="required"/>
97+
</xs:complexType>
98+
99+
<xs:complexType name="fieldTypeAbstract">
100+
<xs:annotation>
101+
<xs:documentation>
102+
Index field declaration.
103+
</xs:documentation>
104+
</xs:annotation>
105+
<xs:attribute name="name" type="xs:string" use="required"/>
106+
<xs:attribute name="origin" type="originType" use="required"/>
107+
<xs:attribute name="handler" type="classType" use="required"/>
108+
</xs:complexType>
109+
110+
<xs:simpleType name="originType">
111+
<xs:annotation>
112+
<xs:documentation>
113+
Origin can contain only [a-zA-Z0-9_.].
114+
</xs:documentation>
115+
</xs:annotation>
116+
<xs:restriction base="xs:string">
117+
<xs:pattern value="[a-zA-Z0-9_]+\.[a-zA-Z0-9_]+" />
118+
</xs:restriction>
119+
</xs:simpleType>
120+
121+
<xs:complexType name="match">
122+
<xs:complexContent>
123+
<xs:extension base="fieldTypeAbstract">
124+
<xs:sequence>
125+
<xs:element type="filterType" name="filter" minOccurs="1" maxOccurs="1" />
126+
</xs:sequence>
127+
</xs:extension>
128+
</xs:complexContent>
129+
</xs:complexType>
130+
131+
<xs:complexType name="filterType">
132+
<xs:annotation>
133+
<xs:documentation>
134+
Index field filter.
135+
</xs:documentation>
136+
</xs:annotation>
137+
<xs:attribute name="class" type="classType" use="required"/>
138+
</xs:complexType>
139+
140+
<xs:complexType name="both">
141+
<xs:complexContent>
142+
<xs:extension base="match"/>
143+
</xs:complexContent>
144+
</xs:complexType>
145+
146+
<xs:complexType name="filter">
147+
<xs:complexContent>
148+
<xs:extension base="fieldTypeAbstract">
149+
<xs:attribute type="dataType" name="dataType" use="required" />
150+
</xs:extension>
151+
</xs:complexContent>
152+
</xs:complexType>
153+
154+
<xs:simpleType name="dataType">
155+
<xs:restriction base="xs:string">
156+
<xs:enumeration value="int" />
157+
<xs:enumeration value="float" />
158+
<xs:enumeration value="varchar" />
159+
</xs:restriction>
160+
</xs:simpleType>
161+
81162
</xs:schema>

0 commit comments

Comments
 (0)