misc/algorithms.xsd (140 lines of code) (raw):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="algorithms" type="algorithmsType"/>
<xs:complexType name="paramType" mixed="true">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element type="xs:string" name="exporter"/>
<xs:element type="xs:string" name="inputName"/>
<xs:element type="xs:string" name="outputName"/>
<xs:element type="xs:string" name="value"/>
<xs:element type="xs:string" name="required"/>
<xs:element type="xs:decimal" name="min"/>
<xs:element type="xs:decimal" name="max"/>
<xs:element type="xs:string" name="exported"/>
<xs:element type="xs:string" name="docs"/>
<xs:element type="xs:string" name="alias"/>
</xs:choice>
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute type="xs:string" name="required" use="optional"/>
</xs:complexType>
<xs:complexType name="portType">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="ioType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="INPUT"/>
<xs:enumeration value="OUTPUT"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element type="xs:int" name="sequence"/>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="DATA"/>
<xs:enumeration value="MODEL"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element type="schemaType" name="schema"/>
<xs:element type="xs:string" name="required"/>
<xs:element type="xs:string" name="docs"/>
<xs:element type="modelType" name="model"/>
</xs:choice>
<xs:attribute type="xs:string" name="name" use="optional"/>
</xs:complexType>
<xs:complexType name="algorithmType">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="reloadFields">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="baseClass">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="BaseProcessAlgorithm"/>
<xs:enumeration value="BaseMetricsAlgorithm"/>
<xs:enumeration value="BaseTrainingAlgorithm"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element type="xs:string" name="docs"/>
<xs:element type="paramsType" name="params"/>
<xs:element type="portsType" name="ports"/>
<xs:element type="metasType" name="metas"/>
<xs:element name="fieldChangable">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element type="xs:string" name="enabled"/>
<xs:element type="xs:string" name="exportFunction"/>
<xs:element type="xs:string" name="public"/>
</xs:choice>
<xs:attribute type="xs:string" name="codeName" use="optional"/>
</xs:complexType>
<xs:complexType name="portsType">
<xs:sequence>
<xs:element type="portType" name="port" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="metasType">
<xs:sequence>
<xs:element type="metaType" name="meta" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="schemaType" mixed="true">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element type="xs:string" name="copyInput"/>
<xs:element type="xs:string" name="dynamic"/>
<xs:element type="xs:string" name="schema"/>
<xs:element type="xs:string" name="directCopy" minOccurs="0"/>
</xs:choice>
<xs:attribute type="xs:string" name="name" use="optional"/>
</xs:complexType>
<xs:complexType name="algorithmsType">
<xs:sequence>
<xs:element type="algorithmType" name="algorithm" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="metaType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute type="xs:string" name="value" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="modelType">
<xs:sequence>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="PmmlModel"/>
<xs:enumeration value="TablesModel"/>
<xs:enumeration value="TablesRecommendModel"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element type="xs:string" name="copyParams" minOccurs="0"/>
<xs:element type="schemasType" name="schemas"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="schemasType">
<xs:sequence>
<xs:element type="schemaType" name="schema" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="paramsType">
<xs:sequence>
<xs:element type="paramType" name="param" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>