title: XML schema restriction pattern for not allowing specific string
body: <p>I need to write an XSD schema with a restriction on a field, to ensure that
  the value of the field does not contain the substring FILENAME at any location.  </p>
  
  <p>For example, all of the following must be invalid:</p>
  
  <pre><code>FILENAME
  ORIGINFILENAME
  FILENAMETEST
  123FILENAME456
  </code></pre>
  
  <p>None of these values should be valid.</p>
  
  <p>In a regular expression language that supports negative lookahead, I could do this by writing <code>/^((?!FILENAME).)*$</code> but the XSD pattern language does not support negative lookahead.</p>
  
  <p>How can I implement an XSD pattern restriction with the same effect as <code>/^((?!FILENAME).)*$</code> ?</p>
  
  <p>I need to use pattern, because I don't have access to XSD 1.1 assertions, which are the other obvious possibility.</p>
  
  <p>The question <a href="https://stackoverflow.com/questions/9889206/xsd-restriction-that-negates-a-matching-string">XSD restriction that negates a matching string</a> covers a similar case, but in that case the forbidden string is forbidden only as a prefix, which makes checking the constraint easier.  How can the solution there be extended to cover the case where we have to check all locations within the input string, and not just the beginning?</p>