# Package com.orchestranetworks.schema

package com.orchestranetworks.schema
Represents XML Schema concepts and provides schema extensions capabilities.

### Specification of JavaBeans

Some EBX® extensions rely on specific Java classes. This is the case for :

- constraints, see interface `Constraint`;
- enumeration constraints, see interface `ConstraintEnumeration`;
- nomenclature constraints, see interface `ConstraintNomenclature`;
- functions, see interface `ValueFunction`;
- service permissions, see interface `ServicePermission`;
- UI bean editor, see class `UIBeanEditor`;
- table filters, see class `UITableFilter`;
- other schema extensions, see interface `SchemaExtensions`.

The declaration syntax of all those extensions allow to specify JavaBeans properties within the schema. For example :

>      <osd:xyz class="com.test.MyJavaBean">
>              <param1>value of param1</param1>
>              <param2>value of param2</param2>
>      </osd:xyz>

Here `param1` and `param2` are JavaBean properties. It implies that :

1. The class `com.test.MyJavaBean` is public and its constructor `com.test.MyJavaBean()` is defined and public.
2. The property setters `setParam1(...)` and `setParam2(...)`) are defined and public (optional BeanInfo class and its property descriptors will be ignored).

#### Type conversion

The conversion of the string specified for each property is done according to the type of the JavaBean property. The following types are supported :

- `String`
- `Boolean`
- `Integer` (`xs:int` notation)
- `Float`
- `BigDecimal` (`xs:decimal` notation)
- `Date` (`xs:date` notation, for example "1999-03-21")
- `Locale` (`osd:locale` notation, with "_" (underscore) separator, not "-" (dash), for example "en" or "en_US")
- `URI` (`xs:anyURI` notation)
- `File`
- `Path`
- `Step`

#### Localized properties

EBX® adds the possibility to localize a property, by means of attribute `xml:lang`. For example :

>      <osd:xyz class="com.test.MyJavaBean">
>              <param1 xml:lang="en" >value of param1</param1>
>              <param1 xml:lang="fr" >valeur de param1</param1>
>      </osd:xyz>

Here `param1` is a localized "JavaBean property". It implies that the method `setParam1(Locale, aType)` is defined and public (optional BeanInfo class and its property descriptors will be always ignored).

- Related Packages
  Package
  Description
  com.orchestranetworks.schema.businessObjects
  com.orchestranetworks.schema.dynamic
  A public API for defining a dynamic schema.
  com.orchestranetworks.schema.info
  Provides interfaces for accessing schema node facet.
  com.orchestranetworks.schema.metadata
  com.orchestranetworks.schema.relationships
  Provides interfaces for accessing relationships defined in a data model.
  com.orchestranetworks.schema.trigger
  Provides classes and interfaces for trigger creation.
- Class
  Description
  Constraint<T>
  Specifies a constraint that may be contextual and dynamic.
  ConstraintContext
  Provides methods for setting up a constraint in the context of its data model.
  ConstraintContextOnTable
  Provides methods for setting up a constraint on a table in the context of its data model.
  ConstraintEnumeration<T>
  Specifies an enumeration constraint that can be contextual and dynamic.
  ConstraintNomenclature
  Deprecated.
  Since `enumeration constraint` is more appropriate than this interface when there are many values in the enumeration or when display must be localized.
  ConstraintOnNull
  Defines a verification for values that are mandatory under certain circumstances.
  ConstraintOnTable
  Specifies a constraint that is able to perform the validation of an entire table.
  ConstraintOnTableWithRecordLevelCheck
  Defines a record-level check, to be performed in addition to table-level checks.
  ConstraintViolationException
  Thrown to indicate that an insert, an update or a delete is not valid with respect to a blocking constraint.
  DependenciesDefinitionContext
  Provides methods for setting dependencies in the context of a constraint and its data model.
  InvalidSchemaException
  Thrown to indicate that a data model is not valid.
  JavaBeanVersion
  Defines a JavaBean behavior version.
  Path
  A path is used for locating a node in a tree structure.
  PathAccessException
  Thrown when a path cannot be resolved in a data model.
  SchemaDocumentation
  Abstract class for dynamically computing the label and description of a node in the context of a data model.
  SchemaDocumentationContext
  This class provides the context used for computing the label and description associated with a node in a data model.
  SchemaDocumentationSetupContext
  Provides methods for setting up the documentation of a data model.
  SchemaExtensions
  Defines extensions of a data model.
  SchemaExtensionsContext
  Context for specifying extensions of a data model.
  SchemaLocation
  Identifies a data model location, which can be either based on a URL (standard notation) or a module.
  SchemaNode
  Represents an element declaration in the resolved data model.
  SchemaNodeContext
  This interface defines common services for performing a validation task on an entity associated with a `data model node`.
  SchemaTypeName
  Identifies a named type definition.
  Step
  A path is a sequence of steps.
  TableRefDisplay
  Defines a custom renderer for displaying a foreign key constraint depending on the context of a node.
  TableRefDisplayContext
  Provides methods for setting up a `TableRefDisplay` in the context of its data model.
  TableRefFilter
  Defines a filter that depends on the context of a constraint.
  TableRefFilterContext
  Provides methods for setting up a `TableRefFilter` in the context of its data model.
  ValueFunction
  Computes a value when this value is not persisted by EBX® repository.
  ValueFunctionContext
  Provides methods for setting up a value function in the context of its data model.