definition.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!-- Include section -->
<xs:include schemaLocation="urn:magento:module:Magento_Ui:etc/ui_components.xsd"/>
<!-- Definition the document element -->
<xs:element name="components" type="definition"/>
<!-- Registering components in the system -->
<xs:complexType name="definition">
<xs:annotation>
<xs:appinfo>Registering components in the system and basic setup</xs:appinfo>
<xs:documentation>Registering components in the system and basic setup</xs:documentation>
</xs:annotation>
<xs:all>
<!-- Components list -->
<xs:element type="range" name="range"/>
<xs:element type="tab" name="tab"/>
<xs:element type="dataSource" name="dataSource"/>
<xs:element type="paging" name="paging"/>
<xs:element type="massaction" name="massaction"/>
<xs:element type="listingDefinition" name="listing"/>
<xs:element type="formDefinition" name="form"/>
<xs:element type="fieldset" name="fieldset"/>
<xs:element type="field" name="field"/>
<xs:element type="filters" name="filters"/>
<xs:element type="columns" name="columns"/>
<xs:element type="column" name="column"/>
<xs:element type="filterSelect" name="filterSelect"/>
<xs:element type="filterSearch" name="filterSearch"/>
<xs:element type="filterRange" name="filterRange"/>
<xs:element type="filterInput" name="filterInput"/>
<xs:element type="filterDate" name="filterDate"/>
<xs:element type="container" name="container"/>
<xs:element type="input" name="input"/>
<xs:element type="hidden" name="hidden"/>
<xs:element type="checkbox" name="checkbox"/>
<xs:element type="select" name="select"/>
<xs:element type="multiselect" name="multiselect"/>
<xs:element type="textarea" name="textarea"/>
<xs:element type="fileUploader" name="fileUploader"/>
<xs:element type="wysiwyg" name="wysiwyg"/>
<xs:element type="radioset" name="radioset"/>
<xs:element type="checkboxset" name="checkboxset"/>
<xs:element type="multiline" name="multiline"/>
<xs:element type="dataTypeText" name="text"/>
<xs:element type="dataTypeBoolean" name="boolean"/>
<xs:element type="dataTypeNumber" name="number"/>
<xs:element type="dataTypePrice" name="price"/>
<xs:element type="dataTypeMedia" name="image"/>
<xs:element type="dataTypeDate" name="date"/>
<xs:element type="dataTypeEmail" name="email"/>
<xs:element type="dataTypeMedia" name="file"/>
<xs:element type="nav" name="nav"/>
<xs:element type="actions" name="actions"/>
<xs:element type="actionDelete" name="actionDelete"/>
<xs:element type="bookmark" name="bookmark"/>
<xs:element type="exportButton" name="exportButton"/>
<xs:element type="columnsControls" name="columnsControls"/>
<xs:element type="container" name="listingToolbar"/>
<xs:element type="action" name="action"/>
<xs:element name="component" type="component" />
<xs:element name="actionsColumn" type="actionsColumn" />
<xs:element name="selectionsColumn" type="selectionsColumn" />
<xs:element type="dynamicRows" name="dynamicRows"/>
<xs:element name="htmlContent" type="htmlContent" />
<xs:element type="insertForm" name="insertForm"/>
<xs:element type="insertListing" name="insertListing"/>
<xs:element type="modal" name="modal"/>
<xs:element type="button" name="button"/>
</xs:all>
</xs:complexType>
<!-- Custom configuration -->
<xs:complexType name="listingDefinition">
<xs:complexContent>
<xs:extension base="listing">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element type="container" name="listingToolbar"/>
<xs:element type="dataSource" name="dataSource"/>
<xs:element type="paging" name="paging"/>
<xs:element type="massaction" name="massaction"/>
<xs:element type="columns" name="columns"/>
<xs:element type="filters" name="filters"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="formDefinition">
<xs:complexContent>
<xs:extension base="form">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element type="fieldset" name="fieldset"/>
<xs:element type="dataSource" name="dataSource"/>
<xs:element type="insertForm" name="insertForm"/>
<xs:element type="insertListing" name="insertListing"/>
<xs:element type="modal" name="modal"/>
<xs:element type="dynamicRows" name="dynamicRows"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>