<?xml version="1.0" encoding="UTF-8"?>
<!-- XSD Schema for AModelManager loadable models. @author Daniel Wirtz @date
2011-08-23 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="model">
<xs:complexType>
<xs:sequence>
<xs:element ref="description" />
<!-- Description of the models, none for rbappmit_models -->
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element ref="kermor_model" minOccurs="1" maxOccurs="1" />
<xs:element ref="rb_model" minOccurs="1" maxOccurs="1" />
</xs:choice>
<xs:element name="numDoFfields" type="xs:integer"
minOccurs="1" maxOccurs="1" />
<xs:element ref="geometry" minOccurs="0" maxOccurs="1"></xs:element>
<xs:element ref="visual" minOccurs="0" maxOccurs="1"></xs:element>
<xs:element name="package" type="java_packageidentifier"
minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="machformat" use="required" type="machformat" />
<xs:attribute name="type" use="required" type="modeltype" />
</xs:complexType>
</xs:element>
<xs:element name="description">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="created" type="xs:date" />
<xs:element name="short" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:element name="image" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:element name="infohtml" type="xs:string" minOccurs="0"
maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="parameters">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="param" minOccurs="1" />
</xs:sequence>
<xs:attribute name="number" use="required" type="xs:integer" />
</xs:complexType>
</xs:element>
<xs:element name="param">
<xs:complexType>
<xs:attribute name="label" use="optional" type="xs:string" />
<xs:attribute name="max" use="required" type="xs:double" />
<xs:attribute name="min" use="required" type="xs:double" />
<xs:attribute name="name" use="required" type="xs:string" />
<xs:attribute name="default" use="optional" type="xs:double" />
</xs:complexType>
</xs:element>
<xs:element name="geometry">
<xs:complexType>
<xs:sequence>
<xs:element name="dimension" type="xs:integer" minOccurs="1"
maxOccurs="1" />
<xs:element name="nodes" type="xs:integer" minOccurs="1"
maxOccurs="1" />
<!-- <xs:element name="fieldmapping" type="fm_types" minOccurs="1" maxOccurs="1"/> -->
<xs:element name="hasFaces" type="xs:boolean" default="false"
minOccurs="0" maxOccurs="1" />
<xs:element name="hasDirichletNodes" default="false"
type="xs:boolean" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="visual">
<xs:complexType>
<xs:sequence>
<xs:element name="plotSteps" type="xs:integer" minOccurs="0"
maxOccurs="1" />
<xs:element name="fields" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element ref="field" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="field">
<xs:complexType>
<xs:attribute name="mapping" type="fm_types" default="VERTEX"
use="optional" />
<xs:attribute name="type" type="visualfieldtype" use="required" />
</xs:complexType>
</xs:element>
<!-- KERMOR model part -->
<xs:element name="kermor_model">
<xs:complexType>
<xs:sequence>
<xs:element name="T" type="xs:double" />
<xs:element name="dt" type="xs:double" />
<xs:element name="dim" type="xs:integer" />
<xs:element ref="parameters" minOccurs="0" maxOccurs="1" />
<xs:element ref="corefun" maxOccurs="1" />
<xs:element ref="inputconv" minOccurs="0" maxOccurs="1" />
<xs:element ref="massmatrix" minOccurs="0" maxOccurs="1" />
<xs:element ref="outputconvtype" maxOccurs="1" />
<xs:element ref="initialvaluetype" maxOccurs="1" />
<xs:element name="solvertype" type="xs:string" />
<xs:element name="outputtodof" type="java_classidentifier"
minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="corefun">
<xs:complexType>
<xs:sequence>
<xs:element ref="statekernel" />
<xs:element ref="timekernel" />
<xs:element ref="paramkernel" />
<xs:element ref="coeffclass" />
</xs:sequence>
<xs:attribute name="type" use="required" type="matlab_classidentifier" />
</xs:complexType>
</xs:element>
<xs:element name="coeffclass" type="java_classidentifier" />
<xs:element name="corefuntype" type="matlab_classidentifier" />
<xs:element name="statekernel" type="matlab_classidentifier" />
<xs:element name="timekernel" type="matlab_classidentifier" />
<xs:element name="paramkernel" type="matlab_classidentifier" />
<xs:element name="inputconv">
<xs:complexType>
<xs:sequence>
<xs:element ref="coeffclass" />
</xs:sequence>
<xs:attribute name="type" use="required" type="matlab_classidentifier" />
</xs:complexType>
</xs:element>
<xs:element name="massmatrix">
<xs:complexType>
<xs:sequence>
<xs:element ref="coeffclass" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="type" use="required" type="matlab_classidentifier" />
</xs:complexType>
</xs:element>
<xs:element name="outputconvtype" type="matlab_classidentifier" />
<xs:element name="initialvaluetype" type="matlab_classidentifier" />
<!-- RB model parts -->
<xs:element name="rb_model">
<xs:complexType>
<xs:sequence>
<xs:element name="systype" type="xs:string" />
<xs:element ref="scmtype" />
<xs:element ref="timeinfo" minOccurs="0" maxOccurs="1" />
<xs:element ref="parameters" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="num_basisfcn" use="required" type="xs:integer" />
<xs:attribute name="Qa" use="required" type="xs:integer" />
<xs:attribute name="Qf" use="required" type="xs:integer" />
<xs:attribute name="Nmax" use="required" type="xs:integer" />
</xs:complexType>
</xs:element>
<xs:element name="timeinfo">
<xs:complexType>
<xs:sequence>
<xs:element name="dt" type="xs:double"></xs:element>
<xs:element name="K" type="xs:integer"></xs:element>
<xs:element name="euler_theta" type="xs:double"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="scmtype">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="M" use="optional" type="xs:integer" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- Complex Type Definition Representation Error for type '#AnonType_scmtype'.
When <simpleContent> is used, the base type must be a complexType whose content
type is simple, or, only if restriction is specified, a complex type with
mixed content and emptiable particle, or, only if extension is specified,
a simple type. 'string' satisfies none of these conditions. -->
<!-- custom types -->
<xs:simpleType name="matlab_classidentifier">
<xs:restriction base="xs:string"></xs:restriction>
</xs:simpleType>
<xs:simpleType name="java_classidentifier">
<xs:restriction base="xs:string"></xs:restriction>
</xs:simpleType>
<xs:simpleType name="java_packageidentifier">
<xs:restriction base="xs:string"></xs:restriction>
</xs:simpleType>
<xs:simpleType name="machformat">
<xs:restriction base="xs:string">
<xs:enumeration value="le"></xs:enumeration>
<xs:enumeration value="be"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fm_types">
<xs:restriction base="xs:string">
<xs:enumeration value="VERTEX"></xs:enumeration>
<xs:enumeration value="ELEMENT"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="modeltype">
<xs:restriction base="xs:string">
<xs:enumeration value="rb"></xs:enumeration>
<xs:enumeration value="kermor"></xs:enumeration>
<xs:enumeration value="rbappmit"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="visualfieldtype">
<xs:restriction base="xs:string">
<xs:enumeration value="RealValue"></xs:enumeration>
<xs:enumeration value="ComplexValue"></xs:enumeration>
<xs:enumeration value="Displacement2D"></xs:enumeration>
<xs:enumeration value="Displacement3D"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:schema>