Перейти к содержанию

xsl:assert

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

Доступно в XSLT 3.0. Начиная с Saxon 9.8, доступен во всех изданиях. Реализовано в Saxon-PE и Saxon-EE начиная с Saxon 9.5.

  • Категория: инструкция
  • Содержимое: sequence-constructor
  • Допустимые родительские элементы: любой элемент XSLT, модель содержимого которого - sequence-constructor; любой литеральный элемент результата

Атрибуты

test
expression
Выражение XPath для утверждения.
select?
expression
Может использоваться для указания (части) содержимого сообщения об ошибке, выдаваемого, когда утверждение ложно.
error-code?
{ eqname }
Указывает код ошибки, связанный с сообщением об ошибке, выдаваемым при ложном утверждении.

Заметки по реализации Saxon

В соответствии с изменениями в спецификации W3C, начиная с версии Saxon 9.7 утверждения по умолчанию отключены. Чтобы включить утверждения, используйте опцию командной строки -ea, или свойство конфигурации Feature.XSLT_ENABLE_ASSERTIONS, или вызовите XsltCompiler.enableAssertions(true) в интерфейсе s9api.

Подробности

Может быть полезно добавить атрибут типа use-when="$DEBUG" к инструкциям xsl:assert; глобальная статическая переменная DEBUG может быть использована для включения и выключения обработки утверждений. Переменная может быть объявлена как <xsl:variable name="DEBUG" as="xs:boolean" select="true()"/>.

Примеры

Следующий код проверяет, является ли значение $x неотрицательным, и если нет, то выдает сообщение об ошибке:

1
<xsl:assert test="$x &gt; 0">Argument $x must be greater than zero</xsl:assert>

Ссылки

Комментарии