0N/A<?
xml version="1.0" encoding="UTF-8"?>
0N/A elementFormDefault="qualified" 0N/A This schema defines the XML schema elements and attributes which
0N/A should be used to specify the server's configuration model.
0N/A Broadly speaking, there are three main components to this schema:
0N/A managed objects, properties, and relations. Using these components
0N/A it is possible to model the server's configuration based on its
0N/A configurable components (managed objects), their configurable
0N/A attributes (properties), and their relationships with other
1472N/A configurable components (relations).
0N/A <
xsd:
complexType name="managed-object-type">
1879N/A Defines the structure of a configurable component within the
1879N/A configuration. A managed object comprises of zero or more
1879N/A properties, and zero or more relations with other managed
1879N/A objects. A managed object can be abstract, indicating that it
1879N/A cannot be instantiated directly, and that it is intended as a
1879N/A base definition from which other child managed objects inherit
1879N/A their behavior. Conversely, a managed object can be derived from
1879N/A a parent managed object definition. In this case, the managed
1879N/A object will inherit the properties and relations defined by the
1879N/A parent. Multiple levels of inheritance are supported, but
1879N/A multiple inheritance is not.
1879N/A <
xsd:
element name="TODO" minOccurs="0" type="xsd:string" 1879N/A An annotation specifying remaining work or unsolved problems
1879N/A relating to this managed object definition. Its use is
0N/A primarily for development purposes and should not be
0N/A processed by applications.
0N/A </
xsd:
documentation>
2934N/A <
xsd:
element name="user-friendly-name" minOccurs="0" 113N/A type="tns:description-type">
0N/A The user friendly name of this managed object. This element
0N/A is optional and by default the user friendly name is derived
0N/A from the definition's name attribute.
0N/A </
xsd:
documentation>
2950N/A <
xsd:
element name="user-friendly-plural-name" minOccurs="0" 0N/A type="tns:description-type">
2950N/A The user friendly plural name of this managed object. This
0N/A element is optional and by default the user friendly plural
0N/A name is derived from the definition's plural-name attribute.
0N/A </
xsd:
documentation>
2307N/A <
xsd:
element name="synopsis" type="tns:rich-description-type">
2307N/A A brief description of this managed object. The description
2307N/A should describe, preferably in one sentence, the purpose of
0N/A this managed object. The synopsis should be suitable for use
1080N/A in applications such as tool-tips, CLI help, and the summary
1080N/A description in Javadoc. It is possible to embed rich content
350N/A including XHTML markup (this will only be used where
0N/A <
xsd:
element name="description" minOccurs="0" 0N/A type="tns:rich-description-type">
2991N/A A detailed description of this managed object. The
0N/A description should describe in detail the purpose of this
0N/A managed object. The description should be suitable for use
2991N/A in applications such as manual pages or detailed help. It
0N/A does not need to repeat anything described in the synopsis
0N/A as applications should normally display the two together. It
0N/A is possible to embed rich content including XHTML markup
2991N/A (this will only be used where supported).
0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="tag" minOccurs="0" maxOccurs="unbounded">
1688N/A The name of a tag defined in the root configuration
1688N/A definition. Tags can be used to group related managed object
1067N/A definitions together. For example, all managed objects that
1067N/A are associated with password management might be tagged with
1067N/A "password" (assuming that there is a "password" tag defined
1067N/A in the root configuration). Tags are inherited by derived
1688N/A managed object definitions.
1688N/A <
xsd:
attribute name="name" type="tns:name-type" 1688N/A The name of the referenced tag. There must be an
1688N/A accompanying tag definition in the root configuration
1688N/A <
xsd:
element name="profile" type="tns:profile-type" minOccurs="0" 1688N/A An annotation relating to this managed object. Annotations
1688N/A can define additional information which cannot be directly
1688N/A represented using this XML schema. The additional
1688N/A information can relate to specific applications such as LDAP
1688N/A GUIs (
e.g. how properties should be arranged and grouped in
0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="relation" maxOccurs="unbounded" minOccurs="0" 0N/A type="tns:relation-type">
0N/A Specifies a composition relationship between this managed
0N/A object and other "child" managed objects. The relationship
1067N/A can be a singleton relationship (
i.e. one to one), an
1067N/A optional relationship (
i.e. one to zero or one), or a one to
0N/A </
xsd:
documentation>
103N/A <
xsd:
choice minOccurs="0" maxOccurs="unbounded">
103N/A <
xsd:
element name="property" type="tns:property-type">
103N/A Defines a configurable property of this managed object. A
103N/A property's value or values affects the behavior of this
103N/A managed object. Various different types of properties are
103N/A supported, for example, strings, integers, etc. A property
103N/A definition must not override a property defined elsewhere
103N/A in this managed object or property inherited from a parent
0N/A <
xsd:
element name="property-override" 0N/A type="tns:property-override-type">
0N/A Overrides a property definition inherited from a parent
0N/A managed object definition. Using a property override it is
0N/A possible to modify the behavior of an inherited property
0N/A definition in a non-critical way. For example, a managed
0N/A object definition might override the default behavior of
1688N/A an inherited Java implementation class property so that
1688N/A new instances are created with the correct default
0N/A <
xsd:
element name="property-reference" 0N/A type="tns:property-reference-type">
0N/A A reference to a common property definition defined in a
0N/A package, which should be part of this managed object's
113N/A <
xsd:
complexType name="rich-description-type" mixed="true">
113N/A An internationalized description string which can contain XHTML
0N/A <
xsd:
choice minOccurs="0" maxOccurs="unbounded">
0N/A processContents="lax" />
0N/A <
xsd:
element name="product-name">
1688N/A The name of the product associated with this definition.
0N/A </
xsd:
documentation>
1688N/A <
xsd:
element name="user-friendly-name">
0N/A The name of the managed object associated with this
0N/A </
xsd:
documentation>
1688N/A <
xsd:
element name="user-friendly-plural-name">
0N/A The plural name of the managed object associated with this
1612N/A <
xsd:
complexType name="description-type">
1688N/A An internationalized description string which cannot contain
0N/A </
xsd:
documentation>
0N/A <
xsd:
extension base="xsd:token" />
342N/A <
xsd:
complexType name="property-type">
0N/A Defines a configurable property of a managed object. A
0N/A property's value or values affects the behavior of the
1080N/A associated managed object. Various different types of properties
0N/A are supported, for example, strings, integers, etc. A property
1612N/A definition must not override a property defined elsewhere in the
1612N/A managed object or property inherited from a parent managed
0N/A <
xsd:
element name="TODO" minOccurs="0" type="xsd:string" 0N/A maxOccurs="unbounded">
0N/A An annotation specifying remaining work or unsolved problems
0N/A relating to this property definition. Its use is primarily
0N/A for development purposes and should not be processed by
0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="synopsis" type="tns:rich-description-type">
2934N/A A brief description of this property. The description should
2934N/A describe, preferably in one sentence, the purpose of this
0N/A property. It does not need to provide details regarding
0N/A default behavior, syntax, nor how changes take effect (
e.g. 0N/A immediately, post-restart, etc). The synopsis should be
0N/A suitable for use in applications such as tool-tips, CLI
0N/A help, and the summary description in Javadoc. It is possible
0N/A to embed rich content including XHTML markup (this will only
0N/A be used where supported).
0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="description" minOccurs="0" 0N/A type="tns:rich-description-type">
0N/A A detailed description of this property. The description
0N/A should describe in detail the purpose of this property. The
0N/A description should be suitable for use in applications such
0N/A as manual pages or detailed help. It does not need to repeat
0N/A anything described in the synopsis as applications should
0N/A normally display the two together. In addition, it does not
13N/A need to provide details regarding default behavior, syntax,
13N/A nor how changes take effect (
e.g. immediately, post-restart,
13N/A etc). It is possible to embed rich content including XHTML
13N/A markup (this will only be used where supported).
13N/A </
xsd:
documentation>
13N/A <
xsd:
element name="requires-admin-action" 13N/A type="tns:admin-action-type" minOccurs="0">
13N/A <
xsd:
documentation>
13N/A Defines an optional action which administators must perform
0N/A after they have modified this property. By default
0N/A modifications to properties are assumed to take effect
0N/A immediately and require no additional administrative action.
0N/A Developers should be aware that, where feasible, they should
0N/A implement components such that property modifications
0N/A require no additional administrative action. This is
0N/A required in order to minimize server downtime during
0N/A administration and provide a more user-friendly experience.
0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="default-behavior" type="tns:default-type" 0N/A Defines a default behavior for the property when it has no
0N/A values specified. All properties must have a default
0N/A behavior defined unless they are mandatory.
0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="syntax" type="tns:syntax-type">
0N/A Defines the syntax of this property. This includes the data
0N/A type used for the property and additional constraints (
e.g. 0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="profile" type="tns:profile-type" minOccurs="0" 0N/A maxOccurs="unbounded">
0N/A An annotation relating to this property. Annotations can
0N/A define additional information which cannot be directly
0N/A represented using this XML schema. The additional
0N/A information can relate to specific applications such as LDAP
0N/A how properties should be arranged and grouped in a window).
0N/A </
xsd:
documentation>
0N/A <
xsd:
attribute name="name" type="tns:name-type" use="required">
0N/A The name of this property. The name should describe as
0N/A concisely as possible the purpose of this property and should
0N/A be suitable for use in Java method names (
e.g. getters and
0N/A setters). The property name should be a string comprising of
0N/A short lower-case words joined with hyphens "-". For example,
0N/A </
xsd:
documentation>
0N/A <
xsd:
attribute name="multi-valued" type="xsd:boolean" use="optional" 0N/A Indicates whether or not this property is multi-valued. By
0N/A default, properties are single-valued.
0N/A </
xsd:
documentation>
0N/A <
xsd:
attribute name="read-only" type="xsd:boolean" use="optional" 0N/A Indicates whether or not this property is read-only. By
0N/A default, properties are not read-only. Read-only properties
0N/A can only be initialized during construction of the associated
0N/A managed object and cannot be modified once the managed object
0N/A </
xsd:
documentation>
0N/A <
xsd:
attribute name="monitoring" type="xsd:boolean" use="optional" 0N/A Indicates whether or not this property is read-only and
0N/A generated automatically by the server as monitoring
0N/A information. By default, properties are not for monitoring.
0N/A Monitoring properties are always read-only because their
1064N/A values are generated by the server. During construction of a
1064N/A managed object their values are undefined.
1064N/A <
xsd:
attribute name="mandatory" type="xsd:boolean" use="optional" 1064N/A Indicates whether or not this property is mandatory. Mandatory
1064N/A properties are usually those properties which have no sensible
1064N/A default behavior and must, therefore, be specified by
1064N/A administrators. If a mandatory property has default values
1064N/A these will be used as the values for the property if none are
1064N/A <
xsd:
attribute name="hidden" type="xsd:boolean" use="optional" 1064N/A Indicates whether or not this property should be hidden from
1064N/A client applications. Hidden properties should rarely be used
1064N/A but are sometimes required in order to provide functionality
1064N/A that needs to be exposed in management APIs but not in
0N/A front-ends such as CLIs.
0N/A </
xsd:
documentation>
0N/A <
xsd:
attribute name="advanced" type="xsd:boolean" use="optional" 0N/A Indicates whether or not this property should be treated as an
0N/A advanced property and hidden by default in client
0N/A applications. Advanced properties should either be optional
0N/A (
i.e. not mandatory) or be mandatory with default values. This
0N/A constraint is required so that users do not have to specify
0N/A values for advanced properties.
0N/A </
xsd:
documentation>
0N/A <
xsd:
complexType name="property-reference-type">
0N/A A reference to a common property definition defined in a
0N/A package, which should be part of a managed object's definition.
0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="requires-admin-action" 0N/A type="tns:admin-action-type" minOccurs="0">
0N/A Optionally override the administrative action defined in the
0N/A referenced property definition. An administrative action
0N/A defines an optional action which administators must perform
0N/A after they have modified this property. By default
0N/A modifications to properties are assumed to take effect
0N/A immediately and require no additional administrative action.
0N/A Developers should be aware that, where feasible, they should
0N/A implement components such that property modifications
0N/A require no additional administrative action. This is
0N/A required in order to minimize server downtime during
0N/A administration and provide a more user-friendly experience.
370N/A <
xsd:
element name="default-behavior" type="tns:default-type" 0N/A Optionally override the default behavior defined in the
0N/A referenced property definition. The default behavior is
0N/A applicable when the property has no values specified. All
0N/A properties must have a default behavior defined unless they
0N/A </
xsd:
documentation>
0N/A <
xsd:
attribute name="name" type="tns:name-type" use="required">
0N/A The name of the referenced property.
0N/A </
xsd:
documentation>
0N/A <
xsd:
attribute name="package" type="tns:package-type">
0N/A The package containing the referenced property. By default,
0N/A the package in which this managed object is defined will be
0N/A </
xsd:
documentation>
0N/A <
xsd:
complexType name="property-override-type">
0N/A Overrides a property definition inherited from a parent managed
0N/A object definition. Using a property override it is possible to
3053N/A modify the behavior of an inherited property definition in a
0N/A non-critical way. For example, a managed object definition might
0N/A override the default behavior of an inherited Java
0N/A implementation class property so that new instances are created
0N/A with the correct default implementation class.
0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="requires-admin-action" 0N/A type="tns:admin-action-type" minOccurs="0">
0N/A Optionally override the administrative action defined in the
0N/A overridden property definition. An administrative action
0N/A defines an optional action which administators must perform
0N/A after they have modified this property. By default
0N/A modifications to properties are assumed to take effect
0N/A immediately and require no additional administrative action.
0N/A Developers should be aware that, where feasible, they should
3053N/A implement components such that property modifications
3053N/A require no additional administrative action. This is
0N/A required in order to minimize server downtime during
0N/A administration and provide a more user-friendly experience.
0N/A <
xsd:
element name="default-behavior" type="tns:default-type" 0N/A Optionally override the default behavior defined in the
0N/A overridden property definition. The default behavior is
0N/A applicable when the property has no values specified. All
0N/A properties must have a default behavior defined unless they
0N/A <
xsd:
attribute name="name" type="tns:name-type" use="required">
0N/A The name of the overridden property.
0N/A </
xsd:
documentation>
0N/A <
xsd:
complexType name="relation-type">
0N/A Specifies a relationship between a managed object and other
0N/A managed objects. The relationship can be a singleton
0N/A relationship (
i.e. one to one), an optional relationship (
i.e. 3053N/A one to zero or one), or a one to many relationship. Both
0N/A compositions (the default) and aggregations are supported.
0N/A Aggregations are defined by specifying the path to the
3053N/A referenced managed objects in the aggregation attribute.
0N/A </
xsd:
documentation>
0N/A <
xsd:
element name="TODO" minOccurs="0" type="xsd:string" 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
<
xsd:
element name="synopsis" type="tns:rich-description-type" 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
<
xsd:
element name="description" minOccurs="0" type="tns:rich-description-type">
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:
element name="one-to-one">
Specifies a one to one (singleton) relationship with
another type of managed object.
<
xsd:
element name="one-to-zero-or-one">
Specifies a one to zero or one (optional) relationship
with another type of managed object.
<
xsd:
element name="one-to-many">
Specifies a one to many (instantiable) relationship with
another type of managed object.
<
xsd:
attribute name="plural-name" type="tns:name-type" Specifies the plural name of this relation if
different from the plural name of the referenced
<
xsd:
attribute name="naming-property" type="tns:name-type" 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:
element name="profile" type="tns:profile-type" minOccurs="0" maxOccurs="unbounded">
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:
attribute name="name" type="tns:name-type" use="required">
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:
attribute name="managed-object-name" type="tns:name-type" The type of managed object referenced by this relation if
different from this relation's name.
<
xsd:
attribute name="managed-object-package" type="tns:package-type" The package containing the referenced managed object
definition if it is not the same as this managed object's
<
xsd:
attribute name="hidden" type="xsd:boolean" use="optional" 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
<
xsd:
complexType name="admin-action-type">
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
<
xsd:
element name="none">
Used when modifications to a property take effect
immediately, and no additional administrator action is
<
xsd:
element name="synopsis" type="tns:rich-description-type" minOccurs="0">
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:
element name="server-restart">
Used when modifications to a property require a server
restart in order to take effect.
<
xsd:
element name="synopsis" type="tns:rich-description-type" minOccurs="0">
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:
element name="component-restart">
Used when modifications to a property require a component
restart in order to take effect (usually by disabling and
re-enabling the component).
<
xsd:
element name="synopsis" type="tns:rich-description-type" minOccurs="0">
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:
element name="other">
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
<
xsd:
element name="synopsis" type="tns:rich-description-type">
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:
complexType name="default-type">
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:
element name="undefined">
Used when a property has no tangible default behavior - its
default behavior is undefined.
<
xsd:
element name="alias">
Used when a property defaults to some special behavior that
cannot be represented using property values.
<
xsd:
element name="synopsis" type="tns:rich-description-type">
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
<
xsd:
element name="profile" type="tns:profile-type" minOccurs="0" maxOccurs="unbounded">
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
<
xsd:
element name="defined">
Used when a property defaults to one or more real values of
<
xsd:
element name="value" minOccurs="1" maxOccurs="unbounded" type="xsd:string">
The string representation of a value of this property.
<
xsd:
element name="inherited">
Used when a property defaults one or more values taken from
a property in another managed object.
<
xsd:
element name="relative">
Used when the managed object providing the default
values is located relative to this managed object.
<
xsd:
attribute name="offset" use="required">
The relative location of the managed object (where
0 is this managed object, 1 is the parent, and 2
<
xsd:
restriction base="xsd:integer">
<
xsd:
minInclusive value="0" />
<
xsd:
attribute name="managed-object-name" type="tns:name-type" use="required">
The type of managed object providing the default
<
xsd:
attribute name="managed-object-package" type="tns:package-type" use="optional">
The package containing the managed object
definition if it is not the same as this managed
<
xsd:
attribute name="property-name" type="tns:name-type" The name of the property containing the default
<
xsd:
element name="absolute">
Used when the managed object providing the default
values is in a known absolute location.
<
xsd:
attribute name="path" type="tns:path-type" The location of the managed object containing the
<
xsd:
attribute name="property-name" type="tns:name-type" The name of the property containing the default
<
xsd:
complexType name="syntax-type">
Defines the syntax of a property. This includes the data type
used for the property and additional constraints on the values
<
xsd:
element name="aggregation">
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:
attribute name="parent-path" type="tns:path-type" The name of the managed object which is the parent of
the aggregated managed objects.
<
xsd:
attribute name="relation-name" type="tns:name-type" The relation in the parent managed object which contains
the aggregated managed objects.
<
xsd:
attribute name="managed-object-name" type="tns:name-type" The type of managed object referenced by this
aggregation if different from this relation's name.
<
xsd:
attribute name="managed-object-package" type="tns:package-type" use="optional">
The package containing the referenced managed object
definition if it is not the same as this managed
<
xsd:
attribute name="source-enabled-property-name" type="tns:name-type" use="optional">
The optional boolean "enabled" property in the
aggregating managed object. When this property is true,
the "target-enabled-property-name" in the aggregated
managed objects must also be true. The
"target-enabled-property-name" attribute must be
specified when this attribute is defined.
<
xsd:
attribute name="target-enabled-property-name" type="tns:name-type" use="optional">
The optional boolean "enabled" property in the
aggregated managed objects. This property must not be
false while the aggregated managed object is referenced.
This attribute must be defined when the
"source-enabled-property-name" attribute is specified.
<
xsd:
element name="attribute-type">
Used for properties which contain LDAP attribute type names.
<
xsd:
element name="boolean">
Used for properties which are best represented using boolean
Used for properties which contain LDAP distinguished names.
<
xsd:
element name="base" minOccurs="0" type="xsd:string">
Indicates that values of this property must be
immediately subordinate to the specified base DN.
Used for properties which contain LDAP object identifiers
(
e.g. attribute names, object classes, controls, etc).
<
xsd:
element name="java-class">
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:
element name="instance-of" minOccurs="0" 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:
restriction base="xsd:string">
<
xsd:
whiteSpace value="collapse" />
value="([A-Za-z][A-Za-z0-9_]*\.)*[A-Za-z][A-Za-z0-9_]*" />
<
xsd:
element name="integer">
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
<
xsd:
element name="unit-synopsis" minOccurs="0" type="tns:rich-description-type">
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:
attribute name="allow-unlimited" type="xsd:boolean" use="optional" default="true">
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:
attribute name="lower-limit" type="xsd:integer" use="optional" default="0">
Indicates a lower limit for this integer property.
<
xsd:
attribute name="upper-limit" type="xsd:integer" Indicates an upper limit for this integer property.
<
xsd:
element name="ip-address">
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
<
xsd:
element name="ip-address-mask">
Used for properties which contain IP address masks. IPv4 and
IPv6 address mask forms are supported.
<
xsd:
element name="size">
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
<
xsd:
attribute name="allow-unlimited" type="xsd:boolean" use="optional" default="false">
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. <
xsd:
attribute name="lower-limit" type="xsd:string" use="optional" default="0">
Indicates a lower limit for this size property.
<
xsd:
attribute name="upper-limit" type="xsd:string" Indicates an upper limit for this size property.
<
xsd:
element name="duration">
Used for properties which contain a time duration.
<
xsd:
attribute name="base-unit" use="optional" default="s">
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
<
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:
attribute name="maximum-unit" use="optional">
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:
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:
attribute name="allow-unlimited" type="xsd:boolean" use="optional" default="false">
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. <
xsd:
attribute name="lower-limit" type="xsd:string" use="optional" default="0">
Indicates a lower limit for this duration property.
<
xsd:
attribute name="upper-limit" type="xsd:string" Indicates an upper limit for this duration property.
<
xsd:
element name="password">
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
<
xsd:
element name="enumeration">
Used for properties which contain values taken from a finite
set of values. There must be at least one possible value
<
xsd:
element name="value" minOccurs="1" Defines one of the possible values that this property
<
xsd:
element name="synopsis" type="tns:rich-description-type">
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:
attribute name="name" use="required" 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:
element name="string">
Used for properties which contain string values. It is
possible to contrain the permitted set of values using a
<
xsd:
element name="pattern" minOccurs="0">
Constrains the permitted set of values using a regular
expression. All values of this property must match the
provided regular expression.
<
xsd:
element name="regex" type="xsd:string">
The regular expression conforming to the syntax
<
xsd:
element name="usage" type="xsd:string">
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:
element name="synopsis" type="tns:rich-description-type">
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
<
xsd:
attribute name="case-insensitive" type="xsd:boolean" use="optional" default="true">
Indicates whether or not values of this property should
be treated in a case-insensitive manner.
<
xsd:
simpleType name="name-type">
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:
restriction base="xsd:token">
<
xsd:
pattern value="[a-z][a-z0-9]*(-[a-z0-9]+)*" />
<
xsd:
simpleType name="package-type">
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:
restriction base="xsd:token">
<
xsd:
pattern value="[a-z][a-z0-9]*(\.[a-z0-9]+)*" />
<
xsd:
simpleType name="path-type">
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:
restriction base="xsd:string">
value="/|(/relation=[^/+]+(\+type=[^/+]+)?(\+name=[^/]+)?)+">
<
xsd:
complexType name="profile-type">
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:
any processContents="strict" maxOccurs="unbounded" />
<
xsd:
attribute name="name" type="tns:name-type" use="required">
The name of this profile
e.g. "ldap".
<
xsd:
element name="root-managed-object">
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:
extension base="tns:managed-object-type">
<
xsd:
element name="product-name">
The name of the product associated with this
<
xsd:
restriction base="xsd:string">
<
xsd:
whiteSpace value="collapse" />
<
xsd:
element name="tag-definition" minOccurs="0" 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:
element name="synopsis">
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:
complexType mixed="true">
<
xsd:
choice minOccurs="0" maxOccurs="unbounded">
<
xsd:
element name="product-name">
The name of the product associated with
<
xsd:
attribute name="name" type="tns:name-type" 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,
<
xsd:
attribute name="name" type="tns:name-type" The name of this root managed object, which is always
<
xsd:
attribute name="package" type="tns:package-type" The package containing this root managed object, which
<
xsd:
element name="managed-object">
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:
extension base="tns:managed-object-type">
<
xsd:
attribute name="name" type="tns:name-type" 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
<
xsd:
attribute name="plural-name" type="tns:name-type" 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:
attribute name="package" type="tns:package-type" The package containing this managed object.
<
xsd:
attribute name="abstract" type="xsd:boolean" use="optional" default="false">
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:
attribute name="extends" type="tns:name-type" Indicates whether or not this managed object is 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
<
xsd:
attribute name="parent-package" type="tns:package-type" The package containing the parent managed object. By
default, the package in which this managed object is
<
xsd:
element name="package">
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
<
xsd:
element name="TODO" minOccurs="0" type="xsd:string" 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:
element name="synopsis" type="tns:rich-description-type">
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
<
xsd:
element name="description" minOccurs="0" type="tns:rich-description-type">
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:
element name="property" minOccurs="0" maxOccurs="unbounded" type="tns:property-type">
Defines a common configurable property for this package.
Managed objects can inherit this property definition by
referencing it using a "property-reference" element.
<
xsd:
attribute name="name" type="tns:package-type" The package containing this package definition.