IMPORTANT NOTICE
CML is being developed in close conjunction with the XML-working_group
of the W3C (Feb 1997). TecML/CML is intended to be completely XML-compliant
but there will be a few small differences as both languages develop.
Therefore you should be prepared to make changes if required, especially
if the XML project provides something that TecML/CML does not. The following
Elements may become obsolete:
- RELATION and Internal addressing scheme.
It is highly likely that TecML will adopt the
TEI addressing scheme (or whatever minor variant emerges from XML. However
it should be straightforward to reprocess any TecML documents with XADDR
elements. (Whether XML will use a GI or attributes for addressing is unclear).
RELATION: Link between 2 or more information components. This will be
managed by the XML Multilink tool
The following attributes may become obsolete:
- REL, REV and METHODS. I never understood these, no one uses them and
they will disappear (they will remain in the HTML subset for compatibility,
but will not be processed).
- HREF and NAME on non-HTML elements. HREF was never used and will disappear.NAME is used, but may be superseded by XML-link.
Other effects of XML
CML documents may not be strictly compatible with XML until it is clear what
the minimum header is. My software (JUMBO) ignores PIs, but others
may not. (CML does not require PIs at present). If in doubt, convert XML/CML
documents to ESIS which JUMBO can read
CML was developed as a valid SGML application and so it is legitimate to use
entities, marked sections and so on. If in doubt, use sgmls to produce an
ESIS stream and read that into JUMBO (which doesn't recognise these).
XML is also developing an SGMLOpen Catalog approach. CML will embrace this
and it is likely that chemical components can be catalog'ed. JUMBO does
not (yet) support catalogs, but will use NXP to do so when that is ready.
DTDs required for CML
CML (Chemical Markup Language) is described by the following DTDs:
CML.DTD
This is a minimal DTD which contains the three DTDs listed below.
It serves to:
- Define the overal structure of a CML document (which can be very
flexible).
- Define a few parameter entities (since this is the most convenient
place).
- Give some overall DTD documentation.
The DTD can be viewed as:
HTML20.DTD
This is the draft standard for HTML (V2.0). I am very grateful to Dan
Connolly (one of the authors) for permission to use this.
I shall include a pointer to the documentation, but it's
assumed that most people who want to write CML will know the basics of
HTML. (There are some slight changes - OMITTAG is not allowed in keeping
with XML and FORMS, etc are IGNOREd).
The DTD can be viewed as:
TecML.DTD
Technical MarkupLanguage is an application-independent DTD which can
describe a large variety of technical information. It includes HTML 2.0
(within the XHTML element). It can 'inherit' some elements and attributes
from other DTDs which use it.
The DTD can be viewed as:
MOL.DTD
MOL.DTD is a DTD for describing single molecules and related information.
It includes various elements from TecML and can use its containers (e.g.
X.LIST).
The DTD can be viewed as:
Quick Reference