<xs:complexType name="RulesetType">
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="validate" type="ValidateType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="calculate" type="CalculateType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="bind" type="BindType" minOccurs="0" maxOccurs="unbounded"/>
<!-- TODO: implementation not complete yet
<xs:element name="id" type="IdType" minOccurs="0" maxOccurs="unbounded" />
-->
<xs:element name="ruleset" type="RulesetType" minOccurs="0" maxOccurs="unbounded"/>
<!-- TODO: not implemented yet
<xs:element name="applyRuleset" type="ApplyRulesetType" minOccurs="0" maxOccurs="unbounded" />
-->
</xs:choice>
<!-- TODO: context and name should be mutually exclusive. -->
<xs:attribute name="id" type="xs:ID" use="optional"/>
<!-- TODO: not implemented yet
<xs:attribute name="name" type="xs:QName" use="optional" />
-->
<xs:attribute name="context" type="xs:string" use="required"/>
<xs:attribute name="minOccurs" type="xr:XPathExpression" use="optional"/>
<xs:attribute name="maxOccurs" type="xr:XPathExpression" use="optional"/>
<!-- TODO: implement static minOccurs and maxOccurs
<xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="1" />
<xs:attribute name="maxOccurs" type="xr:allNNI" use="optional" default="unbounded" />
-->
<xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/>
<xs:attribute name="errorMessage" type="xr:StringWithEmbededXPath" use="optional"/>
<xs:attribute name="errorMessage.minOccurs" type="xr:StringWithEmbededXPath" use="optional"/>
<xs:attribute name="errorMessage.maxOccurs" type="xr:StringWithEmbededXPath" use="optional"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
<!-- TODO: Implement these
<xs:attribute name="priority" type="xs:positiveInteger" use="optional" default="0" />
<xs:attribute name="applyOnBind" type="xs:boolean" use="optional" default="true" />
<xs:attribute name="applyOnChange" type="xs:boolean" use="optional" default="true" />
<xs:attribute name="applyOnUnbind" type="xs:boolean" use="optional" default="false" />
-->
</xs:complexType> |