RolapSecuritySpecification.xsd 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by IBM (IBM SWG CANADA) -->
  3. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  4. <!-- File description -->
  5. <xs:annotation>
  6. <xs:documentation xml:lang="en">
  7. XML Schema for ROLAP dimensional security specification for RolapSecurityTool.
  8. </xs:documentation>
  9. </xs:annotation>
  10. <xs:element name="security">
  11. <xs:complexType>
  12. <xs:sequence>
  13. <xs:element name="securityRules" type="securityRulesType" minOccurs="0"/>
  14. <xs:element name="securityViews" type="securityViewsType" minOccurs="0"/>
  15. </xs:sequence>
  16. <xs:attribute name="cubeName" use="required">
  17. <xs:simpleType>
  18. <xs:restriction base="xsd:string"/>
  19. </xs:simpleType>
  20. </xs:attribute>
  21. </xs:complexType>
  22. </xs:element>
  23. <xs:complexType name="securityRulesType">
  24. <xs:sequence>
  25. <xs:element name="rule" type="ruleType" minOccurs="0" maxOccurs="unbounded"/>
  26. </xs:sequence>
  27. </xs:complexType>
  28. <xs:complexType name="ruleType">
  29. <xs:complexContent>
  30. <xs:extension base="ruleObjectRefType">
  31. <xs:choice>
  32. <xs:element name="grant" type="grantType" minOccurs="0"/>
  33. <xs:element name="deny" type="denyType" minOccurs="0"/>
  34. </xs:choice>
  35. <!-- type will be deprecated in a future iteration -->
  36. <xs:attribute name="type" use="optional">
  37. <xs:simpleType>
  38. <xs:restriction base="xsd:string">
  39. <xs:enumeration value="deny_self_and_descendants"/>
  40. <xs:enumeration value="basic"/>
  41. </xs:restriction>
  42. </xs:simpleType>
  43. </xs:attribute>
  44. <xs:attribute name="securityType" use="optional" default="member">
  45. <xs:simpleType>
  46. <xs:restriction base="xsd:string">
  47. <xs:enumeration value="value"/>
  48. <xs:enumeration value="member"/>
  49. <xs:enumeration value="attribute"/>
  50. <xs:enumeration value="dimension"/>
  51. </xs:restriction>
  52. </xs:simpleType>
  53. </xs:attribute>
  54. </xs:extension>
  55. </xs:complexContent>
  56. </xs:complexType>
  57. <xs:complexType name="securityViewsType">
  58. <xs:sequence>
  59. <xs:element name="view" type="viewType" minOccurs="0" maxOccurs="unbounded"/>
  60. </xs:sequence>
  61. </xs:complexType>
  62. <xs:complexType name="viewType">
  63. <xs:complexContent>
  64. <xs:extension base="objectRefType">
  65. <xs:sequence>
  66. <xs:element name="ruleRef" type="ruleObjectRefType" minOccurs="0" maxOccurs="unbounded"/>
  67. <xs:element name="policy" type="policyType" minOccurs="0" maxOccurs="unbounded"/>
  68. </xs:sequence>
  69. </xs:extension>
  70. </xs:complexContent>
  71. </xs:complexType>
  72. <xs:complexType name="policyType">
  73. <xs:sequence>
  74. <xs:element name="permission" type="permissionType"/>
  75. </xs:sequence>
  76. <xs:attribute name="securityObject" use="required">
  77. <xs:simpleType>
  78. <xs:restriction base="xsd:string"/>
  79. </xs:simpleType>
  80. </xs:attribute>
  81. <xs:attribute name="securityObjectType" use="required">
  82. <xs:simpleType>
  83. <xs:restriction base="xsd:string">
  84. <xs:enumeration value="Account"/>
  85. <xs:enumeration value="Role"/>
  86. <xs:enumeration value="Group"/>
  87. </xs:restriction>
  88. </xs:simpleType>
  89. </xs:attribute>
  90. </xs:complexType>
  91. <xs:complexType name="permissionType">
  92. <xs:attribute name="name" use="required">
  93. <xs:simpleType>
  94. <xs:restriction base="xsd:string">
  95. <xs:enumeration value="read"/>
  96. </xs:restriction>
  97. </xs:simpleType>
  98. </xs:attribute>
  99. <xs:attribute name="access" use="required">
  100. <xs:simpleType>
  101. <xs:restriction base="xsd:string">
  102. <xs:enumeration value="grant"/>
  103. <xs:enumeration value="deny"/>
  104. </xs:restriction>
  105. </xs:simpleType>
  106. </xs:attribute>
  107. </xs:complexType>
  108. <xs:complexType name="ruleObjectRefType">
  109. <xs:complexContent>
  110. <xs:extension base="objectRefType">
  111. <xs:attribute name="dimension" use="required">
  112. <xs:simpleType>
  113. <xs:restriction base="xsd:string"/>
  114. </xs:simpleType>
  115. </xs:attribute>
  116. <xs:attribute name="hierarchy" use="optional">
  117. <xs:simpleType>
  118. <xs:restriction base="xsd:string"/>
  119. </xs:simpleType>
  120. </xs:attribute>
  121. </xs:extension>
  122. </xs:complexContent>
  123. </xs:complexType>
  124. <xs:complexType name="objectRefType">
  125. <xs:attribute name="name" type="nonEmptyStr128Type" use="required"/>
  126. </xs:complexType>
  127. <xs:simpleType name="nonEmptyStr128Type">
  128. <xs:restriction base="xsd:string">
  129. <xs:minLength value="1"/>
  130. <xs:maxLength value="128"/>
  131. </xs:restriction>
  132. </xs:simpleType>
  133. <xs:simpleType name="scopeType">
  134. <xs:restriction base="xsd:string">
  135. <xs:enumeration value="self"/>
  136. <xs:enumeration value="self_and_descendants"/>
  137. <xs:enumeration value="self_and_ascendants"/>
  138. <xs:enumeration value="self_and_ascendants_descendants"/>
  139. </xs:restriction>
  140. </xs:simpleType>
  141. <xs:complexType name="denyType" mixed="true">
  142. <xs:sequence>
  143. <xs:element name="lookupTableQueryItem" type="lookupTableQueryItemType" maxOccurs="unbounded" minOccurs="0"/>
  144. <xs:element name="lookupTableFilter" type="xsd:string" maxOccurs="1" minOccurs="0"/>
  145. </xs:sequence>
  146. <xs:attribute name="scope" use="optional" default="self_and_descendants">
  147. <xs:simpleType>
  148. <xs:restriction base="scopeType">
  149. <xs:enumeration value="self_and_descendants" id="scopeType"/>
  150. </xs:restriction>
  151. </xs:simpleType>
  152. </xs:attribute>
  153. </xs:complexType>
  154. <xs:complexType name="grantType" mixed="true">
  155. <xs:sequence>
  156. <xs:element name="lookupTableQueryItem" type="lookupTableQueryItemType" maxOccurs="unbounded" minOccurs="0"/>
  157. <xs:element name="lookupTableFilter" type="xsd:string" maxOccurs="1" minOccurs="0"/>
  158. </xs:sequence>
  159. <xs:attribute name="all" type="xsd:boolean" use="optional" default="false"/>
  160. <xs:attribute name="scope" type="scopeType" use="optional" default="self"/>
  161. </xs:complexType>
  162. <xs:complexType name="lookupTableQueryItemType">
  163. <xs:attribute name="levelRef" type="xsd:string" use="optional"/>
  164. <xs:attribute name="queryItemRef" type="nonEmptyStrType" use="required"/>
  165. </xs:complexType>
  166. <xs:simpleType name="nonEmptyStrType">
  167. <xs:restriction base="xsd:string">
  168. <xs:minLength value="1"/>
  169. </xs:restriction>
  170. </xs:simpleType>
  171. </xs:schema>