< ?xml version="1.0" encoding="ISO-8859-1"? > < !ENTITY % Boolean "And,Or" > < !ENTITY % MultiOperator "AndOperator,OrOperator" > < !ELEMENT XPathSource EMPTY > < !ATTLIST XPathSource value CDATA #REQUIRED > < !ELEMENT XPathFilter EMPTY > < !ATTLIST XPathFilter value CDATA #REQUIRED > < !ELEMENT Constant EMPTY > < !ATTLIST Constant value CDATA #REQUIRED > < !ELEMENT Integer EMPTY > < !ATTLIST Integer value CDATA "0" > < !-- ConsistencyRule -- > < !ELEMENT ConsistencyRuleSet (ConsistencyRule)* > < !ELEMENT ConsistencyRule (Description,SetDefinition*,Forall) > < !ATTLIST ConsistencyRule id ID #REQUIRED > < !ELEMENT Description (#PCDATA) > < !ELEMENT SetDefinition (#PCDATA) > < !ATTLIST SetDefinition id ID #REQUIRED > < !-- Forall -- > < !ELEMENT Forall (%MultiOperator;,SizeEqual,SizeNotEqual) > < !ATTLIST Forall setid IDREF #REQUIRED mode (oneSet|multipleSet) "multipleSet" > < !ELEMENT AndOperator (SizeEqual*,SizeNotEqual*,AndOperator*,OrOperator*) > < !ATTLIST AndOperator cmode (C|CX) "C" imode (I|IX) "" > < !ELEMENT OrOperator (SizeEqual*,SizeNotEqual*,AndOperator*,OrOperator*) > < !ATTLIST OrOperator cmode (C|CX) "C" imode (I|IX) "" > < !ELEMENT SizeEqual (Filter*,Filtered*,Integer*) > < !ATTLIST SizeEqual cmode (C|CX) "C" imode (I|IX) "" > < !ELEMENT SizeNotEqual (Filter*,Filtered*,Integer*) > < !ATTLIST SizeNotEqual cmode (C|CX) "C" imode (I|IX) "" > < !-- Filters -- > < !ELEMENT Filter (%Boolean;,Equal,NotEqual,IsIntersect,Subset) > < !ATTLIST Filter setid IDREF #REQUIRED mode (oneSet|multipleSet) "multipleSet" > < !ELEMENT Filtered (%Boolean;,Equal,NotEqual,IsIntersect,Subset)?> < !ATTLIST Filtered setid IDREF #REQUIRED mode (oneSet|multipleSet) "multipleSet" > < !ELEMENT Equal (XPathSource,XPathFilter,Constant*) > < !ELEMENT NotEqual (XPathSource,XPathFilter,Constant*) > < !ELEMENT IsIntersect (XPathSource,XPathFilter,Constant*) > < !ATTLIST IsIntersect size CDATA #REQUIRED > < !ELEMENT Subset (XPathSource,XPathFilter,Constant*) > < !ATTLIST Subset size CDATA #REQUIRED > < !ELEMENT And (Equal*,NotEqual*,IsIntersect*,Subset*,And*,Or*) > < !ELEMENT Or (Equal*,NotEqual*,IsIntersect*,Subset*,And*,Or*) >