admin.xsd revision d70586b00b9530ab99ab4b8f003e9a54793e419f
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://opendj.forgerock.org/admin"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns:tns="http://opendj.forgerock.org/admin">
<xsd:import namespace="http://opendj.forgerock.org/admin-ldap"
schemaLocation="admin-ldap.xsd" />
<xsd:import namespace="http://opendj.forgerock.org/admin-cli"
schemaLocation="admin-cli.xsd" />
<xsd:import namespace="http://opendj.forgerock.org/admin-preprocessor"
schemaLocation="admin-preprocessor.xsd" />
<xsd:annotation>
<xsd:documentation>
This schema defines the XML schema elements and attributes which
should be used to specify the server's configuration model.
Broadly speaking, there are three main components to this schema:
managed objects, properties, and relations. Using these components
it is possible to model the server's configuration based on its
configurable components (managed objects), their configurable
attributes (properties), and their relationships with other
configurable components (relations).
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="managed-object-type">
<xsd:annotation>
<xsd:documentation>
Defines the structure of a configurable component within the
configuration. A managed object comprises of zero or more
properties, and zero or more relations with other managed
objects. A managed object can be abstract, indicating that it
cannot be instantiated directly, and that it is intended as a
base definition from which other child managed objects inherit
their behavior. Conversely, a managed object can be derived from
a parent managed object definition. In this case, the managed
object will inherit the properties and relations defined by the
parent. Multiple levels of inheritance are supported, but
multiple inheritance is not.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="TODO" minOccurs="0" type="xsd:string"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
An annotation specifying remaining work or unsolved problems
relating to this managed object definition. Its use is
primarily for development purposes and should not be
processed by applications.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="user-friendly-name" minOccurs="0"
type="tns:description-type">
<xsd:annotation>
<xsd:documentation>
The user friendly name of this managed object. This element
is optional and by default the user friendly name is derived
from the definition's name attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="user-friendly-plural-name" minOccurs="0"
type="tns:description-type">
<xsd:annotation>
<xsd:documentation>
The user friendly plural name of this managed object. This
element is optional and by default the user friendly plural
name is derived from the definition's plural-name attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="synopsis" type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A brief description of this managed object. The description
should describe, preferably in one sentence, the purpose of
this managed object. The synopsis should be suitable for use
in applications such as tool-tips, CLI help, and the summary
description in Javadoc. It is possible to embed rich content
including XHTML markup (this will only be used where
supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="description" minOccurs="0"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A detailed description of this managed object. The
description should describe in detail the purpose of this
managed object. The description should be suitable for use
in applications such as manual pages or detailed help. It
does not need to repeat anything described in the synopsis
as applications should normally display the two together. It
is possible to embed rich content including XHTML markup
(this will only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="tag" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
The name of a tag defined in the root configuration
definition. Tags can be used to group related managed object
definitions together. For example, all managed objects that
are associated with password management might be tagged with
"password" (assuming that there is a "password" tag defined
in the root configuration). Tags are inherited by derived
managed object definitions.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="name" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The name of the referenced tag. There must be an
accompanying tag definition in the root configuration
definition.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="constraint" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
A constraint on the properties of this managed object. A
constraint comprises of a condition which must always
evaluate to true before a modification is permitted.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="synopsis"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A brief description of this constraint. The
description should describe, preferably in one
sentence, the purpose the condition associated with
this constraint. The synopsis should be suitable for
use in applications such as tool-tips, CLI help, and
the summary description in Javadoc. It is possible to
embed rich content including XHTML markup (this will
only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="condition">
<xsd:annotation>
<xsd:documentation>
The condition associated with this constraint. The
condition must evaluate to true before modifications
are permitted.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="tns:condition-group" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="profile" type="tns:profile-type" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
An annotation relating to this managed object. Annotations
can define additional information which cannot be directly
represented using this XML schema. The additional
information can relate to specific applications such as LDAP
(e.g. LDAP object classes), CLIs (e.g. sub-command name),
GUIs (e.g. how properties should be arranged and grouped in
a window).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="relation" maxOccurs="unbounded" minOccurs="0"
type="tns:relation-type">
<xsd:annotation>
<xsd:documentation>
Specifies a composition relationship between this managed
object and other "child" managed objects. The relationship
can be a singleton relationship (i.e. one to one), an
optional relationship (i.e. one to zero or one), or a one to
many relationship.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="property" type="tns:property-type">
<xsd:annotation>
<xsd:documentation>
Defines a configurable property of this managed object. A
property's value or values affects the behavior of this
managed object. Various different types of properties are
supported, for example, strings, integers, etc. A property
definition must not override a property defined elsewhere
in this managed object or property inherited from a parent
definition.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="property-override"
type="tns:property-override-type">
<xsd:annotation>
<xsd:documentation>
Overrides a property definition inherited from a parent
managed object definition. Using a property override it is
possible to modify the behavior of an inherited property
definition in a non-critical way. For example, a managed
object definition might override the default behavior of
an inherited Java implementation class property so that
new instances are created with the correct default
implementation class.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="property-reference"
type="tns:property-reference-type">
<xsd:annotation>
<xsd:documentation>
A reference to a common property definition defined in a
package, which should be part of this managed object's
definition.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="rich-description-type" mixed="true">
<xsd:annotation>
<xsd:documentation>
An internationalized description string which can contain XHTML
markup.
</xsd:documentation>
</xsd:annotation>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:any namespace="http://www.w3.org/1999/xhtml"
processContents="lax" />
<xsd:element name="product-name">
<xsd:annotation>
<xsd:documentation>
The name of the product associated with this definition.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="user-friendly-name">
<xsd:annotation>
<xsd:documentation>
The name of the managed object associated with this
definition.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="user-friendly-plural-name">
<xsd:annotation>
<xsd:documentation>
The plural name of the managed object associated with this
definition.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="description-type">
<xsd:annotation>
<xsd:documentation>
An internationalized description string which cannot contain
XHTML markup.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:token" />
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="property-type">
<xsd:annotation>
<xsd:documentation>
Defines a configurable property of a managed object. A
property's value or values affects the behavior of the
associated managed object. Various different types of properties
are supported, for example, strings, integers, etc. A property
definition must not override a property defined elsewhere in the
managed object or property inherited from a parent managed
object.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="TODO" minOccurs="0" type="xsd:string"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
An annotation specifying remaining work or unsolved problems
relating to this property definition. Its use is primarily
for development purposes and should not be processed by
applications.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="synopsis" type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A brief description of this property. The description should
describe, preferably in one sentence, the purpose of this
property. It does not need to provide details regarding
default behavior, syntax, nor how changes take effect (e.g.
immediately, post-restart, etc). The synopsis should be
suitable for use in applications such as tool-tips, CLI
help, and the summary description in Javadoc. It is possible
to embed rich content including XHTML markup (this will only
be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="description" minOccurs="0"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A detailed description of this property. The description
should describe in detail the purpose of this property. The
description should be suitable for use in applications such
as manual pages or detailed help. It does not need to repeat
anything described in the synopsis as applications should
normally display the two together. In addition, it does not
need to provide details regarding default behavior, syntax,
nor how changes take effect (e.g. immediately, post-restart,
etc). It is possible to embed rich content including XHTML
markup (this will only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="requires-admin-action"
type="tns:admin-action-type" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Defines an optional action which administators must perform
after they have modified this property. By default
modifications to properties are assumed to take effect
immediately and require no additional administrative action.
Developers should be aware that, where feasible, they should
implement components such that property modifications
require no additional administrative action. This is
required in order to minimize server downtime during
administration and provide a more user-friendly experience.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="default-behavior" type="tns:default-type"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Defines a default behavior for the property when it has no
values specified. All properties must have a default
behavior defined unless they are mandatory.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="syntax" type="tns:syntax-type">
<xsd:annotation>
<xsd:documentation>
Defines the syntax of this property. This includes the data
type used for the property and additional constraints (e.g.
upper/lower bounds).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="profile" type="tns:profile-type" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
An annotation relating to this property. Annotations can
define additional information which cannot be directly
represented using this XML schema. The additional
information can relate to specific applications such as LDAP
(e.g. LDAP attributes), CLIs (e.g. operand name), GUIs (e.g.
how properties should be arranged and grouped in a window).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="tns:name-type" use="required">
<xsd:annotation>
<xsd:documentation>
The name of this property. The name should describe as
concisely as possible the purpose of this property and should
be suitable for use in Java method names (e.g. getters and
setters). The property name should be a string comprising of
short lower-case words joined with hyphens "-". For example,
"use-ssl".
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="multi-valued" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this property is multi-valued. By
default, properties are single-valued.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="read-only" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this property is read-only. By
default, properties are not read-only. Read-only properties
can only be initialized during construction of the associated
managed object and cannot be modified once the managed object
has been created.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="monitoring" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this property is read-only and
generated automatically by the server as monitoring
information. By default, properties are not for monitoring.
Monitoring properties are always read-only because their
values are generated by the server. During construction of a
managed object their values are undefined.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="mandatory" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this property is mandatory. Mandatory
properties are usually those properties which have no sensible
default behavior and must, therefore, be specified by
administrators. If a mandatory property has default values
these will be used as the values for the property if none are
specified by the user.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="hidden" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this property should be hidden from
client applications. Hidden properties should rarely be used
but are sometimes required in order to provide functionality
that needs to be exposed in management APIs but not in
front-ends such as CLIs.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="advanced" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this property should be treated as an
advanced property and hidden by default in client
applications. Advanced properties should either be optional
(i.e. not mandatory) or be mandatory with default values. This
constraint is required so that users do not have to specify
values for advanced properties.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="property-reference-type">
<xsd:annotation>
<xsd:documentation>
A reference to a common property definition defined in a
package, which should be part of a managed object's definition.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="requires-admin-action"
type="tns:admin-action-type" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Optionally override the administrative action defined in the
referenced property definition. An administrative action
defines an optional action which administators must perform
after they have modified this property. By default
modifications to properties are assumed to take effect
immediately and require no additional administrative action.
Developers should be aware that, where feasible, they should
implement components such that property modifications
require no additional administrative action. This is
required in order to minimize server downtime during
administration and provide a more user-friendly experience.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="default-behavior" type="tns:default-type"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Optionally override the default behavior defined in the
referenced property definition. The default behavior is
applicable when the property has no values specified. All
properties must have a default behavior defined unless they
are mandatory.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="tns:name-type" use="required">
<xsd:annotation>
<xsd:documentation>
The name of the referenced property.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="package" type="tns:package-type">
<xsd:annotation>
<xsd:documentation>
The package containing the referenced property. By default,
the package in which this managed object is defined will be
used.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="property-override-type">
<xsd:annotation>
<xsd:documentation>
Overrides a property definition inherited from a parent managed
object definition. Using a property override it is possible to
modify the behavior of an inherited property definition in a
non-critical way. For example, a managed object definition might
override the default behavior of an inherited Java
implementation class property so that new instances are created
with the correct default implementation class.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="requires-admin-action"
type="tns:admin-action-type" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Optionally override the administrative action defined in the
overridden property definition. An administrative action
defines an optional action which administators must perform
after they have modified this property. By default
modifications to properties are assumed to take effect
immediately and require no additional administrative action.
Developers should be aware that, where feasible, they should
implement components such that property modifications
require no additional administrative action. This is
required in order to minimize server downtime during
administration and provide a more user-friendly experience.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="default-behavior" type="tns:default-type"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Optionally override the default behavior defined in the
overridden property definition. The default behavior is
applicable when the property has no values specified. All
properties must have a default behavior defined unless they
are mandatory.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="tns:name-type" use="required">
<xsd:annotation>
<xsd:documentation>
The name of the overridden property.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="advanced" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Optionally override the advanced option defined in the
overridden property definition. Indicates whether or not this
property should be treated as an advanced property and hidden
by default in client applications. Advanced properties should
either be optional (i.e. not mandatory) or be mandatory with
default values. This constraint is required so that users do
not have to specify values for advanced properties.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="default-managed-object-type">
<xsd:annotation>
<xsd:documentation>
Specifies the configuration of a default managed object which
should be created when a parent managed object is created. For
example, creation of a back-end could result in default indexes
being created.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="property" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
Specifies one or more initial values for a property in the
default managed object.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" minOccurs="1"
maxOccurs="unbounded" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The string representation of a value of this property.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The name of the property.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="managed-object-name" type="tns:name-type"
use="optional">
<xsd:annotation>
<xsd:documentation>
The type of default managed object to be created. This must be
either the type of the managed object referenced by this
relation (this is the default behavior) or a sub-type.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="managed-object-package" type="tns:package-type"
use="optional">
<xsd:annotation>
<xsd:documentation>
The package containing the default managed object definition
if it is not the same as this managed object's package.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="relation-type">
<xsd:annotation>
<xsd:documentation>
Specifies a relationship between a managed object and other
managed objects. The relationship can be a singleton
relationship (i.e. one to one), an optional relationship (i.e.
one to zero or one), or a one to many relationship. Both
compositions (the default) and aggregations are supported.
Aggregations are defined by specifying the path to the
referenced managed objects in the aggregation attribute.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="TODO" minOccurs="0" type="xsd:string"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
An annotation specifying remaining work or unsolved problems
relating to this relation definition. Its use is primarily
for development purposes and should not be processed by
applications.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="synopsis" type="tns:rich-description-type"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>
An optional brief description of this relation. The
description should describe, preferably in one sentence, the
purpose of this relation. If a synopsis is not defined this
relation will inherit the synopsis of the referenced managed
object. If present, the synopsis should be suitable for use
in applications such as tool-tips, CLI help, and the summary
description in Javadoc. It is possible to embed rich content
including XHTML markup (this will only be used where
supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="description" minOccurs="0"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
An optional detailed description of this relation. The
description should describe in detail the purpose of this
relation. The description should be suitable for use in
applications such as manual pages or detailed help. It does
not need to repeat anything described in the synopsis as
applications should normally display the two together. If a
description is not defined this relation will inherit the
description of the referenced managed object. It is possible
to embed rich content including XHTML markup (this will only
be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:choice>
<xsd:element name="one-to-one">
<xsd:annotation>
<xsd:documentation>
Specifies a one to one (singleton) relationship with
another type of managed object.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="default-managed-object"
type="tns:default-managed-object-type" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Defines a default managed object configuration which
should be automatically created when the parent
managed object is created.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="one-to-zero-or-one">
<xsd:annotation>
<xsd:documentation>
Specifies a one to zero or one (optional) relationship
with another type of managed object.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="default-managed-object"
type="tns:default-managed-object-type" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Defines a default managed object configuration which
should be automatically created when the parent
managed object is created.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="one-to-many">
<xsd:annotation>
<xsd:documentation>
Specifies a one to many (instantiable) relationship with
another type of managed object.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="default-managed-object" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
Defines one or more default managed object
configurations which should be automatically created
when the parent managed object is created.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension
base="tns:default-managed-object-type">
<xsd:attribute name="name" type="xsd:string"
use="required">
<xsd:annotation>
<xsd:documentation>
Specifies the name that should be used to
identify this default managed object
instance.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="unique" type="xsd:boolean"
use="optional" default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this relation contains
unique members. If set to true then each
referenced managed object must have a distinct type.
In other words, there must not be more than one
referenced managed object having the same type. By
default, properties are single-valued.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="plural-name" type="tns:name-type"
use="optional">
<xsd:annotation>
<xsd:documentation>
Specifies the plural name of this relation if
different from the plural name of the referenced
managed object type.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="naming-property" type="tns:name-type"
use="optional">
<xsd:annotation>
<xsd:documentation>
Specifies the name of a property in the referenced
managed object which should be used for naming
instances. For example, an attribute index managed
object could be named according to the attribute that
it indexes. If present, the naming property must
reference a single-valued, mandatory, read-only
property. If it is not present, the administration
framework will use the default naming mechanism.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:sequence>
<xsd:element name="profile" type="tns:profile-type"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
An annotation relating to this relation. Annotations can
define additional information which cannot be directly
represented using this XML schema. The additional
information can relate to specific applications such as
LDAP (e.g. an LDAP RDN representing the entry beneath
which managed objects should be located).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:sequence>
<xsd:attribute name="name" type="tns:name-type" use="required">
<xsd:annotation>
<xsd:documentation>
The name of this relation. The name should describe as
concisely as possible the purpose of this relation and should
be suitable for use in Java method names (e.g. getters and
setters). The property name should be a string comprising of
short lower-case words joined with hyphens "-". For example,
"key-manager-provider". Usually the name will correspond to
the name of the referenced type of managed object. If it this
is not the case, then the type of referenced managed object
should be specified using the "managed-object-name" attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="managed-object-name" type="tns:name-type"
use="optional">
<xsd:annotation>
<xsd:documentation>
The type of managed object referenced by this relation if
different from this relation's name.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="managed-object-package" type="tns:package-type"
use="optional">
<xsd:annotation>
<xsd:documentation>
The package containing the referenced managed object
definition if it is not the same as this managed object's
package.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="advanced" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not managed objects referenced by this
relation should be treated as advanced and be hidden by
default in client applications.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="hidden" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this relation should be hidden from
client applications. Hidden relations should rarely be used
but are sometimes required in order to provide functionality
that needs to be exposed in management APIs but not in
front-ends such as CLIs.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="admin-action-type">
<xsd:annotation>
<xsd:documentation>
Defines an optional action which administators must perform
after they have modified a property. By default modifications to
properties are assumed to take effect immediately and require no
additional administrative action. Developers should be aware
that, where feasible, they should implement components such that
property modifications require no additional administrative
action. This is required in order to minimize server downtime
during administration and provide a more user-friendly
experience.
</xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:element name="none">
<xsd:annotation>
<xsd:documentation>
Used when modifications to a property take effect
immediately, and no additional administrator action is
required.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="synopsis"
type="tns:rich-description-type" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
An optional description which can be used to describe
how changes to the modified property will take effect.
If present, the synopsis should be suitable for use in
applications such as tool-tips, CLI help, and the
summary description in Javadoc. It is possible to
embed rich content including XHTML markup (this will
only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="server-restart">
<xsd:annotation>
<xsd:documentation>
Used when modifications to a property require a server
restart in order to take effect.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="synopsis"
type="tns:rich-description-type" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
An optional description of this required
administrative action. The description should
describe, preferably in one sentence, what additional
administrator action is required when the server is
restarted. If present, the synopsis should be suitable
for use in applications such as tool-tips, CLI help,
and the summary description in Javadoc. It is possible
to embed rich content including XHTML markup (this
will only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="component-restart">
<xsd:annotation>
<xsd:documentation>
Used when modifications to a property require a component
restart in order to take effect (usually by disabling and
re-enabling the component).
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="synopsis"
type="tns:rich-description-type" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
An optional description of this required
administrative action. The description should
describe, preferably in one sentence, what additional
administrator action is required when the component is
restarted. If present, the synopsis should be suitable
for use in applications such as tool-tips, CLI help,
and the summary description in Javadoc. It is possible
to embed rich content including XHTML markup (this
will only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="other">
<xsd:annotation>
<xsd:documentation>
Used when modifications to a property require an additional
administrative action in order to take effect. This should
be used when neither a server restart nor a component
restart are applicable.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="synopsis"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A brief description of this required administrative
action. The description should describe, preferably in
one sentence, what additional administrator action is
required when this property is modified. If present,
the synopsis should be suitable for use in
applications such as tool-tips, CLI help, and the
summary description in Javadoc. It is possible to
embed rich content including XHTML markup (this will
only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="default-type">
<xsd:annotation>
<xsd:documentation>
Defines a default behavior for a property when it has no values
specified. All properties must have a default behavior defined
unless they are mandatory.
</xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:element name="undefined">
<xsd:annotation>
<xsd:documentation>
Used when a property has no tangible default behavior - its
default behavior is undefined.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="alias">
<xsd:annotation>
<xsd:documentation>
Used when a property defaults to some special behavior that
cannot be represented using property values.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="synopsis"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A brief description of this default behavior. The
description should describe, preferably in one
sentence, the default behavior. If present, the
synopsis should be suitable for use in applications
such as tool-tips, CLI help, and the summary
description in Javadoc. It is possible to embed rich
content including XHTML markup (this will only be used
where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="profile" type="tns:profile-type"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
An annotation relating to this default behavior.
Annotations can define additional information which
cannot be directly represented using this XML schema.
The additional information can relate to specific
applications.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="defined">
<xsd:annotation>
<xsd:documentation>
Used when a property defaults to one or more real values of
the property.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" minOccurs="1"
maxOccurs="unbounded" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The string representation of a value of this property.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="inherited">
<xsd:annotation>
<xsd:documentation>
Used when a property defaults one or more values taken from
a property in another managed object.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:choice>
<xsd:element name="relative">
<xsd:annotation>
<xsd:documentation>
Used when the managed object providing the default
values is located relative to this managed object.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="offset" use="required">
<xsd:annotation>
<xsd:documentation>
The relative location of the managed object (where
0 is this managed object, 1 is the parent, and 2
is the grand-parent).
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="0" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="managed-object-name"
type="tns:name-type" use="required">
<xsd:annotation>
<xsd:documentation>
The type of managed object providing the default
values.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="managed-object-package"
type="tns:package-type" use="optional">
<xsd:annotation>
<xsd:documentation>
The package containing the managed object
definition if it is not the same as this managed
object's package.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="property-name" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The name of the property containing the default
values.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="absolute">
<xsd:annotation>
<xsd:documentation>
Used when the managed object providing the default
values is in a known absolute location.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="path" type="tns:path-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The location of the managed object containing the
default values.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="property-name" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The name of the property containing the default
values.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="syntax-type">
<xsd:annotation>
<xsd:documentation>
Defines the syntax of a property. This includes the data type
used for the property and additional constraints on the values
it contains (e.g. upper/lower bounds).
</xsd:documentation>
</xsd:annotation>
<xsd:choice>
<xsd:element name="aggregation">
<xsd:annotation>
<xsd:documentation>
An aggregation property names one or more managed objects
which are required by the managed object associated with
this property. An aggregation property definition takes care
to perform referential integrity checks: referenced managed
objects cannot be deleted. Nor can an aggregation reference
non-existent managed objects. Referential integrity checks
are not performed during value validation. Instead they are
performed when changes to the managed object are committed.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="constraint" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
An optional constraint on the relationship between
this managed object and referenced managed objects.
The constraint specifies when and how referenced
managed objects must be enabled.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="synopsis"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A brief description of the constraints
applicable to referenced managed objects. The
description should describe, preferably in one
sentence, when referenced should be enabled and
how they should be enabled. The synopsis should
be suitable for use in applications such as
tool-tips, CLI help, and the summary description
in Javadoc. It is possible to embed rich content
including XHTML markup (this will only be used
where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="target-needs-enabling-condition"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>
A condition which indicates whether or not
referenced managed objects must be enabled. The
default behavior is that all referenced managed
objects must be enabled.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="tns:condition-group" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="target-is-enabled-condition"
minOccurs="0">
<xsd:annotation>
<xsd:documentation>
A condition which indicates whether or not
referenced managed objects are enabled. Managed
objects are assumed to be enabled by default.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:sequence>
<xsd:group ref="tns:condition-group" />
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="parent-path" type="tns:path-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The name of the managed object which is the parent of
the aggregated managed objects.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="relation-name" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The relation in the parent managed object which contains
the aggregated managed objects.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="managed-object-name" type="tns:name-type"
use="optional">
<xsd:annotation>
<xsd:documentation>
The type of managed object referenced by this
aggregation if different from this relation's name.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="managed-object-package"
type="tns:package-type" use="optional">
<xsd:annotation>
<xsd:documentation>
The package containing the referenced managed object
definition if it is not the same as this managed
object's package.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="attribute-type">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain LDAP attribute type names.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="extensible-matching-rule-type">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain Extensible matching rule type names.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="boolean">
<xsd:annotation>
<xsd:documentation>
Used for properties which are best represented using boolean
on/off type values.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="dn">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain LDAP distinguished names.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="base" minOccurs="0" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Indicates that values of this property must be
immediately subordinate to the specified base DN.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="aci">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain dseecompat ACIs.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="java-class">
<xsd:annotation>
<xsd:documentation>
Used for properties which reference a Java class. These are
typically used in plugins where the java class property
identifies a class implementing the plugin's functionality.
It is possible to restrict the values of this property using
the instance-of attribute. Note that it is only possible to
validate values on the server, since client applications
don't necessarily have the same classes on their class-path.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="instance-of" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
Indicates that values of this property must implement
the specified Java interface. Note that it is only
possible to perform validation on the server, since
client applications don't necessarily have the same
classes on their class-path.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="collapse" />
<xsd:pattern
value="([A-Za-z][A-Za-z0-9_]*\.)*[A-Za-z][A-Za-z0-9_]*" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="integer">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain integer values. Where
appropriate it is possible to provide a description of the
units for values of this property (e.g. "number of
threads").
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="unit-synopsis" minOccurs="0"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
An optional description of the units for this value of
this property (e.g. "number of threads"). The
description should describe the unit, preferably in
one sentence. If present, the description should be
suitable for use in applications such as tool-tips,
CLI help, and the summary description in Javadoc. It
is possible to embed rich content including XHTML
markup (this will only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="allow-unlimited" type="xsd:boolean"
use="optional" default="true">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this property supports a
special value representing infinity. This is useful
where properties are used to constrain some behavior and
the administrator wishes to remove the constraint (e.g.
number of simultaneous client connections).
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="lower-limit" type="xsd:integer"
use="optional" default="0">
<xsd:annotation>
<xsd:documentation>
Indicates a lower limit for this integer property.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="upper-limit" type="xsd:integer"
use="optional">
<xsd:annotation>
<xsd:documentation>
Indicates an upper limit for this integer property.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="ip-address">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain IP addresses. IPv4 and
IPv6 address forms are supported. In addition name
resolution is performed when non-numeric addresses are
specified.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="ip-address-mask">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain IP address masks. IPv4 and
IPv6 address mask forms are supported.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="size">
<xsd:annotation>
<xsd:documentation>
Used for properties which represent a computer storage size.
Sizes can be specified using both decimal and binary units.
For example, "1kb" represents 1000 bytes, and "1kib"
represents 1024 bytes. Values must always specify the unit
and can include a fractional part (e.g. 1.5mb). Both short
and long unit names are supported (e.g. "kb" and
"kilobytes").
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="allow-unlimited" type="xsd:boolean"
use="optional" default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this property supports a
special value representing infinity. This is useful
where properties are used to constrain some behavior and
the administrator wishes to remove the constraint (e.g.
maximum log size).
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="lower-limit" type="xsd:string"
use="optional" default="0">
<xsd:annotation>
<xsd:documentation>
Indicates a lower limit for this size property.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="upper-limit" type="xsd:string"
use="optional">
<xsd:annotation>
<xsd:documentation>
Indicates an upper limit for this size property.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="duration">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain a time duration.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="base-unit" use="optional" default="s">
<xsd:annotation>
<xsd:documentation>
Specifies the minimum granularity which can be used to
specify duration property values. For example, if the
base unit is in seconds then values represented in
milliseconds will not be permitted. The default base
unit is seconds.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ms" />
<xsd:enumeration value="s" />
<xsd:enumeration value="m" />
<xsd:enumeration value="h" />
<xsd:enumeration value="d" />
<xsd:enumeration value="w" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="maximum-unit" use="optional">
<xsd:annotation>
<xsd:documentation>
Specifies the biggest duration unit which can be used to
specify duration property values. Values presented in
units greater than this unit will not be permitted.
There is no default maximum unit.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ms" />
<xsd:enumeration value="s" />
<xsd:enumeration value="m" />
<xsd:enumeration value="h" />
<xsd:enumeration value="d" />
<xsd:enumeration value="w" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="allow-unlimited" type="xsd:boolean"
use="optional" default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this property supports a
special value representing infinity. This is useful
where properties are used to constrain some behavior and
the administrator wishes to remove the constraint (e.g.
connection time-out).
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="lower-limit" type="xsd:string"
use="optional" default="0">
<xsd:annotation>
<xsd:documentation>
Indicates a lower limit for this duration property.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="upper-limit" type="xsd:string"
use="optional">
<xsd:annotation>
<xsd:documentation>
Indicates an upper limit for this duration property.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="password">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain passwords. Values will be
represented using strings which are then encrypted.
Typically password properties are write-only and should
never be displayed in client applications (even during
creation).
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
<xsd:element name="enumeration">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain values taken from a finite
set of values. There must be at least one possible value
defined.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" minOccurs="1"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
Defines one of the possible values that this property
can contain.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="synopsis"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A description of this enumeration value. The
description should describe the behavior
indicated by the value preferably in one
sentence. The description should be suitable for
use in applications such as tool-tips, CLI help,
and the summary description in Javadoc. It is
possible to embed rich content including XHTML
markup (this will only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" use="required"
type="tns:name-type">
<xsd:annotation>
<xsd:documentation>
The name of this enumeration value. The name
should describe as concisely as possible the
behavior indicated by this value and should be
suitable for use in Java source code (e.g.
enumerations). The enumeration value name should
be a string comprising of short lower-case words
joined with hyphens "-". For example, "optional".
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="string">
<xsd:annotation>
<xsd:documentation>
Used for properties which contain string values. It is
possible to contrain the permitted set of values using a
regular expression.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="pattern" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Constrains the permitted set of values using a regular
expression. All values of this property must match the
provided regular expression.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="regex" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The regular expression conforming to the syntax
supported by the Java "java.util.regex.Pattern"
class.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="usage" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The usage string which should be displayed in
help relating to this string based property. For
example, a pattern which is used to match a
host/port string could have the usage HOST:PORT.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="synopsis"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
An description of the regular expression (e.g.
"email address"). The description should
describe the type of string represented by the
regular expression, preferably in one sentence.
If present, the description should be suitable
for use in applications such as tool-tips, CLI
help, and the summary description in Javadoc. It
is possible to embed rich content including
XHTML markup (this will only be used where
supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="case-insensitive" type="xsd:boolean"
use="optional" default="true">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not values of this property should
be treated in a case-insensitive manner.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
<xsd:simpleType name="name-type">
<xsd:annotation>
<xsd:documentation>
An identifier name comprising of a 1 or more sequences of lower
case letters or digits separated by a single hyphen '-'. The
first sequence must begin with a letter.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:token">
<xsd:pattern value="[a-z][a-z0-9]*(-[a-z0-9]+)*" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="package-type">
<xsd:annotation>
<xsd:documentation>
An identifier name comprising of a 1 or more sequences of lower
case letters or digits separated by a single dot '.'. The first
sequence must begin with a letter.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:token">
<xsd:pattern value="[a-z][a-z0-9]*(\.[a-z0-9]+)*" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="path-type">
<xsd:annotation>
<xsd:documentation>
A managed object path which can be used to specify the location
of referenced managed objects. A managed object path has a
similar syntax to unix file system paths, and comprises of zero
or more path elements separated by a forward slash "/". The root
configuration is referenced using the path "/". Subsequent path
elements identify subordinate managed objects. Each path element
is comprised of the relation name, an optional definition name,
and the name of the managed object instance if the relation is
one-to-many. The path "/relation=connection-handler+name=my
handler" identifies a connection handler called "my handler"
where "my handler" can be any type of connection handler. If "my
handler" must be an LDAP connection handler then the type needs
to be specified in the path:
"/relation=connection-handler+type=ldap-connection-handler+name=my
handler". The global configuration is identified by the path
"/relation=global-configuration" (no name is required because
the relation is one-to-one).
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:pattern
value="/|(/relation=[^/+]+(\+type=[^/+]+)?(\+name=[^/]+)?)+">
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="profile-type">
<xsd:annotation>
<xsd:documentation>
An annotation relating to the associated element. Annotations
can define additional information which cannot be directly
represented using this XML schema. The additional information
can relate to specific applications such as CLIs, GUIs, etc.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:any processContents="strict" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="name" type="tns:name-type" use="required">
<xsd:annotation>
<xsd:documentation>
The name of this profile e.g. "ldap".
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:element name="root-managed-object">
<xsd:annotation>
<xsd:documentation>
Defines the root managed object and its relationships with
top-level managed objects. The root managed object serves as a
single point of access to the rest of the configuration. It is
essentially a virtual managed object and has no properties of
its own, just relationships. There can only be a single root
managed object defined per configuration model.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="tns:managed-object-type">
<xsd:sequence>
<xsd:element name="product-name">
<xsd:annotation>
<xsd:documentation>
The name of the product associated with this
configuration model.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="collapse" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="tag-definition" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
Defines a tag which can be used to group related types
of managed object. Administration tools can take
advantage of managed object tags to make it easier for
users to discover related components.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="synopsis">
<xsd:annotation>
<xsd:documentation>
A brief description of this tag. The description
should describe, preferably in one sentence, the
types of managed object that this tag applies
to. The synopsis should be suitable for use in
applications such as tool-tips, CLI help, and
the summary description in Javadoc. It is
possible to embed rich content including XHTML
markup (this will only be used where supported).
</xsd:documentation>
</xsd:annotation>
<xsd:complexType mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:any
namespace="http://www.w3.org/1999/xhtml"
processContents="lax" />
<xsd:element name="product-name">
<xsd:annotation>
<xsd:documentation>
The name of the product associated with
this definition.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType />
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The name of this tag. The name should describe as
concisely as possible the purpose of this tag and
should be suitable for use in Java method names
(e.g. getters and setters). The property name
should be a string comprising of short lower-case
words joined with hyphens "-". For example,
"security".
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="tns:name-type"
fixed="root">
<xsd:annotation>
<xsd:documentation>
The name of this root managed object, which is always
"root".
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="package" type="tns:package-type"
fixed="org.forgerock.opendj.server.config">
<xsd:annotation>
<xsd:documentation>
The package containing this root managed object, which
is always "org.forgerock.opendj.server.config".
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="managed-object">
<xsd:annotation>
<xsd:documentation>
Defines the structure of a configurable component within the
configuration. A managed object comprises of zero or more
properties, and zero or more relations with other managed
objects. A managed object can be abstract, indicating that it
cannot be instantiated directly, and that it is intended as a
base definition from which other child managed objects inherit
their behavior. Conversely, a managed object can be derived from
a parent managed object definition. In this case, the managed
object will inherit the properties and relations defined by the
parent. Multiple levels of inheritance are supported, but
multiple inheritance is not.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="tns:managed-object-type">
<xsd:attribute name="name" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The name of this managed object. The name should
describe as concisely as possible the role of this
managed object and should be suitable for use in Java
method names (e.g. class names). The managed object name
should be a string comprising of short lower-case words
joined with hyphens "-". For example,
"ldap-connection-handler". NOTE: a managed object name
must end in the name of the definition's uppermost
super-type. For example, "ldap-connection-handler" is a
sub-type of "connection-handler" and therefore ends in
"-connection-handler".
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="plural-name" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The plural name of this managed object. The plural name
should correspond to the singular name defined in the
"name" attribute and it should be suitable for use in
Java method names (e.g. getters). The managed object
plural name should be a string comprising of short
lower-case words joined with hyphens "-". For example,
"ldap-connection-handlers".
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="package" type="tns:package-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The package containing this managed object.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="abstract" type="xsd:boolean"
use="optional" default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this managed object is
abstract. Abstract managed objects cannot be
instantiated directly and are intended for use as base
definitions for inheritance.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="advanced" type="xsd:boolean"
use="optional" default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this managed object should be
treated as advanced and therefore should be hidden by
default in client applications. This feature is not
inherited by child managed objects.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="hidden" type="xsd:boolean" use="optional"
default="false">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this managed object should be
hidden from client applications. Hidden managed objects
should rarely be used but are sometimes required in
order to provide functionality that needs to be exposed
in management APIs but not in front-ends such as CLIs.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="extends" type="tns:name-type"
use="optional">
<xsd:annotation>
<xsd:documentation>
Indicates whether or not this managed object inherits
from a parent managed object and, if so, the name of the
parent. If specified, this managed object will inherit
all of the properties and relations defined in the
parent managed object.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="parent-package" type="tns:package-type"
use="optional">
<xsd:annotation>
<xsd:documentation>
The package containing the parent managed object. By
default, the package in which this managed object is
defined will be used.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="package">
<xsd:annotation>
<xsd:documentation>
Defines a common information associated with all managed objects
defined in the containing package. A package definition
comprises of a description of the package together with common
property definitions which can be referenced from within managed
objects using "property-reference" elements. Sharing property
definitions in this way makes maintenance easier in situations
where the property definition needs modifying, since all
referencing managed objects will automatically inherit the
changes.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TODO" minOccurs="0" type="xsd:string"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
An annotation specifying remaining work or unsolved
problems relating to this package definition. Its use is
primarily for development purposes and should not be
processed by applications.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="synopsis" type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A brief description of this package. The description
should describe, preferably in one sentence, the purpose
of this package, for example, the type of managed objects
it defines. The synopsis should be suitable for use in
applications such as tool-tips, CLI help, and the summary
description in Javadoc. It is possible to embed rich
content including XHTML markup (this will only be used
where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="description" minOccurs="0"
type="tns:rich-description-type">
<xsd:annotation>
<xsd:documentation>
A detailed description of this package. The description
should describe in detail the purpose of this package. The
description should be suitable for use in applications
such as manual pages or detailed help. It does not need to
repeat anything described in the synopsis as applications
should normally display the two together. It is possible
to embed rich content including XHTML markup (this will
only be used where supported).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="property" minOccurs="0" maxOccurs="unbounded"
type="tns:property-type">
<xsd:annotation>
<xsd:documentation>
Defines a common configurable property for this package.
Managed objects can inherit this property definition by
referencing it using a "property-reference" element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="tns:package-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The package containing this package definition.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:group name="condition-group">
<xsd:choice>
<xsd:element name="not">
<xsd:annotation>
<xsd:documentation>
A condition which evaluates to true if the sub-condition is
false, or false if the sub-condition is true.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="tns:condition-group" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="and">
<xsd:annotation>
<xsd:documentation>
A condition which evaluates to true if and only if all of
its sub-conditions are true.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="tns:condition-group" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="or">
<xsd:annotation>
<xsd:documentation>
A condition which evaluates to false if and only if none of
its sub-conditions are true.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="tns:condition-group" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="implies">
<xsd:annotation>
<xsd:documentation>
Creates a condition which evaluates to false if and only if
the first sub-condition evaluates to true and the second
sub-condition evaluates to false. This can be used to
represent if-then relationships.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="tns:condition-group" />
<xsd:group ref="tns:condition-group" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="contains">
<xsd:annotation>
<xsd:documentation>
A condition which evaluates to true if and only if a
property contains a particular value.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="property" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The name of the property to be tested.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="value" type="xsd:string"
use="required">
<xsd:annotation>
<xsd:documentation>The property value.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="is-present">
<xsd:annotation>
<xsd:documentation>
Creates a condition which evaluates to true if and only if a
particular property has any values specified.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="property" type="tns:name-type"
use="required">
<xsd:annotation>
<xsd:documentation>
The name of the property to be tested.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:group>
</xsd:schema>