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