123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403 |
- <?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">
- <!-- Redefine section -->
- <xs:redefine schemaLocation="urn:magento:framework:Data/etc/argument/types.xsd">
- <xs:complexType name="argumentType" abstract="true" mixed="true">
- <xs:complexContent>
- <xs:extension base="argumentType">
- <xs:sequence>
- <xs:element name="updater" type="updaterType" minOccurs="0" maxOccurs="1"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:redefine>
- <!-- Defined the types of elements -->
- <!-- Elements -->
- <xs:element type="blockType" name="block">
- <xs:annotation>
- <xs:documentation>
- Argument name must be unique in scope of block.
- </xs:documentation>
- </xs:annotation>
- <xs:key name="blockArgumentName">
- <xs:selector xpath="./arguments/argument"></xs:selector>
- <xs:field xpath="@name"></xs:field>
- </xs:key>
- </xs:element>
- <xs:element type="blockReferenceType" name="referenceBlock">
- <xs:annotation>
- <xs:documentation>
- Argument name must be unique in scope of reference.
- </xs:documentation>
- </xs:annotation>
- <xs:unique name="referenceBlockArgumentName">
- <xs:selector xpath="./arguments/argument"></xs:selector>
- <xs:field xpath="@name"></xs:field>
- </xs:unique>
- </xs:element>
- <xs:element type="containerReferenceType" name="referenceContainer"/>
- <xs:element type="uiComponentType" name="uiComponent">
- <xs:annotation>
- <xs:documentation>
- Argument name must be unique in scope of all Blocks, Containers and other UI Components.
- </xs:documentation>
- </xs:annotation>
- <xs:key name="uiElementArgumentName">
- <xs:selector xpath="./argument"/>
- <xs:field xpath="@name"/>
- </xs:key>
- </xs:element>
- <xs:element name="arguments" type="argumentsType"/>
- <xs:element name="update" type="updateType"/>
- <xs:element name="remove" type="removeType"/>
- <xs:element name="move" type="moveType"/>
- <!-- Simple types -->
- <xs:simpleType name="handlePageType">
- <xs:restriction base="xs:string">
- <xs:enumeration value="page"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="componentNameType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z][a-zA-Z\d\-_\.]*"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="elementNameType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z0-9][a-zA-Z\d\-_\.]*"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="elementAliasType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z][a-zA-Z\d\-_\.]*"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="elementPositionType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z][a-zA-Z\d\-_\.]*|-"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="elementOutputType">
- <xs:restriction base="xs:string">
- <xs:enumeration value="1"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="htmlIdentifierType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z][a-zA-Z\d\-_:]*"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="htmlClassType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z][a-zA-Z\d\-_]*(\s[a-zA-Z][a-zA-Z\d\-_]*)*"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="htmlTagType">
- <xs:restriction base="xs:string">
- <xs:enumeration value="aside"/>
- <xs:enumeration value="dd"/>
- <xs:enumeration value="div"/>
- <xs:enumeration value="dl"/>
- <xs:enumeration value="fieldset"/>
- <xs:enumeration value="main"/>
- <xs:enumeration value="nav"/>
- <xs:enumeration value="header"/>
- <xs:enumeration value="footer"/>
- <xs:enumeration value="ol"/>
- <xs:enumeration value="p"/>
- <xs:enumeration value="section"/>
- <xs:enumeration value="table"/>
- <xs:enumeration value="tfoot"/>
- <xs:enumeration value="ul"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="blockClassType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[A-Z][_a-zA-Z\d]*(\\[A-Z][_a-zA-Z\d]*)*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Complex types -->
- <xs:complexType name="containerType">
- <xs:annotation>
- <xs:documentation>
- Container for structuring elements of a page.
- </xs:documentation>
- </xs:annotation>
- <xs:sequence minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="block" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="container" type="containerType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="referenceBlock" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="referenceContainer" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="uiComponent" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute type="elementNameType" name="name"/>
- <xs:attribute type="xs:string" name="label"/>
- <xs:attribute type="elementOutputType" name="output"/>
- <xs:attribute type="elementAliasType" name="as"/>
- <xs:attribute type="elementPositionType" name="after"/>
- <xs:attribute type="elementPositionType" name="before"/>
- <xs:attribute type="htmlTagType" name="htmlTag"/>
- <xs:attribute type="htmlClassType" name="htmlClass"/>
- <xs:attribute type="htmlIdentifierType" name="htmlId"/>
- </xs:complexType>
- <xs:complexType name="blockType" mixed="true">
- <xs:annotation>
- <xs:documentation>
- Part of view that can generate appropriate content.
- </xs:documentation>
- </xs:annotation>
- <xs:sequence minOccurs="0" maxOccurs="unbounded">
- <xs:element name="action" type="actionType" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation>
- Argument name must be unique in scope of action.
- </xs:documentation>
- </xs:annotation>
- <xs:key name="blockActionArgumentName">
- <xs:selector xpath="argument"></xs:selector>
- <xs:field xpath="@name"></xs:field>
- </xs:key>
- </xs:element>
- <xs:element ref="arguments" minOccurs="0" maxOccurs="1"/>
- <xs:element ref="block" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="container" type="containerType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="referenceBlock" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="uiComponent" minOccurs="0" />
- </xs:sequence>
- <xs:attribute type="elementNameType" name="name" use="optional"/>
- <xs:attribute type="blockClassType" name="class" use="optional"/>
- <xs:attribute type="elementAliasType" name="as" use="optional"/>
- <xs:attribute type="xs:string" name="template" use="optional"/>
- <xs:attribute type="elementPositionType" name="before" use="optional"/>
- <xs:attribute type="elementPositionType" name="after" use="optional"/>
- <xs:attribute type="elementOutputType" name="output" use="optional"/>
- <xs:attribute type="xs:string" name="acl" use="optional"/>
- <xs:attribute type="xs:string" name="aclResource" use="optional"/>
- <xs:attribute type="xs:string" name="ifconfig" use="optional"/>
- <xs:attribute type="xs:string" name="group" use="optional" />
- <xs:attribute type="xs:boolean" name="cacheable" default="true" use="optional"/>
- <xs:attribute type="xs:int" name="ttl" use="optional"/>
- </xs:complexType>
- <xs:complexType name="uiComponentType" mixed="true">
- <xs:annotation>
- <xs:documentation>
- Part of view that can generate appropriate content.
- </xs:documentation>
- </xs:annotation>
- <xs:sequence>
- <xs:element name="argument" type="argumentType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="visibilityCondition" type="visibilityConditionType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute type="componentNameType" name="component" use="optional"/>
- <xs:attribute type="elementNameType" name="name" use="optional"/>
- <xs:attribute type="elementAliasType" name="as" use="optional"/>
- <xs:attribute type="elementPositionType" name="before" use="optional"/>
- <xs:attribute type="elementPositionType" name="after" use="optional"/>
- <xs:attribute type="elementOutputType" name="output" use="optional"/>
- <xs:attribute type="xs:string" name="aclResource" use="optional"/>
- <xs:attribute type="xs:string" name="ifconfig" use="optional"/>
- <xs:attribute type="xs:string" name="group" use="optional" />
- <xs:attribute type="xs:boolean" name="cacheable" default="true" use="optional"/>
- <xs:attribute type="xs:int" name="ttl" use="optional"/>
- </xs:complexType>
- <xs:complexType name="actionType">
- <xs:annotation>
- <xs:documentation>
- Call public PHP methods of the block class.
- </xs:documentation>
- </xs:annotation>
- <xs:sequence>
- <xs:element name="argument" type="argumentType" minOccurs="0" maxOccurs="unbounded">
- <xs:key name="actionArgumentItemName">
- <xs:selector xpath="item"></xs:selector>
- <xs:field xpath="@name"></xs:field>
- </xs:key>
- </xs:element>
- </xs:sequence>
- <xs:attribute type="xs:string" name="method" use="required"/>
- <xs:attribute type="xs:string" name="ifconfig" use="optional"/>
- </xs:complexType>
- <xs:complexType name="visibilityConditionType">
- <xs:annotation>
- <xs:documentation>
- Apply visibility rules.
- </xs:documentation>
- </xs:annotation>
- <xs:choice>
- <xs:element ref="arguments" minOccurs="0" maxOccurs="1"/>
- </xs:choice>
- <xs:attribute type="xs:string" name="name" use="required"/>
- <xs:attribute type="xs:string" name="className" use="required"/>
- </xs:complexType>
- <xs:complexType name="updateType">
- <xs:annotation>
- <xs:documentation>
- Include another Handle's tags.
- </xs:documentation>
- </xs:annotation>
- <xs:attribute type="xs:string" name="handle" use="required"/>
- </xs:complexType>
- <xs:complexType name="removeType">
- <xs:annotation>
- <xs:documentation>
- Remove Element directive.
- </xs:documentation>
- </xs:annotation>
- <xs:attribute type="elementNameType" name="name" use="required"/>
- </xs:complexType>
- <xs:complexType name="moveType">
- <xs:annotation>
- <xs:documentation>
- Move Element directive.
- </xs:documentation>
- </xs:annotation>
- <xs:attribute type="elementNameType" name="element" use="required"/>
- <xs:attribute type="elementNameType" name="destination" use="required"/>
- <xs:attribute type="elementAliasType" name="as" use="optional"/>
- <xs:attribute type="elementPositionType" name="after" use="optional"/>
- <xs:attribute type="elementPositionType" name="before" use="optional"/>
- </xs:complexType>
- <xs:complexType name="blockReferenceType" mixed="true">
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="action" type="actionType" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation>
- Argument name must be unique in scope of action.
- </xs:documentation>
- </xs:annotation>
- <xs:key name="blockReferenceActionArgumentName">
- <xs:selector xpath="argument"></xs:selector>
- <xs:field xpath="@name"></xs:field>
- </xs:key>
- </xs:element>
- <xs:element ref="arguments" minOccurs="0" maxOccurs="1"/>
- <xs:element ref="block" minOccurs="0"/>
- <xs:element name="container" type="containerType" minOccurs="0"/>
- <xs:element ref="referenceBlock" minOccurs="0" />
- <xs:element ref="referenceContainer" minOccurs="0"/>
- <xs:element ref="uiComponent" minOccurs="0" />
- </xs:choice>
- <xs:attribute type="elementNameType" name="name" use="required"/>
- <xs:attribute type="xs:string" name="template" use="optional"/>
- <xs:attribute type="xs:boolean" name="display" default="true" use="optional"/>
- <xs:attribute type="xs:boolean" name="remove" use="optional"/>
- </xs:complexType>
- <xs:complexType name="containerReferenceType" mixed="true">
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="referenceContainer" minOccurs="0" />
- <xs:element ref="block" minOccurs="0" />
- <xs:element name="container" type="containerType" minOccurs="0" />
- <xs:element ref="referenceBlock" minOccurs="0" />
- <xs:element ref="uiComponent" minOccurs="0" />
- </xs:choice>
- <xs:attribute type="elementNameType" name="name" use="required"/>
- <xs:attribute type="htmlTagType" name="htmlTag"/>
- <xs:attribute type="htmlClassType" name="htmlClass"/>
- <xs:attribute type="htmlIdentifierType" name="htmlId"/>
- <xs:attribute type="xs:string" name="label"/>
- <xs:attribute type="xs:boolean" name="display" default="true" use="optional"/>
- <xs:attribute type="xs:boolean" name="remove" use="optional"/>
- </xs:complexType>
- <xs:complexType name="options">
- <xs:complexContent>
- <xs:extension base="argumentType">
- <xs:attribute name="model" use="required"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="url" mixed="true">
- <xs:complexContent>
- <xs:extension base="argumentType">
- <xs:sequence minOccurs="0">
- <xs:element name="param" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType mixed="true">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="path" use="required"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="serviceUrl" mixed="true">
- <xs:complexContent>
- <xs:extension base="argumentType">
- <xs:sequence minOccurs="0">
- <xs:element name="param" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType mixed="true">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="path" use="required"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="helper" mixed="true">
- <xs:complexContent>
- <xs:extension base="argumentType">
- <xs:sequence minOccurs="0">
- <xs:element name="param" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType mixed="true">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="helper" use="required"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="updaterType">
- <xs:annotation>
- <xs:documentation>
- Argument updater.
- </xs:documentation>
- </xs:annotation>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:integer" name="sortOrder" use="optional"/>
- <xs:attribute type="xs:string" name="enabled" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:schema>
|