Как вернуть результаты проверки Schematron в структурированном виде - PullRequest
3 голосов
/ 05 мая 2011

Я создал несколько утверждений Schematron, и все они отлично работают с моими экземплярами XML.Тем не менее, я хотел бы структурировать вывод моих сообщений об ошибках таким образом, чтобы впоследствии я мог их постобработать, например, с помощью Java.

Вывод моего сообщения об ошибке подтверждения должен быть

<error>
  <errorMessage>My error message</errorMessage>
  <violatingElement>The violating element</violatingElement>
</error>

Однако такая конструкция, как:

<pattern>
  <rule context="/p1:Document/p1:Delivery/p1:DeliveryDetails/p1:ShippingDate">
    <report test=".">
      <error>
       <errorMessage>My error message</errorMessage>
       <violatingElement>The violating element</violatingElement>
      </error>
    </report>
 </rule>
</pattern>

, не работает.Как правильно вернуть результаты Schematron в структурированной (XML-ified) манере?

Ответы [ 3 ]

1 голос
/ 15 октября 2012

На самом деле, чтобы получить отчет Schematron в формате XML, вы должны использовать SVRL.Подробнее об этом можно узнать здесь: Язык отчетов о проверке Schematron (SVRL)

Большим преимуществом использования SVRL является то, что вы также можете получить подробную информацию о том, где утверждение / отчет было инициировано какXPath.

1 голос
/ 23 мая 2011

Schematron по замыслу хочет сохранить содержание утверждений и отчетов только на естественном языке. Стандарт (доступен здесь ) поощряет использование элемента диагностики для получения более полной информации. В нем говорится:

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

диагностические сообщения содержатся в элементах (в оболочке ) и связаны с отчетами и утверждениями с использованием механизма ID / IDREF.

В Приложении G к Стандарту приведен пример использования диагностики.

0 голосов
/ 04 августа 2014

Вы также можете использовать собственный механизм схематизма, а не таблицу стилей XSL, чтобы определить, удовлетворены ли утверждения. Я работаю с одним для .NET / C # здесь .

...