0
<ROOTNODE>
<Blocks>
<Block>
<Ref/>
<BlockDates Start="2015-10-20" End="2015-10-20" />
<Types>
<Type TypeCode="SGL" />
</Types>
</Block>
<Block>
<Ref/>
<BlockDates Start="2015-10-19" End="2015-10-18"/>
<Types>
<Type TypeCode="SGL" />
</Types>
</Block>
</Blocks>
</ROOTNODE>
Мне нужно сообщить об ошибке, если дата @Start меньше предыдущей даты @End. Но только если @TypeCode совпадает с предыдущим @TypeCode. Вышеизложенное должно генерировать ошибку. Ниже я попытался. Любая помощь приветствуется!SchemaTron проверяет предыдущие атрибуты
<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:pattern>
<sch:rule context="BlockDates|Type">
<sch:report test="translate(@Start, '-', '') <= translate(preceding::*/@End, '-', '') and @TypeCode = preceding::*/@TypeCode"> Error start date is before end date and type codes match. </sch:report>
</sch:rule> </sch:pattern>
</sch:schema>
Мартин, это работает отлично. -Спасибо! – user1128792