Решение для семантического контроля XML-документа - PullRequest
1 голос
/ 10 февраля 2010

Например,

XML-документ:

<some_document>
 <elements>
  <element>1</element>
  <element>2</element>
  <element>3</element>
 </elements>
 <sum>6</sum>
<some_document>

Правила (в некоторой форме, возможно, в xml), согласно схеме данного документа:

Sum of all <element> fields must match the value in <sum> field

Результат: Является ли документ действительным, в соответствии с указанными правилами или нет? (Возможно, в формате xml)

Итак, мне нужна библиотека, которая реализует данную функциональность или, по крайней мере, указывает на то, что я могу написать ее самостоятельно. Язык не имеет значения.

Ответы [ 2 ]

1 голос
/ 10 февраля 2010

Schematron , вероятно, будет хорошим решением.

Schematron является стандартом ISO и предоставляет способ кодирования бизнес-правил, ограничений и проверки, который невозможен в XML-схеме. Правила скомпилированы в XSLT и могут выполняться в любой среде, которая может вызывать преобразования XSLT.

Схематрон отличается базовым Концепция из других языков схемы в что это не основано на грамматике, но на поиск шаблонов деревьев в разобранном виде документ. Такой подход позволяет многим виды структур, которые будут представлены которые неудобны и трудны в основанных на грамматике языках схемы. Если Вы знаете XPath или выражение XSLT язык, вы можете начать использовать Схематрон сразу.

0 голосов
/ 10 февраля 2010

Вы можете использовать xslt, чтобы добавить значения тегов <element> и сравнить со значением в <sum>

<xsl:value-of select='sum(//element) = //sum'/>

это вернет результат сравнения ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...