JSDAI Runtime, an
Application Programming Interface (API) to work on STEP data, is the
center of JSDAI. Together with the results of the JSDAI Express Compiler it is able to deal with application data of every EXPRESS schema.
The JSDAI Runtime Environment implements the
SDAI_dictionary_schema, the SDAI_ session_schema, and the SDAI
operations as defined in ISO 10303-22 together with various extensions
for part21 files, network access, mapping operations, event support and
others.
Application schemas "xxx" are converted by the JSDAI Express Compiler into:
- a population of the dictionary schema for late binding
access. This allows working with arbitrary EXPRESS schemas at the
runtime of an JSDAI application. It is a universal solution, but should
only be used if this flexibly is really needed; e.g. in SdaiTerm example program.
- a Java package jsdai.SXxx with Java interfaces and classes
for early binding access. For this the express schema must be known at
compile time. It allows more efficient application programming and is
EXPRESS type safe because of more extensive checking during
compilation. This is the default programming style for application
programs.
Every EXPRESS schema is located in its own Java package:
| Java package |
EXPRESS schema |
| jsdai.lang |
SDAI_session_schema |
| jsdai.dictionary |
SDAI_dictionary_schema |
| jsdai.Mapping |
SDAI_mapping_schema |
| jsdai.SXxx |
Application schema "Xxx" (AIM) |
| jsdai.MXxx |
Application schema "Xxx" (ARM) |
Package jsdai.lang
The
main purpose of this package it to manage populations of STEP data.
Late and early binding entity and attribute access is simultaneously
supported.
SdaiSession:
- Initializing and terminating any SDAI activity
- Transaction handling. start read-only, start read-write, commit, abort
- Dynamic SdaiRepository handling
- Creating new repositories
- Finding and linking remote repositories on a network
SdaiRepository:
- Physical container of SchemaInstance, SdaiModels and application instances
- Persistent data storage on disk
- Import of and Export to part21 file (Clear text Encoding of
the exchange structure) according to ISO 10303-21 + Technical
corrigendum + Amendment
SchemaInstance:
- Is a logical collection of SdaiModels for a native Express schema_definition
- Defining the domain of a valid population of an Express schema
- Defining the domain for validation operations
- Optionally covering SdaiModels
of different underlying Express schemas as long as they are "domain
equivalent", because they are interfaced in the main schema (short
form)
- Defining the domain where to search for inverse entity references
SdaiModel:
- Grouping of entity instances, which belong to the same Express schema. Every entity instance belongs to exactly one SdaiModel.
- Synchronizing of access rights (read-only, read-write), important for multiple user access
Package jsdai.dictionary
This
package contains the meta information of EXPRESS schemas. This
information is always present but only needed for late binding
applications. On early binding applications this information only in
rare cases. The main dictionary entities are:
- schema_definition: Instances of this entity represent an EXPRESS schema
- entity_definition: Instances of this entity represent an EXPRESS entity
- attribute: Instance of this entity represent entity
attributes. There are subtypes for explicit, derived and inverse
attributes with detailed type information.
Other entities not shown in this diagram are defined_type, where_rule, global_rule, etc..
The structure of the dictionary schema follows very
strictly the definition of the SDAI_dictionary_schema, with some
additional extensions and modifications to support:
- explicit EXPRESS short forms with USED FROM and REFERENCED FROM constructs
- Support for Express Edition 2
- extensible selects
- extensible enumerations
- sub-supertype constraints
- generic datatype support
- Express-X
From JSDAI Version 3.0 on
information about EXPRESS functions, expressions and constants is
covered by the SDAI_dictionary_schema as well.