Page tree

The location of service configuration file is provided by the servicesConfigURL User Setting, and defaults to servicesconfig.xml in the users's ChemAxon folder - located in user home as .chemaxon or ChemAxon, depending on operating system.

The file should be valid for the following XSD schema:

	<?xml version="1.0" encoding="utf-8"?>
	<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

	<!--  definition of attributes -->
	<xs:attribute name="alias"   type="xs:string" />
	<xs:attribute name="name"   type="xs:string" />
	<xs:attribute name="class"  type="xs:string" />
	<xs:attribute name="url"    type="xs:string" />
	<xs:attribute name="method" type="xs:string" />
	<xs:attribute name="descriptor" type="xs:string" default="chemaxon.marvin.services.descriptors.LocalServiceDescriptor"/>
	<xs:attribute name="value" type="xs:string" />
	<xs:attribute name="expression" type="xs:string" />

	<!-- definition of complex types -->
	<xs:complexType name="evaluationType">
	  <xs:simpleContent>
	    <xs:extension base="xs:string">
	      <xs:attribute ref="class" use="optional" default="chemaxon.marvin.services.ChemicalTermsArgument" />
	      <xs:attribute ref="expression" use="optional" />
	    </xs:extension>
	  </xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="argumentType">
	  <xs:all>
	    <xs:element name="Evaluate" type="evaluationType" minOccurs="0" maxOccurs="1" />
	  </xs:all>
	  <xs:attribute name="class" use="optional" default="java.lang.String">
	    <xs:simpleType>
	      <xs:restriction base="xs:string">
	        <xs:enumeration value="java.lang.Integer" />
	        <xs:enumeration value="java.lang.Float" />
	        <xs:enumeration value="java.lang.Double" />
	        <xs:enumeration value="java.lang.String" />
	        <xs:enumeration value="java.lang.Long" />
	        <xs:enumeration value="java.lang.Boolean" />
	        <xs:enumeration value="chemaxon.struc.Molecule" />
	        <xs:enumeration value="chemaxon.struc.MDocument" />
	      </xs:restriction>
	    </xs:simpleType>
	  </xs:attribute>
	  <xs:attribute ref="value" use="optional" />
	  <xs:attribute ref="name" use="optional" default="Unnamed" />
	  <xs:attribute ref="alias" use="optional" />	
	</xs:complexType>

	<xs:complexType name="serviceType">
	  <xs:all>
	    <xs:element name="Arguments" minOccurs="0">
	      <xs:complexType>
	        <xs:sequence>
	          <xs:element name="Argument" type="argumentType" maxOccurs="unbounded" />
	        </xs:sequence>
	      </xs:complexType>
	    </xs:element>
	  </xs:all>
	  <xs:attribute ref="name" use="required" />
	  <xs:attribute ref="url" use="required" />
	  <xs:attribute ref="method" use="required" />
	  <xs:attribute ref="class" use="optional" />
	  <xs:attribute ref="descriptor" use="optional" />
	  <xs:attribute ref="alias" use="optional" />
	  <xs:anyAttribute processContents="skip" />
	</xs:complexType>

	<xs:element name="Services">
	  <xs:complexType>
	    <xs:sequence>
	      <xs:element name="Service" type="serviceType" minOccurs="0" maxOccurs="unbounded" />
	    </xs:sequence>
	  </xs:complexType>
	</xs:element>

	</xs:schema>