Шаблон ограничения схемы XML для запрета определенной строки
Мне нужно написать схему XSD с ограничением на поле, чтобы гарантировать, что значение поля не содержит подстроку FILENAME в любом месте.
Например, все следующее должно быть недействительным:
FILENAME
ORIGINFILENAME
FILENAMETEST
123FILENAME456
Ни одно из этих значений не должно быть действительным.
На языке регулярных выражений, поддерживающем отрицательный прогноз, я мог бы сделать это, написав/^((?!FILENAME).)*$
но язык шаблонов XSD не поддерживает негативную перспективу.
Как я могу реализовать ограничение шаблона XSD с тем же эффектом, что и/^((?!FILENAME).)*$
?
Мне нужно использовать шаблон, потому что у меня нет доступа к утверждениям XSD 1.1, которые являются другой очевидной возможностью.
ВопросXSD ограничение, которое отрицает совпадающую строку охватывает аналогичный случай, но в этом случае запрещенная строка запрещена только в качестве префикса, что облегчает проверку ограничения. Как можно расширить решение, чтобы охватить случай, когда мы должны проверять все местоположения во входной строке, а не только начало?