MINI MINI MANI MO
<!--
NAME
xsseccls.xsd
DESCRIPTION
Register SecurityClass schema
MODIFIED MM/DD/YY
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"
elementFormDefault="qualified" version="1.0" xdb:storeVarrayAsTable="true">
<annotation>
<documentation>
This XML schema describes the structure of Security Class documents.
</documentation>
</annotation>
<element name="securityClass" type="sc:securityClassType" xdb:defaultTable="XS$SECURITYCLASS"/>
<complexType name="securityClassType">
<sequence>
<element name="title" minOccurs="0"/>
<element name="description" minOccurs="0"/>
<element name="inherits-from" type="QName" minOccurs="0" maxOccurs="unbounded"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="sc:privilege"/>
<element ref="sc:aggregatePrivilege"/>
</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"/>
</sequence>
<attribute name="name" type="sc:nameType" use="required"/>
<attribute name="secClassNumber" type="hexBinary"/>
<attribute name="targetNamespace" type="anyURI" use="required"/>
<!-- "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"/>
</complexType>
<element name="privilege" type="sc:privilegeType"/>
<complexType name="privilegeType">
<sequence>
<element name="title" minOccurs="0"/>
<element name="description" minOccurs="0"/>
<!-- this any contains all application specific information
for a privilege e.g. translations -->
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="sc:nameType" use="required"/>
<attribute name="privNumber" type="hexBinary"/>
</complexType>
<element name="aggregatePrivilege" type="sc:aggregatePrivilegeType"/>
<complexType name="aggregatePrivilegeType">
<sequence>
<element name="title" minOccurs="0"/>
<element name="description" minOccurs="0"/>
<sequence maxOccurs="unbounded">
<element name="privilegeRef">
<complexType>
<attribute name="name" type="QName" use="required"/>
</complexType>
</element>
</sequence>
<!-- this any contains all application specific information
an aggregate privilege -->
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="sc:nameType" use="required"/>
<attribute name="privNumber" type="hexBinary"/>
</complexType>
<simpleType name="nameType">
<restriction base="string">
<minLength value="0"/>
<maxLength value="1024"/>
</restriction>
</simpleType>
</schema>
OHA YOOOO