Проверка инструкции обработки в XML-схеме - PullRequest
3 голосов
/ 03 января 2012

Достаточно простой, я полагаю, я просто не могу найти ничего определенного ( кроме того факта, что нет ничего определенного )

Есть ли способ включить всхема, требование к узлу инструкции обработки в месте в документе, а также, возможно, подтверждение цели инструкции обработки?

Например:

<node>
    <?my-instruction data ?>
</node>

Подтвердит, тогда как:

<node></node>

Не будет?

И, что еще лучше:

<node>
    <?my-other-instruction data ?>
</node>

Не будет (, учитывая, что я могу поставить требуемую цель my-instruction)

Как уже упоминалось, я не могу найти что-либо определенное ( или вообще в этом отношении ) по этой теме, поэтому я оставил предположить, что это что-то не поддерживается.Другие упоминали, что ИП предназначены для «внеполосных» данных и инструкций по обработке, поэтому представляется целесообразным, чтобы их включение не требовалось при проверке.Хотя было бы неплохо.

Ответы [ 3 ]

4 голосов
/ 03 января 2012

XSD полностью игнорирует инструкции по обработке в экземпляре документа.

Я не уверен, почему тебе было трудно это найти. Поиск в спецификации «инструкции по обработке» дает одно совпадение, то есть предложение в 3.1.4, которое гласит: «Вышеприведенное определение означает, что комментарии и инструкции по обработке, даже в середине текста, игнорируются для всех целей · проверки ·».

На самом деле в XSD 1.1 у нас были некоторые споры о том, должны ли комментарии и инструкции по обработке быть видимыми для утверждений. Окончательное решение заключается в том, что по умолчанию они не видны, но процессоры могут предоставить переключатель, чтобы сделать их видимыми. В Saxon 9.4 вы можете установить этот параметр, используя --assertionsCanSeeComments: on в командной строке. С этим набором переключателей вы можете записывать утверждения в схеме, которые проверяют наличие или отсутствие инструкций по обработке, но вы не можете включить их в грамматику сложного типа, что затрудняет точное определение того, где они должны появляться.

2 голосов
/ 03 января 2012

Единственная ссылка на инструкции по обработке, которую я мог найти в спецификации XML-схема 1.1 , была в разделе 3.1.4:

Приведенное выше определение означает, что комментарии и инструкции по обработке, даже в середине текста игнорируются для всех целей · валидации.

Это означает, что инструкции по обработке не могут быть представлены в XML-схеме.

1 голос
/ 03 января 2012

XML-схема была разработана только для проверки элементов и атрибутов и, в очень ограниченной степени, их содержимого (перечисления или типы данных).

Не предусмотрено проверка других типов узлов, таких как комментарии или инструкции по обработке.

Существуют альтернативы XML-схеме для проверки. Например, Schematron позволяет проверять содержимое.

...