| 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: |
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:
"BLIS-XML Methodology for Transforming EXPRESS data Models to XDR", November 2000.
"ifcXML language binding of EXPRESS", December 2001.
The draft version of the document "ISO/CD 10303-28 Product data representation and exchange: Implementation methods: XML Schema governed representation of EXPRESS schema governed data", June 2003, currently under development.
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:
- Versioning
- URI that link the data to anything outside the context of the model server (other web services, documentation, calculation scripts, other databases, etc ...)
- External references for Partial Model exchanges
- Ownership
- Date of creation
- Identification
- Description
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>
- contained="false": Any reference to entity element has to be done using the id and ref mecanism. No embedded child elements to represent an entity instance.
- inheritance="true": the XML schema hierarchy of an element must respect the EXPRESS hierarchy of ENTITY definition.
- sparse="true": Any items of aggregates are represented as child elements of the aggregate. No lists are used, even for simple type items like REAL, NUMBER, INTEGER, BOOLEAN or LOGICAL.
- inverse keep="true": INVERSE attributes are represented as if they were explicit attributes. In general they are references to other entity elements.
Copyright © 2002-2003, BLIS-Project [BLIS Registered Organization].