Regelmotor.xsd
XML Schema Definition for Altinn regelfiler.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="AltinnRuleEngine">
<xs:complexType>
<xs:sequence>
<xs:element name="Description" type="xs:string"/>
<xs:element name="Configuration">
<xs:complexType>
<xs:sequence>
<xs:element name="Forms">
<xs:complexType>
<xs:sequence>
<xs:element name="Form" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="dataFormatId" type="xs:integer" use="required"/>
<xs:attribute name="validationEngine" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="AltinnRuleEngine"/>
<xs:enumeration value="InfoPath"/>
<xs:enumeration value="Both"/>
<xs:enumeration value="None"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="calculationEngine" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="AltinnRuleEngine"/>
<xs:enumeration value="InfoPath"/>
<xs:enumeration value="Both"/>
<xs:enumeration value="None"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="default" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Codelists" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Codelist" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="lang" type="Languages" use="required"/>
<xs:attribute name="version" type="xs:integer" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PurgeMissingTransfers" minOccurs="0">
<xs:complexType name="">
<xs:attribute name="value" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Rules">
<xs:complexType>
<xs:sequence>
<xs:element name="Rule" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Source" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="form" type="xs:integer" use="optional"/>
<xs:attribute name="field" type="xs:string" use="optional"/>
<xs:attribute name="addFields" type="xs:string" use="optional"/>
<xs:attribute name="subtractFields" type="xs:string" use="optional"/>
<xs:attribute name="sumRecurringFields" type="xs:boolean" use="optional"/>
<xs:attribute name="multiple" type="xs:boolean" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Target" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="form" type="xs:integer" use="optional"/>
<xs:attribute name="field" type="xs:string" use="optional"/>
<xs:attribute name="index" type="xs:integer" use="optional"/>
<xs:attribute name="value" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Param" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="AlwaysRun"/>
<xs:enumeration value="BaseRate"/>
<xs:enumeration value="CalculationType"/>
<xs:enumeration value="CheckCount"/>
<xs:enumeration value="Deductible"/>
<xs:enumeration value="DoNotIgnoreZeroValue"/>
<xs:enumeration value="IgnoreGUID"/>
<xs:enumeration value="IgnorePrefill"/>
<xs:enumeration value="IndustryTypes"/>
<xs:enumeration value="InsertEmptyIfNotCalculated"/>
<xs:enumeration value="MaxDeduction"/>
<xs:enumeration value="MaxDistance"/>
<xs:enumeration value="MinimumTollAndFerryDeduction"/>
<xs:enumeration value="NormalRate"/>
<xs:enumeration value="OverMaxDistanceRate"/>
<xs:enumeration value="PercentageField"/>
<xs:enumeration value="PercentageTransfer"/>
<xs:enumeration value="RemoveDirtyField"/>
<xs:enumeration value="RemoveFieldIfConditionsFail"/>
<xs:enumeration value="RemoveOnMismatch"/>
<xs:enumeration value="SetNillable"/>
<xs:enumeration value="SignStorageHint"/>
<xs:enumeration value="TransferRecurringFields"/>
<xs:enumeration value="TransferType"/>
<xs:enumeration value="USField"/>
<xs:enumeration value="USField1"/>
<xs:enumeration value="USField2"/>
<xs:enumeration value="UtbytteFeltHS"/>
<xs:enumeration value="UtbytteFeltUS"/>
<xs:enumeration value="ValidationType"/>
<xs:enumeration value="ValueType"/>
<xs:enumeration value="XPath"/>
<xs:enumeration value="xPathsToValidate"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Condition" type="Conditions" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ErrorTextValueFields" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="fields" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="caption" type="Texts" minOccurs="0"/>
<xs:element name="Texts" type="Texts" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="CalculateRF1086"/>
<xs:enumeration value="RemoveFieldElement"/>
<xs:enumeration value="RemoveParentPost"/>
<xs:enumeration value="SetFieldValue"/>
<xs:enumeration value="SimpleValidation"/>
<xs:enumeration value="TransferResult"/>
<xs:enumeration value="TransferValue"/>
<xs:enumeration value="ValidateRF1086"/>
<xs:enumeration value="websa:InternalRF1224Calculations"/>
<xs:enumeration value="websa:TransferFromNO1ToRF1224"/>
<xs:enumeration value="websa:TransferFromRF1084ToRF1030"/>
<xs:enumeration value="websa:TransferFromRF1084ToRF1175"/>
<xs:enumeration value="websa:TransferFromRF1125ToRF1030"/>
<xs:enumeration value="websa:TransferSumFrom0402"/>
<xs:enumeration value="websa:TransferSumToChildcare"/>
<xs:enumeration value="websa:TransferSumToTravelDeduction"/>
<xs:enumeration value="websa:TransferSumToWizard"/>
<xs:enumeration value="websa:ValidatePost337StandardDeductionTempStay"/>
<xs:enumeration value="websa:ValidateRF1219TransferToWizard"/>
<xs:enumeration value="websa:ValidateRF1224BelongsToPost0402"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="description" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="version" type="xs:string" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- Keys -->
<xs:key name="dataFormatId">
<xs:selector xpath="Configuration/Forms/Form"/>
<xs:field xpath="@dataFormatId"/>
</xs:key>
<xs:key name="codelist">
<xs:selector xpath="Configuration/Codelists/Codelist"/>
<xs:field xpath="@name"/>
</xs:key>
<!-- Keyrefs -->
<xs:keyref name="SourceFormRef" refer="dataFormatId">
<xs:selector xpath="Rules/Rule/Source"/>
<xs:field xpath="@form"/>
</xs:keyref>
<xs:keyref name="TargetFormRef" refer="dataFormatId">
<xs:selector xpath="Rules/Rule/Target"/>
<xs:field xpath="@form"/>
</xs:keyref>
<xs:keyref name="ConditionCodelistRef" refer="codelist">
<xs:selector xpath="Rules/Rule/Condition"/>
<xs:field xpath="@codelist"/>
</xs:keyref>
</xs:element>
<xs:simpleType name="Languages">
<xs:restriction base="xs:string">
<xs:enumeration value="1033"/>
<xs:enumeration value="1044"/>
<xs:enumeration value="2068"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Texts">
<xs:sequence>
<xs:element name="Text" maxOccurs="3">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="lang" type="Languages" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Conditions">
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="AnyFieldEquals"/>
<xs:enumeration value="AnyFieldExists"/>
<xs:enumeration value="AnyFieldHasValue"/>
<xs:enumeration value="AnyFieldHasValueIgnoreZero"/>
<xs:enumeration value="AnyFieldIsEmpty"/>
<xs:enumeration value="AnyFieldIsMissing"/>
<xs:enumeration value="AnyFieldIsPositive"/>
<xs:enumeration value="AnyFieldNotEquals"/>
<xs:enumeration value="CodeExistsInCodeList"/>
<xs:enumeration value="CodeNotInCodeList"/>
<xs:enumeration value="ContainsAny"/>
<xs:enumeration value="DoesNotMatchPattern"/>
<xs:enumeration value="Equals"/>
<xs:enumeration value="Exists"/>
<xs:enumeration value="GreaterThan"/>
<xs:enumeration value="HasAnyForm"/>
<xs:enumeration value="HasForm"/>
<xs:enumeration value="HasValue"/>
<xs:enumeration value="HasValueIgnoreZero"/>
<xs:enumeration value="IsEmpty"/>
<xs:enumeration value="IsEmptyWithZeroValue"/>
<xs:enumeration value="IsMissing"/>
<xs:enumeration value="IsNegative"/>
<xs:enumeration value="IsNonValidEmail"/>
<xs:enumeration value="IsNonValidOrgNr"/>
<xs:enumeration value="IsNonValidSSN"/>
<xs:enumeration value="IsPositive"/>
<xs:enumeration value="IsPositiveIncludingZero"/>
<xs:enumeration value="IsPrefilled"/>
<xs:enumeration value="IsValidOrgNr"/>
<xs:enumeration value="IsValidSSN"/>
<xs:enumeration value="LessThan"/>
<xs:enumeration value="MatchPattern"/>
<xs:enumeration value="MissingForm"/>
<xs:enumeration value="NoneFieldHasValue"/>
<xs:enumeration value="NotEqualAcrossMultipleForms"/>
<xs:enumeration value="NotEquals"/>
<xs:enumeration value="NotExists"/>
<xs:enumeration value="NotPrefilled"/>
<xs:enumeration value="SumEquals"/>
<xs:enumeration value="SumNotEquals"/>
<xs:enumeration value="SumNotEqualsWithRange"/>
<xs:enumeration value="ValueFoundMoreThanOnceInFields"/>
<xs:enumeration value="ValueNotInCodeList"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="check" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
<xs:attribute name="valuesourceform" type="xs:string"/>
<xs:attribute name="valuefieldindex" type="xs:integer"/>
<xs:attribute name="codelist" type="xs:string"/>
<xs:attribute name="form" type="xs:string"/>
<xs:attribute name="fieldindex" type="xs:integer"/>
<xs:attribute name="donotignorezero" type="xs:boolean"/>
</xs:complexType>
</xs:schema>