Oracle® Role Manager Developer's Guide Release 10g (10.1.4) Part Number E12759-01 |
|
|
View PDF |
This appendix contains the XML schema definitions for the data model. The standard data model and any customizations to the Oracle Role Manager model are validated by two schema definitions, the object type definition and the model configuration.
This appendix contains the following sections:
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/iam/rm/type/def/1_0" targetNamespace="http://xmlns.oracle.com/iam/rm/type/def/1_0" attributeFormDefault="unqualified" elementFormDefault="qualified" > <xsd:simpleType name="Version"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}(\.[0-9]{1,4}){0,2}"> <xsd:annotation> <xsd:documentation>i.e. x.y.z, x.y.z.j or x.y.z.j.h. where x, y, z, j and h are "small" integers</xsd:documentation> </xsd:annotation> </xsd:pattern> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="StringType"> <xsd:complexContent> <xsd:extension base="PrimitiveType"> <xsd:sequence> <xsd:element name="length" type="StringLengthConstraint"/> <xsd:element name="whitespace" type="WhitespaceConstraint" minOccurs="0"/> <xsd:element name="pattern" type="StringPatternConstraint" minOccurs="0"/> <xsd:element name="default-value" type="xsd:string" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="StringTypeExt"> <xsd:complexContent> <xsd:extension base="PrimitiveTypeExt"> <xsd:sequence> <xsd:element name="whitespace" type="WhitespaceConstraint" minOccurs="0"/> <xsd:element name="pattern" type="StringPatternConstraint" minOccurs="0"/> <xsd:element name="default-value" type="xsd:string" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType abstract="true" name="NumericType"> <xsd:complexContent> <xsd:extension base="PrimitiveType"> <xsd:sequence> <xsd:element name="value-range" type="NumericConstraint" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="scale" type="xsd:nonNegativeInteger" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType abstract="true" name="NumericTypeExt"> <xsd:complexContent> <xsd:extension base="PrimitiveTypeExt"> <xsd:sequence> <xsd:element name="value-range" type="NumericConstraint" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="IntegerType"> <xsd:complexContent> <xsd:extension base="NumericType"> <xsd:sequence> <xsd:element name="default-value" type="xsd:long" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="IntegerTypeExt"> <xsd:complexContent> <xsd:extension base="NumericTypeExt"> <xsd:sequence> <xsd:element name="default-value" type="xsd:long" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="DecimalType"> <xsd:complexContent> <xsd:extension base="NumericType"> <xsd:sequence> <xsd:element name="default-value" type="xsd:double" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="precision" type="xsd:nonNegativeInteger" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="DecimalTypeExt"> <xsd:complexContent> <xsd:extension base="NumericTypeExt"> <xsd:sequence> <xsd:element name="default-value" type="xsd:double" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="DateTimeType"> <xsd:complexContent> <xsd:extension base="PrimitiveType"> <xsd:sequence> <xsd:element name="default-value" type="dateTime" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:simpleType name="dateTime"> <xsd:restriction base="xsd:string"> <!-- yyyy-MM-dd'T'HH:mm:ss.SSS OR "transaction" --> <xsd:pattern value="(\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])T([01]\d|2[0-3])(:[0-5]\d){2}(\.\d{3})?)|transaction"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="DateTimeTypeExt"> <xsd:complexContent> <xsd:extension base="PrimitiveTypeExt"> <xsd:sequence> <xsd:element name="default-value" type="dateTime" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="BooleanType"> <xsd:complexContent> <xsd:extension base="PrimitiveType"> <xsd:sequence> <xsd:element name="default-value" type="xsd:boolean" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="BooleanTypeExt"> <xsd:complexContent> <xsd:extension base="PrimitiveTypeExt"> <xsd:sequence> <xsd:element name="default-value" type="xsd:boolean" minOccurs="0"/> <xsd:element name="default-unique-value" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="BinaryType"> <xsd:complexContent> <xsd:extension base="AbstractType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="BinaryTypeExt"> <xsd:complexContent> <xsd:extension base="PrimitiveTypeExt"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType abstract="true" name="PrimitiveType"> <xsd:complexContent> <xsd:extension base="AbstractType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType abstract="true" name="PrimitiveTypeExt"> <xsd:complexContent> <xsd:extension base="AbstractTypeExt"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ReferenceType"> <xsd:complexContent> <xsd:extension base="AbstractType"> <xsd:attribute name="object-type" type="xsd:string" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ReferenceTypeExt"> <xsd:complexContent> <xsd:extension base="AbstractTypeExt"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType abstract="true" name="AbstractType"> <xsd:sequence> <xsd:element name="non-null-constraint" type="NonNullConstraint" minOccurs="0"/> <xsd:element name="unique-constraint" type="UniqueConstraint" minOccurs="0"/> <xsd:element name="multi-value-range-constraint" type="MultiValueRangeConstraint" minOccurs="0"/> <xsd:element name="valid-value-constraint" type="ValidValueConstraint" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="multi-value" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> <xsd:complexType abstract="true" name="AbstractTypeExt"> <xsd:sequence> <xsd:element name="non-null-constraint" type="NonNullConstraint" minOccurs="0"/> <xsd:element name="unique-constraint" type="UniqueConstraint" minOccurs="0"/> <xsd:element name="multi-value-range-constraint" type="MultiValueRangeConstraint" minOccurs="0"/> <xsd:element name="valid-value-constraint" type="ValidValueConstraint" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="multi-value" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> <xsd:group name="TypeChoice"> <xsd:choice> <xsd:element name="string" type="StringType"/> <xsd:element name="boolean" type="BooleanType"/> <xsd:element name="integer" type="IntegerType"/> <xsd:element name="decimal" type="DecimalType"/> <xsd:element name="datetime" type="DateTimeType"/> <xsd:element name="reference" type="ReferenceType"/> <xsd:element name="binary" type="BinaryType"/> </xsd:choice> </xsd:group> <xsd:group name="TypeExtChoice"> <xsd:choice> <xsd:element name="string-ext" type="StringTypeExt"/> <xsd:element name="boolean-ext" type="BooleanTypeExt"/> <xsd:element name="integer-ext" type="IntegerTypeExt"/> <xsd:element name="decimal-ext" type="DecimalTypeExt"/> <xsd:element name="datetime-ext" type="DateTimeTypeExt"/> <xsd:element name="reference-ext" type="ReferenceTypeExt"/> <xsd:element name="binary-ext" type="BinaryTypeExt"/> </xsd:choice> </xsd:group> <xsd:group name="PrimitiveTypeExtChoice"> <xsd:choice> <xsd:element name="string-ext" type="StringTypeExt"/> <xsd:element name="boolean-ext" type="BooleanTypeExt"/> <xsd:element name="integer-ext" type="IntegerTypeExt"/> <xsd:element name="decimal-ext" type="DecimalTypeExt"/> <xsd:element name="datetime-ext" type="DateTimeTypeExt"/> <xsd:element name="binary-ext" type="BinaryTypeExt"/> </xsd:choice> </xsd:group> <xsd:group name="PrimitiveTypeChoice"> <xsd:choice> <xsd:element name="string" type="StringType"/> <xsd:element name="boolean" type="BooleanType"/> <xsd:element name="integer" type="IntegerType"/> <xsd:element name="decimal" type="DecimalType"/> <xsd:element name="datetime" type="DateTimeType"/> <xsd:element name="binary" type="BinaryType"/> </xsd:choice> </xsd:group> <xsd:complexType abstract="true" name="ValueConstraint"> <xsd:sequence> <xsd:element name="violation-message" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="NumericConstraint"> <xsd:complexContent> <xsd:extension base="ValueConstraint"> <xsd:attribute name="min-value" type="xsd:double" use="optional"/> <xsd:attribute name="max-value" type="xsd:double" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="StringLengthConstraint"> <xsd:complexContent> <xsd:extension base="ValueConstraint"> <xsd:attribute name="min-length" type="xsd:nonNegativeInteger" use="optional" default="0"/> <xsd:attribute name="max-length" type="xsd:nonNegativeInteger" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="WhitespaceConstraint"> <xsd:complexContent> <xsd:extension base="ValueConstraint"> <xsd:attribute name="allow-leading-spaces" type="xsd:boolean" use="optional" default="false"/> <xsd:attribute name="allow-trailing-spaces" type="xsd:boolean" use="optional" default="false"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="StringPatternConstraint"> <xsd:complexContent> <xsd:extension base="ValueConstraint"> <xsd:sequence> <xsd:element name="pattern" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="MultiValueRangeConstraint"> <xsd:complexContent> <xsd:extension base="ValueConstraint"> <xsd:attribute name="min-values" type="xsd:nonNegativeInteger" use="optional" default="0"/> <xsd:attribute name="max-values" type="xsd:nonNegativeInteger" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="UniqueConstraint"> <xsd:complexContent> <xsd:extension base="ValueConstraint"> <xsd:attribute name="case-sensitive" type="xsd:boolean" use="optional" default="true"/> <xsd:attribute name="type" type="xsd:string" use="optional" default="varying-temporal"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ValidValueConstraint"> <xsd:complexContent> <xsd:extension base="ValueConstraint"> <xsd:sequence> <xsd:element name="values"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:choice> <xsd:element name="string-value" type="xsd:string"/> <xsd:element name="integer-value" type="xsd:long"/> <xsd:element name="decimal-value" type="xsd:double"/> <xsd:element name="boolean-value" type="xsd:boolean"/> </xsd:choice> <xsd:element name="label" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="NonNullConstraint"> <xsd:complexContent> <xsd:extension base="ValueConstraint"/> </xsd:complexContent> </xsd:complexType> </xsd:schema>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:t="http://xmlns.oracle.com/iam/rm/type/def/1_0" xmlns:c="http://xmlns.oracle.com/iam/rm/cache/config/1_0" xmlns="http://xmlns.oracle.com/iam/rm/temporal/config/1_0" targetNamespace="http://xmlns.oracle.com/iam/rm/temporal/config/1_0" attributeFormDefault="unqualified" elementFormDefault="qualified" > <xsd:import namespace="http://xmlns.oracle.com/iam/rm/type/def/1_0"/> <xsd:import namespace="http://xmlns.oracle.com/iam/rm/cache/config/1_0"/> <xsd:element name="temporal" type="TemporalType"/> <xsd:simpleType name="dbEntityName"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[a-zA-Z][a-zA-Z0-9_]*"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="TemporalType"> <xsd:sequence> <xsd:element name="compatible-versions" type="CompatibleVersions" minOccurs="0"/> <xsd:element name="dependencies" type="Dependencies" minOccurs="0"/> <xsd:element name="default-cache-config" type="c:cacheConfigType" minOccurs="0"/> <xsd:element name="domain-definitions" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="domain-definition" type="DomainDefinition" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="permission-definitions" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="permission-definition" type="PermissionDefinition" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="system-indexes" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="index" type="IndexDefinition" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="type-definitions" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element name="structural-type-definition" type="StructuralTypeDefinition"/> <xsd:element name="mixin-type-definition" type="MixinTypeDefinition"/> <xsd:element name="relationship-type-definition" type="RelationshipTypeDefinition"/> <xsd:element name="extension-type-definition" type="ExtensionTypeDefinition"/> <xsd:element name="hierarchy-type-definition" type="HierarchyTypeDefinition"/> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="system-constraints" type="ConstraintList" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="version" use="required" type="t:Version"/> <xsd:attribute name="previous-version" use="optional" type="t:Version"/> </xsd:complexType> <xsd:complexType name="CompatibleVersions"> <xsd:sequence> <xsd:element name="compatible-version" type="CompatibleVersion" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="CompatibleVersion"> <xsd:attribute name="version" type="t:Version" use="required"/> </xsd:complexType> <xsd:complexType name="Dependencies"> <xsd:sequence> <xsd:element name="dependency" type="Dependency" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Dependency"> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="version" type="t:Version" use="required"/> </xsd:complexType> <xsd:complexType name="ConstraintList"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="mutually-exclusive-set-constraint"> <xsd:complexType> <xsd:sequence minOccurs="0" maxOccurs="1"> <xsd:element name="attributes" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence minOccurs="2" maxOccurs="unbounded"> <xsd:element name="attribute" type="dbEntityName" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="custom-constraint"> <xsd:complexType> <xsd:sequence minOccurs="0" maxOccurs="1"> <xsd:element name="body" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="name" type="dbEntityName" use="required"/> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> <xsd:complexType name="DomainDefinition"> <xsd:group ref="t:PrimitiveTypeChoice"/> <xsd:attribute name="name" type="dbEntityName" use="required"/> </xsd:complexType> <xsd:complexType name="PermissionDefinition"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="description" type="xsd:string"/> <xsd:element name="privilege-name" type="xsd:string"/> <xsd:element name="privilege-description" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="StructuralTypeDefinition"> <xsd:complexContent> <xsd:extension base="EntityTypeDefinition"> <xsd:sequence> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="RelationshipTypeDefinition"> <xsd:complexContent> <xsd:extension base="TypeDefinition"> <xsd:sequence> <xsd:element name="primary-key-definitions"> <xsd:complexType> <xsd:sequence> <xsd:element name="primary-key-definition" type="PrimaryKeyDefinition" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="bypassing-relationship-paths" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="bypassing-relationship-path" minOccurs="1" maxOccurs="2"> <xsd:complexType> <xsd:sequence> <xsd:element name="title" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="local-attribute" type="dbEntityName" use="required"/> <xsd:attribute name="foreign-attribute" type="dbEntityName" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="MixinTypeDefinition"> <xsd:complexContent> <xsd:extension base="EntityTypeDefinition"> <xsd:sequence> <xsd:element name="related-types"> <xsd:complexType> <xsd:sequence> <xsd:element name="related-type" type="dbEntityName" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="EntityTypeDefinition"> <xsd:complexContent> <xsd:extension base="TypeDefinition"> <xsd:attribute name="extends" type="dbEntityName" use="optional"/> <xsd:attribute name="abstract" type="xsd:boolean" use="optional" default="false"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="TypeDefinition"> <xsd:sequence> <xsd:element name="title" type="xsd:string" nillable="false"/> <xsd:element name="title-attribute" type="xsd:string" minOccurs="0"/> <xsd:element name="cache-config" type="c:cacheConfigType" minOccurs="0"/> <xsd:element name="snapshot-interface-classname" type="xsd:string" minOccurs="0"/> <xsd:element name="index-definitions" minOccurs="0"> <xsd:complexType> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="index" type="IndexDefinition"/> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="attribute-definitions" minOccurs="0"> <xsd:complexType> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element name="reference-attribute" type="ReferenceAttributeDefinition"/> <xsd:element name="attribute" type="AttributeDefinition"/> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="related-audit-objects" type="RelatedAuditObjects" minOccurs="0"/> <xsd:element name="permissions" type="Permissions" minOccurs="0"/> <xsd:element name="access-policy" type="AccessPolicy" minOccurs="0"/> <xsd:element name="entity-constraints" type="ConstraintList" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="dbEntityName" use="required"/> <xsd:attribute name="disjointed" type="temporalConstraintType"/> <xsd:attribute name="overlapping" type="temporalConstraintType"/> <xsd:attribute name="continuous" type="temporalConstraintType"/> <xsd:attribute name="storage-type" type="storageType" default="pan-temporal" use="optional"/> <xsd:attribute name="definition" type="definitionType" default="internal" use="optional"/> </xsd:complexType> <xsd:simpleType name="temporalConstraintType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="true"/> <xsd:enumeration value="fill"/> <xsd:enumeration value="false"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="definitionType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="external"/> <xsd:enumeration value="internal"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="storageType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="temporal"/> <xsd:enumeration value="current-time"/> <xsd:enumeration value="pan-temporal"/> <xsd:enumeration value="historical"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="HierarchyTypeDefinition"> <xsd:sequence> <xsd:element name="title" type="xsd:string"/> <xsd:element name="node-definitions"> <xsd:complexType> <xsd:sequence> <xsd:element name="node-definition" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="node-relationships" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="node-relationship" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="foreign-type" type="dbEntityName" use="required"/> <xsd:attribute name="relationship-path" type="dbEntityName" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="default-parent" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="identifying-attributes" type="AttributeValueList"/> </xsd:sequence> <xsd:attribute name="object-type" type="dbEntityName" use="required"/> <xsd:attribute name="referring-attribute" type="dbEntityName" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="object-type" type="dbEntityName" use="required"/> <xsd:attribute name="anchor" type="xsd:boolean" use="optional" default="false"/> <xsd:attribute name="mandatory" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="default-anchors" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="default-anchor" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="identifying-attributes" type="AttributeValueList"/> <xsd:element name="attributes" type="AttributeValueList" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="object-type" type="dbEntityName" use="required"/> <xsd:attribute name="hierarchy-root-attribute" type="dbEntityName" use="optional"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="permissions" type="Permissions" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="dbEntityName" use="required"/> <xsd:attribute name="single-anchor" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> <xsd:complexType name="AttributeValueList"> <xsd:sequence> <xsd:element name="attribute" maxOccurs="unbounded"> <xsd:complexType> <xsd:choice> <xsd:element name="integer-value" type="xsd:long"/> <xsd:element name="decimal-value" type="xsd:double"/> <xsd:element name="datetime-value" type="t:dateTime"/> <xsd:element name="string-value" type="xsd:string"/> <xsd:element name="boolean-value" type="xsd:boolean"/> </xsd:choice> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ExtensionTypeDefinition"> <xsd:sequence> <xsd:element name="title-attribute" type="xsd:string" minOccurs="0"/> <xsd:element name="cache-config" type="c:cacheConfigType" minOccurs="0"/> <xsd:element name="attribute-definitions" minOccurs="0"> <xsd:complexType> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element name="reference-attribute" type="ReferenceAttributeDefinition"/> <xsd:element name="attribute" type="AttributeDefinition"/> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="related-audit-objects" type="RelatedAuditObjects" minOccurs="0"/> <xsd:element name="permissions" type="Permissions" minOccurs="0"/> <xsd:element name="access-policy" type="AccessPolicy" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="extending-type-id" type="dbEntityName" use="required"/> </xsd:complexType> <xsd:complexType name="Permissions"> <xsd:sequence> <xsd:element name="permission" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="soc-policy" use="optional" default="children"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="none"/> <xsd:enumeration value="children"/> <xsd:enumeration value="ancestors"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="RelatedAuditObjects"> <xsd:sequence> <xsd:element name="related-audit-object" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="incoming-relationship-path" type="dbEntityName" use="required"/> <xsd:attribute name="foreign-object-type" type="dbEntityName" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="PrimaryKeyDefinition"> <xsd:sequence> <xsd:element name="title" type="xsd:string" nillable="false"/> <xsd:element name="outgoing-relationship-path-title" type="xsd:string" nillable="false"/> <xsd:element name="incoming-relationship-path-title" type="xsd:string" nillable="false"/> <xsd:element name="getter" type="xsd:string" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="dbEntityName" use="required"/> <xsd:attribute name="foreign-type" type="dbEntityName" use="required"/> <xsd:attribute name="outgoing-relationship-path" type="xsd:string" use="required"/> <xsd:attribute name="incoming-relationship-path" type="xsd:string" use="required"/> <xsd:attribute name="parent-action" use="optional" default="restrict"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="restrict"/> <xsd:enumeration value="cascade"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> <xsd:complexType name="ReferenceAttributeDefinition"> <xsd:sequence> <xsd:element name="title" type="xsd:string" nillable="false"/> <xsd:element name="outgoing-relationship-path-title" type="xsd:string" nillable="false"/> <xsd:element name="incoming-relationship-path-title" type="xsd:string" nillable="false"/> <xsd:element name="reference-ext" type="t:ReferenceTypeExt" minOccurs="0"/> <xsd:element name="snapshot-getter" type="xsd:string" minOccurs="0"/> <xsd:element name="snapshot-setter" type="xsd:string" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="foreign-type" type="xsd:string" use="required"/> <xsd:attribute name="parent-action" use="optional" default="set null"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="restrict"/> <xsd:enumeration value="cascade"/> <xsd:enumeration value="set null"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="outgoing-relationship-path" type="xsd:string" use="required"/> <xsd:attribute name="incoming-relationship-path" type="xsd:string" use="required"/> <xsd:attribute name="multi-value" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> <xsd:complexType name="AttributeDefinition"> <xsd:sequence> <xsd:element name="title" type="xsd:string" nillable="false"/> <xsd:group ref="t:PrimitiveTypeExtChoice" minOccurs="0"/> <xsd:element name="snapshot-getter" type="xsd:string" minOccurs="0"/> <xsd:element name="snapshot-setter" type="xsd:string" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="domain" type="xsd:string" use="required"/> <xsd:attribute name="searchable" type="xsd:boolean" use="optional" /> </xsd:complexType> <xsd:complexType name="IndexDefinition"> <xsd:attribute name="body" type="xsd:string"/> </xsd:complexType> <xsd:complexType name="AccessPolicy"> <xsd:attribute name="read-permission" type="xsd:string" use="optional"/> <xsd:attribute name="read-audit-details-permission" type="xsd:string" use="optional"/> </xsd:complexType> </xsd:schema> </xsd:schema>