acl.xsd 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. /**
  4. * Structure description for acl.xml ACL resource files.
  5. *
  6. * Copyright © Magento, Inc. All rights reserved.
  7. * See COPYING.txt for license details.
  8. */
  9. -->
  10. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  11. <xs:element name="config">
  12. <xs:complexType>
  13. <xs:sequence>
  14. <xs:element name="acl">
  15. <xs:complexType>
  16. <xs:sequence>
  17. <xs:element name="resources">
  18. <xs:complexType>
  19. <xs:sequence>
  20. <xs:element minOccurs="0" maxOccurs="unbounded" name="resource" type="aclResource" />
  21. </xs:sequence>
  22. </xs:complexType>
  23. <xs:unique name="uniqueResourceId">
  24. <xs:annotation>
  25. <xs:documentation>
  26. Attribute ID is unique under all ACL resources
  27. </xs:documentation>
  28. </xs:annotation>
  29. <xs:selector xpath=".//*"/>
  30. <xs:field xpath="@id"/>
  31. </xs:unique>
  32. </xs:element>
  33. </xs:sequence>
  34. </xs:complexType>
  35. </xs:element>
  36. <xs:element name="mapping">
  37. <xs:complexType>
  38. <xs:sequence>
  39. <xs:element minOccurs="0" maxOccurs="unbounded" name="resource" type="aclMapping">
  40. <xs:unique name="uniqueMappedResourceId">
  41. <xs:annotation>
  42. <xs:documentation>
  43. Attribute ID is unique under all mapped ACL resources
  44. </xs:documentation>
  45. </xs:annotation>
  46. <xs:selector xpath=".//*"/>
  47. <xs:field xpath="@id"/>
  48. </xs:unique>
  49. </xs:element>
  50. </xs:sequence>
  51. </xs:complexType>
  52. </xs:element>
  53. </xs:sequence>
  54. </xs:complexType>
  55. </xs:element>
  56. <xs:complexType name="aclResource">
  57. <xs:annotation>
  58. <xs:documentation>
  59. ACL Resource. Recursive complex type
  60. </xs:documentation>
  61. </xs:annotation>
  62. <xs:sequence>
  63. <xs:element minOccurs="0" maxOccurs="unbounded" name="resource" type="aclResource" />
  64. </xs:sequence>
  65. <xs:attribute name="id" type="typeId" use="required" />
  66. <xs:attribute name="title" type="typeTitle" use="optional" />
  67. <xs:attribute name="sortOrder" type="xs:int" use="optional" />
  68. </xs:complexType>
  69. <xs:complexType name="aclMapping">
  70. <xs:annotation>
  71. <xs:documentation>
  72. ACL Resource mapping.
  73. </xs:documentation>
  74. </xs:annotation>
  75. <xs:attribute name="id" type="typeId" use="required" />
  76. <xs:attribute name="parent" type="typeId" use="required" />
  77. </xs:complexType>
  78. <xs:simpleType name="typeId">
  79. <xs:annotation>
  80. <xs:documentation>
  81. Item ID attribute can have only [A-Za-z0-9_]/[A-Za-z0-9_]. Minimal length is 3 symbols. Case insensitive.
  82. </xs:documentation>
  83. </xs:annotation>
  84. <xs:restriction base="xs:string">
  85. <xs:pattern value="[A-Za-z_0-9]+/?[A-Za-z_0-9]+" />
  86. </xs:restriction>
  87. </xs:simpleType>
  88. <xs:simpleType name="typeTitle">
  89. <xs:annotation>
  90. <xs:documentation>
  91. Item title attribute minimal length is 3 symbols
  92. </xs:documentation>
  93. </xs:annotation>
  94. <xs:restriction base="xs:string">
  95. <xs:minLength value="3" />
  96. <xs:maxLength value="50" />
  97. </xs:restriction>
  98. </xs:simpleType>
  99. </xs:schema>