XML based data transfer format
Authors:
Patrick Houbaux (Eurostep)
Tero Hemio (Eurostep)
Reference:
SABLE-XMLFOR
Status:
Initial proposal (23rd June, 2003)
- Last update: 24th June, 2003
Reviewers:  
Legend:
: an idea, a proposal, etc ...
: not sure about that, what do you think?

Introduction

The format to be used for the SABLE data transfer between model servers and client applications will be XML based.
Different XML schema are available within the international community for representing product data related information.
The purpose of this document is to propose the XML format that SABLE is going to use. The aim is not to reinvent the wheel but to take advantage of the work already done within TC184/SC4/WG11 from STEP, IAI and BLIS community for defining an XML format representing EXPRESS based data.

In the first part of this document, we will try analyze what kind of requirements the XML format needs to satisfy in the context of the SABLE project. The second part will enumerates the available XML language bindings to EXPRESS and finally a summary report is made to advice IAI's body in the definition of the next version of the IfcXML format to be used in the context of exchange of information over internet and through model servers.

It is assumed that the reader of this document has the knowledge of the content of following documents:

Functionality

In general, the functionality needed for SABLE concerning the exchange format are as defined in the "ifcXML language binding of EXPRESS", but the following has to be taken into account.

Meta Data Information

In the context of exchanges through model servers, the data model used for transferring information about a product should support the following functionality:

Because a model server might have the possibility to store data according to different EXPRESS schema, these functionality must be independant from the schema for which the data has been produced. Thus, in the context of SABLE, this set of "additional" information will be called Meta Data Information.

Meta Data Information has to be available at the instance, model and project level. (cf definition of these concepts here).

Unfortunately, we cannot rely on the fact that any EXPRESS schema (including IFC) supports this kind of "Meta Data Information" so an automatic generation of the resulting XML schema corresponding to an EXPRESS schema will have to add the support for Meta Data Information.

Automatic Generation of the XML schema

The XML schema used for SABLE needs to be automatically generated from an EXPRESS schema definition.
The work done for the definition of the XML binding of the EXPRESS language by TC184/SC4/WG11 in the ISO 10303-28 edition 2 is aknowledged here and will be used as a reference for the purpose of this document. The ISO 10303-28 defined how the EXPRESS data and constructed type are mapped to XML.

Partial Model support / External Referencing

One of the main concern when we talk about exchanging data using model servers and especially over internet is the performance of the transmission.
For that purpose, extraction of partial model must be possible. The format in which partial model information is communicated must not lose the reference to the data not part of the partial model.
The minimum level of granularity for a partial exchange being the object instance, all references to other object instances via attributes has to be transformed in "External References".

Identification

Since any object instance may be referenced by another object instance, the format in which the data is communicated have to provide a way to uniquely identify objects in different model servers, independently from the EXPRESS schema in which the data represent the instances of.
The ID attribute of an instance has to contain an identification of the model server in which the data is stored and a unique identificator within this model server. So it has to be a valid URI.

example: ID = http://www.blis-project.org/SABLEServer?objectID=10002

So far no decision has been taken concerning the format of the ID.

Ownership / Access Rights

One of the main additional value of exchange using model servers against traditional file based exchange is the possibility to limit the access to the data according to the role of a person has in a project.
Since, we can't rely on the support of this features in any EXPRESS schema, this functionality needs to be added to the XML format that will be used for SABLE.

Versionning

When exchanging data via model servers, versionning is becoming possible since the model servers can keep track of the changes done in a model. Since we can't rely again on the support of this features in any EXPRESS schema, this functionality needs to be added to the XML format SABLE will be using.

Available schemata

Many international organizations have already developed XML language bindings of EXPRESS. In the context of the building industry, the BLIS project has proposed in 2000, a methodology for transforming EXPRESS based data into XDR called BLIS-XML. This methodology was used as the basic for representing IFC Release 2.0 based data.

IAI proposed in 2001, an XML language binding of EXPRESS for representing IFC2x based data into XML: ifcXML. TC184/SC4/WG11 is currently working on a proposal for an ISO standard for XML language binding of XML: ISO 10303-part 28 edition 2, still in development but should be soon available.

IAI is currently working on a new version of ifcXML that should be based on the ISO 10303-part 28 edition 2 binding.

Since it does not make sense, in the context of SABLE, to define from scratch yet another XML binding of EXPRESS, SABLE will use the results of the work currently being performed within IAI.

For information, the reader could refer to a tentative comparison of these different XML format done within SABLE.

During the development of the new version of ifcXML, the SABLE project will provide inputs according to the previously enumerated functionality.

Inputs for IAI

The objective of this section is not to rewrite the content of the ISO 10303-part28 edition 2 but to address some issues that need to be taken into account in the definition of the new version of ifcXML for Model Server based exchange.

Support for Meta Data information

In ISO 10303-part28, the XML base type for EXPRESS entity data types is represented as:

<xs:complexType name = "entity" abstract="true">
   <xs:attribute name = "id" type = "xs:ID" use = "optional"/>
   <xs:attribute name = "ref" type = "xs:IDREF" use = "optional"/>
   <xs:attributeGroup ref="ex:arrayMemberAttributes"/>
</xs:complexType>

To enable support of meta data information we propose to add the following to XML base type for EXPRESS entity data type:

<xs:complexType name="entity" abstract="true">
   <xs:attribute name="id" type="xs:ID" use="optional"/>
   <xs:attribute name="ref" type="xs:IDREF" use="optional"/>
   <xs:attributeGroup ref="ex:arrayMemberAttributes"/>
   <xs:attributeGroup ref="ex:metaDataAttributes"/>
   <xs:attributeGroup ref="ex:references"/>
</xs:complexType>

<xs:attributeGroup name="metaDataAttributes">
   <xs:attribute name="owner" type="xs:string" use="optional"/>
   <xs:attribute name="creationDate" type="xs:string" use="optional"/>
   <xs:attribute name="version" type="xs:string" use="optional"/>
   <xs:attribute name="description" type="xs:string" use="optional"/>
   
...
</xs:attributeGroup>


<xs:attributeGroup name="references">
   <xs:attribute name="documentationLink" type="xs:anyURI" use="optional"/>
   <xs:attribute name="databaseLink" type="xs:anyURI" use="optional"/>
   ...
</xs:attributeGroup>

Configuration directives

ISO 10303-part28 provides the possibility to represent EXPRESS Attributes and Data types according to "options" defined in the configuration directives of the corresponding XML schema.

In the context of SABLE a choice has to be made to allow only one possibility for each EXPRESS data type XML binding.

The proposal for these configuration directives is as follow:

<configuration id="SABLE_Conf (or ifcXMLOptions)">
   <option contained="false"/> <!-- Allow only referencing with id and ref, no contained element for representing reference to other entity-->
   <option inheritance="true"/> <!-- XML schema inheritance is used -->
   <option sparse="true"/> <!-- Aggregates are never represented as a list, always child element for each aggregate items -->
   <inverse keep="true"/> <!-- Represents INVERSE attributes as EXPLICIT attributes in the XML schema -->
</configuration>


Copyright © 2002-2003, BLIS-Project [BLIS Registered Organization].