JSDAI(TM) Version 4.2.0

JSDAI is an implementation of the Standard Data Access Interface (SDAI, ISO 10303-22) and its specialization Java programming language binding to the SDAI with Internet/Intranet extensions (ISO/TS 10303-27).


jsdai.lang This package contains the core interfaces and classes of JSDAI to work on data in accordance with the STEP standard (ISO 10303).
jsdai.util This package includes several utility applications and classes based on jsdai operations.


JSDAI is an implementation of the Standard Data Access Interface (SDAI, ISO 10303-22) and its specialization Java programming language binding to the SDAI with Internet/Intranet extensions (ISO/TS 10303-27). The SDAI standard defines an abstract Application Programming Interface (API) on how to work with STEP data. This is the reference documentation of the JSDAI implementation of SDAI for Java together with its extensions beyond the SDAI standard such as EXPRESS short form support and mapping operations. Introduction to JSDAI through examples is provided here.

STEP, an acronym for STandard for the Exchange of Product data, is a family of standard which starts with ISO 10303. The word Exchange is misleading, because SDAI and especially JSDAI is a framework for integrated data sharing. It allows new CAx and PDM applications to work simultaneously on shared data, locally or over a network.

A main part of STEP is the EXPRESS modeling language (ISO 10303-11) which is the fundament of SDAI. A basic understanding of EXPRESS is an essential requirement for any JSDAI application developer. However, a detailed understanding of EXPRESS is not required, because JSDAI guides the user and takes care of all the details of EXPRESS.

EXPRESS defines entities which have attributes of particular types. An entity is similar to a Java class or interface. Instances (objects) of entities can be created and exported into a STEP-file, according to the format specification Clear Text Encoding of the Exchange Structure (ISO 10303-21). Files, based on this standard, are also called physical files or part21 files. Entity instances can be interchanged by part21 files or shared within applications through the SDAI.

Arbitrary EXPRESS schemas are made available for JSDAI through the Express Compiler.  This tool generates the dictionary information of the compiled schemas for late binding access and, optionally, Java classes and interfaces for early binding access. The methods for late binding access are mainly located in EEntity and Aggregate. These methods work for arbitrary entity types and attributes, but to use these methods an application needs to operate in parallel on entity instances of the dictionary schema and of the application schema. Because of this, most applications will use early binding access. Late binding access is only recommended for application which needs to operate on schemas which are not necessarily known during compile time.

For early binding access, every EXPRESS entity "xxx" is represented by a Java interface "EXxx", a Java class "CXxx" and an additional Java class "AXxx" for aggregates to contain instances of this entity. The differentiation between EXxx and CXxx is essential, because only the Java interfaces support multiple inheritance, but not the Java classes. Therefore, applications operate on entity instances mainly with the EXxx types and only for some specific methods (for example, usedin and createEntityInstance) the CXxx classes are needed. Also, for other EXPRESS elements like defined types and enumerations some specific Java classes and interfaces are generated. Together with the "AXxx" classes they support strict typing which results in clear and easy to read application program. Another benefit from the strict typing is that many potential errors of an JSDAI application can already be detected during compile time. The exact definition how Java classes, interfaces and methods to generate from EXPRESS is given in ISO/TS 10303-27. The users of JSDAI don't need to understand this conversion (from EXPRESS to Java) in detail. They can simply check the result of this conversion in this HTML documentation. The HTML documentation generated by javadoc and ExpressDoc gives a detailed information of the result.

EXPRESS schemas exist in the so called long form and short form. Long form schemas are "stand-alone", they do not rely on definitions in other schemas. Short form schemas, however, have USE FROM and REFERENCE FROM statements to interface elements from other schemas. STEP Application Protocols define a short form and an equivalent long form schema. Traditionally, only the long form schemas are used in part21 exchange files. JSDAI supports both, short and long forms, but cannot hold both forms in parallel for the same schema. We recommend to use the short form schemas. The default JSDAI-Library is fully based on the EXPRESS short forms.

More detailed description of how EXPRESS schemas are mapped to Java classes is provided here.

STEP Application Protocols consist of the ARM (Application Reference Model), the AIM (Application Integrated Model) and a mapping between them. In cases where the AIM *and* the ARM is given in EXPRESS the mapping between them can be converted into a population of the SDAI_mapping_schema by the MappingCompiler. The mapping operations on EEntity and SdaiModel take advantage of the mapping data, so that JSDAI applications can operate on ARM concepts while working with AIM instances. 

The JSDAI Runtime Environment in jsdai_runtime.jar contains these packages :

The JSDAI Library in jsdai_library.jar is automatically generated by the JSDAI ExpressCompiler. It contains: The optional package jsdai_lib_mapping.jar including the ARM-AIM mapping information and classes is partly generated by the JSDAI MappingCompiler. It includes
All packages starting with jsdaix contain code for specific STEP schemas. Their usage requires the default JSDAI Library jsdai_library.jar or equivalent. They are not documented here, e.g.:
This documentation is generated by using various tools, depending on the package:

Copyright © LKSoftWare GmbH, 1999-2008