Для чего это стоит, это был мой опыт ...
У меня были моменты, когда мне хотелось бы, чтобы схемы могли делать больше по принципу проверки бизнес-правил. Однако, по моему опыту, существует схема для определения контракта данных (формат, типы и т. Д.) ... НЕ для обеспечения соблюдения бизнес-правил. Попытка сделать что-то большее, чем это, наталкивается на всевозможные проблемы, и, возможно, именно поэтому Schematron, похоже, утратил свою популярность (возможно, ошибочное предположение, что я не могу сделать резервную копию).
Чтобы обойти это, обычно можно сделать два прохода:
- Проверка структуры / типов данных xml и т. Д. С использованием проверки схемы.
- Применение проверки бизнес-правил к xml (в обычном коде c #).
Я понимаю, что если вы хотите использовать комплексный подход к проверке, но попытка использовать схему для этого вызывает больше головных болей в долгосрочной перспективе. В конце концов вы получите более точный контроль над проверкой бизнес-правил, изолировавшись от кода.