JSpecView was developed as a viewer for JCAMP-DX files and
released via
under the GNU
Lesser General Public License.
It was then extended to cover XML files such as AnIML and CML.
The essential features though remain, in that the input data needs to
contain a spectrum that can be displayed either as a continuous
XY plot or as a set of peaks. Any output document will again
contain a spectrum or peak table. Since JSpecView has no
molecular graphics capability the validation related to anything
other than the spectrum portion of a CML document is essentially
ignored!
This document gives some guidelines for reading and writing XML files with JSpecView
A CML file as produced by JSpecView follows these rules:
1) The root element will look like the following:
<cml xmlns="http://www.xml-cml.org/schema" xsi:schemaLocation="http://www.xml-cml.org/schema ../../schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:siUnits="http://www.xml-cml.org/units/siUnits" xmlns:units="http://www.xml-cml.org/units/units" xmlns:jspecview="http://jspecview.sf.net/convention.html" xmlns:jcamp="http://www.iupac.org/jcamp/dict" xmlns:jcampUnits="http://www.iupac.org/jcamp/dict/units" xmlns:cml="http://www.xml-cml.org/dict/cmlDict"> <spectrum id="$ident" title="$title" convention="JSpecView" type="$specinits">
2) All attribute namespaces refer to dictionaries in the dict10 module of the CML subversion repository on sourceforge (sf.net) except the JCAMP-DX namespace that is on the IUPAC site.
3) The spectrum type will be identified by a set of initials such as IR, NMR, EMR, GC, UV/Vis etc.
4) A metadata list will define the origin and owner if defined in the original file that is being exported.
<metadataList> <metadata name="jcamp:origin" content="$origin"/> <metadata name="jcamp:owner" content="$owner"/> </metadataList>
5) as with JCAMP-DX, all NMR spectra will be exported in Hz although peak lists may be in ppm
6) A parameter list will be used to store information such as the NMR field strength and Nucleus.
<parameterList> <parameter dictRef="jcamp:SpectrometerDataSystem" title="SpectrometerDataSystem">$model</parameter> <parameter dictRef="jcamp:OBSERVEFREQUENCY" title=".OBSERVEFREQUENCY"> <scalar units="jcampUnits:hz">$ObFreq</scalar> </parameter> <parameter dictRef="jcamp:OBSERVENUCLEUS" title=".OBSERVENUCLEUS">$ObNucleus</parameter> </parameterList>and for FTIR, things like the resolution.
<parameter dictRef="jcamp:resolution" title="resolution"> <scalar units="jcampUnits:$xUnits">$resolution</scalar> </parameter>
7) All fixed increment/decrement continuous spectra will be given with the first, last and number of xValues.
<xaxis> <array units="jcampUnits:$xUnits" start="$firstX" end="$lastX" size="$npoints" dataType="xsd:double" /> x values ...... </array> </xaxis>
8) All peak tables will be exported as follows:
<peakList size="$npoints" > <peak id="$velocityCount" xUnits="jcampUnits:$xUnits" xValue="X" yUnits="jcampUnits:$yUnits" yValue="Y"> </peak> </peakList>
9) In addition to the "title" given in the spectrum element, the sample may be identified as follows:
<sample> <molecule> <formula inline="$molform"/> <name convention="jcamp:casregistryno">$CASrn</name> </molecule> </sample>
An AnIML file as produced by JSpecView follows these rules:
1) The root element will look like the following:
<?xml version="1.0" encoding="UTF-8"?> <AnIML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xsi:noNamespaceSchemaLocation="http://animl.sourceforge.net/schema/animl-core.xsd" version="1.0">etc.
Copyright © 2006 by Robert John Lancashire, all rights reserved.
Created and maintained by Prof. Robert J. Lancashire,