blob: 9f00e03670caf494fb6adab08787064f6eedae24 [file] [log] [blame]
<?xml version="1.0"?>
<xsd:schema targetNamespace="http://schemas.niku.com/2002/dvml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.niku.com/2002/dvml" elementFormDefault="qualified">
<xsd:annotation>
<xsd:documentation>
This schema defines a set of complex validation rules against a single attribute within an data XML file or several attributes such as attributes
containing begin and end dates.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="operatorType">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The operator to check the count of the fields against
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="equals"/>
<xsd:enumeration value="notEquals"/>
<xsd:enumeration value="greaterThan"/>
<xsd:enumeration value="lessThan"/>
<xsd:enumeration value="greaterEquals"/>
<xsd:enumeration value="lessEquals"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="typeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="integer"/>
<xsd:enumeration value="double"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="dataValidation">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="singleField" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation/>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="checkRequired" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
The input field specified must be present and not null.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkSoftRequired" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
The input field specified must be not-null if present. This is different than checkRequired in that if the attribute wasn't submitted at all it's not raised as an exception. This will be used in the case where there are multple views of an object and the valdation is generated for the entire object. In this case the absense of the attribute just means that it wasn't present on the age in the first place.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkDateFormat" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.dateNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="pmMinDateErrorCode" type="xsd:string" use="optional" default="validation.finishDateLessThanMinimum">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="minDateErrorCode" type="xsd:string" use="optional" default="validation.startDateLessThanMinimum">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="pmMaxDateErrorCode" type="xsd:string" use="optional" default="validation.finishDateExceedsMaximum">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="maxDateErrorCode" type="xsd:string" use="optional" default="validation.startDateExceedsMaximum">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="pm" type="xsd:boolean" use="optional" default="false">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkTimeFormat" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.timeNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkDateTimeFormat" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.dateTimeNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkNumberFormat" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks that the field is a number
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="typeType" use="optional" default="double">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="decimalPlaces" type="xsd:integer">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkCurrencyFormat" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks that the field is a number
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.currencyNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="typeType" use="optional" default="double">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="decimalPlaces" type="xsd:integer">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkNumberRange" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks a number is within the (hard coded) range specified.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="start" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="end" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="typeType" use="optional" default="double">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Valid types are integer or double (default)
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="decimalPlaces" type="xsd:integer">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="rangeErrorCode" type="xsd:string" use="optional" default="validation.numberNotWithinRange">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkPercentRange" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks a number is within the (hard coded) range specified.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="start" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="end" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="typeType" use="optional" default="double">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Valid types are int or double (default)
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="rangeErrorCode" type="xsd:string" use="optional" default="validation.numberNotWithinRange">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkCurrencyRange" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks a number is within the (hard coded) range specified.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="start" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="end" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="rangeErrorCode" type="xsd:string" use="optional" default="validation.numberNotWithinRange">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="decimalPlaces" type="xsd:integer">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkDateValueRange" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks a date is within the (hard coded) range specified. Not to be confused with the multi-field checkDateRange.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="start" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="end" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="minute" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="hour" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="rangeErrorCode" type="xsd:string" use="optional" default="validation.numberNotWithinRange">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="rangeFormatErrorCode" type="xsd:string" use="optional" default="validation.rangeFormatNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkPositive" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks if a number is positive.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="includeZero" type="xsd:boolean" use="optional" default="false">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Allows you to specify whether to include 0 as a positive value for greater than or equal to 0 comparisions.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="typeType" use="optional" default="double">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Valid types are int or double (default)
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="positiveErrorCode" type="xsd:string" use="optional" default="validation.numberNotGreaterThan">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkNegative" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks if a number is negative.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="includeZero" type="xsd:boolean" use="optional" default="false">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Allows you to specify whether to include 0 as a positive value for less than or equal to 0 comparisions.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="typeType" use="optional" default="double">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Valid types are int or double (default)
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="negativeErrorCode" type="xsd:string" use="optional" default="validation.numberNotGreaterThan">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkGreaterThan" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks a number is greater than the (hard coded) compare to value specified.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="compareTo" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="typeType" use="optional" default="double">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Valid types are int or double (default)
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="greaterThanErrorCode" type="xsd:string" use="optional" default="validation.numberNotGreaterThan">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkLessThan" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks a number is less than the (hard coded) compare to value specified.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="compareTo" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="typeType" use="optional" default="double">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Valid types are int or double (default)
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="lessThanErrorCode" type="xsd:string" use="optional" default="validation.numberNotLessThan">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkPercentFormat" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks the field is a percent format
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="decimalPlaces" type="xsd:integer">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="typeType" use="optional" default="double">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.percentNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkDataSize" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks the size of the data in a field
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="errorInfo" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="param" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="key" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="value" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="bundle" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="minSize" type="xsd:integer" use="optional" default="0">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="maxSize" type="xsd:integer" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="minSizeErrorCode" type="xsd:string" use="optional" default="validation.dataNotMinSize">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="maxSizeErrorCode" type="xsd:string" use="optional" default="validation.dataNotMaxSize">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkNotAllowed" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
The input field specified must NOT be present or be null. If a compareValue is specified. This will
check to make sure the value isn't the same as the one specified.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.notAllowed">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="compareValue" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation xml:lang="en">
If the compareValue is specified, then the value is not allowed to match the compareValue.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkRegExp" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
The input field specified must match a Reg Exp format.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.regexp">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="expression" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The regular expression that is being used to compare the value to.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="matches" type="xsd:boolean" use="optional" default="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Flag to determine if you want an error if there is a match (matches=true),
or if you want an error if thre is NOT a match (matches=false).
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="case" use="optional" default="mixed">
<xsd:annotation>
<xsd:documentation xml:lang="en">
What case to do the match in, can be set to lower, upper or mixed (ie don't change).
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="lower"/>
<xsd:enumeration value="upper"/>
<xsd:enumeration value="mixed"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkXPathExp" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
The input field specified will be flagged as error if the XPath does not evaluate to true.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="expression" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The XPath expression that needs to evaluate to true.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkAlphaNumeric" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Checks for alphanumericness
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.alphanumeric">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkDateTime" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks a datetime ODF attribute is correct for date, hour and minute.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="minute" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The attribute in the input document containing the minute value
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="hour" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The attribute in the input document containing the hour value
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.numberNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to the attribute to be validated
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="multiField" minOccurs="0">
<xsd:annotation>
<xsd:documentation/>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="checkRequiredOr" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks that at least one of the values is present
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requiredField" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="field" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to the field
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.atLeastOneRequiredField">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="exclusiveErrorCode" type="xsd:string" use="optional" default="validation.onlyOneRequiredField">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="exclusive" type="xsd:boolean" use="optional" default="false">
<xsd:annotation>
<xsd:documentation xml:lang="en">
If exclusive is set to true then only one can be filled in. Otherwise both is okay.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkRequiredAllOrNone" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks that all fields are present. Or that none of the fields are present.
This is valuable if you have an editable grid and you want to make sure people fill out a complete
row of the grid, but they can leave other rows empty.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requiredField" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="field" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to the field
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.allOrNoneRequiredField">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkUniqueValue" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks that the two values specified are unique
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="first" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to first value
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="second" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to second value
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.valueNotUnique">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkNotSameValue" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks that the two values specified are the same. Used to confirm values.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="first" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to first value
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="second" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to second value
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.valueNotSame">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkCount" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks that there is a certain number of elements passed.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="field" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to field value
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="count" type="xsd:int" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The count that is being checked against
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="operator" type="operatorType" use="optional" default="equals"/>
<xsd:attribute name="errorCode" type="xsd:string" use="optional" default="validation.invalidCount">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkDateRange" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The dates are checked that the start is less than the end, unless the cannotBeEqual
is set to true in which case they can be equal.
The fields need to have been checked as valid dates prior to this
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="start" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Xpath to start value for range check
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="end" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to end value for range check
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="cannotEqual" type="xsd:boolean" use="optional" default="false">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Set if the two dates cannot be equal
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="cannotEqualErrorCode" type="xsd:string" use="optional" default="validation.datesCannotBeEqual">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="notInRangeErrorCode" type="xsd:string" use="optional" default="validation.datesNotInRange">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.dateNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkShift" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">
The times are checked that the start is less than the end, unless the cannotBeEqual
is set to false in which case they can be equal.
The fields need to have been checked as valid times prior to this.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="start" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Xpath to start value for range check
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="startAMPM" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Xpath to start AM/PM indicator for range check
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="end" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to end value for range check
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="endAMPM" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
XPath to end AM/PM indicator for range check
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="cannotEqual" type="xsd:boolean" use="optional" default="false">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Set if the two times cannot be equal
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="cannotEqualErrorCode" type="xsd:string" use="optional" default="validation.datesCannotBeEqual">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="notInRangeErrorCode" type="xsd:string" use="optional" default="validation.datesNotInRange">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="formatErrorCode" type="xsd:string" use="optional" default="validation.dateNotCorrectFormat">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="checkCalendarRequest" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Checks that a resource calendar edit request contains the required parameters.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="calendarErrorCode" type="xsd:string" use="optional" default="validation.calendarRequestMissingParameters">
<xsd:annotation>
<xsd:documentation xml:lang="en"/>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>