Проверка схемы XML - проверка внутри поля - PullRequest
1 голос
/ 26 марта 2011

Это сценарий / проблема, которую я пытаюсь решить - в последовательности элементов моего XSD у меня есть элемент, скажем, XYZ , который может быть нуль, если один из предыдущих элементов - скажем, ABC - имеет определенное значение - скажем, "Альфа" . Если этот предыдущий элемент - ABC имеет другое значение, то элемент XYZ не должен быть нулевым.

Как лучше всего решить эту проблему?

Я использую C # и SQL Server.

Можно ли определить новые атрибуты в XSD?

1 Ответ

4 голосов
/ 27 марта 2011

Действительно XSD должен быть зафиксирован для управления структурой и форматом элементов и атрибутов. То, что вы пытаетесь сделать, - это реализовать бизнес-правила, которые нельзя проверить с помощью XSD.

Тем не менее, существует платформа для реализации бизнес-правил в XML, это стандарт ISO, называемый Schematron . Schematron в основном использует комбинацию XPath для реализации логики и XSLT для выполнения проверки.

Для этого существует проект .NET, известный как Schematron.NET .

Это может быть интересно, прочитав ' Улучшение проверки XML-документов с помощью Schematron '.

...