STEP Modules Repository EXPRESS Model (STEPmod) Specification

$Date: 2004/10/25 16:10:46 $


Table of Contents

Introduction
XML Schema Documentation
Element aggregate
Element algorithm
Element application
Element builtintype
Element constant
Element derived
Element described.item
Element description
Element entity
Element enumeration
Element explicit
Element express (Root Element)
Element function
Element graphic.element
Element interface
Element interfaced.item
Element inverse
Element inverse.aggregate
Element parameter
Element procedure
Element redeclaration
Element rule
Element schema
Element select
Element subtype.constraint
Element type
Element typename
Element unique
Element unique.attribute
Element where

The STEP Modules Repository is a collection of reusable XML building blocks for developing standards from information models defined in EXPRESS. An integral part of the repository's XML vocabulary is its representation of EXPRESS language constructs, i.e. its EXPRESS model. This specification shall refer to this EXPRESS model portion of the repository's XML vocabulary as STEPmod EXPRESS.

STEPmod EXPRESS was originally defined using a Document Type Definition (DTD) because, at that time, more expressive XML schema languages such as the World Wide Web Consortium (W3C) XML Schema definition language (XSD) and RELAX NG were not mature standards, and software tools supporting these languages were unstable. Although XSD has since become a W3C standard and RELAX NG has since become an ISO standards, the current XML schema for STEPmod EXPRESS does not use any of the expressive power offered by these languages. This may change in the future. For example, XSD and RELAX NG both provide stronger datatyping than DTD, and RELAX NG can enforce co-occurrence constraints between XML attributes. Both of these capabilities would be useful for improving the validation of STEPmod EXPRESS XML instances.

STEPmod EXPRESS takes a middle-of-the-road approach regarding the level of granularity of the XML markup with respect to to the EXPRESS language. High level EXPRESS structures such as data types, their attributes, and inheritance relationships are marked up. Expressions, on the other hand, are not. As a result, STEPmod EXPRESS is suitable for applications such as EXPRESS schema browsers as well as partial mappings to other modeling languages such as UML and OWL.

The XML schema contains the following constructs. The schema's root element is express .

The documentation uses the following notational conveniences:

  • Optional XML elements and attributes are in italics.

  • * means "zero or more."

  • + means "one or more."

  • | means "or."

  • Literals are enclosed in single quotes.

  • text means any character string.

  • #PCDATA denotes "parsed character data", as defined in XML 1.0, in a content model.

  • NMTOKEN denotes a name token, as defined in XML 1.0.

Documentation

aggregate type

Content Model

EMPTY

Parent Elements

constant explicit derived function parameter type

Attributes
AttributeDocumentationTypeDefault
type the kind of aggregate 'AGGREGATE' | 'ARRAY' | 'BAG' | 'LIST' | 'SET' SET
optional whether the aggregate type is optional 'YES' | 'NO' NO
unique whether the aggregate type is unique 'YES' | 'NO' NO
lower lower bound text
upper upper bound text
typelabel type label NMTOKEN
Documentation

software used to generate the EXPRESS schema

Content Model

EMPTY

Parent Elements

express

Attributes
AttributeDocumentationTypeDefault
name application name text
owner application developer text
url application developer's website text
version application version number text
source name of file used as input to the application text
Documentation

EXPRESS built-in type

Content Model

graphic.element

Parent Elements

constant explicit derived function parameter type

Attributes
AttributeDocumentationTypeDefault
type specifies which built-in type 'BINARY' | 'BOOLEAN' | 'GENERIC' | 'GENERICENTITY' | 'INTEGER' | 'LOGICAL' | 'NUMBER' | 'REAL' | 'STRING' STRING
width expression specifying width of binary or string (ignored for other built-in types) text
fixed expression specifying whether the width is fixed (applies only to binary and string types) 'YES' | 'NO' NO
precision expression specifying the number of significant digits for a real type text
typelabel type label NMTOKEN
Documentation

constant declaration

Content Model

description ( aggregate )* ( typename | builtintype )

Parent Elements

schema

Attributes
AttributeDocumentationTypeDefault
name constant name NMTOKEN
expression constant expression text
Documentation

derived EXPRESS attribute

Content Model

description ( aggregate )* ( typename | builtintype ) redeclaration

Parent Elements

entity

Attributes
AttributeDocumentationTypeDefault
name EXPRESS attribute name NMTOKEN
expression expression for computing the EXPRESS attribute's value text
Documentation

A description of any item in the interface. In other words the documentation of an imported construct.

Content Model

description

Parent Elements

interface

Attributes
AttributeDocumentationTypeDefault
item the name of the imported construct NMTOKEN
attribute only used if the imported construct is an entity in which case, item is the name of the entity and attribute is the name of the attribute NMTOKEN
kind the kind of item being imported 'ENTITY' | 'TYPE' | 'ATTRIBUTE' | 'FUNCTION' | 'PROCEDURE' | 'CONSTANT' ENTITY
Documentation

EXPRESS entity type

Content Model

description ( explicit )* ( derived )* ( inverse )* ( unique )* ( where )* graphic.element

Parent Elements

schema

Attributes
AttributeDocumentationTypeDefault
name name of the entity type NMTOKEN
abstract.entity whether the entity type is abstract (instantiable) 'YES' | 'NO' NO
abstract.supertype whether the entity is an abstract supertype 'YES' | 'NO' NO
supertypes supertypes of this entity NMTOKENS
super.expression supertype expression text
Documentation

EXPRESS enumeration type

Content Model

graphic.element

Parent Elements

type

