Graphical design component

r14 - 13 May 2010 - 11:44:12 - WalterBerendsohnYou are here: TWiki >  ABCD Web > DesignAbcdExtensions

What are ABCD2 extensions?

ABCD2 covers a lot of concepts. But still there are specific community needs which are not represented in the current schema. In order to add new things to ABCD, it takes some time. For people who really need additional concepts in ABCD extension schemas are the way to go. Once an extension stabilized and proves useful to many people they should become integrated into a new ABCD release in the future.

Extensions are*seperate schemas* with their own*distinct namespace*. ABCD2 defines several extension slots where any other namespace than ABCD2 is allowed. Those slots are:

See also these links for more on extensions in ABCD2:

  • Self:AbcdIntroduction#UnitExtensions
  • Self:AbcdIntroduction#Purpose

Examples of extensions

Guidelines for schema developers

The extension slots in ABCD are of type xsd:any. The extension schema therefore should:
  • have a targetnamespace different from ABCD
  • provide global elements that can be used within the extension slots. Every element that should appear directly under one of the two abcd:extension elements needs to be a global element in the extension schema. If you want to fill the UnitExtension? slot AND the IdentificationExtension? slot, you have to have at least 2 global elements for this.
  • Every concept that you want to make available for mapping must have a simple data type defined (tree leaf element or attribute in the schema).
  • Avoid recursive structures (global elements or complex types calling itself at some point, e.g. Person/Parent/Person/Parent/Person...)in your schema.

Other best practices which are not required but recommended:

  • use CamelCase? for element names
  • dont reinvent concepts that exist in ABCD already

Use the BioCASE? provider software with your new extension schema

To share data on the basis of your new extension schema you first have to create a file used as a template and for mappings. Its called the Concept Mapping File or CMF. There is an online service available that creates CMFiles from existing XML Schemas. But to be able to use this service you will first have to create yet another schema, the ABCD2.06+Extension schema.

Go and get the ABCD2.06 schema and modify it as follows: 1 import your new extension schema 1 add new elements that reference your global extension elements to the ABCD schema inside the extension. For example like this (with efg being the namespace prefix of the EFG extension schema):

<xs:schema targetNamespace="http://www.tdwg.org/schemas/abcd/2.06"
           xmlns="http://www.tdwg.org/schemas/abcd/2.06"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:efg="http://www.synthesys.info/ABCDEFG/1.0">
  <xs:import namespace="http://www.synthesys.info/ABCDEFG/1.0" schemaLocation="EFG.XSD"/>
  ...
  <xs:element name="UnitExtension" minOccurs="0">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="efg:EarthScienceSpecimen" minOccurs="0"/>
        <xs:element ref="efg:RockUnit" minOccurs="0"/>
        <xs:element ref="efg:PalaeontologicalUnit" minOccurs="0"/>
        <xs:element ref="efg:MineralogicalUnit" minOccurs="0"/>
        <xs:element ref="efg:AllocthonousMaterial" minOccurs="0"/>
        <xs:element ref="efg:UnitHostRock" minOccurs="0"/>
        <xs:element ref="efg:Alteration" minOccurs="0"/>
        <xs:element ref="efg:NamedGeologicalFeature" minOccurs="0"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  ...
3. save it, place it somewhere on a webserver to be accessible to the CMF service: http://ww3.bgbm.org/bps2/GenerateCmFiles

Questions?

If you have any more questions please contact Jörg Holetschek, Berlin mailto:j.holetschek@bgbmREMOVE-THIS.org
Edit | Attach | Printable | Backlinks: Web, All Webs | History: r14 < r13 < r12 < r11 < r10 | More topic actions
 
Back to TDWG Homepage TDWG Wiki > ABCD
This site is powered by the TWiki collaboration platform

Valid XHTML 1.0 Transitional
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback