Проверка инструкции обработки в XML-схеме
Полагаю, достаточно простой, я просто не могу найти ничего определенного (кроме того факта, что нет ничего определенного)
Есть ли способ включить в схему требование узла инструкции обработки в месте в документе, а также, возможно, проверить правильность цели инструкции обработки?
Например:
<node>
<?my-instruction data ?>
</node>
Подтвердил бы, тогда как:
<node></node>
Не будет?
И еще лучше:
<node>
<?my-other-instruction data ?>
</node>
Не будет (учитывая, что я мог бы поставить требуемую цельmy-instruction
)
Как уже упоминалось, я не могу найти что-то определенное (или вообще по этому вопросу) по этой теме, так что мне остается предположить, что это что-то не поддерживается. Другие упоминали, что ИП предназначены для "внеполосных" данных и инструкций по обработке, поэтому представляется целесообразным, чтобы их включение не требовалось при проверке. Было бы хорошо, хотя.
3 ответа
XSD полностью игнорирует инструкции по обработке в экземпляре документа.
Я не уверен, почему вам было трудно найти это. Поиск в спецификации "инструкции по обработке" дает одно попадание, которое является предложением в 3.1.4, в котором говорится: "Вышеприведенное определение означает, что комментарии и инструкции по обработке, даже в середине текста, игнорируются для всех целей · проверки ·".
Фактически в XSD 1.1 у нас были некоторые дебаты о том, должны ли комментарии и инструкции обработки быть видимыми для утверждений. Окончательное решение заключается в том, что по умолчанию они не видны, но процессоры могут предоставить переключатель, чтобы сделать их видимыми. В Saxon 9.4 вы можете установить этот параметр, используя --assertionsCanSeeComments:on в командной строке. С этим набором переключателей вы можете записывать утверждения в схеме, которые проверяют наличие или отсутствие инструкций по обработке, но вы не можете включить их в грамматику сложного типа, что затрудняет точное определение того, где они должны появляться.
Единственная ссылка на инструкции по обработке, которую я мог найти в спецификации XML-схемы 1.1, была в разделе 3.1.4:
Вышеприведенное определение означает, что комментарии и инструкции по обработке, даже в середине текста, игнорируются для всех целей · проверки.
Кажется, это подразумевает, что инструкции по обработке не могут быть представлены в XML-схеме.
XML-схема была разработана только для проверки элементов и атрибутов и, в очень ограниченной степени, их содержимого (перечисления или типы данных).
Там нет положения для проверки других типов узлов, таких как комментарии или инструкции обработки.
Есть альтернативы XML-схеме для проверки. Например, Schematron позволяет вам проверять содержимое.