Attributes
AttributeDocumentationTypeDefault
extensible whether the enumeration is extensible 'YES' | 'NO' NO
basedon type which this enumeration extends NMTOKEN
items enumeration choices NMTOKENS
Documentation

explicit EXPRESS attribute

Content Model

description ( aggregate )* ( typename | builtintype ) redeclaration

Parent Elements

entity

Attributes
AttributeDocumentationTypeDefault
name EXPRESS attribute name NMTOKEN
optional specifies whether optional 'YES' | 'NO' NO
Documentation

EXPRESS specification containing one or more EXPRESS schemas

Content Model

description application ( schema )+

Attributes
AttributeDocumentationTypeDefault
language_version EXPRESS language version '1' | '2' | '3' 1
rcs.date date stamp, assumed to be generated using version control software text
rcs.revision revision stamp, assumed to be generated using version control software text
reference none text
description.file file containing descriptive text documenting the EXPRESS objects text
Documentation

EXPRESS function

Content Model

description ( parameter )* ( aggregate )* ( typename | builtintype ) algorithm

Parent Elements

schema

Attributes
AttributeDocumentationTypeDefault
name function name NMTOKEN
Documentation

reference to EXPRESS-G representation of an EXPRESS item

Content Model

EMPTY

Parent Elements

schema type builtintype select enumeration entity subtype.constraint

Attributes
AttributeDocumentationTypeDefault
image none text
page the graphic's page number text
xcoord x-coordinate of the graphic's position on the page text
ycoord y-coordinate of the graphic's position on the page text
Documentation

interface specification

Content Model

( interfaced.item )* ( described.item )*

Parent Elements

schema

Attributes
AttributeDocumentationTypeDefault
kind specifies whether USE FROM or REFERENCE FROM 'use' | 'reference' use
schema name of schema being interfaced NMTOKEN
Documentation

object imported from another EXPRESS schema

Content Model

EMPTY

Parent Elements

interface

Attributes
AttributeDocumentationTypeDefault
name name of object imported NMTOKEN
alias alias in this schema for the imported object NMTOKEN
Documentation

EXPRESS inverse attribute

Content Model

description inverse.aggregate redeclaration

Parent Elements

entity

Attributes
AttributeDocumentationTypeDefault
name EXPRESS attribute name NMTOKEN
entity name of entity to which inverted EXPRESS attribute belongs NMTOKEN
attribute inverted EXPRESS attribute name NMTOKEN
Documentation

aggregate as part of an inverse EXPRESS attribute

Content Model

EMPTY

Parent Elements

inverse

Attributes
AttributeDocumentationTypeDefault
type kind of aggregate 'BAG' | 'SET' SET
lower lower bound text
upper upper bound text
Documentation

argument to a function or procedure

Content Model

description ( aggregate )* ( typename | builtintype )

Parent Elements

function procedure

Attributes
AttributeDocumentationTypeDefault
name name of argument NMTOKEN
Documentation

EXPRESS procedure

Content Model

description ( parameter )* algorithm

Parent Elements

schema

Attributes
AttributeDocumentationTypeDefault
name procedure name NMTOKEN
Documentation

redeclared EXPRESS attribute

Content Model

EMPTY

Parent Elements

explicit derived inverse

Attributes
AttributeDocumentationTypeDefault
entity-ref entity containing the old EXPRESS attribute NMTOKEN
old_name old EXPRESS attribute name NMTOKEN
Documentation

WHERE rule

Content Model

description algorithm ( where )+

Parent Elements

schema

Attributes
AttributeDocumentationTypeDefault
name rule name NMTOKEN
appliesto names of entities to which rule applies NMTOKENS
Documentation

EXPRESS schema

Content Model

description ( interface )* ( constant )* ( ( entity | function | procedure | rule | subtype.constraint | type ) )* graphic.element

Parent Elements

express

Attributes
AttributeDocumentationTypeDefault
name schema name NMTOKEN
version schema version NMTOKEN
Documentation

select type

Content Model

graphic.element

Parent Elements

type

Attributes
AttributeDocumentationTypeDefault
extensible whether select type is extensible 'YES' | 'NO' NO
genericentity whether extensible select type is constrained to have only entity instances in its domain 'YES' | 'NO' NO
basedon type which this select type extends NMTOKEN
selectitems select list NMTOKENS
Documentation

subtype constraint

Content Model

description graphic.element

Parent Elements

schema

Attributes
AttributeDocumentationTypeDefault
name subtype constraint name NMTOKEN
entity entity for which the constraint applies NMTOKEN
abstract.supertype whether abstract supertype is declared 'YES' | 'NO' NO
totalover subtypes totally covering the supertype NMTOKENS
super.expression supertype expression text
Documentation

type declaration

Content Model

description ( aggregate )* ( typename | builtintype | enumeration | select ) ( where )* graphic.element

Parent Elements

schema

Attributes
AttributeDocumentationTypeDefault
name type name NMTOKEN
Documentation

uniqueness rule

Content Model

description ( unique.attribute )+

Parent Elements

entity

Attributes
AttributeDocumentationTypeDefault
label uniqueness rule label NMTOKEN
Documentation

EXPRESS attribute in a uniqueness rule

Content Model

EMPTY

Parent Elements

unique

Attributes
AttributeDocumentationTypeDefault
entity-ref name of entity NMTOKEN
attribute name of EXPRESS attribute NMTOKEN
Documentation

domain rule

Content Model

description

Parent Elements

type entity rule

Attributes
AttributeDocumentationTypeDefault
label domain rule label NMTOKEN
expression domain rule expression text