123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by IBM (IBM SWG CANADA) -->
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
- <!-- File description -->
- <xs:annotation>
- <xs:documentation xml:lang="en">
- XML Schema for ROLAP dimensional security specification for RolapSecurityTool.
- </xs:documentation>
- </xs:annotation>
- <xs:element name="security">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="securityRules" type="securityRulesType" minOccurs="0"/>
- <xs:element name="securityViews" type="securityViewsType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="cubeName" use="required">
- <xs:simpleType>
- <xs:restriction base="xsd:string"/>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:complexType name="securityRulesType">
- <xs:sequence>
- <xs:element name="rule" type="ruleType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ruleType">
- <xs:complexContent>
- <xs:extension base="ruleObjectRefType">
- <xs:choice>
- <xs:element name="grant" type="grantType" minOccurs="0"/>
- <xs:element name="deny" type="denyType" minOccurs="0"/>
- </xs:choice>
- <!-- type will be deprecated in a future iteration -->
- <xs:attribute name="type" use="optional">
- <xs:simpleType>
- <xs:restriction base="xsd:string">
- <xs:enumeration value="deny_self_and_descendants"/>
- <xs:enumeration value="basic"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="securityType" use="optional" default="member">
- <xs:simpleType>
- <xs:restriction base="xsd:string">
- <xs:enumeration value="value"/>
- <xs:enumeration value="member"/>
- <xs:enumeration value="attribute"/>
- <xs:enumeration value="dimension"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="securityViewsType">
- <xs:sequence>
- <xs:element name="view" type="viewType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="viewType">
- <xs:complexContent>
- <xs:extension base="objectRefType">
- <xs:sequence>
- <xs:element name="ruleRef" type="ruleObjectRefType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="policy" type="policyType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="policyType">
- <xs:sequence>
- <xs:element name="permission" type="permissionType"/>
- </xs:sequence>
- <xs:attribute name="securityObject" use="required">
- <xs:simpleType>
- <xs:restriction base="xsd:string"/>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="securityObjectType" use="required">
- <xs:simpleType>
- <xs:restriction base="xsd:string">
- <xs:enumeration value="Account"/>
- <xs:enumeration value="Role"/>
- <xs:enumeration value="Group"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- <xs:complexType name="permissionType">
- <xs:attribute name="name" use="required">
- <xs:simpleType>
- <xs:restriction base="xsd:string">
- <xs:enumeration value="read"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="access" use="required">
- <xs:simpleType>
- <xs:restriction base="xsd:string">
- <xs:enumeration value="grant"/>
- <xs:enumeration value="deny"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- <xs:complexType name="ruleObjectRefType">
- <xs:complexContent>
- <xs:extension base="objectRefType">
- <xs:attribute name="dimension" use="required">
- <xs:simpleType>
- <xs:restriction base="xsd:string"/>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="hierarchy" use="optional">
- <xs:simpleType>
- <xs:restriction base="xsd:string"/>
- </xs:simpleType>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="objectRefType">
- <xs:attribute name="name" type="nonEmptyStr128Type" use="required"/>
- </xs:complexType>
- <xs:simpleType name="nonEmptyStr128Type">
- <xs:restriction base="xsd:string">
- <xs:minLength value="1"/>
- <xs:maxLength value="128"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="scopeType">
- <xs:restriction base="xsd:string">
- <xs:enumeration value="self"/>
- <xs:enumeration value="self_and_descendants"/>
- <xs:enumeration value="self_and_ascendants"/>
- <xs:enumeration value="self_and_ascendants_descendants"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="denyType" mixed="true">
- <xs:sequence>
- <xs:element name="lookupTableQueryItem" type="lookupTableQueryItemType" maxOccurs="unbounded" minOccurs="0"/>
- <xs:element name="lookupTableFilter" type="xsd:string" maxOccurs="1" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="scope" use="optional" default="self_and_descendants">
- <xs:simpleType>
- <xs:restriction base="scopeType">
- <xs:enumeration value="self_and_descendants" id="scopeType"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- <xs:complexType name="grantType" mixed="true">
- <xs:sequence>
- <xs:element name="lookupTableQueryItem" type="lookupTableQueryItemType" maxOccurs="unbounded" minOccurs="0"/>
- <xs:element name="lookupTableFilter" type="xsd:string" maxOccurs="1" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="all" type="xsd:boolean" use="optional" default="false"/>
- <xs:attribute name="scope" type="scopeType" use="optional" default="self"/>
- </xs:complexType>
- <xs:complexType name="lookupTableQueryItemType">
- <xs:attribute name="levelRef" type="xsd:string" use="optional"/>
- <xs:attribute name="queryItemRef" type="nonEmptyStrType" use="required"/>
- </xs:complexType>
- <xs:simpleType name="nonEmptyStrType">
- <xs:restriction base="xsd:string">
- <xs:minLength value="1"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:schema>
|