<?xml version="1.0" encoding="UTF-8"?> <!-- /** * Structure description for acl.xml ACL resource files. * * 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 name="acl"> <xs:complexType> <xs:sequence> <xs:element name="resources"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="resource" type="aclResource" /> </xs:sequence> </xs:complexType> <xs:unique name="uniqueResourceId"> <xs:annotation> <xs:documentation> Attribute ID is unique under all ACL resources </xs:documentation> </xs:annotation> <xs:selector xpath=".//*"/> <xs:field xpath="@id"/> </xs:unique> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="mapping"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="resource" type="aclMapping"> <xs:unique name="uniqueMappedResourceId"> <xs:annotation> <xs:documentation> Attribute ID is unique under all mapped ACL resources </xs:documentation> </xs:annotation> <xs:selector xpath=".//*"/> <xs:field xpath="@id"/> </xs:unique> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="aclResource"> <xs:annotation> <xs:documentation> ACL Resource. Recursive complex type </xs:documentation> </xs:annotation> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="resource" type="aclResource" /> </xs:sequence> <xs:attribute name="id" type="typeId" use="required" /> <xs:attribute name="title" type="typeTitle" use="optional" /> <xs:attribute name="sortOrder" type="xs:int" use="optional" /> </xs:complexType> <xs:complexType name="aclMapping"> <xs:annotation> <xs:documentation> ACL Resource mapping. </xs:documentation> </xs:annotation> <xs:attribute name="id" type="typeId" use="required" /> <xs:attribute name="parent" type="typeId" use="required" /> </xs:complexType> <xs:simpleType name="typeId"> <xs:annotation> <xs:documentation> Item ID attribute can have only [A-Za-z0-9_]/[A-Za-z0-9_]. Minimal length is 3 symbols. Case insensitive. </xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:pattern value="[A-Za-z_0-9]+/?[A-Za-z_0-9]+" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeTitle"> <xs:annotation> <xs:documentation> Item title attribute minimal length is 3 symbols </xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:minLength value="3" /> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:schema>