XML-Schemaeinschränkungsmuster für das Nichtzulassen einer bestimmten Zeichenfolge

Ich muss ein XSD-Schema mit einer Einschränkung für ein Feld schreiben, um sicherzustellen, dass der Wert des Felds an keiner Stelle die Teilzeichenfolge FILENAME enthält.

Zum Beispiel müssen alle folgenden Angaben ungültig sein:

FILENAME
ORIGINFILENAME
FILENAMETEST
123FILENAME456

Keiner dieser Werte sollte gültig sein.

In einer regulären Ausdruckssprache, die negatives Lookahead unterstützt, könnte ich dies tun, indem ich @ schreib/^((?!FILENAME).)*$ aber die XSD-Mustersprache unterstützt kein negatives Lookahead.

Wie kann ich eine XSD-Musterbeschränkung mit dem gleichen Effekt wie @ implementiere/^((?!FILENAME).)*$ ?

Ich muss pattern verwenden, da ich keinen Zugriff auf XSD 1.1-Zusicherungen habe. Dies ist die andere offensichtliche Möglichkeit.

Die FrageXSD-Einschränkung, die eine übereinstimmende Zeichenfolge negiert deckt einen ähnlichen Fall ab, aber in diesem Fall ist die verbotene Zeichenfolge nur als Präfix verboten, was die Überprüfung der Einschränkung erleichtert. Wie kann die dortige Lösung erweitert werden, um den Fall abzudecken, dass nicht nur der Anfang, sondern alle Stellen innerhalb der Eingabezeichenfolge überprüft werden müssen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage