MINI MINI MANI MO
<?xml version="1.0"?>
<!--
NAME
xsprin.xsd
DESCRIPTION
Register XS Principal Schema
MODIFIED MM/DD/YY
rbhatti 11/01/07 - Schema cleanup for <any> tag
rbhatti 10/16/07 - Schema change for roleType element
sgul 03/20/07 - Schema change for Bug 5900813
taahmed 03/12/07 - enable xml translation
jnarasin 03/12/07 - Add scope attribute for dynamic role
jsamuel 01/25/07 - Upgraded Principal Schema with user status attribute
pknaggs 11/07/06 - Remove principal targetNamespace (bug 5632273)
jsamuel 11/12/06 - merge sqlusertype with rootusertype
pknaggs 11/07/06 - Make targetNamespace optional (bug 5632273)
pthornto 09/14/06 - Initial version
-->
<schema targetNamespace="http://xmlns.oracle.com/xs"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb"
xmlns:xdbprin="http://xmlns.oracle.com/xs"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sc="http://xmlns.oracle.com/xs"
elementFormDefault="qualified" version="1.0">
<annotation>
<documentation>
Schema describes the structure of Principal, User, and Role 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"/>
<complexType name="effectiveDatesType">
<attribute name="start_date" type="dateTime" use="required"/>
<attribute name="end_date" type="dateTime" use="optional"/>
</complexType>
<complexType name="roleGrantType">
<sequence>
<element name="effectiveDates" type="xdbprin:effectiveDatesType"
minOccurs="0" maxOccurs="1"/>
</sequence>
<attribute ref="xlink:type" use="required"/>
<attribute ref="xlink:href" use="required"/>
<attribute name="justification" type="string" use="optional"/>
</complexType>
<complexType name="principalType">
<sequence>
<element ref="sc:title" minOccurs="0" maxOccurs="unbounded" xdb:maxOccurs="1" xdb:translate="true"/>
<element ref="sc:description" minOccurs="0" maxOccurs="unbounded" xdb:maxOccurs="1" xdb:translate="true"/>
<element name="UID" type="integer" minOccurs="0" maxOccurs="1"/>
<element name="GUID" type="hexBinary" minOccurs="0" maxOccurs="1"/>
<element name="externalSource" type="string" minOccurs="0"/>
<element name="roleGrant" type="xdbprin:roleGrantType" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="proxyUserType">
<sequence maxOccurs="unbounded">
<element name="proxyRole" type="string"/>
</sequence>
<attribute name="user" type="anyURI" use="required"/>
</complexType>
<complexType name="userType">
<complexContent>
<extension base="xdbprin:principalType">
<sequence>
<element name="userName" type="string" minOccurs="1"/>
<element name="proxyUser" type="xdbprin:proxyUserType" minOccurs="0" maxOccurs="unbounded"/>
<element name="effectiveDates" type="xdbprin:effectiveDatesType"
minOccurs="0" maxOccurs="1"/>
<element name="schema" type="string" minOccurs="0" maxOccurs="1"/>
<element name="tableSpace" type="string" minOccurs="0" maxOccurs="1"/>
<element name="profile" type="string" minOccurs="0" maxOccurs="1"/>
<element name="credential" type="string" minOccurs="0" maxOccurs="1"/>
<element name="failedlogins" type="hexBinary" minOccurs="0" maxOccurs="1"/>
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="surName" type="string" use="optional"/>
<attribute name="commonName" type="string" use="optional"/>
<attribute name="DistinguishedName" type="string" use="optional"/>
<attribute name="KerberosPrincipalName" type="string" use="optional"/>
<attribute name="email" type="string" use="optional"/>
<attribute name="audio" type="hexBinary" use="optional"/>
<attribute name="businessCategory" type="string" use="optional"/>
<attribute name="carLicense" type="string" use="optional"/>
<attribute name="departmentNumber" type="string" use="optional"/>
<attribute name="displayName" type="string" use="optional"/>
<attribute name="employeeNumber" type="string" use="optional"/>
<attribute name="employeeType" type="string" use="optional"/>
<attribute name="givenName" type="string" use="optional"/>
<attribute name="homePhone" type="string" use="optional"/>
<attribute name="homePostalAddress" type="string" use="optional"/>
<attribute name="initials" type="string" use="optional"/>
<attribute name="jpegPhoto" type="hexBinary" use="optional"/>
<attribute name="labeledURI" type="string" use="optional"/>
<attribute name="mail" type="string" use="optional"/>
<attribute name="manager" type="string" use="optional"/>
<attribute name="mobile" type="string" use="optional"/>
<attribute name="organization" type="string" use="optional"/>
<attribute name="pager" type="string" use="optional"/>
<attribute name="photo" type="string" use="optional"/>
<attribute name="roomNumber" type="string" use="optional"/>
<attribute name="secretary" type="string" use="optional"/>
<attribute name="userCertificate" type="string" use="optional"/>
<attribute name="x500uniqueIdentifier" type="string" use="optional"/>
<attribute name="preferredLanguage" type="string" use="optional"/>
<attribute name="userSMIMECertificate" type="string" use="optional"/>
<attribute name="userPKCS12" type="string" use="optional"/>
<attribute name="description" type="string" use="optional"/>
<attribute name="destinationIndicator" type="string" use="optional"/>
<attribute name="facsimileTelephoneNumber" type="string" use="optional"/>
<attribute name="internationaliSDNNumber" type="string" use="optional"/>
<attribute name="locality" type="string" use="optional"/>
<attribute name="organizationalUnit" type="string" use="optional"/>
<attribute name="physicalDeliveryOfficeName" type="string" use="optional"/>
<attribute name="postalAddress" type="string" use="optional"/>
<attribute name="postalCode" type="string" use="optional"/>
<attribute name="postOfficeBox" type="string" use="optional"/>
<attribute name="preferredDeliveryMethod" type="string" use="optional"/>
<attribute name="registeredAddress" type="string" use="optional"/>
<attribute name="seeAlso" type="string" use="optional"/>
<attribute name="state" type="string" use="optional"/>
<attribute name="street" type="string" use="optional"/>
<attribute name="telephoneNumber" type="string" use="optional"/>
<attribute name="teletexTerminalIdentifier" type="string" use="optional"/>
<attribute name="telexNumber" type="string" use="optional"/>
<attribute name="title" type="string" use="optional"/>
<attribute name="x121Address" type="string" use="optional"/>
<attribute name="user_status">
<simpleType>
<restriction base="string">
<enumeration value="Active"/>
<enumeration value="Inactive"/>
<enumeration value="PasswordExpired"/>
<enumeration value="Locked"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="baseRoleType">
<complexContent>
<extension base="xdbprin:principalType">
<sequence>
<element name="name" type="string"/>
</sequence>
<attribute name="enable" type="boolean" default="false"/>
</extension>
</complexContent>
</complexType>
<complexType name="roleType">
<complexContent>
<extension base="xdbprin:baseRoleType">
<sequence>
<element name="effectiveDates" type="xdbprin:effectiveDatesType"
minOccurs="0"/>
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="dynamicRoleType">
<complexContent>
<extension base="xdbprin:baseRoleType">
<sequence>
<element name="duration" type="integer" minOccurs="0"/>
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="system" type="boolean" default="false"/>
<attribute name="scope" default="session">
<simpleType>
<restriction base="string">
<enumeration value="session"/>
<enumeration value="request"/>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="functionRoleType">
<complexContent>
<extension base="xdbprin:baseRoleType">
<sequence>
<element name="owner" type="string"/>
<element name="packageName" type="string"/>
<element name="functionName" type="string"/>
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="title">
<complexType>
<simpleContent>
<extension base="string">
<attribute ref="xml:lang"/>
<attribute ref="xdb:srclang"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="description">
<complexType>
<simpleContent>
<extension base="string">
<attribute ref="xml:lang"/>
<attribute ref="xdb:srclang"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="principal" type="xdbprin:principalType" abstract="true" xdb:defaultTable="XS$PRINCIPALS"/>
<element name="user" type="xdbprin:userType" substitutionGroup="xdbprin:principal" xdb:defaultTable="XS$PRINCIPALS"/>
<element name="role" type="xdbprin:roleType" substitutionGroup="xdbprin:principal" xdb:defaultTable="XS$PRINCIPALS"/>
<element name="functionRole" type="xdbprin:functionRoleType" substitutionGroup="xdbprin:principal" xdb:defaultTable="XS$PRINCIPALS"/>
<element name="dynamicRole" type="xdbprin:dynamicRoleType" substitutionGroup="xdbprin:principal" xdb:defaultTable="XS$PRINCIPALS"/>
</schema>
OHA YOOOO