<!--
NAME
    xsseccls.xsd
DESCRIPTION
   Register SecurityClass schema 

MODIFIED        MM/DD/YY
   snadhika     09/28/07 - Added enable attribute for Security Class 
   taahmed      03/12/07 - add defaultACL 
   sgul         11/16/06 - Adding XML translation capability
   taahmed      11/08/06 - Mutable Security Class
   pthornto     10/05/06 - remove xdb:SQLType
   pthornto     09/18/06 - Initial version
 -->
<schema targetNamespace="http://xmlns.oracle.com/xs" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:sc="http://xmlns.oracle.com/xs" xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:xlink="http://www.w3.org/1999/xlink" elementFormDefault="qualified" version="1.0" xdb:flags="24885" xdb:schemaURL="http://xmlns.oracle.com/xs/securityclass.xsd" xdb:schemaOwner="XDB" xdb:numProps="35">
  <annotation>
    <documentation>
             This XML schema describes the structure of Security Class documents.         
          </documentation>
  </annotation>
  <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/csx.xml.xsd"/>
  <import namespace="http://xmlns.oracle.com/xdb" schemaLocation="http://xmlns.oracle.com/xdb/csx.xmltr.xsd"/>
  <import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.w3.org/1999/csx.xlink.xsd"/>
  <element name="securityClass" type="sc:securityClassType" xdb:defaultTable="XS$SECURITYCLASS" xdb:propNumber="2685" xdb:global="true" xdb:memType="258" xdb:defaultTableSchema="XDB"/>
  <complexType name="securityClassType" xdb:typeID="181">
    <annotation>
      <appinfo><xdb:kidList xmlns:xdb="http://xmlns.oracle.com/xdb">
          <xdb:kid propNum="2699" kidNum="0"/>
          <xdb:kid propNum="2700" kidNum="1"/>
          <xdb:kid propNum="2701" kidNum="2"/>
          <xdb:kid propNum="2702" kidNum="3"/>
          <xdb:kid propNum="2704" kidNum="4"/>
          <xdb:kid propNum="2705" kidNum="5"/>
          <xdb:kid propNum="2703" kidNum="6"/>
          <xdb:kid propNum="2694" kidNum="7"/>
          <xdb:kid propNum="2695" kidNum="8"/>
          <xdb:kid propNum="2696" kidNum="9"/>
          <xdb:kid propNum="2697" kidNum="10"/>
          <xdb:kid propNum="2698" kidNum="11"/>
        </xdb:kidList></appinfo>
    </annotation>
    <sequence>
      <element ref="sc:title" minOccurs="0" maxOccurs="unbounded" xdb:maxOccurs="1" xdb:translate="true" xdb:propNumber="2699" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false"/>
      <element ref="sc:description" minOccurs="0" maxOccurs="unbounded" xdb:maxOccurs="1" xdb:translate="true" xdb:propNumber="2700" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false"/>
      <element name="inherits-from" type="QName" minOccurs="0" maxOccurs="unbounded" xdb:propNumber="2701" xdb:global="false" xdb:SQLType="qname" xdb:memType="260" xdb:MemInline="true" xdb:SQLInline="true" xdb:JavaInline="true"/>
      <element name="defaultAcl" type="sc:defaultAclType" minOccurs="0" maxOccurs="unbounded" xdb:propNumber="2702" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false"/>
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="sc:privilege" xdb:propNumber="2704" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false"/>
        <element ref="sc:aggregatePrivilege" xdb:propNumber="2705" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false"/>
      </choice>
      <!-- this  any contains all application specific information
                               for a security class in general e.g. reason for creation  -->
      <any namespace="##other" minOccurs="0" maxOccurs="unbounded" xdb:propNumber="2703" xdb:SQLName="SYS_XDBANY109$" xdb:SQLType="VARCHAR2" xdb:memType="258"/>
    </sequence>
    <attribute name="name" type="sc:nameType" use="required" xdb:propNumber="2694" xdb:global="false" xdb:memType="1"/>
    <attribute name="secClassNumber" type="hexBinary" xdb:propNumber="2695" xdb:global="false" xdb:memType="23"/>
    <attribute name="targetNamespace" type="anyURI" use="required" xdb:propNumber="2696" xdb:global="false" xdb:memType="1"/>
    <!-- "mutable" imples that the security-class can be modified at runtime.
                      An immutable security class will not be invalidated once loaded   -->
    <attribute name="mutable" type="boolean" default="true" xdb:propNumber="2697" xdb:global="false" xdb:memType="252"/>
    <attribute name="enable" type="boolean" default="true" xdb:propNumber="2698" xdb:global="false" xdb:memType="252"/>
  </complexType>
  <element name="privilege" type="sc:privilegeType" xdb:propNumber="2686" xdb:global="true" xdb:memType="258" xdb:defaultTable="privilege107_TAB" xdb:defaultTableSchema="XDB"/>
  <complexType name="privilegeType" xdb:typeID="182">
    <annotation>
      <appinfo><xdb:kidList xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true">
          <xdb:kid propNum="2708" kidNum="0"/>
          <xdb:kid propNum="2709" kidNum="1"/>
          <xdb:kid propNum="2710" kidNum="2"/>
          <xdb:kid propNum="2706" kidNum="3"/>
          <xdb:kid propNum="2707" kidNum="4"/>
        </xdb:kidList></appinfo>
    </annotation>
    <sequence>
      <element ref="sc:title" minOccurs="0" maxOccurs="unbounded" xdb:maxOccurs="1" xdb:translate="true" xdb:propNumber="2708" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false"/>
      <element ref="sc:description" minOccurs="0" maxOccurs="unbounded" xdb:maxOccurs="1" xdb:translate="true" xdb:propNumber="2709" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false"/>
      <!-- this any contains all application specific information     
                                                       for a privilege e.g. translations  -->
      <any namespace="##other" minOccurs="0" maxOccurs="unbounded" xdb:propNumber="2710" xdb:SQLName="SYS_XDBANY106$" xdb:SQLType="VARCHAR2" xdb:memType="258"/>
    </sequence>
    <attribute name="name" type="sc:nameType" use="required" xdb:propNumber="2706" xdb:global="false" xdb:memType="1"/>
    <attribute name="privNumber" type="hexBinary" xdb:propNumber="2707" xdb:global="false" xdb:memType="23"/>
  </complexType>
  <element name="aggregatePrivilege" type="sc:aggregatePrivilegeType" xdb:propNumber="2687" xdb:global="true" xdb:memType="258" xdb:defaultTable="aggregatePrivilege108_TAB" xdb:defaultTableSchema="XDB"/>
  <complexType name="aggregatePrivilegeType" xdb:typeID="183">
    <annotation>
      <appinfo><xdb:kidList xmlns:xdb="http://xmlns.oracle.com/xdb">
          <xdb:kid propNum="2713" kidNum="0"/>
          <xdb:kid propNum="2714" kidNum="1"/>
          <xdb:kid propNum="2717" kidNum="2"/>
          <xdb:kid propNum="2715" kidNum="3"/>
          <xdb:kid propNum="2711" kidNum="4"/>
          <xdb:kid propNum="2712" kidNum="5"/>
        </xdb:kidList></appinfo>
    </annotation>
    <sequence>
      <element ref="sc:title" minOccurs="0" maxOccurs="unbounded" xdb:maxOccurs="1" xdb:translate="true" xdb:propNumber="2713" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false"/>
      <element ref="sc:description" minOccurs="0" maxOccurs="unbounded" xdb:maxOccurs="1" xdb:translate="true" xdb:propNumber="2714" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false"/>
      <sequence maxOccurs="unbounded">
        <element name="privilegeRef" xdb:propNumber="2717" xdb:global="false" xdb:memType="258" xdb:MemInline="false" xdb:SQLInline="true" xdb:JavaInline="false">
          <complexType>
            <annotation>
              <appinfo><xdb:kidList xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true">
                  <xdb:kid propNum="2716" kidNum="0"/>
                </xdb:kidList></appinfo>
            </annotation>
            <attribute name="name" type="QName" use="required" xdb:propNumber="2716" xdb:global="false" xdb:memType="260"/>
          </complexType>
        </element>
      </sequence>
      <!-- this any contains all application specific information     
                                        an aggregate privilege   -->
      <any namespace="##other" minOccurs="0" maxOccurs="unbounded" xdb:propNumber="2715" xdb:SQLName="SYS_XDBANY105$" xdb:SQLType="VARCHAR2" xdb:memType="258"/>
    </sequence>
    <attribute name="name" type="sc:nameType" use="required" xdb:propNumber="2711" xdb:global="false" xdb:memType="1"/>
    <attribute name="privNumber" type="hexBinary" xdb:propNumber="2712" xdb:global="false" xdb:memType="23"/>
  </complexType>
  <simpleType name="nameType" xdb:typeID="180">
    <restriction base="string">
      <minLength value="0"/>
      <maxLength value="1024"/>
    </restriction>
  </simpleType>
  <complexType name="defaultAclType" xdb:typeID="184">
    <annotation>
      <appinfo><xdb:kidList xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true">
          <xdb:kid propNum="2718" kidNum="0"/>
          <xdb:kid propNum="2719" kidNum="1"/>
        </xdb:kidList></appinfo>
    </annotation>
    <attribute ref="xlink:type" use="required" xdb:propNumber="2718" xdb:global="false" xdb:memType="259"/>
    <attribute ref="xlink:href" use="required" xdb:propNumber="2719" xdb:global="false" xdb:memType="1"/>
  </complexType>
  <element name="title" xdb:propNumber="2690" xdb:global="true" xdb:memType="258" xdb:defaultTable="title103_TAB" xdb:defaultTableSchema="XDB">
    <complexType>
      <annotation>
        <appinfo><xdb:kidList xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true">
            <xdb:kid propNum="2688" kidNum="0"/>
            <xdb:kid propNum="2689" kidNum="1"/>
          </xdb:kidList></appinfo>
      </annotation>
      <simpleContent>
        <extension base="string">
          <attribute ref="xml:lang" xdb:propNumber="2688" xdb:global="false" xdb:memType="1"/>
          <attribute ref="xdb:srclang" xdb:propNumber="2689" xdb:global="false" xdb:memType="252"/>
        </extension>
      </simpleContent>
    </complexType>
  </element>
  <element name="description" xdb:propNumber="2693" xdb:global="true" xdb:memType="258" xdb:defaultTable="description104_TAB" xdb:defaultTableSchema="XDB">
    <complexType>
      <annotation>
        <appinfo><xdb:kidList xmlns:xdb="http://xmlns.oracle.com/xdb" sequential="true">
            <xdb:kid propNum="2691" kidNum="0"/>
            <xdb:kid propNum="2692" kidNum="1"/>
          </xdb:kidList></appinfo>
      </annotation>
      <simpleContent>
        <extension base="string">
          <attribute ref="xml:lang" xdb:propNumber="2691" xdb:global="false" xdb:memType="1"/>
          <attribute ref="xdb:srclang" xdb:propNumber="2692" xdb:global="false" xdb:memType="252"/>
        </extension>
      </simpleContent>
    </complexType>
  </element>
</schema>
