123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518 |
- <?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 ref="system" minOccurs="1" maxOccurs="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="system">
- <xs:complexType>
- <xs:sequence>
- <xs:choice minOccurs="1" maxOccurs="unbounded">
- <xs:element ref="tab" />
- <xs:element ref="section"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- <xs:unique name="uniqueTabId">
- <xs:annotation>
- <xs:documentation>
- Attribute id is unique under all tabs
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath="tab"/>
- <xs:field xpath="@id"/>
- </xs:unique>
- <xs:unique name="uniqueSectionId">
- <xs:annotation>
- <xs:documentation>
- Attribute id is unique under all sections
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath="section"/>
- <xs:field xpath="@id"/>
- </xs:unique>
- </xs:element>
- <xs:attributeGroup name="tabAttributeGroup">
- <xs:attribute name="id" type="typeId" use="required" />
- <xs:attribute name="translate" type="xs:string" use="optional" />
- <xs:attribute name="sortOrder" type="xs:float" use="optional" />
- <xs:attribute name="class" type="xs:string" use="optional" />
- </xs:attributeGroup>
- <xs:attributeGroup name="elementsAttributeGroup">
- <xs:attribute name="id" type="typeId" use="required" />
- <xs:attribute name="translate" type="xs:string" use="optional" />
- <xs:attribute name="type" type="xs:string" use="optional" />
- <xs:attribute name="sortOrder" type="xs:float" use="optional" />
- <xs:attribute name="showInDefault" type="xs:int" use="optional" />
- <xs:attribute name="showInStore" type="xs:int" use="optional" />
- <xs:attribute name="showInWebsite" type="xs:int" use="optional" />
- <xs:attribute name="canRestore" type="xs:int" use="optional" />
- <xs:attribute name="advanced" type="xs:boolean" use="optional" />
- <xs:attribute name="extends" type="xs:string" use="optional" />
- </xs:attributeGroup>
- <xs:element name="tab">
- <xs:annotation>
- <xs:documentation>
- Tab resource. Recursive complex type.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="1" name="label" type="xs:string" />
- </xs:sequence>
- <xs:attributeGroup ref="tabAttributeGroup"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="section">
- <xs:annotation>
- <xs:documentation>
- Section Resource. Recursive complex type
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:choice minOccurs="1" maxOccurs="unbounded">
- <xs:element name="label" type="xs:string" />
- <xs:element name="class" type="xs:string" />
- <xs:element name="tab" type="typeTabId" />
- <xs:element name="header_css" type="xs:string" />
- <xs:element name="resource" type="typeAclResourceId" />
- <xs:element ref="group" />
- <xs:element name="frontend_model" type="typeModel" />
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="elementsAttributeGroup"/>
- </xs:complexType>
- <xs:unique name="uniqueGroupId">
- <xs:annotation>
- <xs:documentation>
- Attribute id is unique under all groups for each section
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath="group"/>
- <xs:field xpath="@id"/>
- </xs:unique>
- </xs:element>
- <xs:element name="group">
- <xs:annotation>
- <xs:documentation>
- Group Resource. Recursive complex type
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:choice minOccurs="1" maxOccurs="unbounded">
- <xs:element name="label" type="xs:string" />
- <xs:element name="fieldset_css" type="xs:string" />
- <xs:element name="frontend_model" type="typeModel" />
- <xs:element name="clone_model" type="typeModel" />
- <xs:element name="clone_fields" type="xs:int" />
- <xs:element name="help_url" type="typeUrl" />
- <xs:element name="more_url" type="typeUrl" />
- <xs:element name="demo_link" type="typeUrl" />
- <xs:element name="comment" type="xs:string" />
- <xs:element name="hide_in_single_store_mode" type="xs:int" />
- <xs:element ref="field" />
- <xs:element ref="group" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="depends" />
- <xs:element ref="attribute" />
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="elementsAttributeGroup"/>
- </xs:complexType>
- <xs:unique name="uniqueFieldId">
- <xs:annotation>
- <xs:documentation>
- Attribute id is unique under all fields for each group
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath="field"/>
- <xs:field xpath="@id"/>
- </xs:unique>
- </xs:element>
- <xs:element name="field">
- <xs:annotation>
- <xs:documentation>
- Field Resource. Recursive complex type
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="label" type="xs:string" />
- <xs:element ref="comment" />
- <xs:element name="tooltip" type="xs:string" />
- <xs:element name="hint" type="xs:string" />
- <xs:element name="frontend_class" type="xs:string" />
- <xs:element name="frontend_model" type="typeModel" />
- <xs:element name="backend_model" type="typeModel" />
- <xs:element name="source_model" type="typeModel" />
- <xs:element name="config_path" type="typeConfigPath" />
- <xs:element name="validate" type="xs:string" />
- <xs:element name="can_be_empty" type="xs:int" />
- <xs:element name="if_module_enabled" type="typeModule" />
- <xs:element name="base_url" type="typeUrl" />
- <xs:element name="button_url" type="typeUrl" />
- <xs:element name="more_url" type="typeUrl" />
- <xs:element name="demo_url" type="typeUrl" />
- <xs:element name="button_label" type="xs:string" />
- <xs:element name="hide_in_single_store_mode" type="xs:int" />
- <xs:element name="upload_dir" type="typeUploadDir" />
- <xs:element ref="source_service" />
- <xs:element ref="options" />
- <xs:element ref="depends" />
- <xs:element ref="attribute" />
- <xs:element ref="requires" />
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="elementsAttributeGroup"/>
- </xs:complexType>
- <xs:unique name="uniqueAttributeType">
- <xs:annotation>
- <xs:documentation>
- Attribute type is unique under all node attributes per field
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath=".//attribute"/>
- <xs:field xpath="@type"/>
- </xs:unique>
- </xs:element>
- <xs:element name="source_service">
- <xs:annotation>
- <xs:documentation>
- Service used to populate select options
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="idField" type="xs:string" use="optional" />
- <xs:attribute name="labelField" type="xs:string" use="optional" />
- <xs:attribute name="includeEmptyValueOption" type="xs:boolean" use="optional" />
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="options">
- <xs:annotation>
- <xs:documentation>
- Options of a select field
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element name="option" maxOccurs="unbounded" minOccurs="1">
- <xs:complexType>
- <xs:annotation>
- <xs:documentation>
- Option of a select field
- </xs:documentation>
- </xs:annotation>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute type="xs:string" name="label" use="required"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="requires">
- <xs:annotation>
- <xs:documentation>
- Field Requirements
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element type="requiresField" name="field" />
- <xs:element type="requiresGroup" name="group" />
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- <xs:unique name="uniqueRequiresFieldId">
- <xs:annotation>
- <xs:documentation>
- Attribute id is unique under field requires block
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath=".//field"/>
- <xs:field xpath="@id"/>
- </xs:unique>
- <xs:unique name="uniqueRequiresGroupId">
- <xs:annotation>
- <xs:documentation>
- Attribute id is unique under group requires block
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath=".//group"/>
- <xs:field xpath="@id"/>
- </xs:unique>
- </xs:element>
- <xs:complexType name="requiresField" mixed="true">
- <xs:annotation>
- <xs:documentation>
- Required field resource. Recursive complex type
- </xs:documentation>
- </xs:annotation>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="id" type="typeElementPath" use="required" />
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="requiresGroup">
- <xs:annotation>
- <xs:documentation>
- Required group resource. Recursive complex type
- </xs:documentation>
- </xs:annotation>
- <xs:attribute name="id" type="typeElementPath" use="required" />
- </xs:complexType>
- <xs:simpleType name="typeElementPath">
- <xs:annotation>
- <xs:documentation>
- Element path attribute for elements section, group, field.
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z0-9_///\\*]{3,}" />
- <xs:minLength value="3" />
- </xs:restriction>
- </xs:simpleType>
- <xs:element name="attribute">
- <xs:annotation>
- <xs:documentation>
- Attribute Resource. Recursive complex type
- </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
- </xs:sequence>
- <xs:attributeGroup ref="attributeAttributeGroup"/>
- </xs:complexType>
- </xs:element>
- <xs:attributeGroup name="attributeAttributeGroup">
- <xs:attribute name="type" type="xs:string" use="required" />
- <xs:anyAttribute processContents="lax"/>
- </xs:attributeGroup>
- <xs:attributeGroup name="commentAttributeGroup">
- <xs:attribute name="model" type="xs:string" use="optional" />
- <xs:anyAttribute processContents="lax"/>
- </xs:attributeGroup>
- <xs:element name="depends">
- <xs:annotation>
- <xs:documentation>
- Describe which elements are regulator for current field
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="field">
- <xs:complexType>
- <xs:annotation>
- <xs:documentation>
- Field resource. Recursive complex type. Define element is influence on current field/group
- </xs:documentation>
- </xs:annotation>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="id" type="typeElementPath" use="required" />
- <xs:attribute name="separator" type='xs:string' use='optional' />
- <xs:attribute name="negative" type='xs:int' use='optional' />
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:unique name="uniqueDependsFieldId">
- <xs:annotation>
- <xs:documentation>
- Attribute id is unique under all regulatory elements per section/group/field
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath=".//field"/>
- <xs:field xpath="@id"/>
- </xs:unique>
- </xs:element>
- <xs:simpleType name="typeTabId">
- <xs:annotation>
- <xs:documentation>
- Item id attribute for element tab can has only [a-zA-Z0-9/_\]. Minimal length 3 symbol. Case sensitive.
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z0-9_\\]{1,}" />
- <xs:minLength value="3" />
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="typeId">
- <xs:annotation>
- <xs:documentation>
- Item id attribute for elements section, group, field can has only [a-zA-Z0-9/_\]. Minimal length 2 symbol. Case sensitive.
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z0-9_\\]{1,}" />
- <xs:minLength value="2" />
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="typeAclResourceId">
- <xs:annotation>
- <xs:documentation>
- Acl Resource identifier. Item can has only [a-zA-Z0-9/_:]. Minimal length 8 symbol. Case sensitive.
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="([A-Z]+[a-zA-Z0-9]{1,}){1,}_[A-Z]+[A-Z0-9a-z]{1,}::[A-Za-z_0-9]{1,}" />
- <xs:minLength value="8" />
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="typeModule">
- <xs:annotation>
- <xs:documentation>
- Item module attribute can have only [a-zA-Z0-9_\]. Minimal length 5 symbol. Case insensitive.
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="[A-Z]+[a-zA-Z0-9]{1,}[_\\][A-Z]+[A-Z0-9a-z]{1,}" />
- <xs:minLength value="5" />
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="typeModel">
- <xs:annotation>
- <xs:documentation>
- Item model attribute can have only [a-zA-Z0-9_]. Minimal length 5 symbol. Case insensitive.
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="[A-Za-z0-9_\\:]+" />
- <xs:minLength value="5" />
- </xs:restriction>
- </xs:simpleType>
- <xs:element name="comment">
- <xs:annotation>
- <xs:documentation>
- Comment type
- </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="1" processContents="lax" />
- </xs:sequence>
- <xs:attributeGroup ref="commentAttributeGroup"/>
- </xs:complexType>
- </xs:element>
- <xs:simpleType name="typeConfigPath">
- <xs:annotation>
- <xs:documentation>
- Item configPath attribute can has only three groups of [a-zA-Z0-9_] characters split by '/'.
- Minimal length 5 symbol. Case insensitive.
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-zA-Z0-9_\\]+/[a-zA-Z0-9_\\]+/[a-zA-Z0-9_\\]+" />
- <xs:minLength value="5" />
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="typeUploadDirRestriction">
- <xs:restriction base="xs:string">
- <xs:pattern value="([a-zA-Z0-9_\\]+/{0,1}){1,}" />
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="typeUploadDir">
- <xs:annotation>
- <xs:documentation>
- Item uploadDir value can has only [a-zA-Z0-9_] characters split by '/'. Case insensitive.
- </xs:documentation>
- </xs:annotation>
- <xs:simpleContent>
- <xs:extension base="typeUploadDirRestriction">
- <xs:attribute type="xs:string" name="config" use="optional"/>
- <xs:attribute type="xs:string" name="scope_info" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:simpleType name="typeUrlRestriction">
- <xs:restriction base="xs:anyURI">
- <xs:minLength value="3" />
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="typeUrl" mixed="true">
- <xs:annotation>
- <xs:documentation>
- typeUrl value can contain only valid uri with minimal length 3.
- </xs:documentation>
- </xs:annotation>
- <xs:simpleContent>
- <xs:extension base="typeUrlRestriction">
- <xs:attribute type="xs:string" name="type" use="optional"/>
- <xs:attribute type="xs:string" name="scope_info" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:schema>
|